def test_empty_vault_override(self): # wait until blocks are generated info = utils.wait_until_blocks_are_generated(self.connection) self.assertTrue(info.blocks >= -1) vaultamount = 45 vaultaddress = utils.send_to_vault(self.connection, vaultamount) self.assertIsNotNone(vaultaddress) # wait for vault to get updated vault = utils.wait_until_vault_has_balance(self.connection, vaultaddress) self.assertEqual(int(vault['balance']), vaultamount) # initiate vault withdraw fromaddress = vaultaddress toaddress = self.connection.getnewaddress() withdrawamount = vaultamount - 2 self.connection.withdrawfromvault(fromaddress, toaddress, withdrawamount) # wait for account to get updated subaccount = utils.wait_until_account_has_balance( self.connection, toaddress) self.assertEqual(int(subaccount['balance']), withdrawamount) vault = self.connection.getvaults()[vaultaddress] self.assertEqual(0, int(vault['balance'])) # initiate empty vault override fromaddress = vaultaddress toaddress = self.connection.getnewaddress() amount = self.connection.overridevaulttx(fromaddress, toaddress) self.assertEqual(0, amount)
def test_vault_override(self): # wait until blocks are generated info = utils.wait_until_blocks_are_generated(self.connection) self.assertTrue(info.blocks >= -1) vaultamount = 45 vaultaddress = utils.send_to_vault(self.connection, vaultamount) self.assertIsNotNone(vaultaddress) # wait for vault to get updated vault = utils.wait_until_vault_has_balance(self.connection, vaultaddress) self.assertEqual(int(vault['balance']), vaultamount) # initiate vault withdraw fromaddress = vaultaddress toaddress = self.connection.getnewaddress() amount = random.randint(1, vaultamount - 2) self.connection.withdrawfromvault(fromaddress, toaddress, amount) # wait until withdraw begins vault = utils.wait_until_vault_is_empty(self.connection, vaultaddress) self.assertEqual(int(vault['balance']), 0) # initiate vault override fromaddress = vaultaddress toaddress = self.connection.getnewaddress() amount = self.connection.overridevaulttx(fromaddress, toaddress) self.assertEqual(amount, vaultamount - 2) # check for updated balance account = utils.wait_until_account_has_balance(self.connection, toaddress) self.assertEqual(int(account['balance']), amount)
def test_multiple_vault_withdraws(self): # wait until blocks are generated info = utils.wait_until_blocks_are_generated(self.connection) self.assertTrue(info.blocks >= -1) amount = 45 vaultaddress = utils.send_to_vault(self.connection, amount) self.assertIsNotNone(vaultaddress) # wait for vault to get updated vault = utils.wait_until_vault_has_balance(self.connection, vaultaddress) self.assertEqual(int(vault['balance']), amount) # initiate vault withdraw fromaddress = vaultaddress toaddress = self.connection.getnewaddress() withdrawamount = random.randint(1, amount / 2) self.connection.withdrawfromvault(fromaddress, toaddress, withdrawamount) # wait for account to get updated subaccount = utils.wait_until_account_has_balance( self.connection, toaddress) self.assertEqual(int(subaccount['balance']), withdrawamount) time.sleep(10) vault = self.connection.getvaults()[vaultaddress] self.assertEqual(int(vault['balance']), amount - withdrawamount - 2) amount = int(vault['balance']) # initiate another vault withdraw fromaddress = vaultaddress toaddress = self.connection.getnewaddress() withdrawamount = random.randint(1, amount - 2) self.connection.withdrawfromvault(fromaddress, toaddress, withdrawamount) # wait for account to get updated subaccount = utils.wait_until_account_has_balance( self.connection, toaddress) self.assertEqual(int(subaccount['balance']), withdrawamount) vault = self.connection.getvaults()[vaultaddress] self.assertEqual(int(vault['balance']), amount - withdrawamount - 2)
def test_send(self): # wait until blocks are generated info = utils.wait_until_blocks_are_generated(self.connection) self.assertTrue(info.blocks >= -1) # generate a new toaddress toaddress = self.connection.getnewaddress() amount = random.randint(20, 30) self.connection.sendtoaddress(toaddress, amount) account = self.connection.getaccount(self.account) self.assertIn(toaddress, account) # wait for account to get updated subaccount = utils.wait_until_account_has_balance(self.connection, toaddress) self.assertEqual(int(subaccount['balance']), amount)
def test_send(self): # wait until blocks are generated info = utils.wait_until_blocks_are_generated(self.connection) self.assertTrue(info.blocks >= -1) # generate a new toaddress toaddress = self.connection.getnewaddress() amount = random.randint(20, 30) self.connection.sendtoaddress(toaddress, amount) account = self.connection.getaccount(self.account) self.assertIn(toaddress, account) # wait for account to get updated subaccount = utils.wait_until_account_has_balance( self.connection, toaddress) self.assertEqual(int(subaccount['balance']), amount)
def test_vault_fast_withdraw(self): # wait until blocks are generated info = utils.wait_until_blocks_are_generated(self.connection) self.assertTrue(info.blocks >= -1) amount = 45 vaultaddress = utils.send_to_vault(self.connection, amount) self.assertIsNotNone(vaultaddress) # wait for vault to get updated vault = utils.wait_until_vault_has_balance(self.connection, vaultaddress) self.assertEqual(int(vault['balance']), amount) # initiate fast withdraw fromaddress = vaultaddress toaddress = self.connection.getnewaddress() amount = random.randint(1, amount - 1) self.connection.fastwithdrawfromvault(fromaddress, toaddress, amount) # wait for account to get updated subaccount = utils.wait_until_account_has_balance( self.connection, toaddress) self.assertEqual(int(subaccount['balance']), amount)