SDK Extension
This extensions is meant as a fallback option that uses only existing Portaldot RPC methods. However, it is important to note that this fallback implementation is significantly inefficient, and it is encouraged to utilize third-party search indices where possible for optimal search performance.
Initialization
from substrateinterface import SubstrateNodeExtension
portaldot = SubstrateInterface(
url="wss://mainnet.portaldot.io",
ss58_format=42,
type_registry_preset='default'
)
# Provide maximum block range (bigger range descreases performance)
portaldot.register_extension(SubstrateNodeExtension(max_block_range=100))
Implemented extension calls
# filter_events
# Returns all `Balances.Transfer` events in block range #3 until #6
events = portaldot.extensions.filter_events(pallet_name="Balances", event_name="Transfer", block_start=3, block_end=6)
# filter_extrinsics
# All TransferKeepAlive extrinsics in block range #3 until #6
extrinsics = portaldot.extensions.filter_extrinsics(pallet_name="Timestamp", call_name="transfer_keep_alive", block_start=3, block_end=6)
Search block number
# Search for block number corresponding a specific datetime
block_datetime = datetime(2020, 7, 12, 0, 0, 0)
block_number = portaldot.extensions.search_block_number(block_datetime=block_datetime)
Get block timestamp
# Get timestamp for specific block number
block_timestamp = portaldot.extensions.get_block_timestamp(block_number)