add get_interchain: trace a transaction/block to validator blocks + interchain anchors
New transaction.get_interchain and block.get_interchain call the prime-node
/api/v1/{transaction,block}/{id}/interchain endpoints, returning an
InterchainTrace {block_id, validator_blocks, interchain_transactions}. Adds
VerificationBlock / InterchainTransaction / InterchainTrace dataclasses with
from_dict, exports them, and a from_dict test.
This commit is contained in:
@@ -16,6 +16,7 @@ from prime_sdk import (
|
||||
Block,
|
||||
DragonchainAPIError,
|
||||
DragonchainSDK,
|
||||
InterchainTrace,
|
||||
SmartContractCreateRequest,
|
||||
Transaction,
|
||||
TransactionCreateRequest,
|
||||
@@ -191,6 +192,42 @@ def test_block_from_dict_nested_header():
|
||||
assert len(blk.transactions) == 3
|
||||
|
||||
|
||||
def test_interchain_trace_from_dict_nested():
|
||||
# Server shape: validatorBlocks + interchainTransactions arrays, camelCase.
|
||||
raw = {
|
||||
"blockId": "69636602",
|
||||
"validatorBlocks": [
|
||||
{
|
||||
"version": "1",
|
||||
"primeChainId": "zDYr",
|
||||
"primeBlockId": "69636602",
|
||||
"verifierPublicKey": "02c4...",
|
||||
"verifierSignature": "MEUC...",
|
||||
}
|
||||
],
|
||||
"interchainTransactions": [
|
||||
{
|
||||
"id": 19,
|
||||
"chainId": "1",
|
||||
"transHash": "0xd46e",
|
||||
"validatorBlocks": ["69636602"],
|
||||
"coveredPrimeChainIds": ["zDYr"],
|
||||
}
|
||||
],
|
||||
}
|
||||
trace = InterchainTrace.from_dict(raw)
|
||||
assert trace.block_id == "69636602"
|
||||
assert len(trace.validator_blocks) == 1
|
||||
assert trace.validator_blocks[0].prime_block_id == "69636602"
|
||||
assert trace.validator_blocks[0].verifier_public_key == "02c4..."
|
||||
assert len(trace.interchain_transactions) == 1
|
||||
assert trace.interchain_transactions[0].id == 19
|
||||
assert trace.interchain_transactions[0].trans_hash == "0xd46e"
|
||||
assert trace.interchain_transactions[0].chain_id == "1"
|
||||
assert trace.interchain_transactions[0].validator_blocks == ["69636602"]
|
||||
assert trace.interchain_transactions[0].covered_prime_chain_ids == ["zDYr"]
|
||||
|
||||
|
||||
def test_contract_create_request_omitempty():
|
||||
req = SmartContractCreateRequest(
|
||||
environment="python3.8",
|
||||
|
||||
Reference in New Issue
Block a user