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
pluginManager
readonlypluginManager: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?
contractAddresses?
Returns
Promise<StateUpdateResponse>
Param
block identifier
Returns
StateUpdateResponse
Implementation of
ProviderInterface.getStateUpdate
Methods
create()
staticcreate<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?
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?
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
contract address
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
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?
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?
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?
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
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?
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?
contractAddresses?
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?
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?
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
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
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
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
Returns
Promise<GetTransactionReceiptResponse>
the transaction receipt object
getTransactionTrace()
Call Signature
getTransactionTrace<
V>(txHash):Promise<VextendsSupportedRpcVersion0_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
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
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
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 - Complete invocations array with account details
options?
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
transaction hash
options?
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
key
from getStorageVarAddress('<STORAGE_VARIABLE_NAME>') (WIP)
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
contract address
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
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
class hash
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
contract address
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
string
classHash?
undefined
undefined
options?
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
options?
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
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
optional details containing:
- nonce - optional nonce
- version - optional version
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
details
optional details containing:
- nonce
- version - optional version
- optional maxFee
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
optional details containing:
- nonce
- version - optional version
- optional maxFee
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 - Complete invocations array with account details
options?
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
details
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
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
waitModeis 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
transaction payload to be deployed containing:
- compiled contract code
- sender address
- signature
details
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
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
transaction to be called
blockIdentifier?
block identifier
Returns
Promise<string[]>
the result of the function on the smart contract.
estimateMessageFee()
Call Signature
estimateMessageFee<
V>(message,blockIdentifier?):Promise<VextendsSupportedRpcVersion0_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
L1 message
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
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<VextendsSupportedRpcVersion0_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
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 object to be verified, or message hash to be verified.
signature
signature of the message.
accountAddress
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
contract class identifier
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
array of invocations
Returns
Promise<Invocations>
Prepared invocations
getL1MessagesStatus()
Call Signature
getL1MessagesStatus<
V>(transactionHash):Promise<VextendsSupportedRpcVersion0_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
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
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
class hashes
contractAddresses
contract addresses
contractsStorageKeys
storage keys
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
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?
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
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
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
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
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
Transaction hash to monitor
address
string
Address of the account (used to track nonce changes)
initNonce
Initial nonce of the account (before the transaction)
options?
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
}