Nexus client methods
sendTransaction
This method is used to submit a User Operation object to the User Operation pool of the client. It signs the UserOperation using smart account owner and submits it to the bundler for on-chain processing.
Usage
example.ts
import { nexusClient } from "./nexusClient"
import { contractABI } from "./abi"
import { parseEther } from "viem";
const hash = await nexusClient.sendTransaction({
calls: [
{
to: '0xf5715961C550FC497832063a98eA34673ad7C816',
value: parseEther('0.0001'),
},
{
abi: contractABI,
functionName: 'mint',
to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
}
],
});
Parameters
- calls
{ data: Hex, to: Address, value: bigint }[]
: The calls to execute in the User Operation. - paymaster
Address | true | PaymasterClient | PaymasterAction
(optional)
Response
Promise<Hash>
The transaction hash.
waitForUserOperationReceipt
Waits for the User Operation to be included on a Block (one confirmation), and then returns the User Operation receipt.
Usage
example.ts
import { nexusClient } from "./nexusClient"
const receipt = await nexusClient.waitForUserOperationReceipt({
hash: '0x315a882b82eb33250b919da6ebb2dd890df39ca0840e4026cbbad595b9a07e86'
})
Parameters
- hash
'0x${string}'
: A Transaction hash. - pollingInterval (optional)
number
: Polling frequency (in ms) - retryCount (optional)
number
: The number of times to retry. Default value is 6. - timeout (optional)
number
: Optional timeout (in ms) to wait before stopping polling. Default value is 5000.
Response
- receipt
Promise<UserOperationReceipt>
: The User Operation receipt.
estimateUserOperationGas
Estimates the gas values for a User Operation to be executed successfully.
Usage
example.ts
import { nexusClient } from "./nexusClient"
const gas = await nexusClient.estimateUserOperationGas({
calls: [
{
to: '0xf5715961C550FC497832063a98eA34673ad7C816',
value: parseEther('0.0001'),
},
{
abi: contractABI,
functionName: 'contractFunction',
to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
}
],
});
Parameters
- calls
{ data: Hex, to: Address, value: bigint }[]
: The calls to execute in the User Operation. - paymaster
Address | true | PaymasterClient | PaymasterAction
(optional)
Response
Promise<EstimateUserOperationGasReturnType>
The estimated gas values.
{
callGasLimit: bigint;
preVerificationGas: bigint;
verificationGasLimit: bigint;
paymasterVerificationGasLimit: bigint | undefined;
paymasterPostOpGasLimit: bigint | undefined;
}
getUserOperation
Retrieves information about a User Operation given a hash.
Usage
example.ts
import { nexusClient } from "./nexusClient"
const receipt = await nexusClient.getUserOperation({
hash: '0x315a882b82eb33250b919da6ebb2dd890df39ca0840e4026cbbad595b9a07e86'
})
Parameters
- hash
'0x${string}'
: A User Operation hash.
Response
- userOperation
Promise<GetUserOperationReturnType>
: User Operation information.
type GetUserOperationReturnType = {
/** The block hash the User Operation was included on. */
blockHash: Hash
/** The block number the User Operation was included on. */
blockNumber: bigint
/** The EntryPoint which handled the User Operation. */
entryPoint: Address
/** The hash of the transaction which included the User Operation. */
transactionHash: Hash
/** The User Operation. */
userOperation: UserOperation
}
getUserOperationReceipt
Returns the User Operation Receipt given a User Operation hash.
Usage
example.ts
import { nexusClient } from "./nexusClient"
const receipt = await nexusClient.getUserOperationReceipt({
hash: '0x315a882b82eb33250b919da6ebb2dd890df39ca0840e4026cbbad595b9a07e86'
})
Parameters
- hash
'0x${string}'
: A User Operation hash.
Response
- receipt
Promise<UserOperationReceipt>
: User Operation receipt.
getSupportedEntryPoints
Returns the EntryPoints that the nexus client supports.
Usage
example.ts
import { nexusClient } from "./nexusClient"
const entrypointAddresses = await nexusClient.getSupportedEntryPoints()
Response
- addresses
Promise<Address[]>
: The EntryPoints that the nexus client supports.
getChainId
Returns the chain ID associated with the nexus client
Usage
example.ts
import { nexusClient } from "./nexusClient"
const chainId = await nexusClient.getChainId()
Response
- chain Id
Promise<number>
: The current chain ID.