Skip to content
Alchemy Logo

SessionKeyPermissionsBuilder

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

ParameterTypeDescription

entry

ContractAccessEntry

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

ParameterTypeDescription

entry

ContractMethodEntry

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

ParameterTypeDescription

limit

Erc20TokenLimit

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

ParameterTypeDescription

aclType

SessionKeyAccessListType

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

ParameterTypeDescription

limit

GasSpendLimit

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

ParameterTypeDescription

limit

NativeTokenLimit

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

ParameterTypeDescription

paymaster

`0x${string}`

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

ParameterTypeDescription

timeRange

TimeRange

The time range to be set

Returns

SessionKeyPermissionsBuilder

The current object for method chaining

Was this page helpful?