Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
rand_key = IrohaCrypto.private_key()
domain = ADMIN_ACCOUNT_ID.split('@')[1]
tx = iroha.transaction([
iroha.command('CreateAccount',
account_name=rand_name,
domain_id=domain,
public_key=rand_key)
])
IrohaCrypto.sign_transaction(tx, ADMIN_PRIVATE_KEY)
net.send_tx(tx)
print('tx is sent')
if __name__ == '__main__':
query = iroha.blocks_query()
IrohaCrypto.sign_query(query, ADMIN_PRIVATE_KEY)
blocks = net.send_blocks_stream_query(
query, timeout=120) # timeout in seconds
send_tx()
print(next(blocks))
def check_no_pending_txs():
print(' ~~~ No pending txs expected:')
print(
net.send_query(
ic.sign_query(
iroha.query('GetPendingTransactions',
creator_account='bob@test'),
bob_private_keys[0]
)
)
)
print(' ~~~')
def bob_declines_exchange_request():
print("""
IT IS EXPECTED HERE THAT THE BATCH WILL FAIL STATEFUL VALIDATION
""")
global net
q = ic.sign_query(
Iroha('bob@test').query('GetPendingTransactions'),
bob_private_keys[0]
)
pending_transactions = net.send_query(q)
for tx in pending_transactions.transactions_response.transactions:
if tx.payload.reduced_payload.creator_account_id == 'alice@test':
# we need do this temporarily, otherwise accept will not reach MST engine
del tx.signatures[:]
else:
# intentionally alice keys were used to fail bob's txs
ic.sign_transaction(tx, *alice_private_keys)
# zeroes as private keys are also acceptable
send_batch_and_print_status(
pending_transactions.transactions_response.transactions)
def get_blocks():
"""
Subscribe to blocks stream from the network
:return:
"""
query = iroha.blocks_query()
IrohaCrypto.sign_query(query, ADMIN_PRIVATE_KEY)
for block in net.send_blocks_stream_query(query):
print('The next block arrived:', block)
def bob_accepts_exchange_request():
global net
q = ic.sign_query(
Iroha('bob@test').query('GetPendingTransactions'),
bob_private_keys[0]
)
pending_transactions = net.send_query(q)
for tx in pending_transactions.transactions_response.transactions:
if tx.payload.reduced_payload.creator_account_id == 'alice@test':
# we need do this temporarily, otherwise accept will not reach MST engine
del tx.signatures[:]
else:
ic.sign_transaction(tx, *bob_private_keys)
send_batch_and_print_status(
pending_transactions.transactions_response.transactions)
def get_account_assets():
"""
List all the assets of userone@domain
"""
query = iroha.query('GetAccountAssets', account_id='userone@domain')
IrohaCrypto.sign_query(query, ADMIN_PRIVATE_KEY)
response = net.send_query(query)
data = response.account_assets_response.account_assets
for asset in data:
print('Asset id = {}, balance = {}'.format(
asset.asset_id, asset.balance))
def get_coin_info():
"""
Get asset info for coin#domain
:return:
"""
query = iroha.query('GetAssetInfo', asset_id='coin#domain')
IrohaCrypto.sign_query(query, ADMIN_PRIVATE_KEY)
response = net.send_query(query)
data = response.asset_response.asset
print('Asset id = {}, precision = {}'.format(data.asset_id, data.precision))