def test_sendmany_good_simple(self): with patch('neo.Prompt.Commands.Send.prompt', side_effect=[ "neo", self.watch_addr_str, "1", "gas", self.watch_addr_str, "1", UserWalletTestCase.wallet_1_pass() ]): wallet = self.GetWallet1(recreate=True) args = ["2"] framework = construct_send_many(wallet, args) res = process_transaction(wallet, contract_tx=framework[0], scripthash_from=framework[1], scripthash_change=framework[2], fee=framework[3], owners=framework[4], user_tx_attributes=framework[5]) self.assertTrue(res) # verify successful tx json_res = res.ToJson() self.assertEqual( self.watch_addr_str, json_res['vout'][0]['address']) # verify correct address_to # check for 2 transfers transfers = 0 for info in json_res['vout']: if info['address'] == self.watch_addr_str: transfers += 1 self.assertEqual(2, transfers)
def test_sendmany_weird_outgoing(self): wallet = self.GetWallet1(recreate=True) args = ['0.5'] # weird number outgoing framework = construct_send_many(wallet, args) self.assertFalse(framework)
def test_sendmany_bad_outgoing(self): wallet = self.GetWallet1(recreate=True) args = ['0'] # too few outgoing framework = construct_send_many(wallet, args) self.assertFalse(framework)
def test_sendmany_no_wallet(self): wallet = None args = ['2'] framework = construct_send_many(wallet, args) self.assertFalse(framework)
def test_sendmany_negative_fee(self): with patch('neo.Prompt.Commands.Send.prompt', side_effect=[ "neo", self.watch_addr_str, "1", "gas", self.watch_addr_str, "1" ]): wallet = self.GetWallet1(recreate=True) args = ['2', '--fee=-0.005'] framework = construct_send_many(wallet, args) self.assertFalse(framework)
def test_sendmany_bad_precision_amount(self): with patch('neo.Prompt.Commands.Send.prompt', side_effect=[ "gas", self.watch_addr_str, "1", "neo", self.watch_addr_str, "5.01" ]): wallet = self.GetWallet1(recreate=True) args = ['2'] framework = construct_send_many(wallet, args) self.assertFalse(framework)
def test_sendmany_bad_change_address(self): with patch('neo.Prompt.Commands.Send.prompt', side_effect=[ "neo", self.watch_addr_str, "1", "gas", self.watch_addr_str, "1" ]): wallet = self.GetWallet1(recreate=True) change_address = '--change-addr=AGYaEi3W6ndHPUmW7T12FFfsbQ6DWymkE' # change address is too short causing ToScriptHash to fail args = ['2', change_address] framework = construct_send_many(wallet, args) self.assertFalse(framework)
def test_sendmany_bad_address_from(self): with patch('neo.Prompt.Commands.Send.prompt', side_effect=[ "neo", self.watch_addr_str, "1", "gas", self.watch_addr_str, "1" ]): wallet = self.GetWallet1(recreate=True) address_from = '--from-addr=AJQ6FoaSXDFzA6wLnyZ1nFN7SGSN2oNTc' # address_from is too short causing ToScriptHash to fail args = ['2', address_from] framework = construct_send_many(wallet, args) self.assertFalse(framework)
def test_sendmany_bad_address_to(self): with patch('neo.Prompt.Commands.Send.prompt', side_effect=[ "neo", self.watch_addr_str, "1", "gas", "AGYaEi3W6ndHPUmW7T12FFfsbQ6DWymkE", "1" ]): # address is too short wallet = self.GetWallet1(recreate=True) args = ['2'] framework = construct_send_many(wallet, args) self.assertFalse(framework)
def test_sendmany_token(self): with patch('neo.Prompt.Commands.Send.prompt', side_effect=[ "neo", self.watch_addr_str, "1", "NXT4", self.watch_addr_str, "32" ]): wallet = self.GetWallet1(recreate=True) token_hash = '31730cc9a1844891a3bafd1aa929a4142860d8d3' ImportToken(wallet, token_hash) args = ["2", '--from-addr=%s' % self.wallet_1_addr] framework = construct_send_many(wallet, args) self.assertFalse(framework)
def test_sendmany_good_complex(self): with patch('neo.Prompt.Commands.Send.prompt', side_effect=[ "neo", "AXjaFSP23Jkbe6Pk9pPGT6NBDs1HVdqaXK", "1", "gas", "AXjaFSP23Jkbe6Pk9pPGT6NBDs1HVdqaXK", "1", UserWalletTestCase.wallet_1_pass() ]): wallet = self.GetWallet1(recreate=True) args = [ "2", '--from-addr=%s' % self.wallet_1_addr, '--change-addr=%s' % self.watch_addr_str, '--fee=0.005' ] address_from_account_state = Blockchain.Default().GetAccountState( self.wallet_1_addr).ToJson() address_from_gas_bal = address_from_account_state['balances'][ '0x602c79718b16e442de58778e148d0b1084e3b2dffd5de6b7b16cee7969282de7'] framework = construct_send_many(wallet, args) res = process_transaction(wallet, contract_tx=framework[0], scripthash_from=framework[1], scripthash_change=framework[2], fee=framework[3], owners=framework[4], user_tx_attributes=framework[5]) self.assertTrue(res) # verify successful tx json_res = res.ToJson() self.assertEqual( "AXjaFSP23Jkbe6Pk9pPGT6NBDs1HVdqaXK", json_res['vout'][0]['address']) # verify correct address_to self.assertEqual(self.watch_addr_str, json_res['vout'][2] ['address']) # verify correct change address self.assertEqual( float(address_from_gas_bal) - 1 - 0.005, float(json_res['vout'][3]['value'])) self.assertEqual('0.005', json_res['net_fee'])