Skip to main content
Version: Next

Class: AccountInterface

Hierarchy

Implemented by

Constructors

constructor

new AccountInterface(): AccountInterface

Returns

AccountInterface

Inherited from

ProviderInterface.constructor

Properties

address

Abstract address: string

Defined in

src/account/interface.ts:35


signer

Abstract signer: SignerInterface

Defined in

src/account/interface.ts:37


cairoVersion

Abstract cairoVersion: CairoVersion

Defined in

src/account/interface.ts:39


channel

Abstract channel: RpcChannel | RpcChannel

Inherited from

ProviderInterface.channel

Defined in

src/provider/interface.ts:47


responseParser

Abstract responseParser: RPCResponseParser

Inherited from

ProviderInterface.responseParser

Defined in

src/provider/interface.ts:49

Methods

estimateInvokeFee

estimateInvokeFee(calls, estimateFeeDetails?): Promise<EstimateFeeResponseOverhead>

Estimate Fee for executing an INVOKE transaction on starknet

Parameters

NameTypeDescription
callsAllowArray<Call>the invocation object containing: - contractAddress - the address of the contract - entrypoint - the entrypoint of the contract - calldata? - (defaults to []) the calldata
estimateFeeDetails?EstimateFeeDetailsblockIdentifier? - nonce? = 0 - skipValidate? - default true - tip? - prioritize order of transactions in the mempool. - accountDeploymentData? - deploy an account contract (substitution for deploy account transaction) - paymasterData? - entity other than the transaction sender to pay the transaction fees(EIP-4337) - nonceDataAvailabilityMode? - allows users to choose their preferred data availability mode (Volition) - feeDataAvailabilityMode? - allows users to choose their preferred data availability mode (Volition) - version? - specify ETransactionVersion - V3 Transactions fee is in fri, oldV transactions fee is in wei

Returns

Promise<EstimateFeeResponseOverhead>

response from estimate_fee

Defined in

src/account/interface.ts:62


estimateDeclareFee

estimateDeclareFee(contractPayload, estimateFeeDetails?): Promise<EstimateFeeResponseOverhead>

Estimate Fee for executing a DECLARE transaction on starknet

Parameters

NameTypeDescription
contractPayloadDeclareContractPayloadthe payload object containing: - contract - the compiled contract to be declared - casm? - compiled cairo assembly. Cairo1(casm or compiledClassHash are required) - classHash? - the class hash of the compiled contract. Precalculate for faster execution. - compiledClassHash?: class hash of the cairo assembly. Cairo1(casm or compiledClassHash are required)
estimateFeeDetails?EstimateFeeDetailsblockIdentifier? - nonce? = 0 - skipValidate? - default true - tip? - prioritize order of transactions in the mempool. - accountDeploymentData? - deploy an account contract (substitution for deploy account transaction) - paymasterData? - entity other than the transaction sender to pay the transaction fees(EIP-4337) - nonceDataAvailabilityMode? - allows users to choose their preferred data availability mode (Volition) - feeDataAvailabilityMode? - allows users to choose their preferred data availability mode (Volition) - version? - specify ETransactionVersion - V3 Transactions fee is in fri, oldV transactions fee is in wei

Returns

Promise<EstimateFeeResponseOverhead>

response from estimate_fee

Defined in

src/account/interface.ts:89


estimateAccountDeployFee

estimateAccountDeployFee(contractPayload, estimateFeeDetails?): Promise<EstimateFeeResponseOverhead>

Estimate Fee for executing a DEPLOY_ACCOUNT transaction on starknet

Parameters

NameTypeDescription
contractPayloadDeployAccountContractPayloadclassHash - the class hash of the compiled contract. - constructorCalldata? - constructor data; - contractAddress? - future account contract address. Precalculate for faster execution. - addressSalt? - salt used for calculation of the contractAddress. Required if contractAddress is provided.
estimateFeeDetails?EstimateFeeDetailsblockIdentifier? - nonce? = 0 - skipValidate? - default true - tip? - prioritize order of transactions in the mempool. - paymasterData? - entity other than the transaction sender to pay the transaction fees(EIP-4337) - nonceDataAvailabilityMode? - allows users to choose their preferred data availability mode (Volition) - feeDataAvailabilityMode? - allows users to choose their preferred data availability mode (Volition) - version? - specify ETransactionVersion - V3 Transactions fee is in fri, oldV transactions fee is in wei

Returns

Promise<EstimateFeeResponseOverhead>

response from estimate_fee

Defined in

src/account/interface.ts:115


estimateDeployFee

estimateDeployFee(deployContractPayload, estimateFeeDetails?): Promise<EstimateFeeResponseOverhead>

Estimate Fee for executing a Deployer DEPLOY transaction on starknet This is different from the normal DEPLOY transaction as it goes through a Deployer Contract

Parameters

NameTypeDescription
deployContractPayloadUniversalDeployerContractPayload | UniversalDeployerContractPayload[]array or singular - classHash: computed class hash of compiled contract - salt: address salt - unique: bool if true ensure unique salt - constructorCalldata: constructor calldata
estimateFeeDetails?EstimateFeeDetailsblockIdentifier? - nonce? - skipValidate? - default true - tip? - prioritize order of transactions in the mempool. - accountDeploymentData? - deploy an account contract (substitution for deploy account transaction) - paymasterData? - entity other than the transaction sender to pay the transaction fees(EIP-4337) - nonceDataAvailabilityMode? - allows users to choose their preferred data availability mode (Volition) - feeDataAvailabilityMode? - allows users to choose their preferred data availability mode (Volition) - version? - specify ETransactionVersion - V3 Transactions fee is in fri, oldV transactions fee is in wei

Returns

Promise<EstimateFeeResponseOverhead>

Defined in

src/account/interface.ts:141


estimateFeeBulk

estimateFeeBulk(invocations, details?): Promise<EstimateFeeResponseBulkOverhead>

Estimate Fee for executing a list of transactions on starknet Contract must be deployed for fee estimation to be possible

Parameters

NameTypeDescription
invocationsInvocationsarray of transaction object containing : - type - the type of transaction : 'DECLARE' | (multi)'DEPLOY' | (multi)'INVOKE_FUNCTION' | 'DEPLOY_ACCOUNT' - payload - the payload of the transaction
details?EstimateFeeDetailsblockIdentifier? - nonce? - skipValidate? - default true - tip? - prioritize order of transactions in the mempool. - accountDeploymentData? - deploy an account contract (substitution for deploy account transaction) - paymasterData? - entity other than the transaction sender to pay the transaction fees(EIP-4337) - nonceDataAvailabilityMode? - allows users to choose their preferred data availability mode (Volition) - feeDataAvailabilityMode? - allows users to choose their preferred data availability mode (Volition) - version? - specify ETransactionVersion - V3 Transactions fee is in fri, oldV transactions fee is in wei

Returns

Promise<EstimateFeeResponseBulkOverhead>

response from estimate_fee

Defined in

src/account/interface.ts:167


simulateTransaction

simulateTransaction(invocations, details?): Promise<SimulateTransactionOverheadResponse>

Simulates an array of transaction and returns an array of transaction trace and estimated fee.

Parameters

NameTypeDescription
invocationsInvocationsInvocations containing: - type - transaction type: DECLARE, (multi)DEPLOY, DEPLOY_ACCOUNT, (multi)INVOKE_FUNCTION
details?SimulateTransactionDetailsSimulateTransactionDetails

Returns

Promise<SimulateTransactionOverheadResponse>

response from simulate_transaction

Defined in

src/account/interface.ts:181


execute

execute(transactions, transactionsDetail?): Promise<{ transaction_hash: string }>

Invoke execute function in account contract

Parameters

NameTypeDescription
transactionsAllowArray<Call>the invocation object or an array of them, containing: - contractAddress - the address of the contract - entrypoint - the entrypoint of the contract - calldata - (defaults to []) the calldata - signature - (defaults to []) the signature
transactionsDetail?InvocationsDetailsAdditional optional parameters for the transaction

Returns

Promise<{ transaction_hash: string }>

response from addTransaction

Defined in

src/account/interface.ts:198


estimatePaymasterTransactionFee

estimatePaymasterTransactionFee(calls, paymasterDetails): Promise<PaymasterFeeEstimate>

Estimate Fee for executing a paymaster transaction on starknet

Parameters

NameTypeDescription
callsCall[]the invocation object containing: - contractAddress - the address of the contract - entrypoint - the entrypoint of the contract - calldata - (defaults to []) the calldata
paymasterDetailsPaymasterDetailsthe paymaster details containing: - feeMode - the fee mode - deploymentData - the deployment data (optional) - timeBounds - the time bounds (optional)

Returns

Promise<PaymasterFeeEstimate>

response extracting fee from buildPaymasterTransaction

Defined in

src/account/interface.ts:218


buildPaymasterTransaction

buildPaymasterTransaction(calls, paymasterDetails): Promise<PreparedTransaction>

Build a paymaster transaction

Parameters

NameTypeDescription
callsCall[]the invocation object containing: - contractAddress - the address of the contract - entrypoint - the entrypoint of the contract - calldata - (defaults to []) the calldata
paymasterDetailsPaymasterDetailsthe paymaster details containing: - feeMode - the fee mode - deploymentData - the deployment data (optional) - timeBounds - the time bounds (optional)

Returns

Promise<PreparedTransaction>

the prepared transaction

Defined in

src/account/interface.ts:238


executePaymasterTransaction

executePaymasterTransaction(calls, paymasterDetails, maxFeeInGasToken?): Promise<{ transaction_hash: string }>

Execute a paymaster transaction

Assert that the gas token value is equal to the provided gas fees Assert that the calls are strictly equal to the returned calls. Assert that the gas token (in gas token) price is not too high, if provided. Assert that typedData to signed is strictly equal to the provided typedData.

Parameters

NameTypeDescription
callsCall[]the invocation object containing: - contractAddress - the address of the contract - entrypoint - the entrypoint of the contract - calldata - (defaults to []) the calldata
paymasterDetailsPaymasterDetailsthe paymaster details containing: - feeMode - the fee mode (sponsored or default) - deploymentData - the deployment data (optional) - timeBounds - the time bounds when the transaction is valid (optional) - executeAfter and executeBefore expected to be in seconds (BLOCK_TIMESTAMP)
maxFeeInGasToken?BigNumberishthe max fee acceptable to pay in gas token (optional)

Returns

Promise<{ transaction_hash: string }>

the tarnsaction hash if successful, otherwise an error is thrown

Defined in

src/account/interface.ts:265


declare

declare(contractPayload, transactionsDetail?): Promise<{ class_hash: string ; transaction_hash: string }>

Declares a given compiled contract (json) to starknet

Parameters

NameTypeDescription
contractPayloadDeclareContractPayloadtransaction payload to be deployed containing: - contract: compiled contract code - (optional) classHash: computed class hash of compiled contract. Pre-compute it for faster execution. - (required for Cairo1 without compiledClassHash) casm: CompiledContract | string; - (optional for Cairo1 with casm) compiledClassHash: compiled class hash from casm. Pre-compute it for faster execution.
transactionsDetail?InvocationsDetailsInvocationsDetails

Returns

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

a confirmation of sending a transaction on the starknet contract

Defined in

src/account/interface.ts:283


deploy

deploy(payload, details?): Promise<MultiDeployContractResponse>

Deploys a declared contract to starknet - using a Deployer Contract support multicall

Parameters

NameTypeDescription
payloadUniversalDeployerContractPayload | UniversalDeployerContractPayload[]classHash: computed class hash of compiled contract - [constructorCalldata] contract constructor calldata - [salt=pseudorandom] deploy address salt - [unique=true] ensure unique salt
details?InvocationsDetailsInvocationsDetails

Returns

Promise<MultiDeployContractResponse>

  • contract_address[]
  • transaction_hash

Defined in

src/account/interface.ts:303


deployContract

deployContract(payload, details?): Promise<DeployContractUDCResponse>

Simplify deploy simulating old DeployContract with same response + Deployer specific response Internal wait for L2 transaction, support multicall

Parameters

NameTypeDescription
payloadUniversalDeployerContractPayload | UniversalDeployerContractPayload[]classHash: computed class hash of compiled contract - [constructorCalldata] contract constructor calldata - [salt=pseudorandom] deploy address salt - [unique=true] ensure unique salt
details?InvocationsDetailsInvocationsDetails

Returns

Promise<DeployContractUDCResponse>

  • contract_address
  • transaction_hash
  • address
  • deployer
  • unique
  • classHash
  • calldata_len
  • calldata
  • salt

Defined in

src/account/interface.ts:330


declareAndDeploy

declareAndDeploy(payload, details?): Promise<DeclareDeployUDCResponse>

Declares and Deploy a given compiled contract (json) to starknet using a Deployer. Internal wait for L2 transaction, do not support multicall Method will pass even if contract is already declared (internal using DeclareIfNot)

Parameters

NameTypeDescription
payloadDeclareAndDeployContractPayloadcontract: compiled contract code - [casm=cairo1]: CairoAssembly | undefined; - [compiledClassHash]: string | undefined; - [classHash]: computed class hash of compiled contract - [constructorCalldata] contract constructor calldata - [salt=pseudorandom] deploy address salt - [unique=true] ensure unique salt
details?InvocationsDetailsInvocationsDetails

Returns

Promise<DeclareDeployUDCResponse>

  • declare
    • transaction_hash
  • deploy
    • contract_address
    • transaction_hash
    • address
    • deployer
    • unique
    • classHash
    • calldata_len
    • calldata
    • salt

Defined in

src/account/interface.ts:364


deployAccount

deployAccount(contractPayload, transactionsDetail?): Promise<DeployContractResponse>

Deploy the account on Starknet

Parameters

NameTypeDescription
contractPayloadDeployAccountContractPayloadtransaction payload to be deployed containing: - classHash: computed class hash of compiled contract - optional constructor calldata - optional address salt - optional contractAddress
transactionsDetail?InvocationsDetailsInvocationsDetails

Returns

Promise<DeployContractResponse>

a confirmation of sending a transaction on the starknet contract

Defined in

src/account/interface.ts:381


signMessage

signMessage(typedData): Promise<Signature>

Signs a TypedData object for off-chain usage with the Starknet private key and returns the signature This adds a message prefix so it can't be interchanged with transactions

Parameters

NameTypeDescription
typedDataTypedDataTypedData object to be signed

Returns

Promise<Signature>

the signature of the TypedData object

Throws

if typedData is not a valid TypedData

Defined in

src/account/interface.ts:394


hashMessage

hashMessage(typedData): Promise<string>

Hash a TypedData object with Pedersen hash and return the hash This adds a message prefix so it can't be interchanged with transactions

Parameters

NameTypeDescription
typedDataTypedDataTypedData object to be hashed

Returns

Promise<string>

the hash of the TypedData object

Throws

if typedData is not a valid TypedData

Defined in

src/account/interface.ts:404


getNonce

getNonce(blockIdentifier?): Promise<string>

Gets the nonce of the account with respect to a specific block

Parameters

NameTypeDescription
blockIdentifier?BlockIdentifieroptional blockIdentifier. Defaults to 'pending'

Returns

Promise<string>

nonce of the account

Defined in

src/account/interface.ts:412


getChainId

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

Gets the Starknet chain Id

Returns

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

the chain Id

Inherited from

ProviderInterface.getChainId

Defined in

src/provider/interface.ts:56


callContract

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

Calls a function on the Starknet contract.

Parameters

NameTypeDescription
callCalltransaction to be called
blockIdentifier?BlockIdentifierblock identifier

Returns

Promise<CallContractResponse>

the result of the function on the smart contract.

Inherited from

ProviderInterface.callContract

Defined in

src/provider/interface.ts:65


getBlock

getBlock(): Promise<{ transactions: string[] ; parent_hash: 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 }>

Gets the block information

Returns

Promise<{ transactions: string[] ; parent_hash: 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 }>

the block object

Inherited from

ProviderInterface.getBlock

Defined in

src/provider/interface.ts:76

getBlock(blockIdentifier): Promise<{ transactions: string[] ; parent_hash: 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 }>

Parameters

NameType
blockIdentifier"pre_confirmed"

Returns

Promise<{ transactions: string[] ; parent_hash: 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 }>

Inherited from

ProviderInterface.getBlock

Defined in

src/provider/interface.ts:77

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 ; transactions: string[] }>

Parameters

NameType
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 ; transactions: string[] }>

Inherited from

ProviderInterface.getBlock

Defined in

src/provider/interface.ts:78

getBlock(blockIdentifier): Promise<GetBlockResponse>

Parameters

NameType
blockIdentifierBlockIdentifier

Returns

Promise<GetBlockResponse>

Inherited from

ProviderInterface.getBlock

Defined in

src/provider/interface.ts:79


getClassAt

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

Gets the contract class of the deployed contract.

Parameters

NameTypeDescription
contractAddressBigNumberishcontract address
blockIdentifier?BlockIdentifierblock identifier

Returns

Promise<ContractClassResponse>

Contract class of compiled contract

Inherited from

ProviderInterface.getClassAt

Defined in

src/provider/interface.ts:88


getL1GasPrice

getL1GasPrice(blockIdentifier?): Promise<string>

Gets the price of l1 gas in the block

Parameters

NameTypeDescription
blockIdentifier?BlockIdentifierblock identifier

Returns

Promise<string>

gas price of the block

Inherited from

ProviderInterface.getL1GasPrice

Defined in

src/provider/interface.ts:99


getL1MessageHash

getL1MessageHash(l2TxHash): Promise<string>

Get L1 message hash from L2 transaction hash

Parameters

NameTypeDescription
l2TxHashBigNumberishL2 transaction hash

Returns

Promise<string>

Hex string of L1 message hash

Example

In Sepolia Testnet :

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

Inherited from

ProviderInterface.getL1MessageHash

Defined in

src/provider/interface.ts:112


getClassHashAt

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

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

Parameters

NameTypeDescription
contractAddressBigNumberishcontract address
blockIdentifier?BlockIdentifierblock identifier

Returns

Promise<string>

Class hash

Inherited from

ProviderInterface.getClassHashAt

Defined in

src/provider/interface.ts:121


getClassByHash

getClassByHash(classHash): Promise<ContractClassResponse>

Returns the contract class deployed under the given class hash.

Parameters

NameTypeDescription
classHashBigNumberishclass hash

Returns

Promise<ContractClassResponse>

Contract class of compiled contract

Inherited from

ProviderInterface.getClassByHash

Defined in

src/provider/interface.ts:132


getNonceForAddress

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

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

Parameters

NameTypeDescription
contractAddressBigNumberishcontract address
blockIdentifier?BlockIdentifier-

Returns

Promise<string>

the hex nonce

Inherited from

ProviderInterface.getNonceForAddress

Defined in

src/provider/interface.ts:140


getStorageAt

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

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

Parameters

NameTypeDescription
contractAddressBigNumberish
keyBigNumberishfrom getStorageVarAddress('<STORAGE_VARIABLE_NAME>') (WIP)
blockIdentifier?BlockIdentifierblock identifier

Returns

Promise<string>

the value of the storage variable

Inherited from

ProviderInterface.getStorageAt

Defined in

src/provider/interface.ts:153


getTransaction

getTransaction(transactionHash): Promise<TransactionWithHash>

Gets the transaction information from a tx id.

Parameters

NameType
transactionHashBigNumberish

Returns

Promise<TransactionWithHash>

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

Inherited from

ProviderInterface.getTransaction

Defined in

src/provider/interface.ts:165


getTransactionReceipt

getTransactionReceipt(transactionHash): Promise<GetTransactionReceiptResponse>

Gets the transaction receipt from a tx hash.

Parameters

NameType
transactionHashBigNumberish

Returns

Promise<GetTransactionReceiptResponse>

the transaction receipt object

Inherited from

ProviderInterface.getTransactionReceipt

Defined in

src/provider/interface.ts:173


deployAccountContract

deployAccountContract(payload, details): Promise<DeployContractResponse>

Deploys a given compiled Account contract (json) to starknet

Parameters

NameTypeDescription
payloadDeployAccountContractPayloadpayload to be deployed containing: - compiled contract code - constructor calldata - address salt
detailsInvocationsDetailsWithNonce-

Returns

Promise<DeployContractResponse>

a confirmation of sending a transaction on the starknet contract

Inherited from

ProviderInterface.deployAccountContract

Defined in

src/provider/interface.ts:186


invokeFunction

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

Invokes a function on starknet

Parameters

NameTypeDescription
invocationInvocationthe 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
detailsInvocationsDetailsWithNonceoptional details containing: - nonce - optional nonce - version - optional version - maxFee - optional maxFee

Returns

Promise<{ transaction_hash: string }>

response from addTransaction

Inherited from

ProviderInterface.invokeFunction

Defined in

src/provider/interface.ts:205


declareContract

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

Declares a given compiled contract (json) to starknet

Parameters

NameTypeDescription
transactionDeclareContractTransactiontransaction payload to be deployed containing: - compiled contract code - sender address - signature
detailsInvocationsDetailsWithNonceInvocation 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

Inherited from

ProviderInterface.declareContract

Defined in

src/provider/interface.ts:222


getInvokeEstimateFee

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

Estimates the fee for a given INVOKE transaction

Parameters

NameTypeDescription
invocationInvocationthe 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
detailsInvocationsDetailsWithNonceoptional 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

Inherited from

ProviderInterface.getInvokeEstimateFee

Defined in

src/provider/interface.ts:250


getDeclareEstimateFee

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

Estimates the fee for a given DECLARE transaction

Parameters

NameTypeDescription
transactionDeclareContractTransactiontransaction payload to be declared containing: - compiled contract code - sender address - signature - (defaults to []) the signature
detailsInvocationsDetailsWithNonceoptional 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

Inherited from

ProviderInterface.getDeclareEstimateFee

Defined in

src/provider/interface.ts:280


getDeployAccountEstimateFee

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

Estimates the fee for a given DEPLOY_ACCOUNT transaction

Parameters

NameTypeDescription
transactionDeployAccountContractTransactiontransaction payload to be deployed containing: - classHash - constructorCalldata - addressSalt - signature - (defaults to []) the signature
detailsInvocationsDetailsWithNonceoptional 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

Inherited from

ProviderInterface.getDeployAccountEstimateFee

Defined in

src/provider/interface.ts:311


getEstimateFeeBulk

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

Estimates the fee for a list of INVOKE transaction

Parameters

NameTypeDescription
invocationsAccountInvocationsAccountInvocations - Complete invocations array with account details
options?getEstimateFeeBulkOptionsgetEstimateFeeBulkOptions - (optional) blockIdentifier - BlockIdentifier

Returns

Promise<EstimateFeeResponseBulkOverhead>

the estimated fee

Inherited from

ProviderInterface.getEstimateFeeBulk

Defined in

src/provider/interface.ts:326


waitForTransaction

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

Wait for the transaction to be accepted

Parameters

NameTypeDescription
txHashBigNumberishtransaction hash
options?waitForTransactionOptionswaitForTransactionOptions - (optional) retryInterval: number | undefined; - (optional) successStates: TransactionStatus[] | undefined;

Returns

Promise<GetTransactionReceiptResponse>

GetTransactionReceiptResponse

Inherited from

ProviderInterface.waitForTransaction

Defined in

src/provider/interface.ts:339


getSimulateTransaction

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

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

Parameters

NameTypeDescription
invocationsAccountInvocationsAccountInvocations - Complete invocations array with account details
options?getSimulateTransactionOptionsgetSimulateTransactionOptions - (optional) blockIdentifier - block identifier - (optional) skipValidate - skip cairo validate method - (optional) skipExecute - skip cairo execute method

Returns

Promise<SimulateTransactionOverheadResponse>

an array of transaction trace and estimated fee

Inherited from

ProviderInterface.getSimulateTransaction

Defined in

src/provider/interface.ts:354


getStateUpdate

getStateUpdate(blockIdentifier?): Promise<StateUpdateResponse>

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

Parameters

NameTypeDescription
blockIdentifier?BlockIdentifierblock identifier

Returns

Promise<StateUpdateResponse>

StateUpdateResponse

Inherited from

ProviderInterface.getStateUpdate

Defined in

src/provider/interface.ts:365


getBlockStateUpdate

getBlockStateUpdate(): Promise<{ block_hash: string ; new_root: string ; old_root: string ; state_diff: { storage_diffs: { address: string; storage_entries: { key: string; value: string; }[]; }[]; deprecated_declared_classes: string[]; declared_classes: { class_hash: string; compiled_class_hash: string; }[]; deployed_contracts: { address: string; class_hash: string; }[]; replaced_classes: { contract_address: string; class_hash: string; }[]; nonces: { nonce: string; contract_address: string; }[]; } }>

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: { address: string; storage_entries: { key: string; value: string; }[]; }[]; deprecated_declared_classes: string[]; declared_classes: { class_hash: string; compiled_class_hash: string; }[]; deployed_contracts: { address: string; class_hash: string; }[]; replaced_classes: { contract_address: string; class_hash: string; }[]; nonces: { nonce: string; contract_address: string; }[]; } }>

StateUpdateResponse

Inherited from

ProviderInterface.getBlockStateUpdate

Defined in

src/provider/interface.ts:374

getBlockStateUpdate(blockIdentifier): Promise<PRE_CONFIRMED_STATE_UPDATE>

Parameters

NameType
blockIdentifier"pre_confirmed"

Returns

Promise<PRE_CONFIRMED_STATE_UPDATE>

Inherited from

ProviderInterface.getBlockStateUpdate

Defined in

src/provider/interface.ts:375

getBlockStateUpdate(blockIdentifier): Promise<{ block_hash: string ; new_root: string ; old_root: string ; state_diff: { storage_diffs: { address: string; storage_entries: { key: string; value: string; }[]; }[]; deprecated_declared_classes: string[]; declared_classes: { class_hash: string; compiled_class_hash: string; }[]; deployed_contracts: { address: string; class_hash: string; }[]; replaced_classes: { contract_address: string; class_hash: string; }[]; nonces: { nonce: string; contract_address: string; }[]; } }>

Parameters

NameType
blockIdentifier"latest"

Returns

Promise<{ block_hash: string ; new_root: string ; old_root: string ; state_diff: { storage_diffs: { address: string; storage_entries: { key: string; value: string; }[]; }[]; deprecated_declared_classes: string[]; declared_classes: { class_hash: string; compiled_class_hash: string; }[]; deployed_contracts: { address: string; class_hash: string; }[]; replaced_classes: { contract_address: string; class_hash: string; }[]; nonces: { nonce: string; contract_address: string; }[]; } }>

Inherited from

ProviderInterface.getBlockStateUpdate

Defined in

src/provider/interface.ts:378

getBlockStateUpdate(blockIdentifier?): Promise<StateUpdateResponse>

Parameters

NameType
blockIdentifier?BlockIdentifier

Returns

Promise<StateUpdateResponse>

Inherited from

ProviderInterface.getBlockStateUpdate

Defined in

src/provider/interface.ts:379


getContractVersion

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

Gets the contract version from the provided address

Parameters

NameTypeDescription
contractAddressBigNumberishstring
classHash?undefinedundefined
options?getContractVersionOptionsgetContractVersionOptions - (optional) compiler - (default true) extract compiler version using type tactic from abi - (optional) blockIdentifier - block identifier

Returns

Promise<ContractVersion>

Inherited from

ProviderInterface.getContractVersion

Defined in

src/provider/interface.ts:391

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

Gets the contract version from the provided address

Parameters

NameTypeDescription
contractAddressundefinedundefined
classHashBigNumberish
options?getContractVersionOptionsgetContractVersionOptions - (optional) compiler - (default true) extract compiler version using type tactic from abi - (optional) blockIdentifier - block identifier

Returns

Promise<ContractVersion>

Inherited from

ProviderInterface.getContractVersion

Defined in

src/provider/interface.ts:405


getBlockLatestAccepted

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

Get the most recent accepted block hash and number

Returns

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

Object containing block hash and number

Inherited from

ProviderInterface.getBlockLatestAccepted

Defined in

src/provider/interface.ts:416


getBlockNumber

getBlockNumber(): Promise<number>

Get the most recent accepted block number

Returns

Promise<number>

Number of the latest block

Inherited from

ProviderInterface.getBlockNumber

Defined in

src/provider/interface.ts:422


getBlockWithTxHashes

getBlockWithTxHashes(blockIdentifier?): Promise<any>

Get block information with transaction hashes

Parameters

NameTypeDescription
blockIdentifier?BlockIdentifierblock identifier

Returns

Promise<any>

Block with transaction hashes

Inherited from

ProviderInterface.getBlockWithTxHashes

Defined in

src/provider/interface.ts:429


getBlockWithTxs

getBlockWithTxs(blockIdentifier?): Promise<any>

Get block information with full transactions

Parameters

NameTypeDescription
blockIdentifier?BlockIdentifierblock identifier

Returns

Promise<any>

Block with full transactions

Inherited from

ProviderInterface.getBlockWithTxs

Defined in

src/provider/interface.ts:436


getBlockWithReceipts

getBlockWithReceipts(blockIdentifier?): Promise<any>

Get block information with transaction receipts

Parameters

NameTypeDescription
blockIdentifier?BlockIdentifierblock identifier

Returns

Promise<any>

Block with transaction receipts

Inherited from

ProviderInterface.getBlockWithReceipts

Defined in

src/provider/interface.ts:443


getBlockTransactionsTraces

getBlockTransactionsTraces(blockIdentifier?): Promise<any>

Get transaction traces for all transactions in a block

Parameters

NameTypeDescription
blockIdentifier?BlockIdentifierblock identifier

Returns

Promise<any>

Array of transaction traces

Inherited from

ProviderInterface.getBlockTransactionsTraces

Defined in

src/provider/interface.ts:450


getBlockTransactionCount

getBlockTransactionCount(blockIdentifier?): Promise<number>

Get the number of transactions in a block

Parameters

NameTypeDescription
blockIdentifier?BlockIdentifierblock identifier

Returns

Promise<number>

Transaction count

Inherited from

ProviderInterface.getBlockTransactionCount

Defined in

src/provider/interface.ts:457


waitForBlock

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

Pause execution until a specified block is created

Parameters

NameTypeDescription
blockIdentifier?BlockIdentifierblock number or tag
retryInterval?numbermilliseconds between requests (default: 5000)

Returns

Promise<void>

Example

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

Inherited from

ProviderInterface.waitForBlock

Defined in

src/provider/interface.ts:469


getTransactionByHash

getTransactionByHash(txHash): Promise<TransactionWithHash>

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

Parameters

NameTypeDescription
txHashBigNumberishtransaction hash

Returns

Promise<TransactionWithHash>

Transaction information

Inherited from

ProviderInterface.getTransactionByHash

Defined in

src/provider/interface.ts:480


getTransactionByBlockIdAndIndex

getTransactionByBlockIdAndIndex(blockIdentifier, index): Promise<TransactionWithHash>

Gets transaction by block identifier and index

Parameters

NameTypeDescription
blockIdentifierBlockIdentifierblock identifier
indexnumbertransaction index in the block

Returns

Promise<TransactionWithHash>

Transaction information

Inherited from

ProviderInterface.getTransactionByBlockIdAndIndex

Defined in

src/provider/interface.ts:488


getTransactionTrace

getTransactionTrace(txHash): Promise<TRANSACTION_TRACE | TRANSACTION_TRACE>

Gets the transaction trace

Parameters

NameTypeDescription
txHashBigNumberishtransaction hash

Returns

Promise<TRANSACTION_TRACE | TRANSACTION_TRACE>

Transaction trace

Inherited from

ProviderInterface.getTransactionTrace

Defined in

src/provider/interface.ts:498


getTransactionStatus

getTransactionStatus(transactionHash): Promise<any>

Get the status of a transaction

Parameters

NameTypeDescription
transactionHashBigNumberishtransaction hash

Returns

Promise<any>

Transaction status

Inherited from

ProviderInterface.getTransactionStatus

Defined in

src/provider/interface.ts:507


fetch

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

Direct RPC method call

Parameters

NameTypeDescription
methodstringRPC method name
params?objectmethod parameters
id?string | numberrequest ID

Returns

Promise<any>

RPC response

Inherited from

ProviderInterface.fetch

Defined in

src/provider/interface.ts:517


readSpecVersion

readSpecVersion(): undefined | string

Read channel spec version

Returns

undefined | string

Spec version string or undefined if not set

Inherited from

ProviderInterface.readSpecVersion

Defined in

src/provider/interface.ts:523


getSpecVersion

getSpecVersion(): Promise<string>

Get channel spec version

Returns

Promise<string>

Promise resolving to spec version

Inherited from

ProviderInterface.getSpecVersion

Defined in

src/provider/interface.ts:529


setUpSpecVersion

setUpSpecVersion(): Promise<string>

Setup channel spec version and return it

Returns

Promise<string>

Promise resolving to spec version

Inherited from

ProviderInterface.setUpSpecVersion

Defined in

src/provider/interface.ts:535


getClass

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

Get contract class by hash with optional block identifier

Parameters

NameTypeDescription
classHashBigNumberishclass hash
blockIdentifier?BlockIdentifierblock identifier

Returns

Promise<ContractClassResponse>

Contract class

Inherited from

ProviderInterface.getClass

Defined in

src/provider/interface.ts:544


estimateMessageFee

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

Estimate the fee for a message from L1

Parameters

NameTypeDescription
messageMSG_FROM_L1L1 message
blockIdentifier?BlockIdentifierblock identifier

Returns

Promise<FEE_ESTIMATE | MESSAGE_FEE_ESTIMATE>

Fee estimate

Inherited from

ProviderInterface.estimateMessageFee

Defined in

src/provider/interface.ts:555


getSyncingStats

getSyncingStats(): Promise<any>

Get node synchronization status

Returns

Promise<any>

Sync status or false if not syncing

Inherited from

ProviderInterface.getSyncingStats

Defined in

src/provider/interface.ts:564


getEvents

getEvents(eventFilter): Promise<EVENTS_CHUNK | EVENTS_CHUNK>

Get events matching the given filter

Parameters

NameTypeDescription
eventFilterEventFilter | EventFilterevent filter

Returns

Promise<EVENTS_CHUNK | EVENTS_CHUNK>

Events and pagination info

Inherited from

ProviderInterface.getEvents

Defined in

src/provider/interface.ts:571


verifyMessageInStarknet

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

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

Parameters

NameTypeDescription
messageTypedData | BigNumberishTypedData object to be verified, or message hash to be verified.
signatureSignaturesignature of the message.
accountAddressBigNumberishaddress of the account that has signed the message.
signatureVerificationFunctionName?stringif account contract with non standard account verification function name.
signatureVerificationResponse?Objectif account contract with non standard response of verification function.
signatureVerificationResponse.okResponsestring[]-
signatureVerificationResponse.nokResponsestring[]-
signatureVerificationResponse.errorstring[]-

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

Inherited from

ProviderInterface.verifyMessageInStarknet

Defined in

src/provider/interface.ts:593


isClassDeclared

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

Test if class is already declared

Parameters

NameTypeDescription
contractClassIdentifierContractClassIdentifiercontract class identifier
blockIdentifier?BlockIdentifierblock identifier

Returns

Promise<boolean>

true if class is declared

Inherited from

ProviderInterface.isClassDeclared

Defined in

src/provider/interface.ts:611


prepareInvocations

prepareInvocations(invocations): Promise<Invocations>

Build bulk invocations with auto-detect declared class

Parameters

NameTypeDescription
invocationsInvocationsarray of invocations

Returns

Promise<Invocations>

Prepared invocations

Inherited from

ProviderInterface.prepareInvocations

Defined in

src/provider/interface.ts:621


getL1MessagesStatus

getL1MessagesStatus(transactionHash): Promise<L1L2MessagesStatus | L1L2MessagesStatus>

Get L1 messages status for a transaction

Parameters

NameTypeDescription
transactionHashBigNumberishL1 transaction hash

Returns

Promise<L1L2MessagesStatus | L1L2MessagesStatus>

L1 message status

Inherited from

ProviderInterface.getL1MessagesStatus

Defined in

src/provider/interface.ts:628


getStorageProof

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

Get Merkle paths in state tries

Parameters

NameTypeDescription
classHashesBigNumberish[]class hashes
contractAddressesBigNumberish[]contract addresses
contractsStorageKeysCONTRACT_STORAGE_KEYS[]storage keys
blockIdentifier?BlockIdentifierblock identifier

Returns

Promise<StorageProof>

Storage proof

Inherited from

ProviderInterface.getStorageProof

Defined in

src/provider/interface.ts:640


getCompiledCasm

getCompiledCasm(classHash): Promise<CASM_COMPILED_CONTRACT_CLASS>

Get compiled CASM contract class

Parameters

NameTypeDescription
classHashBigNumberishclass hash

Returns

Promise<CASM_COMPILED_CONTRACT_CLASS>

Compiled CASM contract class

Inherited from

ProviderInterface.getCompiledCasm

Defined in

src/provider/interface.ts:652


getEstimateTip

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

Get transaction tip estimation based on network analysis

Parameters

NameTypeDescription
blockIdentifier?BlockIdentifierblock identifier to analyze from
options?TipAnalysisOptionstip 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);

Inherited from

ProviderInterface.getEstimateTip

Defined in

src/provider/interface.ts:670