Skip to main content
Version: Next

Class: RpcProvider

Defined in: src/provider/rpc.ts:70

Provider methods added by the FastExecute plugin

Extends

Implements

Constructors

Constructor

new RpcProvider(optionsOrProvider?): RpcProvider

Defined in: src/provider/rpc.ts:81

Parameters

optionsOrProvider?

RpcProviderOptions | ProviderInterface | RpcProvider

Returns

RpcProvider

Inherited from

StarknetIdProviderMethods.constructor

Properties

responseParser

responseParser: RPCResponseParser

Defined in: src/provider/rpc.ts:74

Implementation of

ProviderInterface.responseParser


channel

channel: RpcChannel | RpcChannel | RpcChannel

Defined in: src/provider/rpc.ts:76

Implementation of

ProviderInterface.channel


pluginManager

readonly pluginManager: PluginManager

Defined in: src/provider/rpc.ts:79

Internal

Plugin management infrastructure


getStateUpdate

getStateUpdate: {(): Promise<{ block_hash: string; new_root: string; old_root: string; state_diff: { storage_diffs: object[]; deprecated_declared_classes: string[]; declared_classes: object[]; deployed_contracts: object[]; replaced_classes: object[]; nonces: object[]; migrated_compiled_classes?: object[]; }; }>; (blockIdentifier): Promise<{ block_hash: never; state_diff: { storage_diffs: object[]; deprecated_declared_classes: string[]; declared_classes: object[]; deployed_contracts: object[]; replaced_classes: object[]; nonces: object[]; migrated_compiled_classes?: object[]; }; old_root?: string; }>; (blockIdentifier): Promise<{ block_hash: string; new_root: string; old_root: string; state_diff: { storage_diffs: object[]; deprecated_declared_classes: string[]; declared_classes: object[]; deployed_contracts: object[]; replaced_classes: object[]; nonces: object[]; migrated_compiled_classes?: object[]; }; }>; (blockIdentifier?, contractAddresses?): Promise<StateUpdateResponse>; }

Defined in: src/provider/rpc.ts:329

Gets the state changes in a specific block (result of executing the requested block)

Call Signature

(): Promise<{ block_hash: string; new_root: string; old_root: string; state_diff: { storage_diffs: object[]; deprecated_declared_classes: string[]; declared_classes: object[]; deployed_contracts: object[]; replaced_classes: object[]; nonces: object[]; migrated_compiled_classes?: object[]; }; }>

Gets the state changes in a specific block (result of executing the requested block) Alternative method name for getStateUpdate with specific overloads

Returns

Promise<{ block_hash: string; new_root: string; old_root: string; state_diff: { storage_diffs: object[]; deprecated_declared_classes: string[]; declared_classes: object[]; deployed_contracts: object[]; replaced_classes: object[]; nonces: object[]; migrated_compiled_classes?: object[]; }; }>

StateUpdateResponse

Call Signature

(blockIdentifier): Promise<{ block_hash: never; state_diff: { storage_diffs: object[]; deprecated_declared_classes: string[]; declared_classes: object[]; deployed_contracts: object[]; replaced_classes: object[]; nonces: object[]; migrated_compiled_classes?: object[]; }; old_root?: string; }>

Parameters
blockIdentifier

"pre_confirmed"

Returns

Promise<{ block_hash: never; state_diff: { storage_diffs: object[]; deprecated_declared_classes: string[]; declared_classes: object[]; deployed_contracts: object[]; replaced_classes: object[]; nonces: object[]; migrated_compiled_classes?: object[]; }; old_root?: string; }>

Call Signature

(blockIdentifier): Promise<{ block_hash: string; new_root: string; old_root: string; state_diff: { storage_diffs: object[]; deprecated_declared_classes: string[]; declared_classes: object[]; deployed_contracts: object[]; replaced_classes: object[]; nonces: object[]; migrated_compiled_classes?: object[]; }; }>

Parameters
blockIdentifier

"latest"

Returns

Promise<{ block_hash: string; new_root: string; old_root: string; state_diff: { storage_diffs: object[]; deprecated_declared_classes: string[]; declared_classes: object[]; deployed_contracts: object[]; replaced_classes: object[]; nonces: object[]; migrated_compiled_classes?: object[]; }; }>

Call Signature

(blockIdentifier?, contractAddresses?): Promise<StateUpdateResponse>

Parameters
blockIdentifier?

BlockIdentifier

contractAddresses?

BigNumberish[]

Returns

Promise<StateUpdateResponse>

Param

block identifier

Returns

StateUpdateResponse

Implementation of

ProviderInterface.getStateUpdate

Methods

create()

static create<T>(this, optionsOrProvider?): Promise<T>

Defined in: src/provider/rpc.ts:129

auto configure channel based on provided node leave space for other async before constructor

Type Parameters

T

T extends RpcProvider

Parameters

this

(...args) => T

optionsOrProvider?

RpcProviderOptions

Returns

Promise<T>


use()

use<T>(plugin): RpcProvider & T

Defined in: src/provider/rpc.ts:169

Install a plugin at runtime. Returns the instance typed with plugin methods.

Type Parameters

T

T extends Record<string, any>

Parameters

plugin

StarknetPlugin<T, any>

Returns

RpcProvider & T

Example

const provider = new RpcProvider({ nodeUrl: '...' })
.use(myPlugin());
provider.myMethod(); // typed

fetch()

fetch(method, params?, id?): Promise<any>

Defined in: src/provider/rpc.ts:174

Direct RPC method call

Parameters

method

string

RPC method name

params?

object

method parameters

id?

string | number

request ID

Returns

Promise<any>

RPC response


getChainId()

getChainId(): Promise<"0x534e5f4d41494e" | "0x534e5f5345504f4c4941">

Defined in: src/provider/rpc.ts:192

Gets the Starknet chain Id

Returns

Promise<"0x534e5f4d41494e" | "0x534e5f5345504f4c4941">

the chain Id


readSpecVersion()

readSpecVersion(): "0.9.0" | "0.10.0" | "0.10.2" | "0.10.3" | undefined

Defined in: src/provider/rpc.ts:196

Read channel spec version

Returns

"0.9.0" | "0.10.0" | "0.10.2" | "0.10.3" | undefined

Spec version string or undefined if not set


getSpecVersion()

getSpecVersion(): Promise<string>

Defined in: src/provider/rpc.ts:200

Get channel spec version

Returns

Promise<string>

Promise resolving to spec version


setUpSpecVersion()

setUpSpecVersion(): Promise<"0.9.0" | "0.10.0" | "0.10.2" | "0.10.3">

Defined in: src/provider/rpc.ts:204

Setup channel spec version and return it

Returns

Promise<"0.9.0" | "0.10.0" | "0.10.2" | "0.10.3">

Promise resolving to spec version


getStarknetVersion()

getStarknetVersion(blockIdentifier?): Promise<string>

Defined in: src/provider/rpc.ts:208

Parameters

blockIdentifier?

BlockIdentifier

Returns

Promise<string>


getNonceForAddress()

getNonceForAddress(contractAddress, blockIdentifier?): Promise<string>

Defined in: src/provider/rpc.ts:212

Returns the nonce associated with the given address in the given block

Parameters

contractAddress

BigNumberish

contract address

blockIdentifier?

BlockIdentifier

Returns

Promise<string>

the hex nonce


getBlock()

Call Signature

getBlock(): Promise<{ transactions: string[]; block_number: number; timestamp: number; sequencer_address: string; l1_gas_price: RESOURCE_PRICE; l2_gas_price: RESOURCE_PRICE; l1_data_gas_price: RESOURCE_PRICE; l1_da_mode: L1_DA_MODE; starknet_version: string; }>

Defined in: src/provider/rpc.ts:219

Gets the block information

Returns

Promise<{ transactions: string[]; block_number: number; timestamp: number; sequencer_address: string; l1_gas_price: RESOURCE_PRICE; l2_gas_price: RESOURCE_PRICE; l1_data_gas_price: RESOURCE_PRICE; l1_da_mode: L1_DA_MODE; starknet_version: string; }>

the block object

Call Signature

getBlock(blockIdentifier): Promise<{ transactions: string[]; block_number: number; timestamp: number; sequencer_address: string; l1_gas_price: RESOURCE_PRICE; l2_gas_price: RESOURCE_PRICE; l1_data_gas_price: RESOURCE_PRICE; l1_da_mode: L1_DA_MODE; starknet_version: string; }>

Defined in: src/provider/rpc.ts:220

Gets the block information

Parameters
blockIdentifier

"pre_confirmed"

Returns

Promise<{ transactions: string[]; block_number: number; timestamp: number; sequencer_address: string; l1_gas_price: RESOURCE_PRICE; l2_gas_price: RESOURCE_PRICE; l1_data_gas_price: RESOURCE_PRICE; l1_da_mode: L1_DA_MODE; starknet_version: string; }>

the block object

Call Signature

getBlock(blockIdentifier): Promise<{ status: EBlockStatus; block_hash: string; parent_hash: string; block_number: number; new_root: string; timestamp: number; sequencer_address: string; l1_gas_price: RESOURCE_PRICE; l2_gas_price: RESOURCE_PRICE; l1_data_gas_price: RESOURCE_PRICE; l1_da_mode: L1_DA_MODE; starknet_version: string; event_commitment: string; transaction_commitment: string; receipt_commitment: string; state_diff_commitment: string; event_count: number; transaction_count: number; state_diff_length: number; transactions: string[]; }>

Defined in: src/provider/rpc.ts:221

Gets the block information

Parameters
blockIdentifier

"latest"

Returns

Promise<{ status: EBlockStatus; block_hash: string; parent_hash: string; block_number: number; new_root: string; timestamp: number; sequencer_address: string; l1_gas_price: RESOURCE_PRICE; l2_gas_price: RESOURCE_PRICE; l1_data_gas_price: RESOURCE_PRICE; l1_da_mode: L1_DA_MODE; starknet_version: string; event_commitment: string; transaction_commitment: string; receipt_commitment: string; state_diff_commitment: string; event_count: number; transaction_count: number; state_diff_length: number; transactions: string[]; }>

the block object

Call Signature

getBlock(blockIdentifier): Promise<GetBlockResponse>

Defined in: src/provider/rpc.ts:222

Gets the block information

Parameters
blockIdentifier

BlockIdentifier

Returns

Promise<GetBlockResponse>

the block object


getBlockLatestAccepted()

getBlockLatestAccepted(): Promise<BlockHashAndNumber>

Defined in: src/provider/rpc.ts:229

Get the most recent accepted block hash and number

Returns

Promise<BlockHashAndNumber>

Object containing block hash and number


getBlockNumber()

getBlockNumber(): Promise<number>

Defined in: src/provider/rpc.ts:233

Get the most recent accepted block number

Returns

Promise<number>

Number of the latest block


getBlockWithTxHashes()

getBlockWithTxHashes(blockIdentifier?): Promise<OnlyFirst<BLOCK_WITH_TX_HASHES, object & BLOCK_HEADER & BLOCK_BODY_WITH_TX_HASHES & PRE_CONFIRMED_BLOCK_HEADER> | OnlyFirst<PRE_CONFIRMED_BLOCK_WITH_TX_HASHES, object & BLOCK_HEADER & BLOCK_BODY_WITH_TX_HASHES & PRE_CONFIRMED_BLOCK_HEADER>>

Defined in: src/provider/rpc.ts:237

Get block information with transaction hashes

Parameters

blockIdentifier?

BlockIdentifier

block identifier

Returns

Promise<OnlyFirst<BLOCK_WITH_TX_HASHES, object & BLOCK_HEADER & BLOCK_BODY_WITH_TX_HASHES & PRE_CONFIRMED_BLOCK_HEADER> | OnlyFirst<PRE_CONFIRMED_BLOCK_WITH_TX_HASHES, object & BLOCK_HEADER & BLOCK_BODY_WITH_TX_HASHES & PRE_CONFIRMED_BLOCK_HEADER>>

Block with transaction hashes


getBlockWithTxs()

getBlockWithTxs(blockIdentifier?, options?): Promise<OnlyFirst<BLOCK_WITH_TXS, object & BLOCK_HEADER & BLOCK_BODY_WITH_TXS & PRE_CONFIRMED_BLOCK_HEADER> | OnlyFirst<PRE_CONFIRMED_BLOCK_WITH_TXS, object & BLOCK_HEADER & BLOCK_BODY_WITH_TXS & PRE_CONFIRMED_BLOCK_HEADER>>

Defined in: src/provider/rpc.ts:241

Get block information with full transactions

Parameters

blockIdentifier?

BlockIdentifier

block identifier

options?

(optional) additional request options

  • includeProofFacts - include proof facts in the transaction response (RPC 0.10.1+)
includeProofFacts?

boolean

Returns

Promise<OnlyFirst<BLOCK_WITH_TXS, object & BLOCK_HEADER & BLOCK_BODY_WITH_TXS & PRE_CONFIRMED_BLOCK_HEADER> | OnlyFirst<PRE_CONFIRMED_BLOCK_WITH_TXS, object & BLOCK_HEADER & BLOCK_BODY_WITH_TXS & PRE_CONFIRMED_BLOCK_HEADER>>

Block with full transactions


waitForBlock()

waitForBlock(blockIdentifier?, retryInterval?): Promise<void>

Defined in: src/provider/rpc.ts:251

Pause execution until a specified block is created

Parameters

blockIdentifier?

BlockIdentifier = BlockTag.LATEST

block number or tag

retryInterval?

number = 5000

milliseconds between requests (default: 5000)

Returns

Promise<void>

Example

await provider.waitForBlock(12345);
await provider.waitForBlock('latest');

getL1GasPrice()

getL1GasPrice(blockIdentifier?): Promise<string>

Defined in: src/provider/rpc.ts:281

Gets the price of l1 gas in the block

Parameters

blockIdentifier?

BlockIdentifier

block identifier

Returns

Promise<string>

gas price of the block


getGasPrices()

getGasPrices(blockIdentifier?): Promise<GasPrices>

Defined in: src/provider/rpc.ts:297

Get the gas prices related to a block.

Parameters

blockIdentifier?

BlockIdentifier = ...

Returns

Promise<GasPrices>

an object with l1DataGasPrice, l1GasPrice, l2GasPrice properties (all bigint type).

Example

const result = await myProvider.getGasPrices();
// result = { l1DataGasPrice: 3039n, l1GasPrice: 55590341542890n, l2GasPrice: 8441845008n }

getL1MessageHash()

getL1MessageHash(l2TxHash): Promise<string>

Defined in: src/provider/rpc.ts:303

Get L1 message hash from L2 transaction hash

Parameters

l2TxHash

BigNumberish

L2 transaction hash

Returns

Promise<string>

Hex string of L1 message hash

Example

In Sepolia Testnet :

const result = provider.getL1MessageHash('0x28dfc05eb4f261b37ddad451ff22f1d08d4e3c24dc646af0ec69fa20e096819');
// result = '0x55b3f8b6e607fffd9b4d843dfe8f9b5c05822cd94fcad8797deb01d77805532a'

getBlockWithReceipts()

getBlockWithReceipts(blockIdentifier?, options?): Promise<OnlyFirst<BLOCK_WITH_RECEIPTS, object & BLOCK_HEADER & BLOCK_BODY_WITH_RECEIPTS & PRE_CONFIRMED_BLOCK_HEADER> | OnlyFirst<PRE_CONFIRMED_BLOCK_WITH_RECEIPTS, object & BLOCK_HEADER & BLOCK_BODY_WITH_RECEIPTS & PRE_CONFIRMED_BLOCK_HEADER>>

Defined in: src/provider/rpc.ts:319

Get block information with transaction receipts

Parameters

blockIdentifier?

BlockIdentifier

block identifier

options?

(optional) additional request options

  • includeProofFacts - include proof facts in the transaction response (RPC 0.10.1+)
includeProofFacts?

boolean

Returns

Promise<OnlyFirst<BLOCK_WITH_RECEIPTS, object & BLOCK_HEADER & BLOCK_BODY_WITH_RECEIPTS & PRE_CONFIRMED_BLOCK_HEADER> | OnlyFirst<PRE_CONFIRMED_BLOCK_WITH_RECEIPTS, object & BLOCK_HEADER & BLOCK_BODY_WITH_RECEIPTS & PRE_CONFIRMED_BLOCK_HEADER>>

Block with transaction receipts


getBlockStateUpdate()

Call Signature

getBlockStateUpdate(): Promise<{ block_hash: string; new_root: string; old_root: string; state_diff: { storage_diffs: object[]; deprecated_declared_classes: string[]; declared_classes: object[]; deployed_contracts: object[]; replaced_classes: object[]; nonces: object[]; migrated_compiled_classes?: object[]; }; }>

Defined in: src/provider/rpc.ts:331

Gets the state changes in a specific block (result of executing the requested block) Alternative method name for getStateUpdate with specific overloads

Returns

Promise<{ block_hash: string; new_root: string; old_root: string; state_diff: { storage_diffs: object[]; deprecated_declared_classes: string[]; declared_classes: object[]; deployed_contracts: object[]; replaced_classes: object[]; nonces: object[]; migrated_compiled_classes?: object[]; }; }>

StateUpdateResponse

Call Signature

getBlockStateUpdate(blockIdentifier): Promise<{ block_hash: never; state_diff: { storage_diffs: object[]; deprecated_declared_classes: string[]; declared_classes: object[]; deployed_contracts: object[]; replaced_classes: object[]; nonces: object[]; migrated_compiled_classes?: object[]; }; old_root?: string; }>

Defined in: src/provider/rpc.ts:332

Gets the state changes in a specific block (result of executing the requested block) Alternative method name for getStateUpdate with specific overloads

Parameters
blockIdentifier

"pre_confirmed"

Returns

Promise<{ block_hash: never; state_diff: { storage_diffs: object[]; deprecated_declared_classes: string[]; declared_classes: object[]; deployed_contracts: object[]; replaced_classes: object[]; nonces: object[]; migrated_compiled_classes?: object[]; }; old_root?: string; }>

StateUpdateResponse

Call Signature

getBlockStateUpdate(blockIdentifier): Promise<{ block_hash: string; new_root: string; old_root: string; state_diff: { storage_diffs: object[]; deprecated_declared_classes: string[]; declared_classes: object[]; deployed_contracts: object[]; replaced_classes: object[]; nonces: object[]; migrated_compiled_classes?: object[]; }; }>

Defined in: src/provider/rpc.ts:335

Gets the state changes in a specific block (result of executing the requested block) Alternative method name for getStateUpdate with specific overloads

Parameters
blockIdentifier

"latest"

Returns

Promise<{ block_hash: string; new_root: string; old_root: string; state_diff: { storage_diffs: object[]; deprecated_declared_classes: string[]; declared_classes: object[]; deployed_contracts: object[]; replaced_classes: object[]; nonces: object[]; migrated_compiled_classes?: object[]; }; }>

StateUpdateResponse

Call Signature

getBlockStateUpdate(blockIdentifier?, contractAddresses?): Promise<StateUpdateResponse>

Defined in: src/provider/rpc.ts:336

Gets the state changes in a specific block (result of executing the requested block) Alternative method name for getStateUpdate with specific overloads

Parameters
blockIdentifier?

BlockIdentifier

contractAddresses?

BigNumberish[]

Returns

Promise<StateUpdateResponse>

StateUpdateResponse


getBlockTransactionsTraces()

getBlockTransactionsTraces(blockIdentifier?, options?): Promise<BlockTransactionsTraces | BlockTransactionsTracesWithInitialReads>

Defined in: src/provider/rpc.ts:347

Get transaction traces for all transactions in a block

Parameters

blockIdentifier?

BlockIdentifier

block identifier

options?

(optional) additional request options

  • returnInitialReads - include initial storage reads in the trace response (RPC 0.10.1+)
returnInitialReads?

boolean

Returns

Promise<BlockTransactionsTraces | BlockTransactionsTracesWithInitialReads>

Array of transaction traces


getBlockTransactionCount()

getBlockTransactionCount(blockIdentifier?): Promise<number>

Defined in: src/provider/rpc.ts:357

Get the number of transactions in a block

Parameters

blockIdentifier?

BlockIdentifier

block identifier

Returns

Promise<number>

Transaction count


getTransaction()

getTransaction(txHash, options?): Promise<INVOKE_TXN_V0 & object | INVOKE_TXN_V1 & object | INVOKE_TXN_V3 & object | object & FUNCTION_CALL & object | DECLARE_TXN_V0 & object | DECLARE_TXN_V1 & object | DECLARE_TXN_V2 & object | DECLARE_TXN_V3 & object | DEPLOY_TXN & object | DEPLOY_ACCOUNT_TXN_V1 & object | DEPLOY_ACCOUNT_TXN_V3 & object>

Defined in: src/provider/rpc.ts:361

Gets the transaction information from a tx id.

Parameters

txHash

BigNumberish

options?

(optional) additional request options

  • includeProofFacts - include proof facts in the transaction response (RPC 0.10.1+)
includeProofFacts?

boolean

Returns

Promise<INVOKE_TXN_V0 & object | INVOKE_TXN_V1 & object | INVOKE_TXN_V3 & object | object & FUNCTION_CALL & object | DECLARE_TXN_V0 & object | DECLARE_TXN_V1 & object | DECLARE_TXN_V2 & object | DECLARE_TXN_V3 & object | DEPLOY_TXN & object | DEPLOY_ACCOUNT_TXN_V1 & object | DEPLOY_ACCOUNT_TXN_V3 & object>

the transaction object { transaction_id, status, transaction, block_number?, block_number?, transaction_index?, transaction_failure_reason? }


getTransactionByHash()

getTransactionByHash(txHash, options?): Promise<INVOKE_TXN_V0 & object | INVOKE_TXN_V1 & object | INVOKE_TXN_V3 & object | object & FUNCTION_CALL & object | DECLARE_TXN_V0 & object | DECLARE_TXN_V1 & object | DECLARE_TXN_V2 & object | DECLARE_TXN_V3 & object | DEPLOY_TXN & object | DEPLOY_ACCOUNT_TXN_V1 & object | DEPLOY_ACCOUNT_TXN_V3 & object>

Defined in: src/provider/rpc.ts:365

Gets the transaction information from a tx hash (alias for getTransaction)

Parameters

txHash

BigNumberish

transaction hash

options?

(optional) additional request options

  • includeProofFacts - include proof facts in the transaction response (RPC 0.10.1+)
includeProofFacts?

boolean

Returns

Promise<INVOKE_TXN_V0 & object | INVOKE_TXN_V1 & object | INVOKE_TXN_V3 & object | object & FUNCTION_CALL & object | DECLARE_TXN_V0 & object | DECLARE_TXN_V1 & object | DECLARE_TXN_V2 & object | DECLARE_TXN_V3 & object | DEPLOY_TXN & object | DEPLOY_ACCOUNT_TXN_V1 & object | DEPLOY_ACCOUNT_TXN_V3 & object>

Transaction information


getTransactionByBlockIdAndIndex()

getTransactionByBlockIdAndIndex(blockIdentifier, index, options?): Promise<INVOKE_TXN_V0 & object | INVOKE_TXN_V1 & object | INVOKE_TXN_V3 & object | object & FUNCTION_CALL & object | DECLARE_TXN_V0 & object | DECLARE_TXN_V1 & object | DECLARE_TXN_V2 & object | DECLARE_TXN_V3 & object | DEPLOY_TXN & object | DEPLOY_ACCOUNT_TXN_V1 & object | DEPLOY_ACCOUNT_TXN_V3 & object>

Defined in: src/provider/rpc.ts:375

Gets transaction by block identifier and index

Parameters

blockIdentifier

BlockIdentifier

block identifier

index

number

transaction index in the block

options?

(optional) additional request options

  • includeProofFacts - include proof facts in the transaction response (RPC 0.10.1+)
includeProofFacts?

boolean

Returns

Promise<INVOKE_TXN_V0 & object | INVOKE_TXN_V1 & object | INVOKE_TXN_V3 & object | object & FUNCTION_CALL & object | DECLARE_TXN_V0 & object | DECLARE_TXN_V1 & object | DECLARE_TXN_V2 & object | DECLARE_TXN_V3 & object | DEPLOY_TXN & object | DEPLOY_ACCOUNT_TXN_V1 & object | DEPLOY_ACCOUNT_TXN_V3 & object>

Transaction information


getTransactionReceipt()

getTransactionReceipt(txHash): Promise<GetTransactionReceiptResponse>

Defined in: src/provider/rpc.ts:386

Gets the transaction receipt from a tx hash.

Parameters

txHash

BigNumberish

Returns

Promise<GetTransactionReceiptResponse>

the transaction receipt object


getTransactionTrace()

Call Signature

getTransactionTrace<V>(txHash): Promise<V extends SupportedRpcVersion0_10 ? TRANSACTION_TRACE : TRANSACTION_TRACE>

Defined in: src/provider/rpc.ts:393

Gets the transaction trace

Type Parameters
V

V extends "0.9.0" | "0.10.0" | "0.10.2" | "0.10.3" = "0.9.0" | "0.10.0" | "0.10.2" | "0.10.3"

Parameters
txHash

BigNumberish

transaction hash

Returns

Promise<V extends SupportedRpcVersion0_10 ? TRANSACTION_TRACE : TRANSACTION_TRACE>

Transaction trace

Call Signature

getTransactionTrace(txHash): Promise<TRANSACTION_TRACE | TRANSACTION_TRACE>

Defined in: src/provider/rpc.ts:398

Parameters
txHash

BigNumberish

Returns

Promise<TRANSACTION_TRACE | TRANSACTION_TRACE>


getTransactionStatus()

getTransactionStatus(transactionHash): Promise<TXN_STATUS_RESULT>

Defined in: src/provider/rpc.ts:407

Get the status of a transaction

Parameters

transactionHash

BigNumberish

transaction hash

Returns

Promise<TXN_STATUS_RESULT>

Transaction status


getSimulateTransaction()

getSimulateTransaction(invocations, options?): Promise<SimulateTransactionOverheadResponse>

Defined in: src/provider/rpc.ts:411

Simulates the transaction and returns the transaction trace and estimated fee.

Parameters

invocations

AccountInvocations

AccountInvocations - Complete invocations array with account details

options?

getSimulateTransactionOptions

getSimulateTransactionOptions

  • (optional) blockIdentifier - block identifier
  • (optional) skipValidate - skip cairo validate method
  • (optional) skipExecute - skip cairo execute method
  • (optional) returnInitialReads - include initial storage reads in the trace response (RPC 0.10.1+)

Returns

Promise<SimulateTransactionOverheadResponse>

an array of transaction trace and estimated fee


waitForTransaction()

waitForTransaction(txHash, options?): Promise<GetTransactionReceiptResponse>

Defined in: src/provider/rpc.ts:421

Wait for the transaction to be accepted

Parameters

txHash

BigNumberish

transaction hash

options?

waitForTransactionOptions

waitForTransactionOptions

  • (optional) retryInterval: number | undefined;
  • (optional) successStates: TransactionStatus[] | undefined;

Returns

Promise<GetTransactionReceiptResponse>

GetTransactionReceiptResponse


getStorageAt()

getStorageAt(contractAddress, key, blockIdentifier?, responseFlags?): Promise<STORAGE_RESULT>

Defined in: src/provider/rpc.ts:433

Get the value of the storage (contract's variable) at the given address and key

Parameters

contractAddress

BigNumberish

key

BigNumberish

from getStorageVarAddress('<STORAGE_VARIABLE_NAME>') (WIP)

blockIdentifier?

BlockIdentifier

block identifier

responseFlags?

"INCLUDE_LAST_UPDATE_BLOCK"[]

Returns

Promise<STORAGE_RESULT>

the value of the storage variable


getClassHashAt()

getClassHashAt(contractAddress, blockIdentifier?): Promise<string>

Defined in: src/provider/rpc.ts:448

Returns the contract class hash in the given block for the contract deployed at the given address

Parameters

contractAddress

BigNumberish

contract address

blockIdentifier?

BlockIdentifier

block identifier

Returns

Promise<string>

Class hash


getClassByHash()

getClassByHash(classHash): Promise<LegacyContractClass | Omit<CompiledSierra, "sierra_program_debug_info">>

Defined in: src/provider/rpc.ts:452

Returns the contract class deployed under the given class hash.

Parameters

classHash

BigNumberish

class hash

Returns

Promise<LegacyContractClass | Omit<CompiledSierra, "sierra_program_debug_info">>

Contract class of compiled contract


getClass()

getClass(classHash, blockIdentifier?): Promise<LegacyContractClass | Omit<CompiledSierra, "sierra_program_debug_info">>

Defined in: src/provider/rpc.ts:456

Get contract class by hash with optional block identifier

Parameters

classHash

BigNumberish

class hash

blockIdentifier?

BlockIdentifier

block identifier

Returns

Promise<LegacyContractClass | Omit<CompiledSierra, "sierra_program_debug_info">>

Contract class


getClassAt()

getClassAt(contractAddress, blockIdentifier?): Promise<LegacyContractClass | Omit<CompiledSierra, "sierra_program_debug_info">>

Defined in: src/provider/rpc.ts:462

Gets the contract class of the deployed contract.

Parameters

contractAddress

BigNumberish

contract address

blockIdentifier?

BlockIdentifier

block identifier

Returns

Promise<LegacyContractClass | Omit<CompiledSierra, "sierra_program_debug_info">>

Contract class of compiled contract


getContractVersion()

Call Signature

getContractVersion(contractAddress, classHash?, options?): Promise<ContractVersion>

Defined in: src/provider/rpc.ts:468

Gets the contract version from the provided address

Parameters
contractAddress

BigNumberish

string

classHash?

undefined

undefined

options?

getContractVersionOptions

getContractVersionOptions

  • (optional) compiler - (default true) extract compiler version using type tactic from abi
  • (optional) blockIdentifier - block identifier
Returns

Promise<ContractVersion>

Call Signature

getContractVersion(contractAddress, classHash, options?): Promise<ContractVersion>

Defined in: src/provider/rpc.ts:473

Gets the contract version from the provided address

Parameters
contractAddress

undefined

undefined

classHash

BigNumberish

options?

getContractVersionOptions

getContractVersionOptions

  • (optional) compiler - (default true) extract compiler version using type tactic from abi
  • (optional) blockIdentifier - block identifier
Returns

Promise<ContractVersion>


getInvokeEstimateFee()

getInvokeEstimateFee(invocation, details, blockIdentifier?, skipValidate?): Promise<EstimateFeeResponseOverhead>

Defined in: src/provider/rpc.ts:506

Estimates the fee for a given INVOKE transaction

Parameters

invocation

Invocation

the invocation object containing:

  • contractAddress - the address of the contract
  • entrypoint - (optional) the entrypoint of the contract
  • calldata - (optional, defaults to []) the calldata
  • signature - (optional, defaults to []) the signature
details

InvocationsDetailsWithNonce

optional details containing:

  • nonce - optional nonce
  • version - optional version
blockIdentifier?

BlockIdentifier

(optional) block identifier

skipValidate?

boolean

(optional) skip cairo validate method

Returns

Promise<EstimateFeeResponseOverhead>

the estimated fee

Deprecated

Consider using getEstimateFeeBulk for multiple transactions

Example

const feeEstimate = await provider.getInvokeEstimateFee(invocation, details);
// Equivalent to:
const [feeEstimate] = await provider.getEstimateFeeBulk([{ type: ETransactionType.INVOKE, ...invocation, ...details }], options);

Remarks

This method is an alias that calls getEstimateFeeBulk with a single transaction


getDeclareEstimateFee()

getDeclareEstimateFee(invocation, details, blockIdentifier?, skipValidate?): Promise<EstimateFeeResponseOverhead>

Defined in: src/provider/rpc.ts:520

Estimates the fee for a given DECLARE transaction

Parameters

invocation

DeclareContractTransaction

details

InvocationsDetailsWithNonce

optional details containing:

  • nonce
  • version - optional version
  • optional maxFee
blockIdentifier?

BlockIdentifier

(optional) block identifier

skipValidate?

boolean

(optional) skip cairo validate method

Returns

Promise<EstimateFeeResponseOverhead>

the estimated fee

Deprecated

Consider using getEstimateFeeBulk for multiple transactions

Example

const feeEstimate = await provider.getDeclareEstimateFee(transaction, details);
// Equivalent to:
const [feeEstimate] = await provider.getEstimateFeeBulk([{ type: ETransactionType.DECLARE, ...transaction, ...details }], options);

Remarks

This method is an alias that calls getEstimateFeeBulk with a single transaction


getDeployAccountEstimateFee()

getDeployAccountEstimateFee(invocation, details, blockIdentifier?, skipValidate?): Promise<EstimateFeeResponseOverhead>

Defined in: src/provider/rpc.ts:534

Estimates the fee for a given DEPLOY_ACCOUNT transaction

Parameters

invocation

DeployAccountContractTransaction

details

InvocationsDetailsWithNonce

optional details containing:

  • nonce
  • version - optional version
  • optional maxFee
blockIdentifier?

BlockIdentifier

(optional) block identifier

skipValidate?

boolean

(optional) skip cairo validate method

Returns

Promise<EstimateFeeResponseOverhead>

the estimated fee

Deprecated

Consider using getEstimateFeeBulk for multiple transactions

Example

const feeEstimate = await provider.getDeployAccountEstimateFee(transaction, details);
// Equivalent to:
const [feeEstimate] = await provider.getEstimateFeeBulk([{ type: ETransactionType.DEPLOY_ACCOUNT, ...transaction, ...details }], options);

Remarks

This method is an alias that calls getEstimateFeeBulk with a single transaction


getEstimateFeeBulk()

getEstimateFeeBulk(invocations, options?): Promise<EstimateFeeResponseBulkOverhead>

Defined in: src/provider/rpc.ts:548

Estimates the fee for a list of INVOKE transaction

Parameters

invocations

AccountInvocations

AccountInvocations - Complete invocations array with account details

options?

getEstimateFeeBulkOptions

getEstimateFeeBulkOptions

  • (optional) blockIdentifier - BlockIdentifier

Returns

Promise<EstimateFeeResponseBulkOverhead>

the estimated fee


invokeFunction()

invokeFunction(functionInvocation, details): Promise<{ transaction_hash: string; }>

Defined in: src/provider/rpc.ts:557

Invokes a function on starknet

Parameters

functionInvocation

Invocation

details

InvocationsDetailsWithNonce

optional details containing:

  • nonce - optional nonce
  • version - optional version
  • maxFee - optional maxFee

Returns

Promise<{ transaction_hash: string; }>

response from addTransaction


invokeSignedTx()

invokeSignedTx(transaction): Promise<{ transaction_hash: string; }>

Defined in: src/provider/rpc.ts:589

Submit a pre-signed INVOKE_TXN_V3 transaction to the network.

Broadcasts a transaction previously built and signed by Account.getSignedTransaction(). Fees are already included in the signed transaction and will not be re-estimated.

Parameters

transaction

INVOKE_TXN_V3

A fully signed RPC.INVOKE_TXN_V3 object, as returned by Account.getSignedTransaction()

Returns

Promise<{ transaction_hash: string; }>

The transaction hash if waitMode is disabled (default), or the transaction receipt if waitMode is enabled.

Remarks

  • The transaction must be signed before calling this method ; use Account.getSignedTransaction() to produce it.
  • Resubmitting the same signed transaction (same nonce) will be rejected by the network.
  • If waitMode is enabled on the provider, this method waits for the transaction to be included in a block before returning.

Example

const signedTx = await account.getSignedTransaction([
{ contractAddress: erc20Address, entrypoint: 'transfer', calldata: [recipient, amount, 0] }
]);
// inspect or store signedTx, then submit when ready:
const { transaction_hash } = await provider.invokeSignedTx(signedTx);
await provider.waitForTransaction(transaction_hash);

declareContract()

declareContract(transaction, details): Promise<{ class_hash: string; transaction_hash: string; }>

Defined in: src/provider/rpc.ts:593

Declares a given compiled contract (json) to starknet

Parameters

transaction

DeclareContractTransaction

transaction payload to be deployed containing:

  • compiled contract code
  • sender address
  • signature
details

InvocationsDetailsWithNonce

Invocation Details containing:

  • nonce
  • optional version
  • optional maxFee

Returns

Promise<{ class_hash: string; transaction_hash: string; }>

a confirmation of sending a transaction on the starknet contract


deployAccountContract()

deployAccountContract(transaction, details): Promise<{ contract_address: string; transaction_hash: string; }>

Defined in: src/provider/rpc.ts:600

Deploys a given compiled Account contract (json) to starknet

Parameters

transaction

DeployAccountContractTransaction

details

InvocationsDetailsWithNonce

Returns

Promise<{ contract_address: string; transaction_hash: string; }>

a confirmation of sending a transaction on the starknet contract


callContract()

callContract(call, blockIdentifier?): Promise<string[]>

Defined in: src/provider/rpc.ts:607

Calls a function on the Starknet contract.

Parameters

call

Call

transaction to be called

blockIdentifier?

BlockIdentifier

block identifier

Returns

Promise<string[]>

the result of the function on the smart contract.


estimateMessageFee()

Call Signature

estimateMessageFee<V>(message, blockIdentifier?): Promise<V extends SupportedRpcVersion0_10 ? FEE_ESTIMATE : MESSAGE_FEE_ESTIMATE>

Defined in: src/provider/rpc.ts:611

Estimate the fee for a message from L1

Type Parameters
V

V extends "0.9.0" | "0.10.0" | "0.10.2" | "0.10.3" = "0.9.0" | "0.10.0" | "0.10.2" | "0.10.3"

Parameters
message

MSG_FROM_L1

L1 message

blockIdentifier?

BlockIdentifier

block identifier

Returns

Promise<V extends SupportedRpcVersion0_10 ? FEE_ESTIMATE : MESSAGE_FEE_ESTIMATE>

Fee estimate

Call Signature

estimateMessageFee(message, blockIdentifier?): Promise<MESSAGE_FEE_ESTIMATE | FEE_ESTIMATE>

Defined in: src/provider/rpc.ts:617

Parameters
message

MSG_FROM_L1

blockIdentifier?

BlockIdentifier

Returns

Promise<MESSAGE_FEE_ESTIMATE | FEE_ESTIMATE>


getSyncingStats()

getSyncingStats(): Promise<Syncing>

Defined in: src/provider/rpc.ts:628

Get node synchronization status

Returns

Promise<Syncing>

Sync status or false if not syncing


getEvents()

Call Signature

getEvents<V>(eventFilter): Promise<V extends SupportedRpcVersion0_10 ? EVENTS_CHUNK : EVENTS_CHUNK>

Defined in: src/provider/rpc.ts:632

Get events matching the given filter

Type Parameters
V

V extends "0.9.0" | "0.10.0" | "0.10.2" | "0.10.3" = "0.9.0" | "0.10.0" | "0.10.2" | "0.10.3"

Parameters
eventFilter

V extends SupportedRpcVersion0_10 ? EventFilter : EventFilter

event filter

Returns

Promise<V extends SupportedRpcVersion0_10 ? EVENTS_CHUNK : EVENTS_CHUNK>

Events and pagination info

Call Signature

getEvents(eventFilter): Promise<EVENTS_CHUNK | EVENTS_CHUNK>

Defined in: src/provider/rpc.ts:635

Parameters
eventFilter

EventFilter | EventFilter

Returns

Promise<EVENTS_CHUNK | EVENTS_CHUNK>


verifyMessageInStarknet()

verifyMessageInStarknet(message, signature, accountAddress, signatureVerificationFunctionName?, signatureVerificationResponse?): Promise<boolean>

Defined in: src/provider/rpc.ts:650

Verify in Starknet a signature of a TypedData object or of a given hash.

Parameters

message

TypedData | BigNumberish

TypedData object to be verified, or message hash to be verified.

signature

Signature

signature of the message.

accountAddress

BigNumberish

address of the account that has signed the message.

signatureVerificationFunctionName?

string

if account contract with non standard account verification function name.

signatureVerificationResponse?

if account contract with non standard response of verification function.

okResponse

string[]

nokResponse

string[]

error

string[]

Returns

Promise<boolean>

const myTypedMessage: TypedMessage = .... ;
const messageHash = typedData.getMessageHash(myTypedMessage,accountAddress);
const sign: WeierstrassSignatureType = ec.starkCurve.sign(messageHash, privateKey);
const accountAddress = "0x43b7240d227aa2fb8434350b3321c40ac1b88c7067982549e7609870621b535";
const result1 = await myRpcProvider.verifyMessageInStarknet(myTypedMessage, sign, accountAddress);
const result2 = await myRpcProvider.verifyMessageInStarknet(messageHash, sign, accountAddress);
// result1 = result2 = true

isClassDeclared()

isClassDeclared(contractClassIdentifier, blockIdentifier?): Promise<boolean>

Defined in: src/provider/rpc.ts:667

Test if class is already declared

Parameters

contractClassIdentifier

ContractClassIdentifier

contract class identifier

blockIdentifier?

BlockIdentifier

block identifier

Returns

Promise<boolean>

true if class is declared


prepareInvocations()

prepareInvocations(invocations): Promise<Invocations>

Defined in: src/provider/rpc.ts:695

Build bulk invocations with auto-detect declared class

Parameters

invocations

Invocations

array of invocations

Returns

Promise<Invocations>

Prepared invocations


getL1MessagesStatus()

Call Signature

getL1MessagesStatus<V>(transactionHash): Promise<V extends SupportedRpcVersion0_10 ? L1L2MessagesStatus : L1L2MessagesStatus>

Defined in: src/provider/rpc.ts:716

Get L1 messages status for a transaction

Type Parameters
V

V extends "0.9.0" | "0.10.0" | "0.10.2" | "0.10.3" = "0.9.0" | "0.10.0" | "0.10.2" | "0.10.3"

Parameters
transactionHash

BigNumberish

L1 transaction hash

Returns

Promise<V extends SupportedRpcVersion0_10 ? L1L2MessagesStatus : L1L2MessagesStatus>

L1 message status

Call Signature

getL1MessagesStatus(transactionHash): Promise<L1L2MessagesStatus | L1L2MessagesStatus>

Defined in: src/provider/rpc.ts:723

Parameters
transactionHash

BigNumberish

Returns

Promise<L1L2MessagesStatus | L1L2MessagesStatus>


getStorageProof()

getStorageProof(classHashes, contractAddresses, contractsStorageKeys, blockIdentifier?): Promise<StorageProof>

Defined in: src/provider/rpc.ts:732

Get Merkle paths in state tries

Parameters

classHashes

BigNumberish[]

class hashes

contractAddresses

BigNumberish[]

contract addresses

contractsStorageKeys

CONTRACT_STORAGE_KEYS[]

storage keys

blockIdentifier?

BlockIdentifier

block identifier

Returns

Promise<StorageProof>

Storage proof


getCompiledCasm()

getCompiledCasm(classHash): Promise<CASM_COMPILED_CONTRACT_CLASS>

Defined in: src/provider/rpc.ts:746

Get compiled CASM contract class

Parameters

classHash

BigNumberish

class hash

Returns

Promise<CASM_COMPILED_CONTRACT_CLASS>

Compiled CASM contract class


getEstimateTip()

getEstimateTip(blockIdentifier?, options?): Promise<TipEstimate>

Defined in: src/provider/rpc.ts:750

Get transaction tip estimation based on network analysis

Parameters

blockIdentifier?

BlockIdentifier

block identifier to analyze from

options?

TipAnalysisOptions = {}

tip analysis options

Returns

Promise<TipEstimate>

Tip estimation with statistics

Example

const tipEstimate = await provider.getEstimateTip('latest', {
maxBlocks: 10,
minTxsNecessary: 5
});
console.log('Recommended tip:', tipEstimate.recommendedTip);

getStarkName()

getStarkName(address, StarknetIdContract?): Promise<string>

Defined in: src/plugins/starknet-id/index.ts:26

Parameters

address

BigNumberish

StarknetIdContract?

string

Returns

Promise<string>

Inherited from

StarknetIdProviderMethods.getStarkName


getAddressFromStarkName()

getAddressFromStarkName(name, StarknetIdContract?): Promise<string>

Defined in: src/plugins/starknet-id/index.ts:27

Parameters

name

string

StarknetIdContract?

string

Returns

Promise<string>

Inherited from

StarknetIdProviderMethods.getAddressFromStarkName


getStarkProfile()

getStarkProfile(address, StarknetIdContract?, StarknetIdIdentityContract?, StarknetIdVerifierContract?, StarknetIdPfpContract?, StarknetIdPopContract?, StarknetIdMulticallContract?): Promise<StarkProfile>

Defined in: src/plugins/starknet-id/index.ts:28

Parameters

address

BigNumberish

StarknetIdContract?

string

StarknetIdIdentityContract?

string

StarknetIdVerifierContract?

string

StarknetIdPfpContract?

string

StarknetIdPopContract?

string

StarknetIdMulticallContract?

string

Returns

Promise<StarkProfile>

Inherited from

StarknetIdProviderMethods.getStarkProfile


getBrotherName()

getBrotherName(address, BrotherIdContract?): Promise<string>

Defined in: src/plugins/brother-id/index.ts:47

Parameters

address

BigNumberish

BrotherIdContract?

string

Returns

Promise<string>

Inherited from

BrotherIdProviderMethods.getBrotherName


getAddressFromBrotherName()

getAddressFromBrotherName(name, BrotherIdContract?): Promise<string>

Defined in: src/plugins/brother-id/index.ts:48

Parameters

name

string

BrotherIdContract?

string

Returns

Promise<string>

Inherited from

BrotherIdProviderMethods.getAddressFromBrotherName


getBrotherProfile()

getBrotherProfile(address, BrotherIdContract?): Promise<BrotherProfile>

Defined in: src/plugins/brother-id/index.ts:49

Parameters

address

BigNumberish

BrotherIdContract?

string

Returns

Promise<BrotherProfile>

Inherited from

BrotherIdProviderMethods.getBrotherProfile


fastWaitForTransaction()

fastWaitForTransaction(txHash, address, initNonce, options?): Promise<boolean>

Defined in: src/plugins/fast-execute/types.ts:60

Wait for transaction confirmation with polling optimization for gaming.

This method is fast but Events and transaction reports are not yet available. Useful for gaming activity and rapid-fire transaction scenarios.

Only available on RPC 0.9 and onwards.

Parameters

txHash

BigNumberish

Transaction hash to monitor

address

string

Address of the account (used to track nonce changes)

initNonce

BigNumberish

Initial nonce of the account (before the transaction)

options?

FastWaitForTransactionOptions

Polling configuration options. retries is the number of times to retry (default: 50), retryInterval is the time in ms between retries (default: 500).

Returns

Promise<boolean>

Returns true if the next transaction is possible (nonce increment detected), false if the timeout has been reached, or throws an error in case of provider communication failure or transaction reversion.

Example

const isReady = await provider.fastWaitForTransaction(
'0x123abc...',
'0x456def...',
10,
{ retries: 30, retryInterval: 500 }
);

if (isReady) {
// Next transaction can be sent
}

Inherited from

FastExecuteProviderMethods.fastWaitForTransaction