Ejemplo n.º 1
0
 async def test_query_allowance(self):
     ont = sdk.native_vm.aio_ont()
     if sys.version_info >= (3, 7):
         task_list = [
             asyncio.create_task(
                 ont.allowance(acct1.get_address_base58(),
                               acct2.get_address_base58())),
             asyncio.create_task(
                 ont.allowance(acct2.get_address_base58(),
                               acct3.get_address_base58())),
             asyncio.create_task(
                 ont.allowance(acct3.get_address_base58(),
                               acct4.get_address_base58())),
             asyncio.create_task(
                 ont.allowance(acct4.get_address_base58(),
                               acct1.get_address_base58()))
         ]
     else:
         task_list = [
             ont.allowance(acct1.get_address_base58(),
                           acct2.get_address_base58()),
             ont.allowance(acct2.get_address_base58(),
                           acct3.get_address_base58()),
             ont.allowance(acct3.get_address_base58(),
                           acct4.get_address_base58()),
             ont.allowance(acct4.get_address_base58(),
                           acct1.get_address_base58())
         ]
     for task in task_list:
         self.assertGreaterEqual(await task, 0)
Ejemplo n.º 2
0
    async def test_transfer_multi(self):
        oep4 = sdk.neo_vm.aio_oep4()
        oep4.hex_contract_address = contract_address
        transfer_list = list()

        b58_from_address1 = acct1.get_address_base58()
        b58_from_address2 = acct2.get_address_base58()
        from_address_list = [b58_from_address1, b58_from_address2]

        b58_to_address1 = acct2.get_address_base58()
        b58_to_address2 = acct3.get_address_base58()
        to_address_list = [b58_to_address1, b58_to_address2]

        value_list = [1, 2]

        transfer1 = [b58_from_address1, b58_to_address1, value_list[0]]
        transfer2 = [b58_from_address2, b58_to_address2, value_list[1]]

        signers = [acct1, acct2, acct3]
        transfer_list.append(transfer1)
        transfer_list.append(transfer2)

        tx_hash = await oep4.transfer_multi(transfer_list, signers, acct1, 500, 20000000)
        self.assertEqual(64, len(tx_hash))
        await asyncio.sleep(randint(14, 20))
        notify_list = await oep4.query_multi_transfer_event(tx_hash)
        self.assertEqual(len(transfer_list), len(notify_list))
        for index, notify in enumerate(notify_list):
            self.assertEqual('transfer', notify['States'][0])
            self.assertEqual(from_address_list[index], notify['States'][1])
            self.assertEqual(to_address_list[index], notify['States'][2])
            self.assertEqual(value_list[index], notify['States'][3])
Ejemplo n.º 3
0
 def test_transfer_multi_args_0(self):
     transfer_1 = [
         acct1.get_address().to_bytes(),
         acct2.get_address().to_bytes(), 10
     ]
     transfer_2 = [
         acct2.get_address().to_bytes(),
         acct3.get_address().to_bytes(), 100
     ]
     transfer_list = [transfer_1, transfer_2]
     hex_contract_address = 'ca91a73433c016fbcbcf98051d385785a6a5d9be'
     func = InvokeFunction('transfer_multi')
     func.set_params_value(transfer_list)
     tx_hash = sdk.rpc.send_neo_vm_transaction(hex_contract_address, acct1,
                                               acct2, self.gas_price,
                                               self.gas_limit, func, False)
     self.assertEqual(64, len(tx_hash))
     time.sleep(randint(10, 15))
     event = sdk.rpc.get_contract_event_by_tx_hash(tx_hash)
     states = Event.get_states_by_contract_address(event,
                                                   hex_contract_address)
     states[0] = Data.to_utf8_str(states[0])
     states[1][0][0] = Data.to_b58_address(states[1][0][0])
     self.assertEqual(acct1.get_address_base58(), states[1][0][0])
     states[1][0][1] = Data.to_b58_address(states[1][0][1])
     self.assertEqual(acct2.get_address_base58(), states[1][0][1])
     states[1][0][2] = Data.to_int(states[1][0][2])
     self.assertEqual(10, states[1][0][2])
     states[1][1][0] = Data.to_b58_address(states[1][1][0])
     self.assertEqual(acct2.get_address_base58(), states[1][1][0])
     states[1][1][1] = Data.to_b58_address(states[1][1][1])
     self.assertEqual(acct3.get_address_base58(), states[1][1][1])
     states[1][1][2] = Data.to_int(states[1][1][2])
     self.assertEqual(100, states[1][1][2])
Ejemplo n.º 4
0
 async def test_balance_of(self):
     address_list = [acct1.get_address_base58(), acct2.get_address_base58(), acct3.get_address_base58(),
                     acct4.get_address_base58()]
     for address in address_list:
         balance = await sdk.native_vm.aio_ont().balance_of(address)
         self.assertTrue(isinstance(balance, int))
         self.assertGreaterEqual(balance, 0)
Ejemplo n.º 5
0
 def setUp(self):
     pub_keys = [acct1.get_public_key_bytes(), acct2.get_public_key_bytes(), acct3.get_public_key_bytes()]
     multi_address = Address.from_multi_pub_keys(2, pub_keys)
     self.address_list = [acct1.get_address_base58(), acct2.get_address_base58(), acct3.get_address_base58(),
                          acct4.get_address_base58(), multi_address.b58encode()]
     self.gas_price = 500
     self.gas_limit = 20000
Ejemplo n.º 6
0
 async def test_balance_of(self):
     oep4 = sdk.neo_vm.aio_oep4()
     oep4.hex_contract_address = contract_address
     b58_address1 = acct3.get_address_base58()
     b58_address2 = acct4.get_address_base58()
     balance = await oep4.balance_of(b58_address1)
     self.assertGreaterEqual(balance, 10)
     balance = await oep4.balance_of(b58_address2)
     self.assertGreaterEqual(balance, 1)
Ejemplo n.º 7
0
 async def test_unbound_ong(self):
     address_list = [
         acct1.get_address_base58(),
         acct2.get_address_base58(),
         acct3.get_address_base58(),
         acct4.get_address_base58()
     ]
     for address in address_list:
         unbound_ong = await sdk.native_vm.aio_ong().unbound(address)
         self.assertGreaterEqual(unbound_ong, 0)
Ejemplo n.º 8
0
 async def test_get_balance(self):
     pub_keys = [acct1.get_public_key_bytes(), acct2.get_public_key_bytes(), acct3.get_public_key_bytes()]
     multi_address = Address.from_multi_pub_keys(2, pub_keys)
     address_list = [acct1.get_address_base58(), acct2.get_address_base58(), acct3.get_address_base58(),
                     acct4.get_address_base58(), multi_address.b58encode()]
     for address in address_list:
         balance = await sdk.websocket.get_balance(address)
         self.assertTrue(isinstance(balance, dict))
         self.assertGreaterEqual(balance['ONT'], 0)
         self.assertGreaterEqual(balance['ONG'], 0)
Ejemplo n.º 9
0
 async def test_transfer_from(self):
     oep4 = sdk.neo_vm.aio_oep4()
     oep4.hex_contract_address = contract_address
     b58_from_address = acct1.get_address_base58()
     b58_to_address = acct3.get_address_base58()
     value = 1
     tx_hash = await oep4.transfer_from(acct2, b58_from_address, b58_to_address, value, acct1, 500, 20000000)
     self.assertEqual(64, len(tx_hash))
     await asyncio.sleep(randint(14, 20))
     event = await oep4.query_transfer_from_event(tx_hash)
     self.assertEqual(contract_address, event.get('ContractAddress', ''))
     self.assertEqual('transfer', event['States'][0])
     self.assertEqual(b58_from_address, event['States'][1])
     self.assertEqual(b58_to_address, event['States'][2])
     self.assertEqual(value, event['States'][3])
Ejemplo n.º 10
0
 async def test_get_memory_pool_tx_state(self):
     tx_hash = '0000000000000000000000000000000000000000000000000000000000000000'
     with self.assertRaises(SDKException):
         await sdk.aio_restful.get_memory_pool_tx_state(tx_hash)
     oep4 = sdk.neo_vm.oep4()
     oep4.hex_contract_address = '1ddbb682743e9d9e2b71ff419e97a9358c5c4ee9'
     b58_from_address = acct4.get_address_base58()
     b58_to_address = acct3.get_address_base58()
     tx = oep4.new_transfer_tx(b58_from_address, b58_to_address, 10,
                               b58_from_address, 500, 20000)
     tx.sign_transaction(acct4)
     tx_hash = await sdk.aio_restful.send_raw_transaction(tx)
     self.assertEqual(64, len(tx_hash))
     try:
         tx_state = await sdk.aio_restful.get_memory_pool_tx_state(tx_hash)
         self.assertGreaterEqual(tx_state[0]['Height'], 0)
         self.assertGreaterEqual(tx_state[1]['Height'], 0)
     except SDKException:
         pass
Ejemplo n.º 11
0
 def test_get_memory_poll_tx_state(self):
     tx_hash = '0000000000000000000000000000000000000000000000000000000000000000'
     try:
         sdk.restful.get_memory_pool_tx_state(tx_hash)
     except SDKException as e:
         self.assertIn('UNKNOWN TRANSACTION', e.args[1])
     oep4 = sdk.neo_vm.oep4()
     oep4.hex_contract_address = '1ddbb682743e9d9e2b71ff419e97a9358c5c4ee9'
     b58_from_address = acct4.get_address_base58()
     b58_to_address = acct3.get_address_base58()
     tx = oep4.new_transfer_tx(b58_from_address, b58_to_address, 10,
                               b58_from_address, 500, 20000000)
     tx.sign_transaction(acct4)
     tx_hash = sdk.restful.send_raw_transaction(tx)
     self.assertEqual(64, len(tx_hash))
     try:
         tx_state = sdk.restful.get_memory_pool_tx_state(tx_hash)
         self.assertGreaterEqual(tx_state[0]['Height'], 0)
         self.assertGreaterEqual(tx_state[1]['Height'], 0)
     except SDKException:
         pass