def test_keystore(self): account = Account.from_keystore("zxcvbnm,", path_join("crypto", "zilliqa_keystore.json")) assert account and account.address == "526a2719b5855ef7d396a62b912a0dfa08e6ae63" account = Account.from_keystore("1234", path_join("crypto", "zilliqa_keystore2.json")) assert account and account.address == "526a2719b5855ef7d396a62b912a0dfa08e6ae63" with pytest.raises(ValueError): account = Account.from_keystore("123", path_join("crypto", "zilliqa_keystore2.json")) assert account and account.address == "526a2719b5855ef7d396a62b912a0dfa08e6ae63"
def _test_transfer_qa(self): chain.set_active_chain(chain.TestNet) account = Account(address="b50c2404e699fd985f71b2c3f032059f13d6543b") print(account) print("Account1 balance", repr(account.get_balance())) account2 = Account.from_keystore( "zxcvbnm,", path_join("crypto", "zilliqa_keystore.json")) print(account2) balance = account2.get_balance() print("Account2 balance", repr(balance)) assert balance > 0 txn_info = account2.transfer(account.bech32_address, Qa(123456789)) pprint(txn_info) txn_details = account2.wait_txn_confirm(txn_info["TranID"], timeout=240) pprint(txn_details) assert txn_details print("Account1 balance", repr(account.get_balance())) print("Account1 balance", repr(account.get_balance_qa())) account = Account( private_key= "d0b47febbef2bd0c4a4ee04aa20b60d61eb02635e8df5e7fd62409a2b1f5ddf8") txn_info = account.transfer(account2.checksum_address, Qa(123456789), confirm=True) pprint(txn_info)
def test_transfer_confirm(self): account = Account(address="b50c2404e699fd985f71b2c3f032059f13d6543b") print(account) balance1 = account.get_balance() print("Account1 balance", balance1) with pytest.raises(RuntimeError): account.transfer("to_addr", 1) account2 = Account.from_keystore("zxcvbnm,", path_join("crypto", "zilliqa_keystore.json")) print(account2) balance = account2.get_balance() print("Account2 balance", balance) assert balance > 0 result = account2.transfer(account.checksum_address, Zil(10.3), confirm=True, timeout=300, sleep=20) print("Transfer Result", result) pprint(account2.last_params) pprint(account2.last_txn_info) pprint(account2.last_txn_details) balance2 = account.get_balance() print("Account1 balance", balance2) assert balance2 >= balance1 + 10.299 account = Account(private_key="d0b47febbef2bd0c4a4ee04aa20b60d61eb02635e8df5e7fd62409a2b1f5ddf8") result = account.transfer(account2.bech32_address, 10.3, confirm=True, timeout=600, sleep=20) print("Transfer Result", result) pprint(account2.last_params) pprint(account2.last_txn_info) pprint(account2.last_txn_details)
def test_transfer(self): chain.set_active_chain(chain.TestNet) account = Account(address="b50c2404e699fd985f71b2c3f032059f13d6543b") print(account) balance1 = account.get_balance() print("Account1 balance", balance1) with pytest.raises(RuntimeError): account.transfer("to_addr", 1) account2 = Account.from_keystore("zxcvbnm,", path_join("crypto", "zilliqa_keystore.json")) print(account2) balance = account2.get_balance() print("Account2 balance", balance) assert balance > 0 to_addr = account.address with pytest.raises(ValueError): account2.transfer(to_addr, 50000) txn_info = account2.transfer(to_addr, Zil(10.3)) pprint(txn_info) txn_details = account2.wait_txn_confirm(txn_info["TranID"], timeout=120) pprint(txn_details) assert txn_details balance2 = account.get_balance() print("Account1 balance", balance2) assert balance2 >= balance1 + 10.3
def test_batch_transfer(self): chain.set_active_chain(chain.TestNet) account = Account.from_keystore("zxcvbnm,", path_join("crypto", "zilliqa_keystore.json")) print(account) balance = account.get_balance() print("Account balance", balance) assert balance > 0 batch = [] for i in range(10): batch.append(BatchTransfer( "b50c2404e699fd985f71b2c3f032059f13d6543b", Zil(i * 0.1)) ) pprint(batch) txn_infos = account.transfer_batch(batch) pprint(txn_infos) txn_details = account.wait_txn_confirm(txn_infos[0]["TranID"], timeout=120) pprint(txn_details) assert txn_details for txn_info in txn_infos: txn_details = account.wait_txn_confirm(txn_info["TranID"]) pprint(txn_details) balance2 = account.get_balance() print("Account1 balance", balance2)
def test_batch_transfer(self): account = Account.from_keystore("zxcvbnm,", path_join("crypto", "zilliqa_keystore.json")) print(account) balance = account.get_balance() print("Account balance", balance) assert balance > 0 to_account = Account(address="b50c2404e699fd985f71b2c3f032059f13d6543b") # check address format with pytest.raises(ValueError): account.transfer_batch([ BatchTransfer(to_account.checksum_address, 0.001), BatchTransfer("wrong_address", 0.001) ]) with pytest.raises(ValueError): account.transfer_batch([ BatchTransfer(to_account.address, 0.001), ]) with pytest.raises(ValueError): account.transfer_batch([ BatchTransfer(to_account.address0x, 0.001), ]) batch = [] total_zils = 0 for i in range(2): batch.append(BatchTransfer(to_account.checksum_address, Zil(i * 0.1))) total_zils += (i * 0.1) batch.append(BatchTransfer(to_account.bech32_address, Zil(i * 0.1))) total_zils += (i * 0.1) pprint(batch) txn_infos = account.transfer_batch(batch) pprint(txn_infos) for txn_info in txn_infos: if not txn_info: print("Failed to create txn") else: txn_details = account.wait_txn_confirm(txn_info["TranID"]) pprint(txn_details) if txn_details and txn_details["receipt"]["success"]: print("Txn success") else: print("Txn failed") balance2 = account.get_balance() print("Account1 balance", balance2) account2 = Account(private_key="d0b47febbef2bd0c4a4ee04aa20b60d61eb02635e8df5e7fd62409a2b1f5ddf8") txn_info = account2.transfer(account.bech32_address, total_zils, confirm=True) pprint(txn_info)
def test_transfer(self): chain.set_active_chain(chain.TestNet) account = Account(address="b50c2404e699fd985f71b2c3f032059f13d6543b") print(account) balance1 = account.get_balance() print("Account1 balance", balance1) with pytest.raises(RuntimeError): account.transfer("to_addr", 1) account2 = Account.from_keystore( "zxcvbnm,", path_join("crypto", "zilliqa_keystore.json")) print(account2) balance = account2.get_balance() print("Account2 balance", balance) assert balance > 0 # check address format with pytest.raises(ValueError): account2.transfer(account.address, Zil(10.3)) with pytest.raises(ValueError): account2.transfer(account.address0x, Zil(10.3)) # checksum address # check insufficient balance with pytest.raises(ValueError): account2.transfer(account.checksum_address, 50000) txn_info = account2.transfer(account.checksum_address, Zil(10.3)) pprint(txn_info) txn_details = account2.wait_txn_confirm(txn_info["TranID"], timeout=240) pprint(txn_details) assert txn_details balance2 = account.get_balance() print("Account1 balance", balance2) assert balance2 >= balance1 + 10.299 account = Account( private_key= "d0b47febbef2bd0c4a4ee04aa20b60d61eb02635e8df5e7fd62409a2b1f5ddf8") # bech32 address txn_info = account.transfer(account2.bech32_address, 10.3, confirm=True) pprint(txn_info)
def test_balance(self): account = Account(address="b50c2404e699fd985f71b2c3f032059f13d6543b") balance = account.get_balance() print("balance", balance) assert balance > 0 nonce = account.get_nonce() print("nonce", nonce) assert nonce >= 0 account2 = Account(address="b50c2404e699fd985f71b2c3f032059f13d65432") balance = account2.get_balance() print("balance", balance) assert balance == 0 account3 = Account.from_keystore("zxcvbnm,", path_join("crypto", "zilliqa_keystore.json")) balance = account3.get_balance() print("balance", balance) assert balance > 0
def test_batch_transfer(self): chain.set_active_chain(chain.TestNet) account = Account.from_keystore( "zxcvbnm,", path_join("crypto", "zilliqa_keystore.json")) print(account) balance = account.get_balance() print("Account balance", balance) assert balance > 0 batch = [] for i in range(10): batch.append( BatchTransfer("b50c2404e699fd985f71b2c3f032059f13d6543b", Zil(i * 0.1))) pprint(batch) txn_infos = account.transfer_batch(batch) pprint(txn_infos) txn_details = account.wait_txn_confirm(txn_infos[0]["TranID"], timeout=120) pprint(txn_details) assert txn_details for txn_info in txn_infos: txn_details = account.wait_txn_confirm(txn_info["TranID"]) pprint(txn_details) balance2 = account.get_balance() print("Account1 balance", balance2) account2 = Account( private_key= "d0b47febbef2bd0c4a4ee04aa20b60d61eb02635e8df5e7fd62409a2b1f5ddf8") txn_info = account2.transfer(account.address, sum([b.zils for b in batch])) pprint(txn_info)
def test_transfer_qa(self): chain.set_active_chain(chain.TestNet) account = Account(address="b50c2404e699fd985f71b2c3f032059f13d6543b") print(account) print("Account1 balance", repr(account.get_balance())) account2 = Account.from_keystore("zxcvbnm,", path_join("crypto", "zilliqa_keystore.json")) print(account2) balance = account2.get_balance() print("Account2 balance", repr(balance)) assert balance > 0 to_addr = account.address txn_info = account2.transfer(to_addr, Qa(123456789)) pprint(txn_info) txn_details = account2.wait_txn_confirm(txn_info["TranID"], timeout=120) pprint(txn_details) assert txn_details print("Account1 balance", repr(account.get_balance())) print("Account1 balance", repr(account.get_balance_qa()))
class TestContract: contracts = { "hello": "c341f2767efc6bbfbeba0c830b8433addd1885f8", "test": "9411679c08c025ccde8865b5ebe301b899c02bef", } account = Account.from_keystore("zxcvbnm,", path_join("crypto", "zilliqa_keystore.json")) init = [ Contract.value_dict("_scilla_version", "Uint32", "0"), Contract.value_dict("owner", "ByStr20", account.address0x) ] def setup_method(self, method): print("set active chain to IsolatedServer") chain.set_active_chain(chain.IsolatedServer) def test_new_contract(self): print("Account balance1", self.account.get_balance()) code = open(path_join("contracts", "HelloWorld.scilla")).read() contract = Contract.new_from_code(code) print(contract) with pytest.raises(ValueError, match=".+set account.+"): contract.deploy() contract.account = self.account contract.deploy(init_params=self.init, timeout=300, sleep=10, gas_price=1000000000) print(contract) print("Account balance2", self.account.get_balance()) assert contract.status == Contract.Status.Deployed def test_from_address_hello(self): address = self.contracts["hello"] contract = Contract.load_from_address(address, load_state=True) print(contract) pprint(contract.get_state(get_code=True, get_init=False)) print(contract.status) print(contract.code) pprint(contract.init) pprint(contract.state) def test_from_address_test(self): address = self.contracts["test"] contract = Contract.load_from_address(address, load_state=True) print(contract) pprint(contract.get_state(get_code=True, get_init=False)) print(contract.status) print(contract.code) pprint(contract.init) pprint(contract.state) def test_get_contracts(self): owner_addr = self.account.address contracts = Contract.get_contracts(owner_addr) pprint(contracts) contracts2 = self.account.get_contracts() pprint(contracts2) assert contracts == contracts2 def test_call(self): address = self.contracts["test"] contract = Contract.load_from_address(address) print(contract) contract.get_state(get_init=True, get_code=False) print(contract.status) pprint(contract.init) pprint(contract.state) contract.account = self.account resp = contract.call(gas_price=1000000000, method="getMessage", params=[]) print(resp) pprint(contract.last_receipt) assert contract.last_receipt["success"] assert contract.last_receipt["event_logs"][0]["params"][0]["vname"] == "msg" assert contract.last_receipt["event_logs"][0]["params"][0]["value"] == "Test Message" def test_call_hello(self): address = self.contracts["hello"] contract = Contract.load_from_address(address) print(contract) print(contract.status) pprint(contract.state) contract.account = self.account resp = contract.call(gas_price=1000000000, method="contrAddr", params=[]) print(resp) pprint(contract.last_receipt) assert contract.last_receipt["success"] assert contract.last_receipt["event_logs"][0]["params"][0]["vname"] == "addr" assert contract.last_receipt["event_logs"][0]["params"][0]["value"] == contract.address0x resp = contract.call(gas_price=1000000000, method="setHello", params=[Contract.value_dict("msg", "String", "hi contract.")]) print(resp) pprint(contract.last_receipt) assert contract.last_receipt["success"] assert contract.last_receipt["event_logs"][0]["params"][0]["vname"] == "code" assert contract.last_receipt["event_logs"][0]["params"][0]["type"] == "Int32" assert contract.last_receipt["event_logs"][0]["params"][0]["value"] == "2" resp = contract.call(gas_price=1000000000, method="getHello", params=[]) print(resp) pprint(contract.last_receipt) assert contract.last_receipt["success"] assert contract.last_receipt["event_logs"][0]["_eventname"] == "getHello()" assert contract.last_receipt["event_logs"][0]["params"][0]["vname"] == "msg" assert contract.last_receipt["event_logs"][0]["params"][0]["type"] == "String" assert contract.last_receipt["event_logs"][0]["params"][0]["value"] == "hi contract." def test_call_other_account(self): address = self.contracts["hello"] contract = Contract.load_from_address(address) print(contract) print(contract.status) account2 = Account(private_key="d0b47febbef2bd0c4a4ee04aa20b60d61eb02635e8df5e7fd62409a2b1f5ddf8") print("Account2 balance", account2.get_balance()) contract.account = account2 resp = contract.call(gas_price=1000000000, method="setHello", params=[ Contract.value_dict("msg", "String", "hello from another account") ]) print(resp) pprint(contract.last_receipt) assert contract.last_receipt["success"] assert contract.last_receipt["event_logs"][0]["params"][0]["vname"] == "code" assert contract.last_receipt["event_logs"][0]["params"][0]["value"] == "1" resp = contract.call(gas_price=1000000000, method="getHello", params=[]) print(resp) pprint(contract.last_receipt) assert contract.last_receipt["success"] assert contract.last_receipt["event_logs"][0]["_eventname"] == "getHello()" assert contract.last_receipt["event_logs"][0]["params"][0]["vname"] == "msg" assert contract.last_receipt["event_logs"][0]["params"][0]["type"] == "String" assert contract.last_receipt["event_logs"][0]["params"][0]["value"] == "hi contract."
class TestAccount: chain.set_active_chain(chain.TestNet) account = Account.from_keystore("zxcvbnm,", path_join("crypto", "zilliqa_keystore.json")) def test_new_contract(self): print("Account balance", self.account.get_balance()) code = open(path_join("contracts", "HelloWorld.scilla")).read() contract = Contract.new_from_code(code) print(contract) with pytest.raises(ValueError, match=".+set account.+"): contract.deploy() contract.account = self.account contract.deploy(timeout=300, sleep=10) print(contract) assert contract.status == Contract.Status.Deployed def test_from_address_hello(self): address = "45dca9586598c8af78b191eaa28daf2b0a0b4f43" contract = Contract.load_from_address(address, load_state=True) print(contract) pprint(contract.get_state(get_code=True, get_init=True)) print(contract.status) print(contract.code) pprint(contract.init) pprint(contract.state) def test_from_address_test(self): address = "2d3195fbfbe0442556c9613e539a0b62a64f2402" contract = Contract.load_from_address(address, load_state=True) print(contract) pprint(contract.get_state(get_code=True, get_init=True)) print(contract.status) print(contract.code) pprint(contract.init) pprint(contract.state) def test_get_contracts(self): owner_addr = self.account.address contracts = Contract.get_contracts(owner_addr) pprint(contracts) contracts2 = self.account.get_contracts() pprint(contracts2) assert contracts == contracts2 def test_call(self): contract = Contract.load_from_address("2d3195fbfbe0442556c9613e539a0b62a64f2402") print(contract) contract.get_state(get_init=True, get_code=True) print(contract.status) print(contract.code) pprint(contract.init) pprint(contract.state) contract.account = self.account resp = contract.call(method="getMessage", params=[]) print(resp) pprint(contract.last_receipt) assert contract.last_receipt["success"] assert contract.last_receipt["event_logs"][0]["params"][0]["vname"] == "msg" assert contract.last_receipt["event_logs"][0]["params"][0]["value"] == "Test Message" def test_call_hello(self): contract = Contract.load_from_address("45dca9586598c8af78b191eaa28daf2b0a0b4f43") print(contract) print(contract.status) print(contract.code) pprint(contract.init) pprint(contract.state) contract.account = self.account resp = contract.call(method="contrAddr", params=[]) print(resp) pprint(contract.last_receipt) assert contract.last_receipt["success"] assert contract.last_receipt["event_logs"][0]["params"][0]["vname"] == "addr" assert contract.last_receipt["event_logs"][0]["params"][0]["value"] == contract.address0x resp = contract.call(method="setHello", params=[Contract.value_dict("msg", "String", "hi contract.")]) print(resp) pprint(contract.last_receipt) assert contract.last_receipt["success"] assert contract.last_receipt["event_logs"][0]["params"][0]["vname"] == "code" assert contract.last_receipt["event_logs"][0]["params"][0]["type"] == "Int32" assert contract.last_receipt["event_logs"][0]["params"][0]["value"] == "2" resp = contract.call(method="getHello", params=[]) print(resp) pprint(contract.last_receipt) assert contract.last_receipt["success"] assert contract.last_receipt["event_logs"][0]["_eventname"] == "getHello()" assert contract.last_receipt["event_logs"][0]["params"][0]["vname"] == "msg" assert contract.last_receipt["event_logs"][0]["params"][0]["type"] == "String" assert contract.last_receipt["event_logs"][0]["params"][0]["value"] == "hi contract." def test_call_other_account(self): contract = Contract.load_from_address("45dca9586598c8af78b191eaa28daf2b0a0b4f43") print(contract) print(contract.status) print(contract.code) pprint(contract.init) pprint(contract.state) account2 = Account(private_key="d0b47febbef2bd0c4a4ee04aa20b60d61eb02635e8df5e7fd62409a2b1f5ddf8") print("Account2 balance", account2.get_balance()) contract.account = account2 resp = contract.call(method="setHello", params=[ Contract.value_dict("msg", "String", "hello from another account") ]) print(resp) pprint(contract.last_receipt) assert contract.last_receipt["success"] assert contract.last_receipt["event_logs"][0]["params"][0]["vname"] == "code" assert contract.last_receipt["event_logs"][0]["params"][0]["value"] == "1" resp = contract.call(method="getHello", params=[]) print(resp) pprint(contract.last_receipt) assert contract.last_receipt["success"] assert contract.last_receipt["event_logs"][0]["_eventname"] == "getHello()" assert contract.last_receipt["event_logs"][0]["params"][0]["vname"] == "msg" assert contract.last_receipt["event_logs"][0]["params"][0]["type"] == "String" assert contract.last_receipt["event_logs"][0]["params"][0]["value"] == "hi contract."