Defined in: account-kit/smart-contracts/src/msca/plugins/session-key/permissions.ts:62
A builder for creating the hex-encoded data for updating session key permissions.
new SessionKeyPermissionsBuilder(): SessionKeyPermissionsBuilder;Returns
SessionKeyPermissionsBuilder
addContractAddressAccessEntry(entry): SessionKeyPermissionsBuilder;Defined in: account-kit/smart-contracts/src/msca/plugins/session-key/permissions.ts:110
Adds a contract access entry to the internal list of contract address access entries.
Example
import { SessionKeyPermissionsBuilder } from "@account-kit/smart-contracts";
const builder = new SessionKeyPermissionsBuilder();
builder.addContractAddressAccessEntry({
contractAddress: "0x1234",
isOnList: true,
checkSelectors: true,
});Parameters
| Parameter | Type | Description |
|---|---|---|
| the contract access entry to be added |
Returns
SessionKeyPermissionsBuilder
the instance of the current class for chaining
addContractFunctionAccessEntry(entry): SessionKeyPermissionsBuilder;Defined in: account-kit/smart-contracts/src/msca/plugins/session-key/permissions.ts:133
Adds a contract method entry to the _contractMethodAccessEntrys array.
Example
import { SessionKeyPermissionsBuilder } from "@account-kit/smart-contracts";
const builder = new SessionKeyPermissionsBuilder();
builder.addContractAddressAccessEntry({
contractAddress: "0x1234",
methodSelector: "0x45678",
isOnList: true,
});Parameters
| Parameter | Type | Description |
|---|---|---|
| The contract method entry to be added |
Returns
SessionKeyPermissionsBuilder
The instance of the class for method chaining
addErc20TokenSpendLimit(limit): SessionKeyPermissionsBuilder;Defined in: account-kit/smart-contracts/src/msca/plugins/session-key/permissions.ts:200
Adds an ERC20 token spend limit to the list of limits and returns the updated object.
Example
import { SessionKeyPermissionsBuilder } from "@account-kit/smart-contracts";
const builder = new SessionKeyPermissionsBuilder();
builder.addErc20TokenSpendLimit({
tokenAddress: "0x1234",
spendLimit: 1000000000000000000n,
refreshInterval: 3600,
});Parameters
| Parameter | Type | Description |
|---|---|---|
| The ERC20 token spend limit to be added |
Returns
SessionKeyPermissionsBuilder
The updated object with the new ERC20 token spend limit
encode(): `0x${string}`[];Defined in: account-kit/smart-contracts/src/msca/plugins/session-key/permissions.ts:259
Encodes various function calls into an array of hexadecimal strings based on the provided permissions and limits.
Example
import { SessionKeyPermissionsBuilder } from "@account-kit/smart-contracts";
const builder = new SessionKeyPermissionsBuilder();
builder.setRequiredPaymaster("0x1234");
const encoded = builder.encode();Returns
`0x${string}`[]
An array of encoded hexadecimal strings representing the function calls for setting access control, permissions, and limits.
setContractAccessControlType(aclType): SessionKeyPermissionsBuilder;Defined in: account-kit/smart-contracts/src/msca/plugins/session-key/permissions.ts:87
Sets the access control type for the contract and returns the current instance for method chaining.
Example
import { SessionKeyPermissionsBuilder } from "@account-kit/smart-contracts";
const builder = new SessionKeyPermissionsBuilder();
builder.setContractAccessControlType(SessionKeyAccessListType.ALLOWLIST);Parameters
| Parameter | Type | Description |
|---|---|---|
| The access control type for the session key |
Returns
SessionKeyPermissionsBuilder
The current instance for method chaining
setGasSpendLimit(limit): SessionKeyPermissionsBuilder;Defined in: account-kit/smart-contracts/src/msca/plugins/session-key/permissions.ts:221
Sets the gas spend limit and returns the current instance for method chaining.
Example
import { SessionKeyPermissionsBuilder } from "@account-kit/smart-contracts";
const builder = new SessionKeyPermissionsBuilder();
builder.setGasSpendLimit({
spendLimit: 1000000000000000000n,
refreshInterval: 3600,
});Parameters
| Parameter | Type | Description |
|---|---|---|
| The gas spend limit to be set |
Returns
SessionKeyPermissionsBuilder
The current instance for chaining
setNativeTokenSpendLimit(limit): SessionKeyPermissionsBuilder;Defined in: account-kit/smart-contracts/src/msca/plugins/session-key/permissions.ts:177
Sets the native token spend limit and returns the instance for chaining.
Example
import { SessionKeyPermissionsBuilder } from "@account-kit/smart-contracts";
const builder = new SessionKeyPermissionsBuilder();
builder.setNativeTokenSpendLimit({
spendLimit: 1000000000000000000n,
refreshInterval: 3600,
});Parameters
| Parameter | Type | Description |
|---|---|---|
| The limit to set for native token spending |
Returns
SessionKeyPermissionsBuilder
The instance for chaining
setRequiredPaymaster(paymaster): SessionKeyPermissionsBuilder;Defined in: account-kit/smart-contracts/src/msca/plugins/session-key/permissions.ts:240
Sets the required paymaster address.
Example
import { SessionKeyPermissionsBuilder } from "@account-kit/smart-contracts";
const builder = new SessionKeyPermissionsBuilder();
builder.setRequiredPaymaster("0x1234");Parameters
| Parameter | Type | Description |
|---|---|---|
|
| the address of the paymaster to be set |
Returns
SessionKeyPermissionsBuilder
the current instance for method chaining
setTimeRange(timeRange): SessionKeyPermissionsBuilder;Defined in: account-kit/smart-contracts/src/msca/plugins/session-key/permissions.ts:155
Sets the time range for an object and returns the object itself for chaining.
Example
import { SessionKeyPermissionsBuilder } from "@account-kit/smart-contracts";
const builder = new SessionKeyPermissionsBuilder();
builder.setTimeRange({
validFrom: Date.now(),
validUntil: Date.now() + 15 * 60 * 1000,
});Parameters
| Parameter | Type | Description |
|---|---|---|
| The time range to be set |
Returns
SessionKeyPermissionsBuilder
The current object for method chaining