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)
Example #3
0
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)

"""
Example #7
0
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)



Example #9
0
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"