SessionKeyPermissionsBuilder

Defined in: account-kit/smart-contracts/dist/types/src/msca/plugins/session-key/permissions.d.ts:37

A builder for creating the hex-encoded data for updating session key permissions.

Constructors

Constructor

1new SessionKeyPermissionsBuilder(): SessionKeyPermissionsBuilder;

Returns

SessionKeyPermissionsBuilder

Methods

addContractAddressAccessEntry()

1addContractAddressAccessEntry(entry): this;

Defined in: account-kit/smart-contracts/dist/types/src/msca/plugins/session-key/permissions.d.ts:79

Adds a contract access entry to the internal list of contract address access entries.

Example

1import { SessionKeyPermissionsBuilder } from "@account-kit/smart-contracts";
2
3const builder = new SessionKeyPermissionsBuilder();
4builder.addContractAddressAccessEntry({
5 contractAddress: "0x1234",
6 isOnList: true,
7 checkSelectors: true,
8});

Parameters

ParameterTypeDescription

entry

ContractAccessEntry

the contract access entry to be added

Returns

this

the instance of the current class for chaining


addContractFunctionAccessEntry()

1addContractFunctionAccessEntry(entry): this;

Defined in: account-kit/smart-contracts/dist/types/src/msca/plugins/session-key/permissions.d.ts:98

Adds a contract method entry to the _contractMethodAccessEntrys array.

Example

1import { SessionKeyPermissionsBuilder } from "@account-kit/smart-contracts";
2
3const builder = new SessionKeyPermissionsBuilder();
4builder.addContractAddressAccessEntry({
5 contractAddress: "0x1234",
6 methodSelector: "0x45678",
7 isOnList: true,
8});

Parameters

ParameterTypeDescription

entry

ContractMethodEntry

The contract method entry to be added

Returns

this

The instance of the class for method chaining


addErc20TokenSpendLimit()

1addErc20TokenSpendLimit(limit): this;

Defined in: account-kit/smart-contracts/dist/types/src/msca/plugins/session-key/permissions.d.ts:153

Adds an ERC20 token spend limit to the list of limits and returns the updated object.

Example

1import { SessionKeyPermissionsBuilder } from "@account-kit/smart-contracts";
2
3const builder = new SessionKeyPermissionsBuilder();
4builder.addErc20TokenSpendLimit({
5 tokenAddress: "0x1234",
6 spendLimit: 1000000000000000000n,
7 refreshInterval: 3600,
8});

Parameters

ParameterTypeDescription

limit

Erc20TokenLimit

The ERC20 token spend limit to be added

Returns

this

The updated object with the new ERC20 token spend limit


encode()

1encode(): `0x${string}`[];

Defined in: account-kit/smart-contracts/dist/types/src/msca/plugins/session-key/permissions.d.ts:200

Encodes various function calls into an array of hexadecimal strings based on the provided permissions and limits.

Example

1import { SessionKeyPermissionsBuilder } from "@account-kit/smart-contracts";
2
3const builder = new SessionKeyPermissionsBuilder();
4builder.setRequiredPaymaster("0x1234");
5const encoded = builder.encode();

Returns

`0x${string}`[]

An array of encoded hexadecimal strings representing the function calls for setting access control, permissions, and limits.


setContractAccessControlType()

1setContractAccessControlType(aclType): this;

Defined in: account-kit/smart-contracts/dist/types/src/msca/plugins/session-key/permissions.d.ts:60

Sets the access control type for the contract and returns the current instance for method chaining.

Example

1import { SessionKeyPermissionsBuilder } from "@account-kit/smart-contracts";
2
3const builder = new SessionKeyPermissionsBuilder();
4builder.setContractAccessControlType(SessionKeyAccessListType.ALLOWLIST);

Parameters

ParameterTypeDescription

aclType

SessionKeyAccessListType

The access control type for the session key

Returns

this

The current instance for method chaining


setGasSpendLimit()

1setGasSpendLimit(limit): this;

Defined in: account-kit/smart-contracts/dist/types/src/msca/plugins/session-key/permissions.d.ts:170

Sets the gas spend limit and returns the current instance for method chaining.

Example

1import { SessionKeyPermissionsBuilder } from "@account-kit/smart-contracts";
2
3const builder = new SessionKeyPermissionsBuilder();
4builder.setGasSpendLimit({
5 spendLimit: 1000000000000000000n,
6 refreshInterval: 3600,
7});

Parameters

ParameterTypeDescription

limit

GasSpendLimit

The gas spend limit to be set

Returns

this

The current instance for chaining


setNativeTokenSpendLimit()

1setNativeTokenSpendLimit(limit): this;

Defined in: account-kit/smart-contracts/dist/types/src/msca/plugins/session-key/permissions.d.ts:134

Sets the native token spend limit and returns the instance for chaining.

Example

1import { SessionKeyPermissionsBuilder } from "@account-kit/smart-contracts";
2
3const builder = new SessionKeyPermissionsBuilder();
4builder.setNativeTokenSpendLimit({
5 spendLimit: 1000000000000000000n,
6 refreshInterval: 3600,
7});

Parameters

ParameterTypeDescription

limit

NativeTokenLimit

The limit to set for native token spending

Returns

this

The instance for chaining


setRequiredPaymaster()

1setRequiredPaymaster(paymaster): this;

Defined in: account-kit/smart-contracts/dist/types/src/msca/plugins/session-key/permissions.d.ts:185

Sets the required paymaster address.

Example

1import { SessionKeyPermissionsBuilder } from "@account-kit/smart-contracts";
2
3const builder = new SessionKeyPermissionsBuilder();
4builder.setRequiredPaymaster("0x1234");

Parameters

ParameterTypeDescription

paymaster

`0x${string}`

the address of the paymaster to be set

Returns

this

the current instance for method chaining


setTimeRange()

1setTimeRange(timeRange): this;

Defined in: account-kit/smart-contracts/dist/types/src/msca/plugins/session-key/permissions.d.ts:116

Sets the time range for an object and returns the object itself for chaining.

Example

1import { SessionKeyPermissionsBuilder } from "@account-kit/smart-contracts";
2
3const builder = new SessionKeyPermissionsBuilder();
4builder.setTimeRange({
5 validFrom: Date.now(),
6 validUntil: Date.now() + 15 * 60 * 1000,
7});

Parameters

ParameterTypeDescription

timeRange

TimeRange

The time range to be set

Returns

this

The current object for method chaining