def sets_asset(contract_address: str, asset_id: str, amount: str): asset, domain = asset_id.split("#") params = integration_helpers.get_first_four_bytes_of_keccak( b"setsAsset(string,string,string,string,string)") no_of_param = 5 for x in range(no_of_param): params = params + integration_helpers.left_padded_address_of_param( x, no_of_param) params = params + integration_helpers.argument_encoding( asset) # asset name params = params + integration_helpers.argument_encoding( domain) # domain name params = params + integration_helpers.argument_encoding("4") # precision params = params + integration_helpers.argument_encoding( asset_id) # asset id params = params + integration_helpers.argument_encoding( amount) # domain name tx = iroha_admin.transaction([ iroha_admin.command( "CallEngine", caller=ADMIN_ACCOUNT_ID, callee=contract_address, input=params, ) ]) IrohaCrypto.sign_transaction(tx, ADMIN_PRIVATE_KEY) response = net.send_tx(tx) for status in net.tx_status_stream(tx): print(status)
def create_account(address): params = integration_helpers.get_first_four_bytes_of_keccak( b"createAccount(string,string,string)") no_of_param = 3 for x in range(no_of_param): params = params + integration_helpers.left_padded_address_of_param( x, no_of_param) params = params + integration_helpers.argument_encoding( "test") # source account id params = params + integration_helpers.argument_encoding( "burrow") # domain id params = params + integration_helpers.argument_encoding( test_public_key) # key tx = iroha.transaction([ iroha.command("CallEngine", caller=ADMIN_ACCOUNT_ID, callee=address, input=params) ]) IrohaCrypto.sign_transaction(tx, ADMIN_PRIVATE_KEY) response = net.send_tx(tx) for status in net.tx_status_stream(tx): print(status) hex_hash = binascii.hexlify(IrohaCrypto.hash(tx)) return hex_hash
def transfer(address): params = integration_helpers.get_first_four_bytes_of_keccak( b"transferAsset(string,string,string,string,string)") no_of_param = 5 for x in range(no_of_param): params = params + integration_helpers.left_padded_address_of_param( x, no_of_param) params = params + integration_helpers.argument_encoding( ADMIN_ACCOUNT_ID) # source account params = params + integration_helpers.argument_encoding( "userone@domain") # destination account params = params + integration_helpers.argument_encoding( "coin#domain") # asset id params = params + integration_helpers.argument_encoding( "transfer") # description params = params + integration_helpers.argument_encoding( "100") # amount of asset tx = iroha.transaction([ iroha.command("CallEngine", caller=ADMIN_ACCOUNT_ID, callee=address, input=params) ]) IrohaCrypto.sign_transaction(tx, ADMIN_PRIVATE_KEY) response = net.send_tx(tx) for status in net.tx_status_stream(tx): print(status)
def set_account_detail(address): params = integration_helpers.get_first_four_bytes_of_keccak( b"setAccountDetail(string,string,string)") no_of_param = 3 for x in range(no_of_param): params = params + integration_helpers.left_padded_address_of_param( x, no_of_param) params = params + integration_helpers.argument_encoding( ADMIN_ACCOUNT_ID) # source account id params = params + integration_helpers.argument_encoding( "university") # key params = params + integration_helpers.argument_encoding("MIT") # value tx = iroha.transaction([ iroha.command("CallEngine", caller=ADMIN_ACCOUNT_ID, callee=address, input=params) ]) IrohaCrypto.sign_transaction(tx, ADMIN_PRIVATE_KEY) response = net.send_tx(tx) print(response) for status in net.tx_status_stream(tx): print(status) hex_hash = binascii.hexlify(IrohaCrypto.hash(tx)) return hex_hash
def get_transactions(address, txs_hashes): params = integration_helpers.get_first_four_bytes_of_keccak(b'getTransactions(string)') no_of_param = 1 for x in range(no_of_param): params = params + integration_helpers.left_padded_address_of_param(x, no_of_param) params = params + integration_helpers.argument_encoding(txs_hashes) # tx hashes tx = iroha.transaction( [ iroha.command( "CallEngine", caller=ADMIN_ACCOUNT_ID, callee = address, input = params ) ] ) return send_transaction_and_print_status(tx)
def get_account_transactions(address, first_tx_height = None, last_tx_height = None, ordering_str = None): params = integration_helpers.get_first_four_bytes_of_keccak(b'getAccountTransactions(string,string,string,string,string,string,string,string)') no_of_param = 8 for x in range(no_of_param): params = params + integration_helpers.left_padded_address_of_param(x, no_of_param) params = params + integration_helpers.argument_encoding(ADMIN_ACCOUNT_ID) # account id params = params + integration_helpers.argument_encoding('1') # page size params = params + integration_helpers.argument_encoding('') # first_tx_hash params = params + integration_helpers.argument_encoding('') # first_tx_time params = params + integration_helpers.argument_encoding('') # last_tx_time params = params + integration_helpers.argument_encoding(str(first_tx_height)) # first_tx_height params = params + integration_helpers.argument_encoding(str(last_tx_height)) # last_tx_height params = params + integration_helpers.argument_encoding(ordering_str) # ordering tx = iroha.transaction( [ iroha.command( "CallEngine", caller=ADMIN_ACCOUNT_ID, callee = address, input = params ) ] ) return send_transaction_and_print_status(tx)
def get_block(address): params = integration_helpers.get_first_four_bytes_of_keccak( b"getBlock(string)") no_of_param = 1 for x in range(no_of_param): params = params + integration_helpers.left_padded_address_of_param( x, no_of_param) params = params + integration_helpers.argument_encoding( "10") # block height tx = iroha.transaction([ iroha.command("CallEngine", caller=ADMIN_ACCOUNT_ID, callee=address, input=params) ]) IrohaCrypto.sign_transaction(tx, ADMIN_PRIVATE_KEY) response = net.send_tx(tx) for status in net.tx_status_stream(tx): print(status) hex_hash = binascii.hexlify(IrohaCrypto.hash(tx)) return hex_hash
def add_asset_quantity(address): params = integration_helpers.get_first_four_bytes_of_keccak( b"addAssetQuantity(string,string)") no_of_param = 2 for x in range(no_of_param): params = params + integration_helpers.left_padded_address_of_param( x, no_of_param) params = params + integration_helpers.argument_encoding( "coin#domain") # asset id params = params + integration_helpers.argument_encoding( "500") # amount of asset tx = iroha.transaction([ iroha.command("CallEngine", caller=ADMIN_ACCOUNT_ID, callee=address, input=params) ]) IrohaCrypto.sign_transaction(tx, ADMIN_PRIVATE_KEY) response = net.send_tx(tx) for status in net.tx_status_stream(tx): print(status)
def compare_account_det(address, key, value): params = integration_helpers.get_first_four_bytes_of_keccak( b'compareAndSetAccountDetail(string,string,string,string,string)') no_of_param = 5 for x in range(no_of_param): params = params + integration_helpers.left_padded_address_of_param( x, no_of_param) params = params + integration_helpers.argument_encoding( ADMIN_ACCOUNT_ID) # account params = params + integration_helpers.argument_encoding(key) # key params = params + integration_helpers.argument_encoding(value) # value params = params + integration_helpers.argument_encoding('') # key # accepted values to check empty: 1, t, T, TRUE, true, True, 0, f, F, FALSE, false, False params = params + integration_helpers.argument_encoding('TRUE') # key tx = iroha.transaction([ iroha.command("CallEngine", caller=ADMIN_ACCOUNT_ID, callee=address, input=params) ]) return send_transaction_and_print_status(tx)
def create_and_setup_account(contract_address: str): params = integration_helpers.get_first_four_bytes_of_keccak( b"createAndSetupAccount(string,string,string,string,string,string,string,string,string,string)" ) no_of_param = 10 for x in range(no_of_param): params = params + integration_helpers.left_padded_address_of_param( x, no_of_param) params = params + integration_helpers.argument_encoding( ADMIN_ACCOUNT_ID) # admin account id params = params + integration_helpers.argument_encoding( user_account_short_id) # user account name params = params + integration_helpers.argument_encoding( user_account_full_id) # user account id params = params + integration_helpers.argument_encoding( ASSET_ID) # asset id params = params + integration_helpers.argument_encoding( DOMAIN) # domain name params = params + integration_helpers.argument_encoding( "set up balance") # description params = params + integration_helpers.argument_encoding("100") # amount params = params + integration_helpers.argument_encoding( "mail") # key for user detail params = params + integration_helpers.argument_encoding( user_mail) # value for user detail params = params + integration_helpers.argument_encoding( user_public_key) # public key of user tx = iroha_admin.transaction([ iroha_admin.command( "CallEngine", caller=ADMIN_ACCOUNT_ID, callee=contract_address, input=params, ) ]) IrohaCrypto.sign_transaction(tx, ADMIN_PRIVATE_KEY) response = net.send_tx(tx) for status in net.tx_status_stream(tx): print(status)
def create_role(adress, role_name, permissions): params = integration_helpers.get_first_four_bytes_of_keccak( b"createRole(string,string)") no_of_param = 2 for x in range(no_of_param): params = params + integration_helpers.left_padded_address_of_param( x, no_of_param) params = params + integration_helpers.argument_encoding(role_name) # role params = params + integration_helpers.argument_encoding( permissions) # permissions (json formatted) tx = iroha.transaction([ iroha.command("CallEngine", caller=ADMIN_ACCOUNT_ID, callee=address, input=params) ]) IrohaCrypto.sign_transaction(tx, ADMIN_PRIVATE_KEY) response = net.send_tx(tx) for status in net.tx_status_stream(tx): print(status) hex_hash = binascii.hexlify(IrohaCrypto.hash(tx)) return hex_hash
def detach_role(address): params = integration_helpers.get_first_four_bytes_of_keccak( b"detachRole(string,string)") no_of_param = 2 for x in range(no_of_param): params = params + integration_helpers.left_padded_address_of_param( x, no_of_param) params = params + integration_helpers.argument_encoding( "test@burrow") # account id params = params + integration_helpers.argument_encoding( "money_creator") # role id tx = iroha.transaction([ iroha.command("CallEngine", caller=ADMIN_ACCOUNT_ID, callee=address, input=params) ]) IrohaCrypto.sign_transaction(tx, ADMIN_PRIVATE_KEY) response = net.send_tx(tx) for status in net.tx_status_stream(tx): print(status) hex_hash = binascii.hexlify(IrohaCrypto.hash(tx)) return hex_hash
def balance(address: str, user_id: str): params = integration_helpers.get_first_four_bytes_of_keccak( b"queryBalance(string,string)") no_of_param = 2 for x in range(no_of_param): params = params + integration_helpers.left_padded_address_of_param( x, no_of_param) params = params + integration_helpers.argument_encoding( user_id) # account id params = params + integration_helpers.argument_encoding( ASSET_ID) # asset id tx = iroha_admin.transaction([ iroha_admin.command("CallEngine", caller=ADMIN_ACCOUNT_ID, callee=address, input=params) ]) IrohaCrypto.sign_transaction(tx, ADMIN_PRIVATE_KEY) response = net.send_tx(tx) for status in net.tx_status_stream(tx): print(status) hex_hash = binascii.hexlify(IrohaCrypto.hash(tx)) return hex_hash
def revoke_permission(adress, permission): params = integration_helpers.get_first_four_bytes_of_keccak( b"revokePermission(string,string)") no_of_param = 2 for x in range(no_of_param): params = params + integration_helpers.left_padded_address_of_param( x, no_of_param) params = params + integration_helpers.argument_encoding( ADMIN_ACCOUNT_ID) # account id params = params + integration_helpers.argument_encoding( permission) # permission tx = iroha.transaction([ iroha.command("CallEngine", caller=ADMIN_ACCOUNT_ID, callee=address, input=params) ]) IrohaCrypto.sign_transaction(tx, ADMIN_PRIVATE_KEY) response = net.send_tx(tx) for status in net.tx_status_stream(tx): print(status) hex_hash = binascii.hexlify(IrohaCrypto.hash(tx)) return hex_hash