Class: WalletAccount
Interface for interacting with Starknet account contracts
Extends ProviderInterface to provide account-specific functionality including:
- Transaction execution and signing
- Fee estimation for various transaction types
- Contract deployment through UDC (Universal Deployer Contract)
- Paymaster support for sponsored transactions
- EIP-712 message signing
Remarks
Implementations of this interface typically handle the complexities of:
- Nonce management
- Transaction signing with the account's private key
- Interaction with the account contract's execute entrypoint
Hierarchy
↳
WalletAccount
Implements
Constructors
constructor
• new WalletAccount(options): WalletAccount
Parameters
| Name | Type |
|---|---|
options | WalletAccountOptions |
Returns
Overrides
Defined in
Properties
walletProvider
• walletProvider: StarknetWalletProvider
Defined in
signer
• signer: SignerInterface
Signer instance for signing transactions and messages
Implementation of
Inherited from
Defined in
address
• address: string
The address of the account contract on Starknet
Implementation of
Inherited from
Defined in
cairoVersion
• cairoVersion: CairoVersion
Cairo version of the account contract implementation
Implementation of
Inherited from
Defined in
transactionVersion
• Readonly transactionVersion: "0x3"
Inherited from
Defined in
paymaster
• paymaster: PaymasterInterface
Inherited from
Defined in
deployer
• deployer: Deployer
Optional deployer instance for custom contract deployment logic
Default
Uses default UDC (Universal Deployer Contract) if not specified
Implementation of
Inherited from
Defined in
defaultTipType
• defaultTipType: TipType
Inherited from
Defined in
deploySelf
• deploySelf: (__namedParameters: DeployAccountContractPayload, details: UniversalDetails) => Promise<DeployContractResponse>
Type declaration
▸ («destructured», details?): Promise<DeployContractResponse>
Parameters
| Name | Type |
|---|---|
«destructured» | DeployAccountContractPayload |
details | UniversalDetails |
Returns
Promise<DeployContractResponse>
Inherited from
Defined in
responseParser
• responseParser: RPCResponseParser
Implementation of
AccountInterface.responseParser
Inherited from
Defined in
channel
• channel: RpcChannel | RpcChannel
Implementation of
Inherited from
Defined in
getStateUpdate
• getStateUpdate: () => 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 }[] } }>(blockIdentifier: "pre_confirmed") => Promise<PRE_CONFIRMED_STATE_UPDATE>(blockIdentifier: "latest") => 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 }[] } }>(blockIdentifier?: BlockIdentifier) => Promise<StateUpdateResponse>
Type declaration
▸ (): 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 }[] } }>
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 }[] } }>
▸ (blockIdentifier): Promise<PRE_CONFIRMED_STATE_UPDATE>
Parameters
| Name | Type |
|---|---|
blockIdentifier | "pre_confirmed" |
Returns
Promise<PRE_CONFIRMED_STATE_UPDATE>
▸ (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
| Name | Type |
|---|---|
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 }[] } }>
▸ (blockIdentifier?): Promise<StateUpdateResponse>
Parameters
| Name | Type |
|---|---|
blockIdentifier? | BlockIdentifier |
Returns
Promise<StateUpdateResponse>
Implementation of
AccountInterface.getStateUpdate
Inherited from
Defined in
Methods
connect
▸ connect(provider, walletProvider, cairoVersion?, paymaster?, silentMode?): Promise<WalletAccount>
Parameters
| Name | Type | Default value |
|---|---|---|
provider | ProviderOptions | ProviderInterface | undefined |
walletProvider | StarknetWalletProvider | undefined |
cairoVersion? | CairoVersion | undefined |
paymaster? | PaymasterOptions | PaymasterInterface | undefined |
silentMode | boolean | false |
Returns
Promise<WalletAccount>
Defined in
connectSilent
▸ connectSilent(provider, walletProvider, cairoVersion?, paymaster?): Promise<WalletAccount>
Parameters
| Name | Type |
|---|---|
provider | ProviderInterface |
walletProvider | StarknetWalletProvider |
cairoVersion? | CairoVersion |
paymaster? | PaymasterOptions | PaymasterInterface |
Returns
Promise<WalletAccount>
Defined in
getStarkName
▸ getStarkName(provider, address, StarknetIdContract?): Promise<string>
Parameters
| Name | Type |
|---|---|
provider | ProviderInterface |
address | BigNumberish |
StarknetIdContract? | string |
Returns
Promise<string>
Inherited from
Defined in
src/provider/extensions/starknetId.ts:62
getAddressFromStarkName
▸ getAddressFromStarkName(provider, name, StarknetIdContract?): Promise<string>
Parameters
| Name | Type |
|---|---|
provider | ProviderInterface |
name | string |
StarknetIdContract? | string |
Returns
Promise<string>
Inherited from
Account.getAddressFromStarkName
Defined in
src/provider/extensions/starknetId.ts:96
getStarkProfile
▸ getStarkProfile(provider, address, StarknetIdContract?, StarknetIdIdentityContract?, StarknetIdVerifierContract?, StarknetIdPfpContract?, StarknetIdPopContract?, StarknetIdMulticallContract?): Promise<StarkProfile>
Parameters
| Name | Type |
|---|---|
provider | ProviderInterface |
address | BigNumberish |
StarknetIdContract? | string |
StarknetIdIdentityContract? | string |
StarknetIdVerifierContract? | string |
StarknetIdPfpContract? | string |
StarknetIdPopContract? | string |
StarknetIdMulticallContract? | string |
Returns
Promise<StarkProfile>
Inherited from
Defined in
src/provider/extensions/starknetId.ts:128
getBrotherName
▸ getBrotherName(provider, address, BrotherIdContract?): Promise<string>
Static implementation of getBrotherName
Parameters
| Name | Type | Description |
|---|---|---|
provider | ProviderInterface | The provider interface |
address | BigNumberish | The address to get the domain for |
BrotherIdContract? | string | Optional contract address |
Returns
Promise<string>
The domain name with .brother suffix
Inherited from
Defined in
src/provider/extensions/brotherId.ts:148
getAddressFromBrotherName
▸ getAddressFromBrotherName(provider, name, BrotherIdContract?): Promise<string>
Static implementation of getAddressFromBrotherName
Parameters
| Name | Type | Description |
|---|---|---|
provider | ProviderInterface | The provider interface |
name | string | The domain name |
BrotherIdContract? | string | Optional contract address |
Returns
Promise<string>
The resolver address
Inherited from
Account.getAddressFromBrotherName
Defined in
src/provider/extensions/brotherId.ts:186
getBrotherProfile
▸ getBrotherProfile(provider, address, BrotherIdContract?): Promise<BrotherProfile>
Static implementation of getBrotherProfile
Parameters
| Name | Type | Description |
|---|---|---|
provider | ProviderInterface | The provider interface |
address | BigNumberish | The address to get the profile for |
BrotherIdContract? | string | Optional contract address |
Returns
Promise<BrotherProfile>
The complete Brother profile
Inherited from
Defined in
src/provider/extensions/brotherId.ts:226
onAccountChange
▸ onAccountChange(callback): void
WALLET EVENTS
Parameters
| Name | Type |
|---|---|
callback | AccountChangeEventHandler |
Returns
void
Defined in
onNetworkChanged
▸ onNetworkChanged(callback): void
Parameters
| Name | Type |
|---|---|
callback | NetworkChangeEventHandler |
Returns
void
Defined in
requestAccounts
▸ requestAccounts(silentMode?): Promise<string[]>
WALLET SPECIFIC METHODS
Parameters
| Name | Type | Default value |
|---|---|---|
silentMode | boolean | false |
Returns
Promise<string[]>
Defined in
getPermissions
▸ getPermissions(): Promise<"accounts"[]>
Returns
Promise<"accounts"[]>
Defined in
switchStarknetChain
▸ switchStarknetChain(chainId): Promise<boolean>
Parameters
| Name | Type |
|---|---|
chainId | "0x534e5f4d41494e" | "0x534e5f5345504f4c4941" |
Returns
Promise<boolean>
Defined in
watchAsset
▸ watchAsset(asset): Promise<boolean>
Parameters
| Name | Type |
|---|---|
asset | WatchAssetParameters |
Returns
Promise<boolean>
Defined in
addStarknetChain
▸ addStarknetChain(chain): Promise<boolean>
Parameters
| Name | Type |
|---|---|
chain | AddStarknetChainParameters |
Returns
Promise<boolean>
Defined in
execute
▸ execute(calls): Promise<AddInvokeTransactionResult>
ACCOUNT METHODS
Parameters
| Name | Type |
|---|---|
calls | AllowArray<Call> |
Returns
Promise<AddInvokeTransactionResult>
Implementation of
Overrides
Defined in
declare
▸ declare(payload): Promise<AddDeclareTransactionResult>
ACCOUNT METHODS
Parameters
| Name | Type |
|---|---|
payload | DeclareContractPayload |
Returns
Promise<AddDeclareTransactionResult>
Declaration transaction hash and class hash
Example
const declareResult = await account.declare({
contract: compiledSierra,
casm: compiledCasm
});
Implementation of
Overrides
Defined in
deploy
▸ deploy(payload): Promise<MultiDeployContractResponse>
ACCOUNT METHODS
Parameters
| Name | Type |
|---|---|
payload | UniversalDeployerContractPayload | UniversalDeployerContractPayload[] |
Returns
Promise<MultiDeployContractResponse>
Deployed contract addresses and transaction hash
Example
const deployment = await account.deploy([
{ classHash: erc20ClassHash, constructorCalldata: [name, symbol] },
{ classHash: nftClassHash, unique: true }
]);
Implementation of
Overrides
Defined in
signMessage
▸ signMessage(typedData): Promise<SIGNATURE>
Sign a typed data message for off-chain verification
Parameters
| Name | Type | Description |
|---|---|---|
typedData | TypedData | EIP-712 style typed data structure |
Returns
Promise<SIGNATURE>
Signature array [r, s]
Remarks
- Includes domain separation to prevent signature reuse
- Compatible with Starknet's signature verification
- Cannot be used to sign transactions
Example
const signature = await account.signMessage({
domain: { name: 'MyDapp', chainId: 'SN_MAIN' },
types: { ... },
primaryType: 'Message',
message: { content: 'Hello Starknet!' }
});
Implementation of
Overrides
Defined in
getNonce
▸ getNonce(blockIdentifier?): Promise<string>
Get the current nonce of the account
Parameters
| Name | Type | Description |
|---|---|---|
blockIdentifier? | BlockIdentifier | Block to query nonce at (default: 'pending') |
Returns
Promise<string>
Account nonce as hex string
Example
const nonce = await account.getNonce();
const historicalNonce = await account.getNonce('latest');
Implementation of
Inherited from
Defined in
getNonceSafe
▸ getNonceSafe(nonce?): Promise<bigint>
Parameters
| Name | Type |
|---|---|
nonce? | BigNumberish |
Returns
Promise<bigint>
Inherited from
Defined in
getCairoVersion
▸ getCairoVersion(classHash?): Promise<CairoVersion>
Retrieves the Cairo version from the network and sets cairoVersion if not already set in the constructor.
Parameters
| Name | Type | Description |
|---|---|---|
classHash? | string | if provided detects Cairo version from classHash, otherwise from the account address |
Returns
Promise<CairoVersion>
Inherited from
Defined in
estimateInvokeFee
▸ estimateInvokeFee(calls, details?): Promise<EstimateFeeResponseOverhead>
Estimate fee for executing an INVOKE transaction on Starknet
Parameters
| Name | Type | Description |
|---|---|---|
calls | AllowArray<Call> | Single call or array of calls to estimate fees for |
details | UniversalDetails | Optional details for fee estimation |
Returns
Promise<EstimateFeeResponseOverhead>
Fee estimation including overall_fee and resourceBounds
Example
const fee = await account.estimateInvokeFee({
contractAddress: '0x123...',
entrypoint: 'transfer',
calldata: [recipient, amount]
});
Implementation of
AccountInterface.estimateInvokeFee
Inherited from
Defined in
estimateDeclareFee
▸ estimateDeclareFee(payload, details?): Promise<EstimateFeeResponseOverhead>
Estimate fee for executing a DECLARE transaction on Starknet
Parameters
| Name | Type | Description |
|---|---|---|
payload | DeclareContractPayload | Contract declaration payload |
details | UniversalDetails | Optional details for fee estimation |
Returns
Promise<EstimateFeeResponseOverhead>
Fee estimation including overall_fee and resourceBounds
Example
const fee = await account.estimateDeclareFee({
contract: compiledContract,
casm: compiledCasm
});
Implementation of
AccountInterface.estimateDeclareFee
Inherited from
Defined in
estimateAccountDeployFee
▸ estimateAccountDeployFee(«destructured», details?): Promise<EstimateFeeResponseOverhead>
Estimate fee for executing an INVOKE transaction on Starknet
Parameters
| Name | Type | Description |
|---|---|---|
«destructured» | DeployAccountContractPayload | Single call or array of calls to estimate fees for |
details | UniversalDetails | Optional details for fee estimation |
Returns
Promise<EstimateFeeResponseOverhead>
Fee estimation including overall_fee and resourceBounds
Fee estimation including overall_fee and resourceBounds
Example
const fee = await account.estimateAccountDeployFee({
classHash: accountClassHash,
constructorCalldata: { publicKey },
addressSalt: publicKey
});
Implementation of
AccountInterface.estimateAccountDeployFee
Inherited from
Account.estimateAccountDeployFee
Defined in
estimateDeployFee
▸ estimateDeployFee(payload, details?): Promise<EstimateFeeResponseOverhead>
Estimate fee for executing an INVOKE transaction on Starknet
Parameters
| Name | Type | Description |
|---|---|---|
payload | UniversalDeployerContractPayload | UniversalDeployerContractPayload[] | Single call or array of calls to estimate fees for |
details | UniversalDetails | Optional details for fee estimation |
Returns
Promise<EstimateFeeResponseOverhead>
Fee estimation for the deployment transaction
Fee estimation including overall_fee and resourceBounds
Example
const fee = await account.estimateDeployFee({
classHash: contractClassHash,
constructorCalldata: [param1, param2],
unique: true
});
Implementation of
AccountInterface.estimateDeployFee
Inherited from
Defined in
estimateFeeBulk
▸ estimateFeeBulk(invocations, details?): Promise<EstimateFeeBulk>
Estimate fee for executing an INVOKE transaction on Starknet
Parameters
| Name | Type | Description |
|---|---|---|
invocations | Invocations | Single call or array of calls to estimate fees for |
details | UniversalDetails | Optional details for fee estimation |
Returns
Promise<EstimateFeeBulk>
Array of fee estimations for each transaction
Fee estimation including overall_fee and resourceBounds
Example
const fees = await account.estimateFeeBulk([
{ type: 'INVOKE', payload: { contractAddress, entrypoint, calldata } },
{ type: 'DECLARE', payload: { contract, casm } }
]);
Implementation of
AccountInterface.estimateFeeBulk
Inherited from
Defined in
simulateTransaction
▸ simulateTransaction(invocations, details?): Promise<SimulateTransactionOverheadResponse>
Parameters
| Name | Type |
|---|---|
invocations | Invocations |
details | SimulateTransactionDetails |
Returns
Promise<SimulateTransactionOverheadResponse>
Inherited from
Defined in
fastExecute
▸ fastExecute(transactions, transactionsDetail?, waitDetail?): Promise<fastExecuteResponse>
Execute one or multiple calls through the account contract, responding as soon as a new transaction is possible with the same account. Useful for gaming usage.
- This method requires the provider to be initialized with
pre_confirmedblockIdentifier option. - Rpc 0.9 minimum.
- In a normal myAccount.execute() call, followed by myProvider.waitForTransaction(), you have an immediate access to the events and to the transaction report. Here, we are processing consecutive transactions faster, but events & transaction reports are not available immediately.
- As a consequence of the previous point, do not use contract/account deployment with this method.
Parameters
| Name | Type | Description |
|---|---|---|
transactions | AllowArray<Call> | Single call or array of calls to execute |
transactionsDetail? | UniversalDetails | Transaction execution options |
waitDetail? | fastWaitForTransactionOptions | options to scan the network for the next possible transaction. retries is the number of times to retry, retryInterval is the time in ms between retries. |
Returns
Promise<fastExecuteResponse>
Response containing the transaction result and status for the next transaction. If isReady is true, you can execute the next transaction. If false, timeout has been reached before the next transaction was possible.
Example
const myProvider = new RpcProvider({ nodeUrl: url, blockIdentifier: BlockTag.PRE_CONFIRMED });
const myAccount = new Account({ provider: myProvider, address: accountAddress0, signer: privateKey0 });
const resp = await myAccount.fastExecute(
call, { tip: recommendedTip},
{ retries: 30, retryInterval: 500 });
// if resp.isReady is true, you can launch immediately a new tx.
Inherited from
Defined in
declareIfNot
▸ declareIfNot(payload, transactionsDetail?): Promise<{ class_hash: string ; transaction_hash: string }>
First check if contract is already declared, if not declare it If contract already declared returned transaction_hash is ''. Method will pass even if contract is already declared
Parameters
| Name | Type | Description |
|---|---|---|
payload | DeclareContractPayload | - |
transactionsDetail | UniversalDetails | (optional) |
Returns
Promise<{ class_hash: string ; transaction_hash: string }>
Implementation of
Inherited from
Defined in
deployContract
▸ deployContract(payload, details?): Promise<DeployContractUDCResponse>
ACCOUNT METHODS
Parameters
| Name | Type | Description |
|---|---|---|
payload | UniversalDeployerContractPayload | UniversalDeployerContractPayload[] | |
details | UniversalDetails & waitForTransactionOptions | Transaction execution options |
Returns
Promise<DeployContractUDCResponse>
Deployment result with contract address and UDC event details
Deployed contract addresses and transaction hash
Remarks
This method waits for transaction confirmation before returning
Example
const result = await account.deployContract({
classHash: contractClassHash,
constructorCalldata: params
});
console.log('Deployed at:', result.address);
Implementation of
AccountInterface.deployContract
Inherited from
Defined in
declareAndDeploy
▸ declareAndDeploy(payload, details?): Promise<DeclareDeployUDCResponse>
ACCOUNT METHODS
Parameters
| Name | Type | Description |
|---|---|---|
payload | DeclareAndDeployContractPayload | |
details | UniversalDetails & waitForTransactionOptions | Transaction execution options |
Returns
Promise<DeclareDeployUDCResponse>
Declaration and deployment results
Remarks
- Automatically skips declaration if contract is already declared
- Waits for both transactions to complete
- Does not support batch operations
Example
const result = await account.declareAndDeploy({
contract: compiledContract,
casm: compiledCasm,
constructorCalldata: [param1, param2]
});
Implementation of
AccountInterface.declareAndDeploy
Inherited from
Defined in
deployAccount
▸ deployAccount(«destructured», details?): Promise<DeployContractResponse>
ACCOUNT METHODS
Parameters
| Name | Type | Description |
|---|---|---|
«destructured» | DeployAccountContractPayload | |
details | UniversalDetails | Transaction execution options |
Returns
Promise<DeployContractResponse>
Deployment transaction hash and contract address
Remarks
Used for deploying the account contract when using a pre-funded address
Example
const deployment = await account.deployAccount({
classHash: accountClassHash,
constructorCalldata: { publicKey: pubKey },
addressSalt: pubKey
});
Implementation of
AccountInterface.deployAccount
Inherited from
Defined in
hashMessage
▸ hashMessage(typedData): Promise<string>
Hash a typed data message using Pedersen hash
Parameters
| Name | Type | Description |
|---|---|---|
typedData | TypedData | EIP-712 style typed data structure |
Returns
Promise<string>
Message hash as hex string
Remarks
- Uses Pedersen hash function (not Keccak)
- Includes domain separation
- Result can be used for signature verification
Example
const messageHash = await account.hashMessage(typedData);
Implementation of
Inherited from
Defined in
getSnip9Version
▸ getSnip9Version(): Promise<"0" | "1" | "2">
Verify if an account is compatible with SNIP-9 outside execution, and with which version of this standard.
Returns
Promise<"0" | "1" | "2">
Not compatible, V1, V2.
Example
const result = myAccount.getSnip9Version();
// result = "V1"
Inherited from
Defined in
isValidSnip9Nonce
▸ isValidSnip9Nonce(nonce): Promise<boolean>
Verify if a SNIP-9 nonce has not yet been used by the account.
Parameters
| Name | Type | Description |
|---|---|---|
nonce | BigNumberish | SNIP-9 nonce to test. |
Returns
Promise<boolean>
true if SNIP-9 nonce not yet used.
Example
const result = myAccount.isValidSnip9Nonce(1234);
// result = true
Inherited from
Defined in
getSnip9Nonce
▸ getSnip9Nonce(): Promise<string>
Outside transaction needs a specific SNIP-9 nonce, that we get in this function. A SNIP-9 nonce can be any number not yet used ; no ordering is needed.
Returns
Promise<string>
an Hex string of a SNIP-9 nonce.
Example
const result = myAccount.getSnip9Nonce();
// result = "0x28a612590dbc36927933c8ee0f357eee639c8b22b3d3aa86949eed3ada4ac55"
Inherited from
Defined in
getOutsideTransaction
▸ getOutsideTransaction(options, calls, version?, nonce?): Promise<OutsideTransaction>
Creates an object containing transaction(s) that can be executed by an other account with Account.executeFromOutside(), called Outside Transaction.
Parameters
| Name | Type | Description |
|---|---|---|
options | OutsideExecutionOptions | Parameters of the transaction(s). |
calls | AllowArray<Call> | Transaction(s) to execute. |
version? | "0" | "1" | "2" | SNIP-9 version of the Account that creates the outside transaction. |
nonce? | BigNumberish | Outside Nonce. |
Returns
Promise<OutsideTransaction>
and object that can be used in Account.executeFromOutside()
Example
const now_seconds = Math.floor(Date.now() / 1000);
const callOptions: OutsideExecutionOptions = {
caller: executorAccount.address, execute_after: now_seconds - 3600, execute_before: now_seconds + 3600 };
const call1: Call = { contractAddress: ethAddress, entrypoint: 'transfer', calldata: {
recipient: recipientAccount.address, amount: cairo.uint256(100) } };
const outsideTransaction1: OutsideTransaction = await signerAccount.getOutsideTransaction(callOptions, call3);
// result = {
// outsideExecution: {
// caller: '0x64b48806902a367c8598f4f95c305e8c1a1acba5f082d294a43793113115691',
// nonce: '0x28a612590dbc36927933c8ee0f357eee639c8b22b3d3aa86949eed3ada4ac55',
// execute_after: 1723650229, execute_before: 1723704229, calls: [[Object]] },
// signature: Signature {
// r: 67518627037915514985321278857825384106482999609634873287406612756843916814n,
// s: 737198738569840639192844101690009498983611654458636624293579534560862067709n, recovery: 0 },
// signerAddress: '0x655f8fd7c4013c07cf12a92184aa6c314d181443913e21f7e209a18f0c78492',
// version: '2'
// }
Inherited from
Defined in
executeFromOutside
▸ executeFromOutside(outsideTransaction, opts?): Promise<{ transaction_hash: string }>
An account B executes a transaction that has been signed by an account A. Fees are paid by B.
Parameters
| Name | Type | Description |
|---|---|---|
outsideTransaction | AllowArray<OutsideTransaction> | the signed transaction generated by Account.getOutsideTransaction(). |
opts? | UniversalDetails | same options than Account.execute(). |
Returns
Promise<{ transaction_hash: string }>
same response than Account.execute().
Example
const outsideTransaction1: OutsideTransaction = await signerAccount.getOutsideTransaction(callOptions, call1);
const outsideTransaction2: OutsideTransaction = await signerAccount.getOutsideTransaction(callOptions4, call4);
const result = await myAccount.executeFromOutside([
outsideTransaction1,
outsideTransaction2,
]);
// result = { transaction_hash: '0x11233...`}
Inherited from
Defined in
buildInvocation
▸ buildInvocation(call, details): Promise<Invocation>
Parameters
| Name | Type |
|---|---|
call | Call[] |
details | InvocationsSignerDetails |
Returns
Promise<Invocation>
Inherited from
Defined in
buildDeclarePayload
▸ buildDeclarePayload(payload, details): Promise<DeclareContractTransaction>
Parameters
| Name | Type |
|---|---|
payload | DeclareContractPayload |
details | InvocationsSignerDetails |
Returns
Promise<DeclareContractTransaction>
Inherited from
Defined in
buildAccountDeployPayload
▸ buildAccountDeployPayload(«destructured», details): Promise<DeployAccountContractTransaction>
Parameters
| Name | Type |
|---|---|
«destructured» | DeployAccountContractPayload |
details | InvocationsSignerDetails |
Returns
Promise<DeployAccountContractTransaction>
Inherited from
Account.buildAccountDeployPayload
Defined in
accountInvocationsFactory
▸ accountInvocationsFactory(invocations, details): Promise<[{ type: "INVOKE" } & CallDetails & { signature?: Signature | undefined; } & InvocationsDetailsWithNonce]>
Build account invocations with proper typing based on transaction type
Parameters
| Name | Type |
|---|---|
invocations | [{ type: "INVOKE" ; payload: AllowArray<Call> }] |
details | AccountInvocationsFactoryDetails |
Returns
Promise<[{ type: "INVOKE" } & CallDetails & { signature?: Signature | undefined; } & InvocationsDetailsWithNonce]>
Inherited from
Account.accountInvocationsFactory
Defined in
▸ accountInvocationsFactory(invocations, details): Promise<[{ type: "DECLARE" } & DeclareContractTransaction & InvocationsDetailsWithNonce]>
Parameters
| Name | Type |
|---|---|
invocations | [{ type: "DECLARE" ; payload: DeclareContractPayload }] |
details | AccountInvocationsFactoryDetails |
Returns
Promise<[{ type: "DECLARE" } & DeclareContractTransaction & InvocationsDetailsWithNonce]>
Inherited from
Account.accountInvocationsFactory
Defined in
▸ accountInvocationsFactory(invocations, details): Promise<[{ type: "DEPLOY_ACCOUNT" } & Omit<DeployAccountContractPayload, "contractAddress"> & { signature?: Signature | undefined; } & InvocationsDetailsWithNonce]>
Parameters
| Name | Type |
|---|---|
invocations | [{ type: "DEPLOY_ACCOUNT" ; payload: DeployAccountContractPayload }] |
details | AccountInvocationsFactoryDetails |
Returns
Promise<[{ type: "DEPLOY_ACCOUNT" } & Omit<DeployAccountContractPayload, "contractAddress"> & { signature?: Signature | undefined; } & InvocationsDetailsWithNonce]>
Inherited from
Account.accountInvocationsFactory
Defined in
▸ accountInvocationsFactory(invocations, details): Promise<AccountInvocations>
Parameters
| Name | Type |
|---|---|
invocations | Invocations |
details | AccountInvocationsFactoryDetails |
Returns
Promise<AccountInvocations>
Inherited from
Account.accountInvocationsFactory
Defined in
buildPaymasterTransaction
▸ buildPaymasterTransaction(calls, paymasterDetails): Promise<PreparedTransaction>
Estimate fees for a paymaster-sponsored transaction
Parameters
| Name | Type | Description |
|---|---|---|
calls | Call[] | Array of calls to be sponsored |
paymasterDetails | PaymasterDetails | Paymaster configuration |
Returns
Promise<PreparedTransaction>
Prepared transaction with typed data for signing
Fee estimates in both STRK and gas token
Example
const prepared = await account.buildPaymasterTransaction(
calls,
{ feeMode: { mode: 'default', gasToken: ETH_ADDRESS } }
);
Implementation of
AccountInterface.buildPaymasterTransaction
Inherited from
Account.buildPaymasterTransaction
Defined in
estimatePaymasterTransactionFee
▸ estimatePaymasterTransactionFee(calls, paymasterDetails): Promise<PaymasterFeeEstimate>
Estimate fees for a paymaster-sponsored transaction
Parameters
| Name | Type | Description |
|---|---|---|
calls | Call[] | Array of calls to be sponsored |
paymasterDetails | PaymasterDetails | Paymaster configuration |
Returns
Promise<PaymasterFeeEstimate>
Fee estimates in both STRK and gas token
Example
const fees = await account.estimatePaymasterTransactionFee(
[{ contractAddress, entrypoint, calldata }],
{ feeMode: { mode: 'sponsored' } }
);
Implementation of
AccountInterface.estimatePaymasterTransactionFee
Inherited from
Account.estimatePaymasterTransactionFee
Defined in
preparePaymasterTransaction
▸ preparePaymasterTransaction(preparedTransaction): Promise<ExecutableUserTransaction>
Parameters
| Name | Type |
|---|---|
preparedTransaction | PreparedTransaction |
Returns
Promise<ExecutableUserTransaction>
Inherited from
Account.preparePaymasterTransaction
Defined in
executePaymasterTransaction
▸ executePaymasterTransaction(calls, paymasterDetails, maxFeeInGasToken?): Promise<{ transaction_hash: string }>
Execute a paymaster-sponsored transaction
Parameters
| Name | Type | Description |
|---|---|---|
calls | Call[] | Array of calls to execute |
paymasterDetails | PaymasterDetails | Paymaster configuration |
maxFeeInGasToken? | BigNumberish | Maximum acceptable fee in gas token |
Returns
Promise<{ transaction_hash: string }>
Transaction hash if successful
Throws
If gas token price exceeds maxFeeInGasToken
Throws
If transaction parameters are modified by paymaster
Example
const txHash = await account.executePaymasterTransaction(
calls,
{ feeMode: { mode: 'sponsored' }, timeBounds: { executeBefore: Date.now()/1000 + 3600 } },
maxFeeETH
);
Implementation of
AccountInterface.executePaymasterTransaction
Inherited from
Account.executePaymasterTransaction
Defined in
getStarkName
▸ getStarkName(address?, StarknetIdContract?): Promise<string>
Get the Starknet ID for an address
Parameters
| Name | Type | Description |
|---|---|---|
address | BigNumberish | The address to get the Starknet ID for |
StarknetIdContract? | string | The Starknet ID contract address (optional) |
Returns
Promise<string>
The Starknet ID for the address
Inherited from
Defined in
fetch
▸ fetch(method, params?, id?): Promise<Response>
Direct RPC method call
Parameters
| Name | Type | Default value | Description |
|---|---|---|---|
method | string | undefined | RPC method name |
params? | object | undefined | method parameters |
id | string | number | 0 | request ID |
Returns
Promise<Response>
RPC response
Implementation of
Inherited from
Defined in
getChainId
▸ getChainId(): Promise<"0x534e5f4d41494e" | "0x534e5f5345504f4c4941">
Gets the Starknet chain Id
Returns
Promise<"0x534e5f4d41494e" | "0x534e5f5345504f4c4941">
the chain Id
Implementation of
Inherited from
Defined in
readSpecVersion
▸ readSpecVersion(): undefined | "0.8.1" | "0.9.0"
Read channel spec version
Returns
undefined | "0.8.1" | "0.9.0"
Spec version string or undefined if not set
Implementation of
AccountInterface.readSpecVersion
Inherited from
Defined in
getSpecVersion
▸ getSpecVersion(): Promise<string>
Get channel spec version
Returns
Promise<string>
Promise resolving to spec version
Implementation of
AccountInterface.getSpecVersion
Inherited from
Defined in
setUpSpecVersion
▸ setUpSpecVersion(): Promise<"0.8.1" | "0.9.0">
Setup channel spec version and return it
Returns
Promise<"0.8.1" | "0.9.0">
Promise resolving to spec version
Implementation of
AccountInterface.setUpSpecVersion
Inherited from
Defined in
getNonceForAddress
▸ getNonceForAddress(contractAddress, blockIdentifier?): Promise<string>
Returns the nonce associated with the given address in the given block
Parameters
| Name | Type | Description |
|---|---|---|
contractAddress | BigNumberish | contract address |
blockIdentifier? | BlockIdentifier | - |
Returns
Promise<string>
the hex nonce
Implementation of
AccountInterface.getNonceForAddress
Inherited from
Defined in
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
Implementation of
Inherited from
Defined in
▸ 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
| Name | Type |
|---|---|
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 }>
Implementation of
Inherited from
Defined in
▸ 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
| Name | Type |
|---|---|
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[] }>
Implementation of
Inherited from
Defined in
▸ getBlock(blockIdentifier): Promise<GetBlockResponse>
Parameters
| Name | Type |
|---|---|
blockIdentifier | BlockIdentifier |
Returns
Promise<GetBlockResponse>
Implementation of
Inherited from
Defined in
getBlockLatestAccepted
▸ getBlockLatestAccepted(): Promise<BlockHashAndNumber>
Get the most recent accepted block hash and number
Returns
Promise<BlockHashAndNumber>
Object containing block hash and number
Implementation of
AccountInterface.getBlockLatestAccepted
Inherited from
Account.getBlockLatestAccepted
Defined in
getBlockNumber
▸ getBlockNumber(): Promise<number>
Get the most recent accepted block number
Returns
Promise<number>
Number of the latest block
Implementation of
AccountInterface.getBlockNumber
Inherited from
Defined in
getBlockWithTxHashes
▸ getBlockWithTxHashes(blockIdentifier?): Promise<OnlyFirst<BLOCK_WITH_TX_HASHES, { status: BLOCK_STATUS } & BLOCK_HEADER & BLOCK_BODY_WITH_TX_HASHES & PENDING_BLOCK_HEADER> | OnlyFirst<PENDING_BLOCK_WITH_TX_HASHES, { status: BLOCK_STATUS } & BLOCK_HEADER & BLOCK_BODY_WITH_TX_HASHES & PENDING_BLOCK_HEADER> | OnlyFirst<BLOCK_WITH_TX_HASHES, { status: EBlockStatus } & BLOCK_HEADER & BLOCK_BODY_WITH_TX_HASHES & PRE_CONFIRMED_BLOCK_HEADER> | OnlyFirst<PRE_CONFIRMED_BLOCK_WITH_TX_HASHES, { status: EBlockStatus } & BLOCK_HEADER & BLOCK_BODY_WITH_TX_HASHES & PRE_CONFIRMED_BLOCK_HEADER>>
Get block information with transaction hashes
Parameters
| Name | Type | Description |
|---|---|---|
blockIdentifier? | BlockIdentifier | block identifier |
Returns
Promise<OnlyFirst<BLOCK_WITH_TX_HASHES, { status: BLOCK_STATUS } & BLOCK_HEADER & BLOCK_BODY_WITH_TX_HASHES & PENDING_BLOCK_HEADER> | OnlyFirst<PENDING_BLOCK_WITH_TX_HASHES, { status: BLOCK_STATUS } & BLOCK_HEADER & BLOCK_BODY_WITH_TX_HASHES & PENDING_BLOCK_HEADER> | OnlyFirst<BLOCK_WITH_TX_HASHES, { status: EBlockStatus } & BLOCK_HEADER & BLOCK_BODY_WITH_TX_HASHES & PRE_CONFIRMED_BLOCK_HEADER> | OnlyFirst<PRE_CONFIRMED_BLOCK_WITH_TX_HASHES, { status: EBlockStatus } & BLOCK_HEADER & BLOCK_BODY_WITH_TX_HASHES & PRE_CONFIRMED_BLOCK_HEADER>>
Block with transaction hashes
Implementation of
AccountInterface.getBlockWithTxHashes
Inherited from
Defined in
getBlockWithTxs
▸ getBlockWithTxs(blockIdentifier?): Promise<OnlyFirst<BLOCK_WITH_TXS, { status: BLOCK_STATUS } & BLOCK_HEADER & BLOCK_BODY_WITH_TXS & PENDING_BLOCK_HEADER> | OnlyFirst<PENDING_BLOCK_WITH_TXS, { status: BLOCK_STATUS } & BLOCK_HEADER & BLOCK_BODY_WITH_TXS & PENDING_BLOCK_HEADER> | OnlyFirst<BLOCK_WITH_TXS, { status: EBlockStatus } & BLOCK_HEADER & BLOCK_BODY_WITH_TXS & PRE_CONFIRMED_BLOCK_HEADER> | OnlyFirst<PRE_CONFIRMED_BLOCK_WITH_TXS, { status: EBlockStatus } & BLOCK_HEADER & BLOCK_BODY_WITH_TXS & PRE_CONFIRMED_BLOCK_HEADER>>
Get block information with full transactions
Parameters
| Name | Type | Description |
|---|---|---|
blockIdentifier? | BlockIdentifier | block identifier |
Returns
Promise<OnlyFirst<BLOCK_WITH_TXS, { status: BLOCK_STATUS } & BLOCK_HEADER & BLOCK_BODY_WITH_TXS & PENDING_BLOCK_HEADER> | OnlyFirst<PENDING_BLOCK_WITH_TXS, { status: BLOCK_STATUS } & BLOCK_HEADER & BLOCK_BODY_WITH_TXS & PENDING_BLOCK_HEADER> | OnlyFirst<BLOCK_WITH_TXS, { status: EBlockStatus } & BLOCK_HEADER & BLOCK_BODY_WITH_TXS & PRE_CONFIRMED_BLOCK_HEADER> | OnlyFirst<PRE_CONFIRMED_BLOCK_WITH_TXS, { status: EBlockStatus } & BLOCK_HEADER & BLOCK_BODY_WITH_TXS & PRE_CONFIRMED_BLOCK_HEADER>>
Block with full transactions
Implementation of
AccountInterface.getBlockWithTxs
Inherited from
Defined in
waitForBlock
▸ waitForBlock(blockIdentifier?, retryInterval?): Promise<void>
Pause execution until a specified block is created
Parameters
| Name | Type | Default value | Description |
|---|---|---|---|
blockIdentifier | BlockIdentifier | BlockTag.LATEST | block number or tag |
retryInterval | number | 5000 | milliseconds between requests (default: 5000) |
Returns
Promise<void>
Example
await provider.waitForBlock(12345);
await provider.waitForBlock('latest');
Implementation of
Inherited from
Defined in
getL1GasPrice
▸ getL1GasPrice(blockIdentifier?): Promise<string>
Gets the price of l1 gas in the block
Parameters
| Name | Type | Description |
|---|---|---|
blockIdentifier? | BlockIdentifier | block identifier |
Returns
Promise<string>
gas price of the block
Implementation of
AccountInterface.getL1GasPrice
Inherited from
Defined in
getGasPrices
▸ getGasPrices(blockIdentifier?): Promise<GasPrices>
Get the gas prices related to a block.
Parameters
| Name | Type | Description |
|---|---|---|
blockIdentifier? | BlockIdentifier | Optional. Can be 'pending', 'latest' or a block number (an integer type). |
Returns
Promise<GasPrices>
an object with l1DataGasPrice, l1GasPrice, l2GasPrice properties (all bigint type).
Example
const result = await myProvider.getGasPrices();
// result = { l1DataGasPrice: 3039n, l1GasPrice: 55590341542890n, l2GasPrice: 8441845008n }
Inherited from
Defined in
getL1MessageHash
▸ getL1MessageHash(l2TxHash): Promise<string>
Get L1 message hash from L2 transaction hash
Parameters
| Name | Type | Description |
|---|---|---|
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'
Implementation of
AccountInterface.getL1MessageHash
Inherited from
Defined in
getBlockWithReceipts
▸ getBlockWithReceipts(blockIdentifier?): Promise<OnlyFirst<BLOCK_WITH_RECEIPTS, { status: BLOCK_STATUS } & BLOCK_HEADER & BLOCK_BODY_WITH_RECEIPTS & PENDING_BLOCK_HEADER> | OnlyFirst<PENDING_BLOCK_WITH_RECEIPTS, { status: BLOCK_STATUS } & BLOCK_HEADER & BLOCK_BODY_WITH_RECEIPTS & PENDING_BLOCK_HEADER> | OnlyFirst<BLOCK_WITH_RECEIPTS, { status: EBlockStatus } & BLOCK_HEADER & BLOCK_BODY_WITH_RECEIPTS & PRE_CONFIRMED_BLOCK_HEADER> | OnlyFirst<PRE_CONFIRMED_BLOCK_WITH_RECEIPTS, { status: EBlockStatus } & BLOCK_HEADER & BLOCK_BODY_WITH_RECEIPTS & PRE_CONFIRMED_BLOCK_HEADER>>
Get block information with transaction receipts
Parameters
| Name | Type | Description |
|---|---|---|
blockIdentifier? | BlockIdentifier | block identifier |
Returns
Promise<OnlyFirst<BLOCK_WITH_RECEIPTS, { status: BLOCK_STATUS } & BLOCK_HEADER & BLOCK_BODY_WITH_RECEIPTS & PENDING_BLOCK_HEADER> | OnlyFirst<PENDING_BLOCK_WITH_RECEIPTS, { status: BLOCK_STATUS } & BLOCK_HEADER & BLOCK_BODY_WITH_RECEIPTS & PENDING_BLOCK_HEADER> | OnlyFirst<BLOCK_WITH_RECEIPTS, { status: EBlockStatus } & BLOCK_HEADER & BLOCK_BODY_WITH_RECEIPTS & PRE_CONFIRMED_BLOCK_HEADER> | OnlyFirst<PRE_CONFIRMED_BLOCK_WITH_RECEIPTS, { status: EBlockStatus } & BLOCK_HEADER & BLOCK_BODY_WITH_RECEIPTS & PRE_CONFIRMED_BLOCK_HEADER>>
Block with transaction receipts
Implementation of
AccountInterface.getBlockWithReceipts
Inherited from
Defined in
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
Implementation of
AccountInterface.getBlockStateUpdate
Inherited from
Defined in
▸ getBlockStateUpdate(blockIdentifier): Promise<PRE_CONFIRMED_STATE_UPDATE>
Parameters
| Name | Type |
|---|---|
blockIdentifier | "pre_confirmed" |
Returns
Promise<PRE_CONFIRMED_STATE_UPDATE>
Implementation of
AccountInterface.getBlockStateUpdate
Inherited from
Defined in
▸ 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
| Name | Type |
|---|---|
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 }[] } }>
Implementation of
AccountInterface.getBlockStateUpdate
Inherited from
Defined in
▸ getBlockStateUpdate(blockIdentifier?): Promise<StateUpdateResponse>
Parameters
| Name | Type |
|---|---|
blockIdentifier? | BlockIdentifier |
Returns
Promise<StateUpdateResponse>
Implementation of
AccountInterface.getBlockStateUpdate
Inherited from
Defined in
getBlockTransactionsTraces
▸ getBlockTransactionsTraces(blockIdentifier?): Promise<BlockTransactionsTraces | BlockTransactionsTraces>
Get transaction traces for all transactions in a block
Parameters
| Name | Type | Description |
|---|---|---|
blockIdentifier? | BlockIdentifier | block identifier |
Returns
Promise<BlockTransactionsTraces | BlockTransactionsTraces>
Array of transaction traces
Implementation of
AccountInterface.getBlockTransactionsTraces
Inherited from
Account.getBlockTransactionsTraces
Defined in
getBlockTransactionCount
▸ getBlockTransactionCount(blockIdentifier?): Promise<number>
Get the number of transactions in a block
Parameters
| Name | Type | Description |
|---|---|---|
blockIdentifier? | BlockIdentifier | block identifier |
Returns
Promise<number>
Transaction count
Implementation of
AccountInterface.getBlockTransactionCount
Inherited from
Account.getBlockTransactionCount
Defined in
getTransaction
▸ getTransaction(txHash): Promise<TXN_WITH_HASH>
Gets the transaction information from a tx id.
Parameters
| Name | Type |
|---|---|
txHash | BigNumberish |
Returns
Promise<TXN_WITH_HASH>
the transaction object { transaction_id, status, transaction, block_number?, block_number?, transaction_index?, transaction_failure_reason? }
Implementation of
AccountInterface.getTransaction
Inherited from
Defined in
getTransactionByHash
▸ getTransactionByHash(txHash): Promise<TXN_WITH_HASH>
Gets the transaction information from a tx hash (alias for getTransaction)
Parameters
| Name | Type | Description |
|---|---|---|
txHash | BigNumberish | transaction hash |
Returns
Promise<TXN_WITH_HASH>
Transaction information
Implementation of
AccountInterface.getTransactionByHash
Inherited from
Defined in
getTransactionByBlockIdAndIndex
▸ getTransactionByBlockIdAndIndex(blockIdentifier, index): Promise<TXN_WITH_HASH>
Gets transaction by block identifier and index
Parameters
| Name | Type | Description |
|---|---|---|
blockIdentifier | BlockIdentifier | block identifier |
index | number | transaction index in the block |
Returns
Promise<TXN_WITH_HASH>
Transaction information
Implementation of
AccountInterface.getTransactionByBlockIdAndIndex
Inherited from
Account.getTransactionByBlockIdAndIndex
Defined in
getTransactionReceipt
▸ getTransactionReceipt(txHash): Promise<GetTransactionReceiptResponse>
Gets the transaction receipt from a tx hash.
Parameters
| Name | Type |
|---|---|
txHash | BigNumberish |
Returns
Promise<GetTransactionReceiptResponse>
the transaction receipt object
Implementation of
AccountInterface.getTransactionReceipt
Inherited from
Defined in
getTransactionTrace
▸ getTransactionTrace(txHash): Promise<TRANSACTION_TRACE | TRANSACTION_TRACE>
Gets the transaction trace
Parameters
| Name | Type | Description |
|---|---|---|
txHash | BigNumberish | transaction hash |
Returns
Promise<TRANSACTION_TRACE | TRANSACTION_TRACE>
Transaction trace
Implementation of
AccountInterface.getTransactionTrace
Inherited from
Defined in
getTransactionStatus
▸ getTransactionStatus(transactionHash): Promise<TXN_STATUS_RESULT | TXN_STATUS_RESULT>
Get the status of a transaction
Parameters
| Name | Type | Description |
|---|---|---|
transactionHash | BigNumberish | transaction hash |
Returns
Promise<TXN_STATUS_RESULT | TXN_STATUS_RESULT>
Transaction status
Implementation of
AccountInterface.getTransactionStatus
Inherited from
Defined in
getSimulateTransaction
▸ getSimulateTransaction(invocations, options?): Promise<SimulateTransactionOverheadResponse>
Simulates the transaction and returns the transaction trace and estimated fee.
Parameters
| Name | Type | Description |
|---|---|---|
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 |
Returns
Promise<SimulateTransactionOverheadResponse>
an array of transaction trace and estimated fee
Implementation of
AccountInterface.getSimulateTransaction
Inherited from
Account.getSimulateTransaction
Defined in
waitForTransaction
▸ waitForTransaction(txHash, options?): Promise<GetTransactionReceiptResponse>
Wait for the transaction to be accepted
Parameters
| Name | Type | Description |
|---|---|---|
txHash | BigNumberish | transaction hash |
options? | waitForTransactionOptions | waitForTransactionOptions - (optional) retryInterval: number | undefined; - (optional) successStates: TransactionStatus[] | undefined; |
Returns
Promise<GetTransactionReceiptResponse>
GetTransactionReceiptResponse
Implementation of
AccountInterface.waitForTransaction
Inherited from
Defined in
fastWaitForTransaction
▸ fastWaitForTransaction(txHash, address, initNonce, options?): Promise<boolean>
Wait up until a new transaction is possible with same the account. This method is fast, but Events and transaction report are not yet available. Useful for gaming activity.
- only rpc 0.9 and onwards.
Parameters
| Name | Type | Description |
|---|---|---|
txHash | BigNumberish | transaction hash |
address | string | address of the account |
initNonce | BigNumberish | initial nonce of the account (before the transaction). |
options? | fastWaitForTransactionOptions | options to scan the network for the next possible transaction. retries is the number of times to retry. |
Returns
Promise<boolean>
Returns true if the next transaction is possible, false if the timeout has been reached, throw an error in case of provider communication.
Inherited from
Account.fastWaitForTransaction
Defined in
getStorageAt
▸ getStorageAt(contractAddress, key, blockIdentifier?): Promise<string>
Get the value of the storage (contract's variable) at the given address and key
Parameters
| Name | Type | Description |
|---|---|---|
contractAddress | BigNumberish | |
key | BigNumberish | from getStorageVarAddress('<STORAGE_VARIABLE_NAME>') (WIP) |
blockIdentifier? | BlockIdentifier | block identifier |
Returns
Promise<string>
the value of the storage variable
Implementation of
Inherited from
Defined in
getClassHashAt
▸ getClassHashAt(contractAddress, blockIdentifier?): Promise<string>
Returns the contract class hash in the given block for the contract deployed at the given address
Parameters
| Name | Type | Description |
|---|---|---|
contractAddress | BigNumberish | contract address |
blockIdentifier? | BlockIdentifier | block identifier |
Returns
Promise<string>
Class hash
Implementation of
AccountInterface.getClassHashAt
Inherited from
Defined in
getClassByHash
▸ getClassByHash(classHash): Promise<LegacyContractClass | Omit<CompiledSierra, "sierra_program_debug_info">>
Returns the contract class deployed under the given class hash.
Parameters
| Name | Type | Description |
|---|---|---|
classHash | BigNumberish | class hash |
Returns
Promise<LegacyContractClass | Omit<CompiledSierra, "sierra_program_debug_info">>
Contract class of compiled contract
Implementation of
AccountInterface.getClassByHash
Inherited from
Defined in
getClass
▸ getClass(classHash, blockIdentifier?): Promise<LegacyContractClass | Omit<CompiledSierra, "sierra_program_debug_info">>
Get contract class by hash with optional block identifier
Parameters
| Name | Type | Description |
|---|---|---|
classHash | BigNumberish | class hash |
blockIdentifier? | BlockIdentifier | block identifier |
Returns
Promise<LegacyContractClass | Omit<CompiledSierra, "sierra_program_debug_info">>
Contract class
Implementation of
Inherited from
Defined in
getClassAt
▸ getClassAt(contractAddress, blockIdentifier?): Promise<LegacyContractClass | Omit<CompiledSierra, "sierra_program_debug_info">>
Gets the contract class of the deployed contract.
Parameters
| Name | Type | Description |
|---|---|---|
contractAddress | BigNumberish | contract address |
blockIdentifier? | BlockIdentifier | block identifier |
Returns
Promise<LegacyContractClass | Omit<CompiledSierra, "sierra_program_debug_info">>
Contract class of compiled contract
Implementation of
Inherited from
Defined in
getContractVersion
▸ getContractVersion(contractAddress, classHash?, options?): Promise<ContractVersion>
Gets the contract version from the provided address
Parameters
| Name | Type | Description |
|---|---|---|
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>
Implementation of
AccountInterface.getContractVersion
Inherited from
Defined in
▸ getContractVersion(contractAddress, classHash, options?): Promise<ContractVersion>
Gets the contract version from the provided address
Parameters
| Name | Type | Description |
|---|---|---|
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>
Implementation of
AccountInterface.getContractVersion
Inherited from
Defined in
getInvokeEstimateFee
▸ getInvokeEstimateFee(invocation, details, blockIdentifier?, skipValidate?): Promise<EstimateFeeResponseOverhead>
Estimates the fee for a given INVOKE transaction
Parameters
| Name | Type | Description |
|---|---|---|
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
Implementation of
AccountInterface.getInvokeEstimateFee
Inherited from
Defined in
getDeclareEstimateFee
▸ getDeclareEstimateFee(invocation, details, blockIdentifier?, skipValidate?): Promise<EstimateFeeResponseOverhead>
Estimates the fee for a given DECLARE transaction
Parameters
| Name | Type | Description |
|---|---|---|
invocation | 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
Implementation of
AccountInterface.getDeclareEstimateFee
Inherited from
Defined in
getDeployAccountEstimateFee
▸ getDeployAccountEstimateFee(invocation, details, blockIdentifier?, skipValidate?): Promise<EstimateFeeResponseOverhead>
Estimates the fee for a given DEPLOY_ACCOUNT transaction
Parameters
| Name | Type | Description |
|---|---|---|
invocation | 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
Implementation of
AccountInterface.getDeployAccountEstimateFee
Inherited from
Account.getDeployAccountEstimateFee
Defined in
getEstimateFeeBulk
▸ getEstimateFeeBulk(invocations, options?): Promise<EstimateFeeResponseBulkOverhead>
Estimates the fee for a list of INVOKE transaction
Parameters
| Name | Type | Description |
|---|---|---|
invocations | AccountInvocations | AccountInvocations - Complete invocations array with account details |
options? | getEstimateFeeBulkOptions | getEstimateFeeBulkOptions - (optional) blockIdentifier - BlockIdentifier |
Returns
Promise<EstimateFeeResponseBulkOverhead>
the estimated fee
Implementation of
AccountInterface.getEstimateFeeBulk
Inherited from
Defined in
invokeFunction
▸ invokeFunction(functionInvocation, details): Promise<{ transaction_hash: string }>
Invokes a function on starknet
Parameters
| Name | Type | Description |
|---|---|---|
functionInvocation | 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
Implementation of
AccountInterface.invokeFunction
Inherited from
Defined in
declareContract
▸ declareContract(transaction, details): Promise<{ class_hash: string ; transaction_hash: string }>
Declares a given compiled contract (json) to starknet
Parameters
| Name | Type | Description |
|---|---|---|
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
Implementation of
AccountInterface.declareContract
Inherited from
Defined in
deployAccountContract
▸ deployAccountContract(transaction, details): Promise<{ contract_address: string ; transaction_hash: string }>
Deploys a given compiled Account contract (json) to starknet
Parameters
| Name | Type | Description |
|---|---|---|
transaction | DeployAccountContractTransaction | payload to be deployed containing: - compiled contract code - constructor calldata - address salt |
details | InvocationsDetailsWithNonce | - |
Returns
Promise<{ contract_address: string ; transaction_hash: string }>
a confirmation of sending a transaction on the starknet contract
Implementation of
AccountInterface.deployAccountContract
Inherited from
Defined in
callContract
▸ callContract(call, blockIdentifier?): Promise<string[]>
Calls a function on the Starknet contract.
Parameters
| Name | Type | Description |
|---|---|---|
call | Call | transaction to be called |
blockIdentifier? | BlockIdentifier | block identifier |
Returns
Promise<string[]>
the result of the function on the smart contract.
Implementation of
Inherited from
Defined in
estimateMessageFee
▸ estimateMessageFee(message, blockIdentifier?): Promise<FEE_ESTIMATE | MESSAGE_FEE_ESTIMATE>
Estimate the fee for a message from L1
Parameters
| Name | Type | Description |
|---|---|---|
message | MSG_FROM_L1 | L1 message |
blockIdentifier? | BlockIdentifier | block identifier |
Returns
Promise<FEE_ESTIMATE | MESSAGE_FEE_ESTIMATE>
Fee estimate
Implementation of
AccountInterface.estimateMessageFee
Inherited from
Defined in
getSyncingStats
▸ getSyncingStats(): Promise<Syncing>
Get node synchronization status
Returns
Promise<Syncing>
Sync status or false if not syncing
Implementation of
AccountInterface.getSyncingStats
Inherited from
Defined in
getEvents
▸ getEvents(eventFilter): Promise<EVENTS_CHUNK | EVENTS_CHUNK>
Get events matching the given filter
Parameters
| Name | Type | Description |
|---|---|---|
eventFilter | EventFilter | EventFilter | event filter |
Returns
Promise<EVENTS_CHUNK | EVENTS_CHUNK>
Events and pagination info
Implementation of
Inherited from
Defined in
verifyMessageInStarknet
▸ verifyMessageInStarknet(message, signature, accountAddress, signatureVerificationFunctionName?, signatureVerificationResponse?): Promise<boolean>
Verify in Starknet a signature of a TypedData object or of a given hash.
Parameters
| Name | Type | Description |
|---|---|---|
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? | Object | if account contract with non standard response of verification function. |
signatureVerificationResponse.okResponse | string[] | - |
signatureVerificationResponse.nokResponse | string[] | - |
signatureVerificationResponse.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
Implementation of
AccountInterface.verifyMessageInStarknet
Inherited from
Account.verifyMessageInStarknet
Defined in
isClassDeclared
▸ isClassDeclared(contractClassIdentifier, blockIdentifier?): Promise<boolean>
Test if class is already declared
Parameters
| Name | Type | Description |
|---|---|---|
contractClassIdentifier | ContractClassIdentifier | contract class identifier |
blockIdentifier? | BlockIdentifier | block identifier |
Returns
Promise<boolean>
true if class is declared
Implementation of
AccountInterface.isClassDeclared
Inherited from
Defined in
prepareInvocations
▸ prepareInvocations(invocations): Promise<Invocations>
Build bulk invocations with auto-detect declared class
Parameters
| Name | Type | Description |
|---|---|---|
invocations | Invocations | array of invocations |
Returns
Promise<Invocations>
Prepared invocations
Implementation of
AccountInterface.prepareInvocations
Inherited from
Defined in
getL1MessagesStatus
▸ getL1MessagesStatus(transactionHash): Promise<L1L2MessagesStatus | L1L2MessagesStatus>
Get L1 messages status for a transaction
Parameters
| Name | Type | Description |
|---|---|---|
transactionHash | BigNumberish | L1 transaction hash |
Returns
Promise<L1L2MessagesStatus | L1L2MessagesStatus>
L1 message status
Implementation of
AccountInterface.getL1MessagesStatus
Inherited from
Defined in
getStorageProof
▸ getStorageProof(classHashes, contractAddresses, contractsStorageKeys, blockIdentifier?): Promise<StorageProof>
Get Merkle paths in state tries
Parameters
| Name | Type | Description |
|---|---|---|
classHashes | BigNumberish[] | class hashes |
contractAddresses | BigNumberish[] | contract addresses |
contractsStorageKeys | CONTRACT_STORAGE_KEYS[] | storage keys |
blockIdentifier? | BlockIdentifier | block identifier |
Returns
Promise<StorageProof>
Storage proof
Implementation of
AccountInterface.getStorageProof
Inherited from
Defined in
getCompiledCasm
▸ getCompiledCasm(classHash): Promise<CASM_COMPILED_CONTRACT_CLASS>
Get compiled CASM contract class
Parameters
| Name | Type | Description |
|---|---|---|
classHash | BigNumberish | class hash |
Returns
Promise<CASM_COMPILED_CONTRACT_CLASS>
Compiled CASM contract class
Implementation of
AccountInterface.getCompiledCasm
Inherited from
Defined in
getEstimateTip
▸ getEstimateTip(blockIdentifier?, options?): Promise<TipEstimate>
Get transaction tip estimation based on network analysis
Parameters
| Name | Type | Description |
|---|---|---|
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);
Implementation of
AccountInterface.getEstimateTip
Inherited from
Defined in
getAddressFromStarkName
▸ getAddressFromStarkName(name, StarknetIdContract?): Promise<string>
Parameters
| Name | Type |
|---|---|
name | string |
StarknetIdContract? | string |
Returns
Promise<string>
Inherited from
Account.getAddressFromStarkName
Defined in
src/provider/extensions/starknetId.ts:31
getStarkProfile
▸ getStarkProfile(address, StarknetIdContract?, StarknetIdIdentityContract?, StarknetIdVerifierContract?, StarknetIdPfpContract?, StarknetIdPopContract?, StarknetIdMulticallContract?): Promise<StarkProfile>
Parameters
| Name | Type |
|---|---|
address | BigNumberish |
StarknetIdContract? | string |
StarknetIdIdentityContract? | string |
StarknetIdVerifierContract? | string |
StarknetIdPfpContract? | string |
StarknetIdPopContract? | string |
StarknetIdMulticallContract? | string |
Returns
Promise<StarkProfile>
Inherited from
Defined in
src/provider/extensions/starknetId.ts:40
getBrotherName
▸ getBrotherName(address, BrotherIdContract?): Promise<string>
Gets the primary Brother domain name for an address
Parameters
| Name | Type | Description |
|---|---|---|
address | BigNumberish | The address to get the domain for |
BrotherIdContract? | string | Optional contract address |
Returns
Promise<string>
The domain name with .brother suffix
Inherited from
Defined in
src/provider/extensions/brotherId.ts:99
getAddressFromBrotherName
▸ getAddressFromBrotherName(name, BrotherIdContract?): Promise<string>
Gets the address associated with a Brother domain name
Parameters
| Name | Type | Description |
|---|---|---|
name | string | The domain name (with or without .brother suffix) |
BrotherIdContract? | string | Optional contract address |
Returns
Promise<string>
The resolver address for the domain
Inherited from
Account.getAddressFromBrotherName
Defined in
src/provider/extensions/brotherId.ts:114
getBrotherProfile
▸ getBrotherProfile(address, BrotherIdContract?): Promise<BrotherProfile>
Gets the complete profile information for a Brother domain
Parameters
| Name | Type | Description |
|---|---|---|
address | BigNumberish | The address to get the profile for |
BrotherIdContract? | string | Optional contract address |
Returns
Promise<BrotherProfile>
The complete Brother profile information