from substrate_python_api.tests.config import async_call message = { "jsonrpc": "2.0", "method": "state_getStorage", # key of storage. "params": ["0xb87be889f43fdcf49af3d74b74646da1905a4e53f0ceb97476a6539bfe60d588"], "id": 1 } def deal_with_message(data): print(data) async_call(message['method'], message['params'], deal_with_message)
from substrate_python_api.tests.config import async_call commands = [ 'system_name', 'system_version', 'system_chain', 'system_properties', 'system_health', 'system_peers', 'system_networkState' ] for command in commands: async_call(command)
from substrate_python_api.tests.config import async_call extrinsic = '0x0123456789' commands = [ ("author_submitExtrinsic", [extrinsic]), # bytes ("author_pendingExtrinsics", []), # no para ("author_removeExtrinsic", [extrinsic]) # bytes_or_hash ] for command, parameter in commands: async_call(command, [extrinsic]) # [pubsub(subscription = "author_extrinsicUpdate", subscribe, name = "author_submitAndWatchExtrinsic")] # watch_extrinsic( & self, metadata: Self::Metadata, subscriber: Subscriber < Status < Hash, BlockHash >>, bytes: Bytes); # [pubsub(subscription = "author_extrinsicUpdate", unsubscribe, name = "author_unwatchExtrinsic")] # unwatch_extrinsic( & self, metadata: Option < Self::Metadata >, id: SubscriptionId) -> Result < bool >;
"method": "chain_getBlockHash", "params": [0], "id": 1 } class Data: block_hash = None def get_hash(data): header = json.loads(data) Data.block_hash = header['result'] print(Data.block_hash) async_call(message['method'], message['params'], get_hash) message = {"jsonrpc": "2.0", "method": "chain_getBlock", "params": [], "id": 2} def get_block(data): header = json.loads(data) Data.block_hash = header['result'] print('block is {}'.format(Data.block_hash)) print('genesis hash is {}'.format( header['result']['block']['header']['stateRoot'])) async_call(message['method'], [Data.block_hash], get_block)
tx_data += sign_version.to_bytes(1, byteorder='little') tx_data += separate.to_bytes(1, byteorder='little') tx_data += alice_public_key tx_data += signature tx_data += extra_bytes tx_data += module_id.to_bytes(1, byteorder='little') tx_data += method_id.to_bytes(1, byteorder='little') tx_data += separate.to_bytes(1, byteorder='little') tx_data += tx_parameter # print([x for x in tx_data]) print(tx_data.hex()) return '0x' + tx_data.hex() def deal_with_message(data): print(data) tx = TransferExtrinsic(2, 1) # print(tx.build_tx()) # data = [41, 2, 130, 255, 48, 100, 193, 176, 231, 2, 44, 71, 100, 223, 13, 233, 226, 216, 238, 23, 128, 72, 196, 14, 60, 177, 152, 59, 104, 182, 55, 167, 209, 143, 22, 96, 24, 84, 229, 197, 112, 142, 183, 91, 38, 224, 184, 23, 132, 171, 228, 230, 122, 140, 192, 38, 154, 239, 161, 159, 156, 55, 0, 18, 221, 172, 17, 107, 218, 135, 4, 0, 105, 194, 60, 244, 220, 111, 61, 33, 110, 54, 90, 49, 54, 190, 144, 84, 111, 50, 164, 195, 72, 173, 197, 42, 38, 223, 92, 6, 0, 4, 145, 1, 5, 0, 255, 48, 100, 193, 176, 231, 2, 44, 71, 100, 223, 13, 233, 226, 216, 238, 23, 128, 72, 196, 14, 60, 177, 152, 59, 104, 182, 55, 167, 209, 143, 22, 96, 4] data = '0x81ffd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d24aed96956688d3546b35470ec7ff3f4a5b12a7e3dc3d0fa122a53ad80fedf1a4311f68fa42a78401d979aa385c124d71f41e300b74abe88d9d63f2c7b93ff062035000300ff8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48ed01' # async_call("author_submitExtrinsic", [tx.build_tx()], deal_with_message) async_call("author_submitExtrinsic", [ data, ], deal_with_message)
from substrate_python_api.tests.config import async_call from substrate_python_api.utils.xxHash import get_xxhash_128 import json class Keep: hash_list = list() def get_hash(data): json_data = json.loads(data) Keep.hash_list.append(json_data['result']) for block_num in range(90, 91): async_call("chain_getBlockHash", [block_num], get_hash) [print(x) for x in Keep.hash_list] def get_storage(data): print(data) storage = 'System Events' for block_hash in Keep.hash_list[0:1]: print('============== block hash is {} '.format(block_hash)) async_call("state_queryStorage", [[get_xxhash_128(storage), ], block_hash], get_storage, True) """
import json from substrate_python_api.utils.blake2 import get_blake2_256 from substrate_python_api.tests.config import async_call from substrate_python_api.utils.codec import address_to_public_key address = b"5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY" balance = b'Balances FreeBalance' + address_to_public_key(address) def deal_with_message(data): a = json.loads(data)['result'] print(a[2:]) print([print(x) for x in bytearray.fromhex(a[2:])]) print(int.from_bytes(bytearray.fromhex(a[2:]), byteorder='little')) async_call("state_getStorage", [get_blake2_256(balance)], deal_with_message)
from substrate_python_api.tests.config import async_call import json from substrate_python_api.utils.codec import hex_to_string, decode_transfer_extrinsic message = {"jsonrpc": "2.0", "method": "chain_getBlock", "params": [], "id": 2} def get_block(data): json_data = json.loads(data) header = json_data['result']['block']['header'] extrinsics = json_data['result']['block']['extrinsics'] print('header is {}'.format(header)) # bytes_array = bytearray.fromhex(header['digest']['logs'][0][2:]) # print(hex_to_string(extrinsics[0][2:])) bytes_array = bytearray.fromhex(extrinsics[1][2:]) decode_transfer_extrinsic(bytes_array) print([x for x in bytes_array]) # a block include transfer transaction. block_hash = '0x028271f752ed8bfa982cf0a12186eeb24214f0018daf5166e00ba9b09c1a565a' async_call("chain_getBlock", [block_hash], get_block)
from substrate_python_api.tests.config import async_call extrinsic = '0x0123456789' commands = [ ("state_getMetadata", []), ("state_getRuntimeVersion", []), ] for command, parameter in commands: async_call(command, parameter)
from substrate_python_api.tests.config import async_call def print_pending_extrinsic(): pass extrinsic_hash = "0x404ab7be514b8349b579c816a28fc546a4fae2e8cb464669d927b03d20b27984" async_call("author_removeExtrinsic", [ (extrinsic_hash, ), ], print_pending_extrinsic(), debug=True)
from substrate_python_api.tests.config import async_call def print_pending_extrinsic(data): print(data) async_call("author_pendingExtrinsics", [], print_pending_extrinsic, debug=True)
class Data: block_hash = None block_number = 925 def get_hash(data): header = json.loads(data) Data.block_hash = header['result'] print(Data.block_hash) async_call("chain_getBlockHash", [block_number], get_hash) def get_block(data): header = json.loads(data) Data.block_hash = header['result'] log = header['result']['block']['header']['digest']['logs'] print(log) async_call("chain_getBlock", [Data.block_hash], get_block, debug=True) """ "result": { "block": { "extrinsics": [ "0x01010003845b595d"