Runtime API

External node components handle most of the logic such as peer discovery, transaction pooling, block and transaction propagations, consensus mechanisms, and RPC requests. In some cases, external components require some data that is provided by the Runtime. Thus, the Runtime API allows the Runtime and external components to communicate easily with each other.

The API definitions below are the Runtime APIs supported on the Bifrost Network.

AccountNonceApi

accountNonce(accountId: AccountId): Index

  • interface: api.call.accountNonceApi.accountNonce

  • runtime: AccountNonceApi_account_nonce

  • summary: The API to query account nonce (aka transaction index).

AuraApi

authorities(): Vec<AuthorityId>

  • interface: api.call.auraApi.authorities

  • runtime: AuraApi_authorities

  • summary: Returns the current set of authorities.

slotDuration(): SlotDuration

  • interface: api.call.auraApi.slotDuration

  • runtime: AuraApi_slot_duration

  • summary: Returns the slot duration for Aura.

BlockBuilder

applyExtrinsic(extrinsic: Extrinsic): ApplyExtrinsicResult

  • interface: api.call.blockBuilder.applyExtrinsic

  • runtime: BlockBuilder_apply_extrinsic

  • summary: Applies the given extrinsic.

checkInherents(block: Block, data: InherentData): CheckInherentsResult

  • interface: api.call.blockBuilder.checkInherents

  • runtime: BlockBuilder_check_inherents

  • summary: Checks that the inherents are valid.

finalizeBlock(): Header

  • interface: api.call.blockBuilder.finalizeBlock

  • runtime: BlockBuilder_finalize_block

  • summary: Finishes the current block.

inherentExtrinsics(inherent: InherentData): Vec<Extrinsic>

  • interface: api.call.blockBuilder.inherentExtrinsics

  • runtime: BlockBuilder_inherent_extrinsics

  • summary: Generates inherent extrinsics.

ConvertTransactionRuntimeApi

convertTransaction(transaction: TransactionV2): Extrinsic

  • interface: api.call.convertTransactionRuntimeApi.convertTransaction

  • runtime: ConvertTransactionRuntimeApi_convert_transaction

  • summary: Converts an Ethereum-style transaction to Extrinsic

Core

executeBlock(block: Block): Null

  • interface: api.call.core.executeBlock

  • runtime: Core_execute_block

  • summary: Executes the given block.

initializeBlock(header: Header): Null

  • interface: api.call.core.initializeBlock

  • runtime: Core_initialize_block

  • summary: Initializes a block with the given header.

version(): RuntimeVersion

  • interface: api.call.core.version

  • runtime: Core_version

  • summary: Returns the version of the runtime.

DebugRuntimeApi

traceBlock(extrinsics: Vec<Extrinsic>, knownTransactions: Vec<H256>): Result<(), DispatchError>

  • interface: api.call.debugRuntimeApi.traceBlock

  • runtime: DebugRuntimeApi_trace_block

  • summary: Traces all block extrinsics.

traceTransaction(extrinsics: Vec<Extrinsic>, transaction: EthTransaction): Result<(), DispatchError>

  • interface: api.call.debugRuntimeApi.traceTransaction

  • runtime: DebugRuntimeApi_trace_transaction

  • summary: Traces transaction extrinsics.

EthereumRuntimeRPCApi

accountBasic(address: H160): EvmAccount

  • interface: api.call.ethereumRuntimeRPCApi.accountBasic

  • runtime: EthereumRuntimeRPCApi_account_basic

  • summary: Returns pallet_evm::Accounts basic information by address.

accountCodeAt(address: H160): Bytes

  • interface: api.call.ethereumRuntimeRPCApi.accountCodeAt

  • runtime: EthereumRuntimeRPCApi_account_code_at

  • summary: Returns pallet_evm::AccountCodes for a given account address.

author(): H160

  • interface: api.call.ethereumRuntimeRPCApi.author

  • runtime: EthereumRuntimeRPCApi_author

  • summary: Returns the converted FindAuthor::find_author authority id.

call(from: H160, to: H160, data: Vec<u8>, value: U256, gasLimit: U256, maxFeePerGas: Option<U256>, maxPriorityFeePerGas: Option<U256>, nonce: Option<U256>, estimate: bool, accessList: Option<Vec<(H160, Vec<H256>)>>): Result<EvmCallInfo, DispatchError>

  • interface: api.call.ethereumRuntimeRPCApi.call

  • runtime: EthereumRuntimeRPCApi_call

  • summary: Returns a pallet_ethereum::call response.

chainId(): u64

  • interface: api.call.ethereumRuntimeRPCApi.chainId

  • runtime: EthereumRuntimeRPCApi_chain_id

  • summary: Returns runtime defined pallet_evm::ChainId.

create(from: H160, data: Vec<u8>, value: U256, gasLimit: U256, maxFeePerGas: Option<U256>, maxPriorityFeePerGas: Option<U256>, nonce: Option<U256>, estimate: bool, accessList: Option<Vec<(H160, Vec<H256>)>>): Result<EvmCreateInfo, DispatchError>

  • interface: api.call.ethereumRuntimeRPCApi.create

  • runtime: EthereumRuntimeRPCApi_create

  • summary: Returns a pallet_ethereum::call response.

currentAll(): (Option<BlockV2>, Option<Vec<EthReceiptV3>>, Option<Vec<EthTransactionStatus>>)

  • interface: api.call.ethereumRuntimeRPCApi.currentAll

  • runtime: EthereumRuntimeRPCApi_current_all

  • summary: Returns all the current data for a block in a single runtime call.

currentBlock(): BlockV2

  • interface: api.call.ethereumRuntimeRPCApi.currentBlock

  • runtime: EthereumRuntimeRPCApi_current_block

  • summary: Returns the current block.

currentReceipts(): Option<Vec<EthReceiptV3>>

  • interface: api.call.ethereumRuntimeRPCApi.currentReceipts

  • runtime: EthereumRuntimeRPCApi_current_receipts

  • summary: Returns the current receipt.

currentTransactionStatuses(): Option<Vec<EthTransactionStatus>>

  • interface: api.call.ethereumRuntimeRPCApi.currentTransactionStatuses

  • runtime: EthereumRuntimeRPCApi_current_transaction_statuses

  • summary: Returns the current transaction status.

elasticity(): Option<Permill>

  • interface: api.call.ethereumRuntimeRPCApi.elasticity

  • runtime: EthereumRuntimeRPCApi_elasticity

  • summary: Returns the elasticity multiplier.

extrinsicFilter(xts: Vec<Extrinsic>): Vec<TransactionV2>

  • interface: api.call.ethereumRuntimeRPCApi.extrinsicFilter

  • runtime: EthereumRuntimeRPCApi_extrinsic_filter

  • summary: Receives a Vec<OpaqueExtrinsic> and filters all the ethereum transactions.

gasPrice(): u256

  • interface: api.call.ethereumRuntimeRPCApi.gasPrice

  • runtime: EthereumRuntimeRPCApi_gas_price

  • summary: Returns FixedGasPrice::min_gas_price

storageAt(address: H160, index: u256): H256

  • interface: api.call.ethereumRuntimeRPCApi.storageAt

  • runtime: EthereumRuntimeRPCApi_storage_at

  • summary: Returns pallet_evm::AccountStorages for a given account address and index.

GrandpaApi

currentSetId(): SetId

  • interface: api.call.grandpaApi.currentSetId

  • runtime: GrandpaApi_current_set_id

  • summary: Gets current GRANDPA authority set id.

generateKeyOwnershipProof(setId: SetId, authorityId: AuthorityId): Option<OpaqueKeyOwnershipProof>

  • interface: api.call.grandpaApi.generateKeyOwnershipProof

  • runtime: GrandpaApi_generate_key_ownership_proof

  • summary: Generates a proof of key ownership for the given authority in the given set.

grandpaAuthorities(): AuthorityList

  • interface: api.call.grandpaApi.grandpaAuthorities

  • runtime: GrandpaApi_grandpa_authorities

  • summary: Gets the current GRANDPA authorities and weights. This should not change except when changes are scheduled and the corresponding delay has passed.

submitReportEquivocationUnsignedExtrinsic(equivocationProof: GrandpaEquivocationProof, keyOwnerProof: OpaqueKeyOwnershipProof): Option<Null>

  • interface: api.call.grandpaApi.submitReportEquivocationUnsignedExtrinsic

  • runtime: GrandpaApi_submit_report_equivocation_unsigned_extrinsic

  • summary: Submits an unsigned extrinsic to report an equivocation.

Metadata

metadata(): OpaqueMetadata

  • interface: api.call.metadata.metadata

  • runtime: Metadata_metadata

  • summary: Returns the metadata of a runtime.

OffchainWorkerApi

offchainWorker(header: Header): Null

  • interface: api.call.offchainWorkerApi.offchainWorker

  • runtime: OffchainWorkerApi_offchain_worker

  • summary: Starts the off-chain task for the given block header.

SessionKeys

decodeSessionKeys(encoded: Bytes): Option<Vec<(Bytes, KeyTypeId)>>

  • interface: api.call.sessionKeys.decodeSessionKeys

  • runtime: SessionKeys_decode_session_keys

  • summary: Decodes the given public session keys.

generateSessionKeys(seed: Option<Bytes>): Bytes

  • interface: api.call.sessionKeys.generateSessionKeys

  • runtime: SessionKeys_generate_session_keys

  • summary: Generates a set of session keys with optionally using the given seed.

TaggedTransactionQueue

validateTransaction(source: TransactionSource, tx: Extrinsic, blockHash: BlockHash): TransactionValidity

  • interface: api.call.taggedTransactionQueue.validateTransaction

  • runtime: TaggedTransactionQueue_validate_transaction

  • summary: Validates the transaction.

TransactionPaymentApi

queryFeeDetails(uxt: Extrinsic, len: u32): FeeDetails

  • interface: api.call.transactionPaymentApi.queryFeeDetails

  • runtime: TransactionPaymentApi_query_fee_details

  • summary: The transaction fee details.

queryInfo(uxt: Extrinsic, len: u32): RuntimeDispatchInfo

  • interface: api.call.transactionPaymentApi.queryInfo

  • runtime: TransactionPaymentApi_query_info

  • summary: The transaction info.

Last updated