Skip to main content
Version: Next

Abstract Class: ProviderInterface

Defined in: src/provider/interface.ts:46

Constructors

Constructor

new ProviderInterface(): ProviderInterface

Returns

ProviderInterface

Properties

channel

abstract channel: RpcChannel | RpcChannel | RpcChannel

Defined in: src/provider/interface.ts:47


responseParser

abstract responseParser: RPCResponseParser

Defined in: src/provider/interface.ts:49

Methods

getChainId()

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

Defined in: src/provider/interface.ts:56

Gets the Starknet chain Id

Returns

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

the chain Id


callContract()

abstract callContract(call, blockIdentifier?): Promise<CallContractResponse>

Defined in: src/provider/interface.ts:65

Calls a function on the Starknet contract.

Parameters

call

Call

transaction to be called

blockIdentifier?

BlockIdentifier

block identifier

Returns

Promise<CallContractResponse>

the result of the function on the smart contract.


getBlock()

Call Signature

abstract 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/interface.ts:75

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

abstract 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/interface.ts:76

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

abstract 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/interface.ts:77

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

abstract getBlock(blockIdentifier): Promise<GetBlockResponse>

Defined in: src/provider/interface.ts:78

Gets the block information

Parameters
blockIdentifier

BlockIdentifier

Returns

Promise<GetBlockResponse>

the block object


getClassAt()

abstract getClassAt(contractAddress, blockIdentifier?): Promise<ContractClassResponse>

Defined in: src/provider/interface.ts:87

Gets the contract class of the deployed contract.

Parameters

contractAddress

BigNumberish

contract address

blockIdentifier?

BlockIdentifier

block identifier

Returns

Promise<ContractClassResponse>

Contract class of compiled contract


getL1GasPrice()

abstract getL1GasPrice(blockIdentifier?): Promise<string>

Defined in: src/provider/interface.ts:98

Gets the price of l1 gas in the block

Parameters

blockIdentifier?

BlockIdentifier

block identifier

Returns

Promise<string>

gas price of the block


getL1MessageHash()

abstract getL1MessageHash(l2TxHash): Promise<string>

Defined in: src/provider/interface.ts:111

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'

getClassHashAt()

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

Defined in: src/provider/interface.ts:120

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()

abstract getClassByHash(classHash): Promise<ContractClassResponse>

Defined in: src/provider/interface.ts:131

Returns the contract class deployed under the given class hash.

Parameters

classHash

BigNumberish

class hash

Returns

Promise<ContractClassResponse>

Contract class of compiled contract


getNonceForAddress()

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

Defined in: src/provider/interface.ts:139

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


getStorageAt()

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

Defined in: src/provider/interface.ts:152

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


getTransaction()

abstract getTransaction(transactionHash, options?): Promise<TransactionWithHash>

Defined in: src/provider/interface.ts:167

Gets the transaction information from a tx id.

Parameters

transactionHash

BigNumberish

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()

abstract getTransactionReceipt(transactionHash): Promise<GetTransactionReceiptResponse>

Defined in: src/provider/interface.ts:178

Gets the transaction receipt from a tx hash.

Parameters

transactionHash

BigNumberish

Returns

Promise<GetTransactionReceiptResponse>

the transaction receipt object


deployAccountContract()

abstract deployAccountContract(payload, details): Promise<DeployContractResponse>

Defined in: src/provider/interface.ts:191

Deploys a given compiled Account contract (json) to starknet

Parameters

payload

DeployAccountContractPayload

payload to be deployed containing:

  • compiled contract code
  • constructor calldata
  • address salt
details

InvocationsDetailsWithNonce

Returns

Promise<DeployContractResponse>

a confirmation of sending a transaction on the starknet contract


invokeFunction()

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

Defined in: src/provider/interface.ts:210

Invokes a function on starknet

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
  • maxFee - optional maxFee

Returns

Promise<{ transaction_hash: string; }>

response from addTransaction


declareContract()

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

Defined in: src/provider/interface.ts:227

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


getInvokeEstimateFee()

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

Defined in: src/provider/interface.ts:255

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);

Alias

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


getDeclareEstimateFee()

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

Defined in: src/provider/interface.ts:285

Estimates the fee for a given DECLARE transaction

Parameters

transaction

DeclareContractTransaction

transaction payload to be declared containing:

  • compiled contract code
  • sender address
  • signature - (defaults to []) the signature
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);

Alias

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


getDeployAccountEstimateFee()

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

Defined in: src/provider/interface.ts:316

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

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);

Alias

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


getEstimateFeeBulk()

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

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

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


waitForTransaction()

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

Defined in: src/provider/interface.ts:344

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


getSimulateTransaction()

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

Defined in: src/provider/interface.ts:360

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


getStateUpdate()

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

Defined in: src/provider/interface.ts:371

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

Parameters

blockIdentifier?

BlockIdentifier

block identifier

contractAddresses?

BigNumberish[]

Returns

Promise<StateUpdateResponse>

StateUpdateResponse


getBlockStateUpdate()

Call Signature

abstract 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/interface.ts:382

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

abstract 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/interface.ts:383

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

abstract 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/interface.ts:386

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

abstract getBlockStateUpdate(blockIdentifier?): Promise<StateUpdateResponse>

Defined in: src/provider/interface.ts:387

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

Returns

Promise<StateUpdateResponse>

StateUpdateResponse


getContractVersion()

Call Signature

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

Defined in: src/provider/interface.ts:399

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

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

Defined in: src/provider/interface.ts:413

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>


getBlockLatestAccepted()

abstract getBlockLatestAccepted(): Promise<{ block_hash: string; block_number: number; }>

Defined in: src/provider/interface.ts:424

Get the most recent accepted block hash and number

Returns

Promise<{ block_hash: string; block_number: number; }>

Object containing block hash and number


getBlockNumber()

abstract getBlockNumber(): Promise<number>

Defined in: src/provider/interface.ts:430

Get the most recent accepted block number

Returns

Promise<number>

Number of the latest block


getBlockWithTxHashes()

abstract getBlockWithTxHashes(blockIdentifier?): Promise<any>

Defined in: src/provider/interface.ts:437

Get block information with transaction hashes

Parameters

blockIdentifier?

BlockIdentifier

block identifier

Returns

Promise<any>

Block with transaction hashes


getBlockWithTxs()

abstract getBlockWithTxs(blockIdentifier?, options?): Promise<any>

Defined in: src/provider/interface.ts:446

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<any>

Block with full transactions


getBlockWithReceipts()

abstract getBlockWithReceipts(blockIdentifier?, options?): Promise<any>

Defined in: src/provider/interface.ts:458

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<any>

Block with transaction receipts


getBlockTransactionsTraces()

abstract getBlockTransactionsTraces(blockIdentifier?, options?): Promise<any>

Defined in: src/provider/interface.ts:470

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<any>

Array of transaction traces


getBlockTransactionCount()

abstract getBlockTransactionCount(blockIdentifier?): Promise<number>

Defined in: src/provider/interface.ts:480

Get the number of transactions in a block

Parameters

blockIdentifier?

BlockIdentifier

block identifier

Returns

Promise<number>

Transaction count


waitForBlock()

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

Defined in: src/provider/interface.ts:492

Pause execution until a specified block is created

Parameters

blockIdentifier?

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()

abstract getTransactionByHash(txHash, options?): Promise<TransactionWithHash>

Defined in: src/provider/interface.ts:505

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<TransactionWithHash>

Transaction information


getTransactionByBlockIdAndIndex()

abstract getTransactionByBlockIdAndIndex(blockIdentifier, index, options?): Promise<TransactionWithHash>

Defined in: src/provider/interface.ts:518

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<TransactionWithHash>

Transaction information


getTransactionTrace()

abstract getTransactionTrace(txHash): Promise<TRANSACTION_TRACE | TRANSACTION_TRACE>

Defined in: src/provider/interface.ts:529

Gets the transaction trace

Parameters

txHash

BigNumberish

transaction hash

Returns

Promise<TRANSACTION_TRACE | TRANSACTION_TRACE>

Transaction trace


getTransactionStatus()

abstract getTransactionStatus(transactionHash): Promise<any>

Defined in: src/provider/interface.ts:538

Get the status of a transaction

Parameters

transactionHash

BigNumberish

transaction hash

Returns

Promise<any>

Transaction status


fetch()

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

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

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()

abstract readSpecVersion(): string | undefined

Defined in: src/provider/interface.ts:554

Read channel spec version

Returns

string | undefined

Spec version string or undefined if not set


getSpecVersion()

abstract getSpecVersion(): Promise<string>

Defined in: src/provider/interface.ts:560

Get channel spec version

Returns

Promise<string>

Promise resolving to spec version


setUpSpecVersion()

abstract setUpSpecVersion(): Promise<string>

Defined in: src/provider/interface.ts:566

Setup channel spec version and return it

Returns

Promise<string>

Promise resolving to spec version


getClass()

abstract getClass(classHash, blockIdentifier?): Promise<ContractClassResponse>

Defined in: src/provider/interface.ts:575

Get contract class by hash with optional block identifier

Parameters

classHash

BigNumberish

class hash

blockIdentifier?

BlockIdentifier

block identifier

Returns

Promise<ContractClassResponse>

Contract class


estimateMessageFee()

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

Defined in: src/provider/interface.ts:586

Estimate the fee for a message from L1

Parameters

message

MSG_FROM_L1

L1 message

blockIdentifier?

BlockIdentifier

block identifier

Returns

Promise<MESSAGE_FEE_ESTIMATE | FEE_ESTIMATE>

Fee estimate


getSyncingStats()

abstract getSyncingStats(): Promise<any>

Defined in: src/provider/interface.ts:595

Get node synchronization status

Returns

Promise<any>

Sync status or false if not syncing


getEvents()

abstract getEvents(eventFilter): Promise<EVENTS_CHUNK | EVENTS_CHUNK>

Defined in: src/provider/interface.ts:602

Get events matching the given filter

Parameters

eventFilter

EventFilter | EventFilter

event filter

Returns

Promise<EVENTS_CHUNK | EVENTS_CHUNK>

Events and pagination info


verifyMessageInStarknet()

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

Defined in: src/provider/interface.ts:624

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()

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

Defined in: src/provider/interface.ts:642

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()

abstract prepareInvocations(invocations): Promise<Invocations>

Defined in: src/provider/interface.ts:652

Build bulk invocations with auto-detect declared class

Parameters

invocations

Invocations

array of invocations

Returns

Promise<Invocations>

Prepared invocations


getL1MessagesStatus()

abstract getL1MessagesStatus(transactionHash): Promise<L1L2MessagesStatus | L1L2MessagesStatus>

Defined in: src/provider/interface.ts:659

Get L1 messages status for a transaction

Parameters

transactionHash

BigNumberish

L1 transaction hash

Returns

Promise<L1L2MessagesStatus | L1L2MessagesStatus>

L1 message status


getStorageProof()

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

Defined in: src/provider/interface.ts:671

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()

abstract getCompiledCasm(classHash): Promise<CASM_COMPILED_CONTRACT_CLASS>

Defined in: src/provider/interface.ts:683

Get compiled CASM contract class

Parameters

classHash

BigNumberish

class hash

Returns

Promise<CASM_COMPILED_CONTRACT_CLASS>

Compiled CASM contract class


getEstimateTip()

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

Defined in: src/provider/interface.ts:701

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);