test_spec.py (2127B)
1 # standard imports 2 import os 3 import unittest 4 import json 5 import logging 6 7 # external imports 8 from chainlib.eth.unittest.ethtester import EthTesterCase 9 from chainlib.connection import RPCConnection 10 from chainlib.eth.nonce import RPCNonceOracle 11 from chainlib.eth.address import to_checksum_address 12 from chainlib.eth.tx import ( 13 receipt, 14 transaction, 15 TxFormat, 16 ) 17 from chainlib.eth.contract import ( 18 abi_decode_single, 19 ABIContractType, 20 ) 21 from chainlib.eth.address import is_same_address 22 from chainlib.error import JSONRPCException 23 from chainlib.eth.constant import ZERO_ADDRESS 24 from hexathon import ( 25 add_0x, 26 strip_0x, 27 ) 28 from chainlib.eth.tx import TxFormat 29 from chainlib.eth.contract import ABIContractEncoder 30 from chainlib.eth.contract import ABIContractType 31 32 33 # local imports 34 from craft_nft import CraftNFT 35 from craft_nft.unittest import TestCraftNFT 36 from craft_nft.error import InvalidBatchError 37 38 logging.basicConfig(level=logging.DEBUG) 39 logg = logging.getLogger() 40 41 testdir = os.path.dirname(__file__) 42 43 hash_of_foo = '2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae' 44 hash_of_bar = 'fcde2b2edba56bf408601fb721fe9b5c338d10ee429ea04fae5511b68fbf8fb9' 45 46 47 class TestSpec(TestCraftNFT): 48 49 def test_allocate_mint_spec(self): 50 nonce_oracle = RPCNonceOracle(self.accounts[0], self.rpc) 51 c = CraftNFT(self.chain_spec, signer=self.signer, nonce_oracle=nonce_oracle) 52 53 (tx_hash_hex, o) = c.allocate(self.address, self.accounts[0], hash_of_foo, amount=2) 54 self.rpc.do(o) 55 56 (tx_hash_hex, o) = c.allocate(self.address, self.accounts[0], hash_of_foo, amount=3) 57 self.rpc.do(o) 58 59 (tx_hash_hex, o) = c.mint_to(self.address, self.accounts[0], self.accounts[9], hash_of_foo, 1) 60 self.rpc.do(o) 61 62 o = c.get_token_spec(self.address, hash_of_foo, 1, sender_address=self.accounts[0]) 63 r = self.rpc.do(o) 64 spec = c.parse_token_spec(r) 65 self.assertEqual(spec.count, 3) 66 self.assertEqual(spec.cursor, 1) 67 68 69 if __name__ == '__main__': 70 unittest.main()