Abstract Class: ProviderInterface
Defined in: src/provider/interface.ts:46
Constructors
Constructor
new ProviderInterface():
ProviderInterface
Returns
ProviderInterface
Properties
channel
abstractchannel:RpcChannel|RpcChannel|RpcChannel|RpcChannel
Defined in: src/provider/interface.ts:47
responseParser
abstractresponseParser:RPCResponseParser
Defined in: src/provider/interface.ts:53
Methods
getChainId()
abstractgetChainId():Promise<"0x534e5f4d41494e"|"0x534e5f5345504f4c4941">
Defined in: src/provider/interface.ts:60
Gets the Starknet chain Id
Returns
Promise<"0x534e5f4d41494e" | "0x534e5f5345504f4c4941">
the chain Id
callContract()
abstractcallContract(call,blockIdentifier?):Promise<CallContractResponse>
Defined in: src/provider/interface.ts:69
Calls a function on the Starknet contract.
Parameters
call
transaction to be called
blockIdentifier?
block identifier
Returns
Promise<CallContractResponse>
the result of the function on the smart contract.
getBlock()
Call Signature
abstractgetBlock():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/interface.ts:118
Gets the header and the transaction hashes of a block (RPC starknet_getBlockWithTxHashes).
The response contains the block metadata (hash, number, parent hash, timestamp, status,
gas prices, sequencer address, ...) plus a transactions array holding only the hashes
of the transactions included in the block — not their content.
To get the full transactions use getBlockWithTxs, and for their receipts use
getBlockWithReceipts.
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 header together with the list of its transaction hashes
Example
const block = await provider.getBlock('latest');
// {
// status: 'ACCEPTED_ON_L2',
// block_hash: '0x3a1b...',
// block_number: 123456,
// parent_hash: '0x28f5...',
// timestamp: 1700000000,
// sequencer_address: '0x1176a1...',
// transactions: ['0x1d2c...', '0x5e8f...'], // transaction hashes only
// ...
// }
// By block number or hash:
await provider.getBlock(123456);
await provider.getBlock('0x3a1b...');
// Block still being built (fields differ from a closed block):
const pending = await provider.getBlock('pre_confirmed');
Call Signature
abstractgetBlock(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/interface.ts:119
Gets the header and the transaction hashes of a block (RPC starknet_getBlockWithTxHashes).
The response contains the block metadata (hash, number, parent hash, timestamp, status,
gas prices, sequencer address, ...) plus a transactions array holding only the hashes
of the transactions included in the block — not their content.
To get the full transactions use getBlockWithTxs, and for their receipts use
getBlockWithReceipts.
Parameters
blockIdentifier
"pre_confirmed"
which block to fetch. Accepts:
- a block number:
numberor decimalstring(e.g.123456) - a block hash: hex
stringorbigint(e.g.'0x3a1b...') - a block tag
string:'latest'— the most recent block already accepted on L2'pre_confirmed'— the block currently being built, not yet closed (its fields differ: noblock_hash/status, hence the dedicated PreConfirmedBlock return type)
null— resolved as the'latest'tag
When omitted, the provider's default block identifier is used ('latest').
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 header together with the list of its transaction hashes
Example
const block = await provider.getBlock('latest');
// {
// status: 'ACCEPTED_ON_L2',
// block_hash: '0x3a1b...',
// block_number: 123456,
// parent_hash: '0x28f5...',
// timestamp: 1700000000,
// sequencer_address: '0x1176a1...',
// transactions: ['0x1d2c...', '0x5e8f...'], // transaction hashes only
// ...
// }
// By block number or hash:
await provider.getBlock(123456);
await provider.getBlock('0x3a1b...');
// Block still being built (fields differ from a closed block):
const pending = await provider.getBlock('pre_confirmed');
Call Signature
abstractgetBlock(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/interface.ts:120
Gets the header and the transaction hashes of a block (RPC starknet_getBlockWithTxHashes).
The response contains the block metadata (hash, number, parent hash, timestamp, status,
gas prices, sequencer address, ...) plus a transactions array holding only the hashes
of the transactions included in the block — not their content.
To get the full transactions use getBlockWithTxs, and for their receipts use
getBlockWithReceipts.
Parameters
blockIdentifier
"latest"
which block to fetch. Accepts:
- a block number:
numberor decimalstring(e.g.123456) - a block hash: hex
stringorbigint(e.g.'0x3a1b...') - a block tag
string:'latest'— the most recent block already accepted on L2'pre_confirmed'— the block currently being built, not yet closed (its fields differ: noblock_hash/status, hence the dedicated PreConfirmedBlock return type)
null— resolved as the'latest'tag
When omitted, the provider's default block identifier is used ('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 header together with the list of its transaction hashes
Example
const block = await provider.getBlock('latest');
// {
// status: 'ACCEPTED_ON_L2',
// block_hash: '0x3a1b...',
// block_number: 123456,
// parent_hash: '0x28f5...',
// timestamp: 1700000000,
// sequencer_address: '0x1176a1...',
// transactions: ['0x1d2c...', '0x5e8f...'], // transaction hashes only
// ...
// }
// By block number or hash:
await provider.getBlock(123456);
await provider.getBlock('0x3a1b...');
// Block still being built (fields differ from a closed block):
const pending = await provider.getBlock('pre_confirmed');
Call Signature
abstractgetBlock(blockIdentifier):Promise<GetBlockResponse>
Defined in: src/provider/interface.ts:121
Gets the header and the transaction hashes of a block (RPC starknet_getBlockWithTxHashes).
The response contains the block metadata (hash, number, parent hash, timestamp, status,
gas prices, sequencer address, ...) plus a transactions array holding only the hashes
of the transactions included in the block — not their content.
To get the full transactions use getBlockWithTxs, and for their receipts use
getBlockWithReceipts.
Parameters
blockIdentifier
which block to fetch. Accepts:
- a block number:
numberor decimalstring(e.g.123456) - a block hash: hex
stringorbigint(e.g.'0x3a1b...') - a block tag
string:'latest'— the most recent block already accepted on L2'pre_confirmed'— the block currently being built, not yet closed (its fields differ: noblock_hash/status, hence the dedicated PreConfirmedBlock return type)
null— resolved as the'latest'tag
When omitted, the provider's default block identifier is used ('latest').
Returns
Promise<GetBlockResponse>
the block header together with the list of its transaction hashes
Example
const block = await provider.getBlock('latest');
// {
// status: 'ACCEPTED_ON_L2',
// block_hash: '0x3a1b...',
// block_number: 123456,
// parent_hash: '0x28f5...',
// timestamp: 1700000000,
// sequencer_address: '0x1176a1...',
// transactions: ['0x1d2c...', '0x5e8f...'], // transaction hashes only
// ...
// }
// By block number or hash:
await provider.getBlock(123456);
await provider.getBlock('0x3a1b...');
// Block still being built (fields differ from a closed block):
const pending = await provider.getBlock('pre_confirmed');
getClassAt()
abstractgetClassAt(contractAddress,blockIdentifier?):Promise<ContractClassResponse>
Defined in: src/provider/interface.ts:130
Gets the contract class of the deployed contract.
Parameters
contractAddress
contract address
blockIdentifier?
block identifier
Returns
Promise<ContractClassResponse>
Contract class of compiled contract
getL1GasPrice()
abstractgetL1GasPrice(blockIdentifier?):Promise<string>
Defined in: src/provider/interface.ts:141
Gets the price of l1 gas in the block
Parameters
blockIdentifier?
block identifier
Returns
Promise<string>
gas price of the block
getL1MessageHash()
abstractgetL1MessageHash(l2TxHash):Promise<string>
Defined in: src/provider/interface.ts:154
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'
getClassHashAt()
abstractgetClassHashAt(contractAddress,blockIdentifier?):Promise<string>
Defined in: src/provider/interface.ts:163
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()
abstractgetClassByHash(classHash):Promise<ContractClassResponse>
Defined in: src/provider/interface.ts:174
Returns the contract class deployed under the given class hash.
Parameters
classHash
class hash
Returns
Promise<ContractClassResponse>
Contract class of compiled contract
getNonceForAddress()
abstractgetNonceForAddress(contractAddress,blockIdentifier?):Promise<string>
Defined in: src/provider/interface.ts:182
Returns the nonce associated with the given address in the given block
Parameters
contractAddress
contract address
blockIdentifier?
Returns
Promise<string>
the hex nonce
getStorageAt()
abstractgetStorageAt(contractAddress,key,blockIdentifier?,responseFlags?):Promise<STORAGE_RESULT>
Defined in: src/provider/interface.ts:195
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
getTransaction()
abstractgetTransaction(transactionHash,options?):Promise<TransactionWithHash>
Defined in: src/provider/interface.ts:210
Gets the transaction information from a tx id.
Parameters
transactionHash
options?
(optional) additional request options
- includeProofFacts - include proof facts in the transaction response (RPC 0.10.1+)
includeProofFacts?
boolean
Returns
Promise<TransactionWithHash>
the transaction object { transaction_id, status, transaction, block_number?, block_number?, transaction_index?, transaction_failure_reason? }
getTransactionReceipt()
abstractgetTransactionReceipt(transactionHash):Promise<GetTransactionReceiptResponse>
Defined in: src/provider/interface.ts:221
Gets the transaction receipt from a tx hash.
Parameters
transactionHash
Returns
Promise<GetTransactionReceiptResponse>
the transaction receipt object
deployAccountContract()
abstractdeployAccountContract(payload,details):Promise<DeployContractResponse>
Defined in: src/provider/interface.ts:234
Deploys a given compiled Account contract (json) to starknet
Parameters
payload
payload to be deployed containing:
- compiled contract code
- constructor calldata
- address salt
details
Returns
Promise<DeployContractResponse>
a confirmation of sending a transaction on the starknet contract
invokeFunction()
abstractinvokeFunction(invocation,details):Promise<{transaction_hash:string; }>
Defined in: src/provider/interface.ts:253
Invokes a function on starknet
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
- maxFee - optional maxFee
Returns
Promise<{ transaction_hash: string; }>
response from addTransaction
declareContract()
abstractdeclareContract(transaction,details):Promise<{class_hash:string;transaction_hash:string; }>
Defined in: src/provider/interface.ts:270
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
getInvokeEstimateFee()
abstractgetInvokeEstimateFee(invocation,details,blockIdentifier?,skipValidate?):Promise<EstimateFeeResponseOverhead>
Defined in: src/provider/interface.ts:298
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()
abstractgetDeclareEstimateFee(transaction,details,blockIdentifier?,skipValidate?):Promise<EstimateFeeResponseOverhead>
Defined in: src/provider/interface.ts:328
Estimates the fee for a given DECLARE transaction
Parameters
transaction
transaction payload to be declared containing:
- compiled contract code
- sender address
- signature - (defaults to []) the signature
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()
abstractgetDeployAccountEstimateFee(transaction,details,blockIdentifier?,skipValidate?):Promise<EstimateFeeResponseOverhead>
Defined in: src/provider/interface.ts:359
Estimates the fee for a given DEPLOY_ACCOUNT transaction
Parameters
transaction
DeployAccountContractTransaction
transaction payload to be deployed containing:
- classHash
- constructorCalldata
- addressSalt
- signature - (defaults to []) the signature
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()
abstractgetEstimateFeeBulk(invocations,options?):Promise<EstimateFeeResponseBulkOverhead>
Defined in: src/provider/interface.ts:374
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
waitForTransaction()
abstractwaitForTransaction(txHash,options?):Promise<GetTransactionReceiptResponse>
Defined in: src/provider/interface.ts:387
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
getSimulateTransaction()
abstractgetSimulateTransaction(invocations,options?):Promise<SimulateTransactionOverheadResponse>
Defined in: src/provider/interface.ts:403
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
getStateUpdate()
abstractgetStateUpdate(blockIdentifier?,contractAddresses?):Promise<StateUpdateResponse>
Defined in: src/provider/interface.ts:414
Gets the state changes in a specific block (result of executing the requested block)
Parameters
blockIdentifier?
block identifier
contractAddresses?
Returns
Promise<StateUpdateResponse>
StateUpdateResponse
getBlockStateUpdate()
Call Signature
abstractgetBlockStateUpdate():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/interface.ts:425
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
abstractgetBlockStateUpdate(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/interface.ts:426
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
abstractgetBlockStateUpdate(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/interface.ts:429
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
abstractgetBlockStateUpdate(blockIdentifier?):Promise<StateUpdateResponse>
Defined in: src/provider/interface.ts:430
Gets the state changes in a specific block (result of executing the requested block) Alternative method name for getStateUpdate with specific overloads
Parameters
blockIdentifier?
Returns
Promise<StateUpdateResponse>
StateUpdateResponse
getContractVersion()
Call Signature
abstractgetContractVersion(contractAddress,classHash?,options?):Promise<ContractVersion>
Defined in: src/provider/interface.ts:442
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
abstractgetContractVersion(contractAddress,classHash,options?):Promise<ContractVersion>
Defined in: src/provider/interface.ts:456
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>
getBlockLatestAccepted()
abstractgetBlockLatestAccepted():Promise<{block_hash:string;block_number:number; }>
Defined in: src/provider/interface.ts:467
Get the most recent accepted block hash and number
Returns
Promise<{ block_hash: string; block_number: number; }>
Object containing block hash and number
getBlockNumber()
abstractgetBlockNumber():Promise<number>
Defined in: src/provider/interface.ts:473
Get the most recent accepted block number
Returns
Promise<number>
Number of the latest block
getBlockWithTxHashes()
abstractgetBlockWithTxHashes(blockIdentifier?):Promise<any>
Defined in: src/provider/interface.ts:480
Get block information with transaction hashes
Parameters
blockIdentifier?
block identifier
Returns
Promise<any>
Block with transaction hashes
getBlockWithTxs()
abstractgetBlockWithTxs(blockIdentifier?,options?):Promise<any>
Defined in: src/provider/interface.ts:489
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<any>
Block with full transactions
getBlockWithReceipts()
abstractgetBlockWithReceipts(blockIdentifier?,options?):Promise<any>
Defined in: src/provider/interface.ts:501
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<any>
Block with transaction receipts
getBlockTransactionsTraces()
abstractgetBlockTransactionsTraces(blockIdentifier?,options?):Promise<any>
Defined in: src/provider/interface.ts:513
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<any>
Array of transaction traces
getBlockTransactionCount()
abstractgetBlockTransactionCount(blockIdentifier?):Promise<number>
Defined in: src/provider/interface.ts:523
Get the number of transactions in a block
Parameters
blockIdentifier?
block identifier
Returns
Promise<number>
Transaction count
waitForBlock()
abstractwaitForBlock(blockIdentifier?,retryInterval?):Promise<void>
Defined in: src/provider/interface.ts:535
Pause execution until a specified block is created
Parameters
blockIdentifier?
block number or tag
retryInterval?
number
milliseconds between requests (default: 5000)
Returns
Promise<void>
Example
await provider.waitForBlock(12345);
await provider.waitForBlock('latest');
getTransactionByHash()
abstractgetTransactionByHash(txHash,options?):Promise<TransactionWithHash>
Defined in: src/provider/interface.ts:548
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<TransactionWithHash>
Transaction information
getTransactionByBlockIdAndIndex()
abstractgetTransactionByBlockIdAndIndex(blockIdentifier,index,options?):Promise<TransactionWithHash>
Defined in: src/provider/interface.ts:561
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<TransactionWithHash>
Transaction information
getTransactionTrace()
abstractgetTransactionTrace(txHash):Promise<TRANSACTION_TRACE|TRANSACTION_TRACE>
Defined in: src/provider/interface.ts:572
Gets the transaction trace
Parameters
txHash
transaction hash
Returns
Promise<TRANSACTION_TRACE | TRANSACTION_TRACE>
Transaction trace
getTransactionStatus()
abstractgetTransactionStatus(transactionHash):Promise<any>
Defined in: src/provider/interface.ts:581
Get the status of a transaction
Parameters
transactionHash
transaction hash
Returns
Promise<any>
Transaction status
fetch()
abstractfetch(method,params?,id?):Promise<any>
Defined in: src/provider/interface.ts:591
Direct RPC method call
Parameters
method
string
RPC method name
params?
object
method parameters
id?
string | number
request ID
Returns
Promise<any>
RPC response
readSpecVersion()
abstractreadSpecVersion():string|undefined
Defined in: src/provider/interface.ts:597
Read channel spec version
Returns
string | undefined
Spec version string or undefined if not set
getSpecVersion()
abstractgetSpecVersion():Promise<string>
Defined in: src/provider/interface.ts:603
Get channel spec version
Returns
Promise<string>
Promise resolving to spec version
setUpSpecVersion()
abstractsetUpSpecVersion():Promise<string>
Defined in: src/provider/interface.ts:609
Setup channel spec version and return it
Returns
Promise<string>
Promise resolving to spec version
getClass()
abstractgetClass(classHash,blockIdentifier?):Promise<ContractClassResponse>
Defined in: src/provider/interface.ts:618
Get contract class by hash with optional block identifier
Parameters
classHash
class hash
blockIdentifier?
block identifier
Returns
Promise<ContractClassResponse>
Contract class
estimateMessageFee()
abstractestimateMessageFee(message,blockIdentifier?):Promise<MESSAGE_FEE_ESTIMATE|FEE_ESTIMATE>
Defined in: src/provider/interface.ts:629
Estimate the fee for a message from L1
Parameters
message
L1 message
blockIdentifier?
block identifier
Returns
Promise<MESSAGE_FEE_ESTIMATE | FEE_ESTIMATE>
Fee estimate
getSyncingStats()
abstractgetSyncingStats():Promise<any>
Defined in: src/provider/interface.ts:638
Get node synchronization status
Returns
Promise<any>
Sync status or false if not syncing
getEvents()
abstractgetEvents(eventFilter):Promise<EVENTS_CHUNK|EVENTS_CHUNK>
Defined in: src/provider/interface.ts:645
Get events matching the given filter
Parameters
eventFilter
event filter
Returns
Promise<EVENTS_CHUNK | EVENTS_CHUNK>
Events and pagination info
verifyMessageInStarknet()
abstractverifyMessageInStarknet(message,signature,accountAddress,signatureVerificationFunctionName?,signatureVerificationResponse?):Promise<boolean>
Defined in: src/provider/interface.ts:667
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()
abstractisClassDeclared(contractClassIdentifier,blockIdentifier?):Promise<boolean>
Defined in: src/provider/interface.ts:685
Test if class is already declared
Parameters
contractClassIdentifier
contract class identifier
blockIdentifier?
block identifier
Returns
Promise<boolean>
true if class is declared
prepareInvocations()
abstractprepareInvocations(invocations):Promise<Invocations>
Defined in: src/provider/interface.ts:695
Build bulk invocations with auto-detect declared class
Parameters
invocations
array of invocations
Returns
Promise<Invocations>
Prepared invocations
getL1MessagesStatus()
abstractgetL1MessagesStatus(transactionHash):Promise<L1L2MessagesStatus|L1L2MessagesStatus>
Defined in: src/provider/interface.ts:702
Get L1 messages status for a transaction
Parameters
transactionHash
L1 transaction hash
Returns
Promise<L1L2MessagesStatus | L1L2MessagesStatus>
L1 message status
getStorageProof()
abstractgetStorageProof(classHashes,contractAddresses,contractsStorageKeys,blockIdentifier?):Promise<StorageProof>
Defined in: src/provider/interface.ts:714
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()
abstractgetCompiledCasm(classHash):Promise<CASM_COMPILED_CONTRACT_CLASS>
Defined in: src/provider/interface.ts:726
Get compiled CASM contract class
Parameters
classHash
class hash
Returns
Promise<CASM_COMPILED_CONTRACT_CLASS>
Compiled CASM contract class
getEstimateTip()
abstractgetEstimateTip(blockIdentifier?,options?):Promise<TipEstimate>
Defined in: src/provider/interface.ts:744
Get transaction tip estimation based on network analysis
Parameters
blockIdentifier?
block identifier to analyze from
options?
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);