def main(): god_key = PrivateKey.generate() alice_key = PrivateKey.generate() bob_key = PrivateKey.generate() god_addr = god_key.get_public_key().get_rev_address() alice_addr = alice_key.get_public_key().get_rev_address() bob_addr = bob_key.get_public_key().get_rev_address() with grpc.insecure_channel('172.27.0.2:40401') as channel: client = RClient(channel) god_vault_api = VaultAPI(client, god_key) alice_vault_api = VaultAPI(client, alice_key) bob_vault_api = VaultAPI(client, bob_key) # Most methods without deploy_ prefix create block (propose) after # deploy. To deploy a batch and then create block do: # # alice_vault_api.deploy_create_vault() # bob_vault_api.deploy_create_vault() # client.propose() alice_vault_api.create_vault() bob_vault_api.create_vault() assert god_vault_api.get_balance() == 100_000 assert alice_vault_api.get_balance() == 0 assert bob_vault_api.get_balance() == 0 god_vault_api.transfer(None, alice_addr, 1000) # Example way to get balances in one block: god_bal_deploy_id = god_vault_api.deploy_get_balance() alice_bal_deploy_id = alice_vault_api.deploy_get_balance() bob_bal_deploy_id = bob_vault_api.deploy_get_balance() client.propose() god_bal = god_vault_api.get_balance_from_deploy_id(god_bal_deploy_id) alice_bal = alice_vault_api.get_balance_from_deploy_id( alice_bal_deploy_id) bob_bal = bob_vault_api.get_balance_from_deploy_id(bob_bal_deploy_id) assert god_bal == 99_000 assert alice_bal == 1000 assert bob_bal == 0 alice_vault_api.transfer(None, bob_addr, 400) assert god_vault_api.get_balance() == 99_000 assert alice_vault_api.get_balance() == 600 assert bob_vault_api.get_balance() == 400
'node5.root-shard.mainnet.rchain.coop', 'node6.root-shard.mainnet.rchain.coop', 'node7.root-shard.mainnet.rchain.coop', 'node8.root-shard.mainnet.rchain.coop' ] READONLY_SERVER = [ 'observer-asia.services.mainnet.rchain.coop', 'observer-us.services.mainnet.rchain.coop', 'observer-eu.services.mainnet.rchain.coop' ] alice = PrivateKey.from_hex( '61e594124ca6af84a5468d98b34a4f3431ef39c54c6cf07fe6fbf8b079ef64f6') bob = PrivateKey.generate() exploratory_term = 'new return in{return!("a")}' with RClient(READONLY_SERVER[0], 40401) as client: vault = VaultAPI(client) # get the balance of a vault # get balance can only perform in the read-only node bob_balance = vault.get_balance(bob.get_public_key().get_rev_address()) with RClient(MAINNET_SERVER[0], 40401) as client: # because transfer need a valid deploy # the transfer need the private to perform signing vault = VaultAPI(client) deployId = vault.transfer(alice.get_public_key().get_rev_address(), bob.get_public_key().get_rev_address(), 100000, alice)
def main(): god_key = PrivateKey.from_hex( "9a801debae8bb97fe54c99389cafa576c60612503348578125b65ab182ff5850") alice_key = PrivateKey.from_hex( "b2527b00340a83e302beae2a8daf6d654e8e57541acfa261cc1b5635eb16aa15") bob_key = PrivateKey.from_hex( "567ea426deaeb8233f134c3a266149fb196d6eea7d28b447dfefff92002cb400") alice_addr = PrivateKey.from_hex( "b2527b00340a83e302beae2a8daf6d654e8e57541acfa261cc1b5635eb16aa15" ).get_public_key().get_rev_address() god_addr = PrivateKey.from_hex( "9a801debae8bb97fe54c99389cafa576c60612503348578125b65ab182ff5850" ).get_public_key().get_rev_address() bob_addr = PrivateKey.from_hex( "567ea426deaeb8233f134c3a266149fb196d6eea7d28b447dfefff92002cb400" ).get_public_key().get_rev_address() with grpc.insecure_channel('rchain-kuxgz.bootstrap:40401') as channel: client = RClient(channel) god_vault_api = VaultAPI(client, god_key) alice_vault_api = VaultAPI(client, alice_key) bob_vault_api = VaultAPI(client, bob_key) # Most methods without deploy_ prefix create block (propose) after # deploy. To deploy a batch and then create block do: # # alice_vault_api.deploy_create_vault() # bob_vault_api.deploy_create_vault() # client.propose() alice_vault_api.create_vault() bob_vault_api.create_vault() assert alice_vault_api.get_balance() == 5000 assert god_vault_api.get_balance() == 0 assert bob_vault_api.get_balance() == 0 alice_vault_api.transfer(None, bob_addr, 1000) # Example way to get balances in one block: god_bal_deploy_id = god_vault_api.deploy_get_balance() alice_bal_deploy_id = alice_vault_api.deploy_get_balance() bob_bal_deploy_id = bob_vault_api.deploy_get_balance() client.propose() god_bal = god_vault_api.get_balance_from_deploy_id(god_bal_deploy_id) alice_bal = alice_vault_api.get_balance_from_deploy_id( alice_bal_deploy_id) bob_bal = bob_vault_api.get_balance_from_deploy_id(bob_bal_deploy_id) assert god_bal == 0 assert alice_bal == 4000 assert bob_bal == 1000 bob_vault_api.transfer(None, god_addr, 400) assert god_vault_api.get_balance() == 400 assert alice_vault_api.get_balance() == 4000 assert bob_vault_api.get_balance() == 600