BIFROST Network
  • Introduction
  • Bifrost Network Architecture
    • Consensus
    • Cross-Chain Communication Protocol (CCCP)
    • Oracle Service
  • Running a Node
    • Basic-Node Requirements
    • Full-Node Requirements
    • Validator Account Management
    • Guide for Operators
      • Setting up an Endpoint Node
        • Using Docker
        • Using Systemd
      • Setting up a Validator Node
        • Using Docker
        • Using Systemd
      • Setting up a Relayer
        • bifrost-relayer.rs
        • bifrost-relayer.py (Deprecated)
      • Chain Data Snapshots
      • Trouble Shooting
        • Testnet Chain Sync Issue
    • System Monitoring
      • Prometheus and Grafana
      • Sentry
  • Nominators
  • Developer Documentations
    • Ethereum API
      • Ethereum Precompiled Contracts
      • Libraries
      • Developer Environments
    • Bifrost Precompiled Contracts
      • Staking
      • Governance
      • RelayManager
    • Pallet Interfaces
      • BfcStaking
      • BfcUtility
      • BfcOffences
      • RelayManager
    • Client API
      • JSON-RPC API
        • author
        • chain
        • childstate
        • debug
        • eth
        • grandpa
        • net
        • offchain
        • payment
        • rpc
        • state
        • system
        • trace
        • txpool
        • web3
      • Explorer API
      • Runtime API
    • Cross-Chain Transaction and Oracle API
      • Price Oracle Contract API
      • Socket Contract API
    • Testnet Faucet
  • Governance
  • Security
  • Tokens & Assets
    • Unified Token
    • Inflation Model
  • Add Network
    • Pockie
    • MetaMask
  • Bridge
    • Bridge Guide
      • Depositing to the Bifrost Network
      • Withdrawing to another network
    • Glossary
  • Staking
    • Staking Guide
      • Stake BFC
      • Unstake BFC
    • Glossary
      • All Validators
      • My Staking Status
  • Language
    • 바이프로스트 네트워크 가이드
Powered by GitBook
On this page
  • AccountNonceApi
  • AuraApi
  • BlockBuilder
  • ConvertTransactionRuntimeApi
  • Core
  • DebugRuntimeApi
  • EthereumRuntimeRPCApi
  • GrandpaApi
  • Metadata
  • OffchainWorkerApi
  • SessionKeys
  • TaggedTransactionQueue
  • TransactionPaymentApi
  1. Developer Documentations
  2. Client API

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.

PreviousExplorer APINextCross-Chain Transaction and Oracle API

Last updated 1 year ago