@metamask/delegation-toolkit
Version:
The Delegation Toolkit built on top of Viem - a library for interacting with DeleGator Smart Accounts
1 lines • 135 kB
Source Map (JSON)
{"version":3,"sources":["/home/runner/work/delegation-toolkit/delegation-toolkit/packages/delegation-toolkit/dist/chunk-5GYFPRIZ.cjs","../src/caveatBuilder/caveatBuilder.ts","../src/caveatBuilder/types.ts","../src/caveatBuilder/allowedCalldataBuilder.ts","../src/caveatBuilder/allowedMethodsBuilder.ts","../src/caveatBuilder/allowedTargetsBuilder.ts","../src/caveatBuilder/argsEqualityCheckBuilder.ts","../src/caveatBuilder/blockNumberBuilder.ts","../src/caveatBuilder/deployedBuilder.ts","../src/caveatBuilder/erc1155BalanceChangeBuilder.ts","../src/caveatBuilder/erc20BalanceChangeBuilder.ts","../src/caveatBuilder/erc20PeriodTransferBuilder.ts","../src/caveatBuilder/erc20StreamingBuilder.ts","../src/caveatBuilder/erc20TransferAmountBuilder.ts","../src/caveatBuilder/erc721BalanceChangeBuilder.ts","../src/caveatBuilder/erc721TransferBuilder.ts","../src/caveatBuilder/exactCalldataBatchBuilder.ts","../src/caveatBuilder/exactCalldataBuilder.ts","../src/caveatBuilder/exactExecutionBatchBuilder.ts","../src/caveatBuilder/exactExecutionBuilder.ts","../src/caveatBuilder/idBuilder.ts","../src/caveatBuilder/limitedCallsBuilder.ts","../src/caveatBuilder/multiTokenPeriodBuilder.ts","../src/caveatBuilder/nativeBalanceChangeBuilder.ts","../src/caveatBuilder/nativeTokenPaymentBuilder.ts","../src/caveatBuilder/nativeTokenPeriodTransferBuilder.ts","../src/caveatBuilder/nativeTokenStreamingBuilder.ts","../src/caveatBuilder/nativeTokenTransferAmountBuilder.ts","../src/caveatBuilder/nonceBuilder.ts","../src/caveatBuilder/ownershipTransferBuilder.ts","../src/caveatBuilder/redeemerBuilder.ts","../src/caveatBuilder/specificActionERC20TransferBatchBuilder.ts","../src/caveatBuilder/timestampBuilder.ts","../src/caveatBuilder/valueLteBuilder.ts","../src/caveatBuilder/coreCaveatBuilder.ts","../src/caveatBuilder/scope/erc20PeriodicScope.ts","../src/caveatBuilder/scope/erc20StreamingScope.ts","../src/caveatBuilder/scope/erc20TransferScope.ts","../src/utils.ts","../src/caveatBuilder/scope/erc721Scope.ts","../src/caveatBuilder/scope/functionCallScope.ts","../src/caveatBuilder/scope/nativeTokenPeriodicScope.ts","../src/caveatBuilder/scope/nativeTokenStreamingScope.ts","../src/caveatBuilder/scope/nativeTokenTransferScope.ts","../src/caveatBuilder/scope/ownershipScope.ts","../src/caveatBuilder/scope/index.ts","../src/caveatBuilder/resolveCaveats.ts","../src/caveats.ts","../src/delegation.ts"],"names":["BalanceChangeType","concat","isHex","toHex","isAddress","encodePacked","encodeAbiParameters","pad","exactCalldata","allowedCalldata","CAVEAT_TYPEHASH"],"mappings":"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","file":"/home/runner/work/delegation-toolkit/delegation-toolkit/packages/delegation-toolkit/dist/chunk-5GYFPRIZ.cjs","sourcesContent":[null,"import type { Caveat, DeleGatorEnvironment } from '../types';\n\ntype CaveatWithOptionalArgs = Omit<Caveat, 'args'> & {\n args?: Caveat['args'];\n};\n\nconst INSECURE_UNRESTRICTED_DELEGATION_ERROR_MESSAGE =\n 'No caveats found. If you definitely want to create an empty caveat collection, set `allowInsecureUnrestrictedDelegation` to `true`.';\n\ntype CaveatBuilderMap = {\n [key: string]: (\n environment: DeleGatorEnvironment,\n ...args: [...any]\n ) => Caveat;\n};\n\nexport type CaveatBuilderConfig = {\n allowInsecureUnrestrictedDelegation?: boolean;\n};\n\n/**\n * A builder class for creating and managing caveats.\n * @template TCaveatBuilderMap - The type map of available caveat builder functions.\n */\nexport class CaveatBuilder<\n TCaveatBuilderMap extends CaveatBuilderMap = Record<string, never>,\n> {\n #results: Caveat[] = [];\n\n #hasBeenBuilt = false;\n\n #environment: DeleGatorEnvironment;\n\n #config: CaveatBuilderConfig;\n\n #enforcerBuilders: TCaveatBuilderMap;\n\n constructor(\n environment: DeleGatorEnvironment,\n config: CaveatBuilderConfig = {},\n enforcerBuilders: TCaveatBuilderMap = {} as TCaveatBuilderMap,\n builtCaveats: Caveat[] = [],\n ) {\n this.#environment = environment;\n this.#config = config;\n this.#enforcerBuilders = enforcerBuilders;\n this.#results = builtCaveats;\n }\n\n /**\n * Extends the CaveatBuilder with a new enforcer function.\n * @template TEnforcerName - The name of the enforcer.\n * @template TFunction - The type of the enforcer function.\n * @param name - The name of the enforcer.\n * @param fn - The enforcer function.\n * @returns The extended CaveatBuilder instance.\n */\n extend<\n TEnforcerName extends string,\n TFunction extends (\n environment: DeleGatorEnvironment,\n config: any,\n ) => Caveat,\n >(\n name: TEnforcerName,\n fn: TFunction,\n ): CaveatBuilder<TCaveatBuilderMap & Record<TEnforcerName, TFunction>> {\n return new CaveatBuilder<\n TCaveatBuilderMap & Record<TEnforcerName, TFunction>\n >(\n this.#environment,\n this.#config,\n { ...this.#enforcerBuilders, [name]: fn },\n this.#results,\n );\n }\n\n /**\n * Adds a caveat directly using a Caveat object.\n * @param caveat - The caveat to add.\n * @returns The CaveatBuilder instance for chaining.\n */\n addCaveat(caveat: CaveatWithOptionalArgs): CaveatBuilder<TCaveatBuilderMap>;\n\n /**\n * Adds a caveat using a named enforcer function.\n * @param name - The name of the enforcer function to use.\n * @param config - The configuration to pass to the enforcer function.\n * @returns The CaveatBuilder instance for chaining.\n */\n addCaveat<TEnforcerName extends keyof TCaveatBuilderMap>(\n name: TEnforcerName,\n config: Parameters<TCaveatBuilderMap[TEnforcerName]>[1],\n ): CaveatBuilder<TCaveatBuilderMap>;\n\n addCaveat<TEnforcerName extends keyof TCaveatBuilderMap>(\n nameOrCaveat: TEnforcerName | CaveatWithOptionalArgs,\n config?: Parameters<TCaveatBuilderMap[TEnforcerName]>[1],\n ): CaveatBuilder<TCaveatBuilderMap> {\n if (typeof nameOrCaveat === 'object') {\n const caveat = {\n args: '0x' as const,\n ...nameOrCaveat,\n };\n\n this.#results = [...this.#results, caveat];\n\n return this;\n }\n const name = nameOrCaveat;\n\n const func = this.#enforcerBuilders[name];\n if (typeof func === 'function') {\n const result = func(this.#environment, config);\n\n this.#results = [...this.#results, result];\n\n return this;\n }\n throw new Error(`Function \"${String(name)}\" does not exist.`);\n }\n\n /**\n * Returns the caveats that have been built using this CaveatBuilder.\n * @returns The array of built caveats.\n * @throws Error if the builder has already been built or if no caveats are found and empty caveats are not allowed.\n */\n build(): Caveat[] {\n if (this.#hasBeenBuilt) {\n throw new Error('This CaveatBuilder has already been built.');\n }\n\n if (\n this.#results.length === 0 &&\n !this.#config.allowInsecureUnrestrictedDelegation\n ) {\n throw new Error(INSECURE_UNRESTRICTED_DELEGATION_ERROR_MESSAGE);\n }\n\n this.#hasBeenBuilt = true;\n\n return this.#results;\n }\n}\n","import type { DeleGatorEnvironment } from 'src/types';\n\nexport enum BalanceChangeType {\n Increase = 0x0,\n Decrease = 0x1,\n}\n\nexport type UnitOfAuthorityBaseConfig = { environment: DeleGatorEnvironment };\n","import { type Hex, concat, isHex, toHex } from 'viem';\n\nimport type { DeleGatorEnvironment, Caveat } from '../types';\n\nexport const allowedCalldata = 'allowedCalldata';\n\nexport type AllowedCalldataBuilderConfig = {\n /**\n * The index in the calldata byte array (including the 4-byte method selector)\n * where the expected calldata starts.\n */\n startIndex: number;\n /**\n * The expected calldata as a hex string that must match at the specified index.\n */\n value: Hex;\n};\n\n/**\n * Builds a caveat struct for AllowedCalldataEnforcer that restricts calldata to a specific value at a given index.\n *\n * @param environment - The DeleGator environment.\n * @param config - The configuration object containing startIndex and value.\n * @returns The Caveat.\n * @throws Error if the value is not a valid hex string, if startIndex is negative, or if startIndex is not a whole number.\n */\nexport const allowedCalldataBuilder = (\n environment: DeleGatorEnvironment,\n config: AllowedCalldataBuilderConfig,\n): Caveat => {\n const { startIndex, value } = config;\n\n if (!isHex(value)) {\n throw new Error('Invalid value: must be a valid hex string');\n }\n\n if (startIndex < 0) {\n throw new Error('Invalid startIndex: must be zero or positive');\n }\n\n if (!Number.isInteger(startIndex)) {\n throw new Error('Invalid startIndex: must be a whole number');\n }\n\n const startIndexHex = toHex(startIndex, { size: 32 });\n\n const terms = concat([startIndexHex, value]);\n\n const {\n caveatEnforcers: { AllowedCalldataEnforcer },\n } = environment;\n\n if (!AllowedCalldataEnforcer) {\n throw new Error('AllowedCalldataEnforcer not found in environment');\n }\n\n return {\n enforcer: AllowedCalldataEnforcer,\n terms,\n args: '0x',\n };\n};\n","import { isHex, concat, toFunctionSelector } from 'viem';\nimport type { AbiFunction, Hex } from 'viem';\n\nimport type { Caveat, DeleGatorEnvironment } from '../types';\n\nexport const allowedMethods = 'allowedMethods';\n\nexport type MethodSelector = Hex | string | AbiFunction;\n\n// length of function selector in chars, _including_ 0x prefix\nconst FUNCTION_SELECTOR_STRING_LENGTH = 10;\n\nexport type AllowedMethodsBuilderConfig = {\n /**\n * An array of method selectors that the delegate is allowed to call.\n * Can be 4-byte hex strings, ABI function signatures, or ABIFunction objects.\n */\n selectors: MethodSelector[];\n};\n\n/**\n * Builds a caveat struct for the AllowedMethodsEnforcer.\n *\n * @param environment - The DeleGator environment.\n * @param config - The configuration object containing the allowed function selectors.\n * @returns The Caveat.\n * @throws Error if no selectors are provided or if any selector is invalid.\n */\nexport const allowedMethodsBuilder = (\n environment: DeleGatorEnvironment,\n config: AllowedMethodsBuilderConfig,\n): Caveat => {\n const { selectors } = config;\n\n if (selectors.length === 0) {\n throw new Error('Invalid selectors: must provide at least one selector');\n }\n\n const parsedSelectors = selectors.map(parseSelector);\n\n const terms = concat(parsedSelectors);\n\n const {\n caveatEnforcers: { AllowedMethodsEnforcer },\n } = environment;\n\n if (!AllowedMethodsEnforcer) {\n throw new Error('AllowedMethodsEnforcer not found in environment');\n }\n\n return {\n enforcer: AllowedMethodsEnforcer,\n terms,\n args: '0x',\n };\n};\n\n/**\n * Parses a method selector into a hex string.\n * @param selector - The method selector to parse.\n * @returns The parsed selector as a hex string.\n */\nfunction parseSelector(selector: MethodSelector) {\n if (isHex(selector)) {\n if (selector.length === FUNCTION_SELECTOR_STRING_LENGTH) {\n return selector;\n }\n throw new Error(\n 'Invalid selector: must be a 4 byte hex string, abi function signature, or AbiFunction',\n );\n }\n\n try {\n return toFunctionSelector(selector);\n } catch (rootError: any) {\n throw new Error(\n 'Invalid selector: must be a 4 byte hex string, abi function signature, or AbiFunction',\n { cause: rootError },\n );\n }\n}\n","import { concat, isAddress, type Address } from 'viem';\n\nimport type { Caveat, DeleGatorEnvironment } from '../types';\n\nexport const allowedTargets = 'allowedTargets';\n\nexport type AllowedTargetsBuilderConfig = {\n /**\n * An array of addresses that the delegate is allowed to call.\n * Each address must be a valid hex string.\n */\n targets: Address[];\n};\n\n/**\n * Builds a caveat struct for AllowedTargetsEnforcer.\n *\n * @param environment - The DeleGator environment.\n * @param config - The configuration object containing the targets.\n * @returns The Caveat.\n * @throws Error if no targets are provided or if any of the addresses are invalid.\n */\nexport const allowedTargetsBuilder = (\n environment: DeleGatorEnvironment,\n config: AllowedTargetsBuilderConfig,\n): Caveat => {\n const { targets } = config;\n\n if (targets.length === 0) {\n throw new Error(\n 'Invalid targets: must provide at least one target address',\n );\n }\n\n // we check that the address is valid, but doesn't need to be checksummed\n const invalidAddresses = targets.filter(\n (target) => !isAddress(target, { strict: false }),\n );\n\n if (invalidAddresses.length > 0) {\n throw new Error('Invalid targets: must be valid addresses');\n }\n\n const terms = concat(targets);\n\n const {\n caveatEnforcers: { AllowedTargetsEnforcer },\n } = environment;\n\n if (!AllowedTargetsEnforcer) {\n throw new Error('AllowedTargetsEnforcer not found in environment');\n }\n\n return {\n enforcer: AllowedTargetsEnforcer,\n terms,\n args: '0x',\n };\n};\n","import { type Hex, isHex } from 'viem';\n\nimport type { DeleGatorEnvironment, Caveat } from '../types';\n\nexport const argsEqualityCheck = 'argsEqualityCheck';\n\nexport type ArgsEqualityCheckBuilderConfig = {\n /**\n * The expected args as a hex string that must match exactly when redeeming the delegation.\n */\n args: Hex;\n};\n\n/**\n * Builds a caveat struct for the ArgsEqualityCheckEnforcer.\n *\n * @param environment - The DeleGator environment.\n * @param config - The configuration object for the builder.\n * @returns The Caveat.\n * @throws Error if the config is invalid.\n */\nexport const argsEqualityCheckBuilder = (\n environment: DeleGatorEnvironment,\n config: ArgsEqualityCheckBuilderConfig,\n): Caveat => {\n const { args } = config;\n if (!isHex(args)) {\n throw new Error('Invalid config: args must be a valid hex string');\n }\n\n const {\n caveatEnforcers: { ArgsEqualityCheckEnforcer },\n } = environment;\n\n if (!ArgsEqualityCheckEnforcer) {\n throw new Error('ArgsEqualityCheckEnforcer not found in environment');\n }\n\n return {\n enforcer: ArgsEqualityCheckEnforcer,\n terms: args,\n args: '0x',\n };\n};\n","import { concat, toHex } from 'viem';\n\nimport type { DeleGatorEnvironment, Caveat } from '../types';\n\nexport const blockNumber = 'blockNumber';\n\nexport type BlockNumberBuilderConfig = {\n /**\n * The block number after which the delegation is valid.\n * Set to 0n to disable this threshold.\n */\n afterThreshold: bigint;\n /**\n * The block number before which the delegation is valid.\n * Set to 0n to disable this threshold.\n */\n beforeThreshold: bigint;\n};\n\n/**\n * Builds a caveat struct for the BlockNumberEnforcer.\n *\n * @param environment - The DeleGator environment.\n * @param config - The configuration object for the BlockNumberEnforcer.\n * @returns The Caveat.\n * @throws Error if both thresholds are zero, if blockAfterThreshold is greater than or equal to blockBeforeThreshold, or if BlockNumberEnforcer is not available in the environment.\n */\nexport const blockNumberBuilder = (\n environment: DeleGatorEnvironment,\n config: BlockNumberBuilderConfig,\n): Caveat => {\n const { afterThreshold, beforeThreshold } = config;\n\n if (afterThreshold === 0n && beforeThreshold === 0n) {\n throw new Error(\n 'Invalid thresholds: At least one of afterThreshold or beforeThreshold must be specified',\n );\n }\n\n if (beforeThreshold !== 0n && afterThreshold >= beforeThreshold) {\n throw new Error(\n 'Invalid thresholds: afterThreshold must be less than beforeThreshold if both are specified',\n );\n }\n\n const terms = concat([\n toHex(afterThreshold, {\n size: 16,\n }),\n toHex(beforeThreshold, {\n size: 16,\n }),\n ]);\n\n const {\n caveatEnforcers: { BlockNumberEnforcer },\n } = environment;\n\n if (!BlockNumberEnforcer) {\n throw new Error('BlockNumberEnforcer not found in environment');\n }\n\n return {\n enforcer: BlockNumberEnforcer,\n terms,\n args: '0x',\n };\n};\n","import { concat, isAddress, isHex, pad, type Address, type Hex } from 'viem';\n\nimport type { Caveat, DeleGatorEnvironment } from '../types';\n\nexport const deployed = 'deployed';\n\nexport type DeployedBuilderConfig = {\n /**\n * The contract address as a hex string.\n */\n contractAddress: Address;\n /**\n * The salt to use with the deployment, as a hex string.\n */\n salt: Hex;\n /**\n * The bytecode of the contract as a hex string.\n */\n bytecode: Hex;\n};\n\n/**\n * Builds a caveat struct for a DeployedEnforcer.\n *\n * @param environment - The DeleGator environment.\n * @param config - The configuration for the deployed builder.\n * @returns The Caveat.\n * @throws Error if the contract address, factory address, or bytecode is invalid.\n */\nexport const deployedBuilder = (\n environment: DeleGatorEnvironment,\n config: DeployedBuilderConfig,\n): Caveat => {\n const { contractAddress, salt, bytecode } = config;\n\n // we check that the addresses are valid, but don't need to be checksummed\n if (!isAddress(contractAddress, { strict: false })) {\n throw new Error(\n `Invalid contractAddress: must be a valid Ethereum address`,\n );\n }\n\n if (!isHex(salt)) {\n throw new Error('Invalid salt: must be a valid hexadecimal string');\n }\n\n if (!isHex(bytecode)) {\n throw new Error('Invalid bytecode: must be a valid hexadecimal string');\n }\n\n const terms = concat([contractAddress, pad(salt, { size: 32 }), bytecode]);\n\n const {\n caveatEnforcers: { DeployedEnforcer },\n } = environment;\n\n if (!DeployedEnforcer) {\n throw new Error('DeployedEnforcer not found in environment');\n }\n\n return {\n enforcer: DeployedEnforcer,\n terms,\n args: '0x',\n };\n};\n","import { type Address, isAddress, encodePacked } from 'viem';\n\nimport type { DeleGatorEnvironment, Caveat } from '../types';\nimport { BalanceChangeType } from './types';\n\nexport const erc1155BalanceChange = 'erc1155BalanceChange';\n\nexport type Erc1155BalanceChangeBuilderConfig = {\n /**\n * The ERC-1155 contract address as a hex string.\n */\n tokenAddress: Address;\n /**\n * The recipient's address as a hex string.\n */\n recipient: Address;\n /**\n * The ID of the ERC-1155 token as a bigint.\n */\n tokenId: bigint;\n /**\n * The amount by which the balance must have changed as a bigint.\n */\n balance: bigint;\n /**\n * The balance change type for the ERC-1155 token.\n * Specifies whether the balance should have increased or decreased.\n * Valid parameters are BalanceChangeType.Increase and BalanceChangeType.Decrease.\n */\n changeType: BalanceChangeType;\n};\n\n/**\n * Builds a caveat struct for the ERC1155BalanceChangeEnforcer.\n *\n * @param environment - The DeleGator environment.\n * @param config - The configuration object for the ERC1155 balance change.\n * @returns The Caveat.\n * @throws Error if the token address is invalid, the recipient address is invalid, or the amount is not a positive number.\n */\nexport const erc1155BalanceChangeBuilder = (\n environment: DeleGatorEnvironment,\n config: Erc1155BalanceChangeBuilderConfig,\n): Caveat => {\n const { tokenAddress, recipient, tokenId, balance, changeType } = config;\n\n if (!isAddress(tokenAddress, { strict: false })) {\n throw new Error('Invalid tokenAddress: must be a valid address');\n }\n\n if (!isAddress(recipient, { strict: false })) {\n throw new Error('Invalid recipient: must be a valid address');\n }\n\n if (balance <= 0n) {\n throw new Error('Invalid balance: must be a positive number');\n }\n\n if (tokenId < 0n) {\n throw new Error('Invalid tokenId: must be a non-negative number');\n }\n\n if (\n changeType !== BalanceChangeType.Increase &&\n changeType !== BalanceChangeType.Decrease\n ) {\n throw new Error('Invalid changeType: must be either Increase or Decrease');\n }\n\n const terms = encodePacked(\n ['uint8', 'address', 'address', 'uint256', 'uint256'],\n [changeType, tokenAddress, recipient, tokenId, balance],\n );\n\n const {\n caveatEnforcers: { ERC1155BalanceChangeEnforcer },\n } = environment;\n\n if (!ERC1155BalanceChangeEnforcer) {\n throw new Error('ERC1155BalanceChangeEnforcer not found in environment');\n }\n\n return {\n enforcer: ERC1155BalanceChangeEnforcer,\n terms,\n args: '0x',\n };\n};\n","import { type Address, isAddress, encodePacked } from 'viem';\n\nimport type { DeleGatorEnvironment, Caveat } from '../types';\nimport { BalanceChangeType } from './types';\n\nexport const erc20BalanceChange = 'erc20BalanceChange';\n\nexport type Erc20BalanceChangeBuilderConfig = {\n /**\n * The ERC-20 contract address as a hex string.\n */\n tokenAddress: Address;\n /**\n * The recipient's address as a hex string.\n */\n recipient: Address;\n /**\n * The amount by which the balance must have changed as a bigint.\n */\n balance: bigint;\n /**\n * The balance change type for the ERC-20 token.\n * Specifies whether the balance should have increased or decreased.\n * Valid parameters are BalanceChangeType.Increase and BalanceChangeType.Decrease.\n */\n changeType: BalanceChangeType;\n};\n\n/**\n * Builds a caveat struct for the ERC20BalanceChangeEnforcer.\n *\n * @param environment - The DeleGator environment.\n * @param config - The configuration object for the ERC20 balance change.\n * @returns The Caveat.\n * @throws Error if the token address is invalid, the amount is not a positive number, or the change type is invalid.\n */\nexport const erc20BalanceChangeBuilder = (\n environment: DeleGatorEnvironment,\n config: Erc20BalanceChangeBuilderConfig,\n): Caveat => {\n const { tokenAddress, recipient, balance, changeType } = config;\n\n if (!isAddress(tokenAddress, { strict: false })) {\n throw new Error('Invalid tokenAddress: must be a valid address');\n }\n\n if (balance <= 0n) {\n throw new Error('Invalid balance: must be a positive number');\n }\n\n if (\n changeType !== BalanceChangeType.Increase &&\n changeType !== BalanceChangeType.Decrease\n ) {\n throw new Error('Invalid changeType: must be either Increase or Decrease');\n }\n\n const terms = encodePacked(\n ['uint8', 'address', 'address', 'uint256'],\n [changeType, tokenAddress, recipient, balance],\n );\n\n const {\n caveatEnforcers: { ERC20BalanceChangeEnforcer },\n } = environment;\n\n if (!ERC20BalanceChangeEnforcer) {\n throw new Error('ERC20BalanceChangeEnforcer not found in environment');\n }\n\n return {\n enforcer: ERC20BalanceChangeEnforcer,\n terms,\n args: '0x',\n };\n};\n","import { createERC20TokenPeriodTransferTerms } from '@metamask/delegation-core';\nimport type { Address } from 'viem';\n\nimport type { Caveat, DeleGatorEnvironment } from '../types';\n\nexport const erc20PeriodTransfer = 'erc20PeriodTransfer';\n\nexport type Erc20PeriodTransferBuilderConfig = {\n /**\n * The ERC-20 contract address as a hex string.\n */\n tokenAddress: Address;\n /**\n * The maximum amount of tokens that can be transferred per period.\n */\n periodAmount: bigint;\n /**\n * The durati