@account-kit/smart-contracts 4.25.0 → 4.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/src/ma-v2/account/common/modularAccountV2Base.js +29 -17
- package/dist/esm/src/ma-v2/account/common/modularAccountV2Base.js.map +1 -1
- package/dist/esm/src/ma-v2/account/nativeSMASigner.js +6 -2
- package/dist/esm/src/ma-v2/account/nativeSMASigner.js.map +1 -1
- package/dist/esm/src/ma-v2/actions/deferralActions.d.ts +0 -5
- package/dist/esm/src/ma-v2/actions/deferralActions.js +0 -20
- package/dist/esm/src/ma-v2/actions/deferralActions.js.map +1 -1
- package/dist/esm/src/ma-v2/index.d.ts +2 -1
- package/dist/esm/src/ma-v2/index.js +2 -1
- package/dist/esm/src/ma-v2/index.js.map +1 -1
- package/dist/esm/src/ma-v2/modules/single-signer-validation/signer.js +6 -2
- package/dist/esm/src/ma-v2/modules/single-signer-validation/signer.js.map +1 -1
- package/dist/esm/src/ma-v2/permissionBuilder.d.ts +1 -0
- package/dist/esm/src/ma-v2/permissionBuilder.js +34 -20
- package/dist/esm/src/ma-v2/permissionBuilder.js.map +1 -1
- package/dist/esm/src/ma-v2/permissionBuilderErrors.d.ts +108 -0
- package/dist/esm/src/ma-v2/permissionBuilderErrors.js +192 -0
- package/dist/esm/src/ma-v2/permissionBuilderErrors.js.map +1 -0
- package/dist/esm/src/ma-v2/utils.d.ts +17 -0
- package/dist/esm/src/ma-v2/utils.js +23 -1
- package/dist/esm/src/ma-v2/utils.js.map +1 -1
- package/dist/types/src/ma-v2/account/common/modularAccountV2Base.d.ts.map +1 -1
- package/dist/types/src/ma-v2/account/nativeSMASigner.d.ts.map +1 -1
- package/dist/types/src/ma-v2/actions/deferralActions.d.ts +0 -5
- package/dist/types/src/ma-v2/actions/deferralActions.d.ts.map +1 -1
- package/dist/types/src/ma-v2/index.d.ts +2 -1
- package/dist/types/src/ma-v2/index.d.ts.map +1 -1
- package/dist/types/src/ma-v2/modules/single-signer-validation/signer.d.ts.map +1 -1
- package/dist/types/src/ma-v2/permissionBuilder.d.ts +1 -0
- package/dist/types/src/ma-v2/permissionBuilder.d.ts.map +1 -1
- package/dist/types/src/ma-v2/permissionBuilderErrors.d.ts +109 -0
- package/dist/types/src/ma-v2/permissionBuilderErrors.d.ts.map +1 -0
- package/dist/types/src/ma-v2/utils.d.ts +17 -0
- package/dist/types/src/ma-v2/utils.d.ts.map +1 -1
- package/package.json +5 -5
- package/src/ma-v2/account/common/modularAccountV2Base.ts +29 -18
- package/src/ma-v2/account/nativeSMASigner.ts +7 -2
- package/src/ma-v2/actions/deferralActions.ts +0 -31
- package/src/ma-v2/index.ts +2 -1
- package/src/ma-v2/modules/single-signer-validation/signer.ts +7 -2
- package/src/ma-v2/permissionBuilder.ts +50 -53
- package/src/ma-v2/permissionBuilderErrors.ts +166 -0
- package/src/ma-v2/utils.ts +38 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/ma-v2/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n concat,\n toHex,\n custom,\n encodeFunctionData,\n type Hex,\n type Chain,\n type Address,\n type Transport,\n parseAbi,\n} from \"viem\";\nimport {\n arbitrum,\n arbitrumSepolia,\n base,\n baseSepolia,\n mainnet,\n optimism,\n optimismSepolia,\n polygon,\n polygonAmoy,\n sepolia,\n} from \"@account-kit/infra\";\nimport { createModularAccountV2 } from \"./account/modularAccountV2.js\";\nimport { type ModularAccountV2 } from \"./account/common/modularAccountV2Base.js\";\nimport { semiModularAccountStorageAbi } from \"./abis/semiModularAccountStorageAbi.js\";\nimport {\n AccountNotFoundError,\n ChainNotFoundError,\n type GetAccountParameter,\n type SmartAccountClient,\n type SmartAccountSigner,\n type SmartContractAccountWithSigner,\n type UpgradeToData,\n} from \"@aa-sdk/core\";\n\nexport const DEFAULT_OWNER_ENTITY_ID = 0;\n\nexport type PackUOSignatureParams = {\n // orderedHookData: HookData[];\n validationSignature: Hex;\n};\n\n// TODO: direct call validation 1271\nexport type Pack1271SignatureParams = {\n validationSignature: Hex;\n entityId: number;\n};\n\n// Signature packing utility for user operations\nexport const packUOSignature = ({\n // orderedHookData, TODO: integrate in next iteration of MAv2 sdk\n validationSignature,\n}: PackUOSignatureParams): Hex => {\n return concat([\"0xFF\", \"0x00\", validationSignature]);\n};\n\n// Signature packing utility for 1271 signatures\nexport const pack1271Signature = ({\n validationSignature,\n entityId,\n}: Pack1271SignatureParams): Hex => {\n return concat([\n \"0x00\",\n toHex(entityId, { size: 4 }),\n \"0xFF\",\n \"0x00\", // EOA type signature\n validationSignature,\n ]);\n};\n\nexport const getDefaultMAV2FactoryAddress = (chain: Chain): Address => {\n switch (chain.id) {\n // TODO: case mekong.id:\n case sepolia.id:\n case baseSepolia.id:\n case polygon.id:\n case mainnet.id:\n case polygonAmoy.id:\n case optimism.id:\n case optimismSepolia.id:\n case arbitrum.id:\n case arbitrumSepolia.id:\n case base.id:\n default:\n return \"0x00000000000017c61b5bEe81050EC8eFc9c6fecd\";\n }\n};\n\nexport const getDefaultSMAV2BytecodeAddress = (chain: Chain): Address => {\n switch (chain.id) {\n // TODO: case mekong.id:\n case sepolia.id:\n case baseSepolia.id:\n case polygon.id:\n case mainnet.id:\n case polygonAmoy.id:\n case optimism.id:\n case optimismSepolia.id:\n case arbitrum.id:\n case arbitrumSepolia.id:\n case base.id:\n default:\n return \"0x000000000000c5A9089039570Dd36455b5C07383\";\n }\n};\n\nexport const getDefaultSMAV2StorageAddress = (chain: Chain): Address => {\n switch (chain.id) {\n // TODO: case mekong.id:\n case sepolia.id:\n case baseSepolia.id:\n case polygon.id:\n case mainnet.id:\n case polygonAmoy.id:\n case optimism.id:\n case optimismSepolia.id:\n case arbitrum.id:\n case arbitrumSepolia.id:\n case base.id:\n default:\n return \"0x0000000000006E2f9d80CaEc0Da6500f005EB25A\";\n }\n};\n\nexport const getDefaultSMAV27702Address = (chain: Chain): Address => {\n switch (chain.id) {\n // TODO: case mekong.id:\n case sepolia.id:\n case baseSepolia.id:\n case polygon.id:\n case mainnet.id:\n case polygonAmoy.id:\n case optimism.id:\n case optimismSepolia.id:\n case arbitrum.id:\n case arbitrumSepolia.id:\n case base.id:\n default:\n return \"0x69007702764179f14F51cdce752f4f775d74E139\";\n }\n};\n\nexport const getDefaultMAV2Address = (chain: Chain): Address => {\n switch (chain.id) {\n // TODO: case mekong.id:\n case sepolia.id:\n case baseSepolia.id:\n case polygon.id:\n case mainnet.id:\n case polygonAmoy.id:\n case optimism.id:\n case optimismSepolia.id:\n case arbitrum.id:\n case arbitrumSepolia.id:\n case base.id:\n default:\n return \"0x00000000000002377B26b1EdA7b0BC371C60DD4f\";\n }\n};\n\nexport type GetMAV2UpgradeToData<\n TSigner extends SmartAccountSigner = SmartAccountSigner,\n TAccount extends\n | SmartContractAccountWithSigner<string, TSigner>\n | undefined = SmartContractAccountWithSigner<string, TSigner> | undefined\n> = GetAccountParameter<TAccount>;\n\n/**\n * Retrieves the data necessary to upgrade to a Modular Account V2 (MA v2).\n * Note that the upgrade will be to the Semi Modular Account Storage variant\n *\n * @example\n * ```ts\n * import { createLightAccountClient, getMAV2UpgradeToData } from \"@account-kit/smart-contracts\";\n *\n * const client = createLightAccountClient({});\n * const upgradeData = await getMAV2UpgradeToData(client, {});\n * ```\n *\n * @param {SmartAccountClient<TTransport, TChain, TAccount>} client The smart account client\n * @param {GetMAV2UpgradeToData<TSigner, TAccount>} args The arguments required for the upgrade\n * @returns {Promise<UpgradeToData & { createModularAccountV2FromExisting: () => Promise<ModularAccountV2<TSigner>>}>} A promise that resolves to upgrade data augmented with a function to create a Modular Account V2\n */\nexport async function getMAV2UpgradeToData<\n TTransport extends Transport = Transport,\n TChain extends Chain | undefined = Chain | undefined,\n TSigner extends SmartAccountSigner = SmartAccountSigner,\n TAccount extends\n | SmartContractAccountWithSigner<string, TSigner>\n | undefined = SmartContractAccountWithSigner<string, TSigner> | undefined\n>(\n client: SmartAccountClient<TTransport, TChain, TAccount>,\n args: GetMAV2UpgradeToData<TSigner, TAccount>\n): Promise<\n UpgradeToData & {\n createModularAccountV2FromExisting: () => Promise<\n ModularAccountV2<TSigner>\n >;\n }\n> {\n const { account: account_ = client.account } = args;\n\n if (!account_) {\n throw new AccountNotFoundError();\n }\n const account = account_ as SmartContractAccountWithSigner<string, TSigner>;\n\n const chain = client.chain;\n if (!chain) {\n throw new ChainNotFoundError();\n }\n\n const initData = encodeFunctionData({\n abi: semiModularAccountStorageAbi,\n functionName: \"initialize\",\n args: [await account.getSigner().getAddress()],\n });\n\n return {\n implAddress: getDefaultSMAV2StorageAddress(chain),\n initializationData: initData,\n createModularAccountV2FromExisting: async () =>\n createModularAccountV2({\n transport: custom(client.transport),\n chain: chain as Chain,\n signer: account.getSigner(),\n accountAddress: account.address,\n }),\n };\n}\n\nexport const entityIdAndNonceReaderBytecode =\n \"0x608060405234801561001057600080fd5b506040516104f13803806104f183398101604081905261002f916101e5565b60006008826001600160c01b0316901c90506000808263ffffffff1611610057576001610059565b815b90506001600160a01b0385163b15610133575b60006001600160a01b03861663d31b575b6bffffffff0000000000000000604085901b166040516001600160e01b031960e084901b1681526001600160401b03199091166004820152602401600060405180830381865afa1580156100d5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526100fd91908101906103c6565b805190915060ff161580156101155750606081015151155b156101205750610133565b8161012a816104a4565b9250505061006c565b604051631aab3f0d60e11b81526001600160a01b03868116600483015264ffffffff01600160c01b038516600884901b64ffffffff0016176024830152600091908616906335567e1a90604401602060405180830381865afa15801561019d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101c191906104d7565b90508060005260206000f35b6001600160a01b03811681146101e257600080fd5b50565b6000806000606084860312156101fa57600080fd5b8351610205816101cd565b6020850151909350610216816101cd565b60408501519092506001600160c01b038116811461023357600080fd5b809150509250925092565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b03811182821017156102765761027661023e565b60405290565b604051601f8201601f191681016001600160401b03811182821017156102a4576102a461023e565b604052919050565b60006001600160401b038211156102c5576102c561023e565b5060051b60200190565b600082601f8301126102e057600080fd5b81516102f36102ee826102ac565b61027c565b8082825260208201915060208360051b86010192508583111561031557600080fd5b602085015b8381101561034857805166ffffffffffffff198116811461033a57600080fd5b83526020928301920161031a565b5095945050505050565b600082601f83011261036357600080fd5b81516103716102ee826102ac565b8082825260208201915060208360051b86010192508583111561039357600080fd5b602085015b838110156103485780516001600160e01b0319811681146103b857600080fd5b835260209283019201610398565b6000602082840312156103d857600080fd5b81516001600160401b038111156103ee57600080fd5b82016080818503121561040057600080fd5b610408610254565b815160ff8116811461041957600080fd5b815260208201516001600160401b0381111561043457600080fd5b610440868285016102cf565b60208301525060408201516001600160401b0381111561045f57600080fd5b61046b868285016102cf565b60408301525060608201516001600160401b0381111561048a57600080fd5b61049686828501610352565b606083015250949350505050565b600063ffffffff821663ffffffff81036104ce57634e487b7160e01b600052601160045260246000fd5b60010192915050565b6000602082840312156104e957600080fd5b505191905056fe\";\n\nexport const mintableERC20Bytecode =\n \"0x608060405234801561000f575f80fd5b506040518060400160405280600d81526020016c26b4b73a30b13632aa37b5b2b760991b81525060405180604001604052806002815260200161135560f21b8152508160039081610060919061010d565b50600461006d828261010d565b5050506101c7565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061009d57607f821691505b6020821081036100bb57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561010857805f5260205f20601f840160051c810160208510156100e65750805b601f840160051c820191505b81811015610105575f81556001016100f2565b50505b505050565b81516001600160401b0381111561012657610126610075565b61013a816101348454610089565b846100c1565b6020601f82116001811461016c575f83156101555750848201515b5f19600385901b1c1916600184901b178455610105565b5f84815260208120601f198516915b8281101561019b578785015182556020948501946001909201910161017b565b50848210156101b857868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b610737806101d45f395ff3fe608060405234801561000f575f80fd5b506004361061008c575f3560e01c806306fdde0314610090578063095ea7b3146100ae57806318160ddd146100d157806323b872dd146100e3578063313ce567146100f657806340c10f191461010557806370a082311461011a57806395d89b4114610142578063a9059cbb1461014a578063dd62ed3e1461015d575b5f80fd5b610098610170565b6040516100a59190610572565b60405180910390f35b6100c16100bc3660046105c2565b610200565b60405190151581526020016100a5565b6002545b6040519081526020016100a5565b6100c16100f13660046105ea565b610219565b604051601281526020016100a5565b6101186101133660046105c2565b61023c565b005b6100d5610128366004610624565b6001600160a01b03165f9081526020819052604090205490565b61009861024a565b6100c16101583660046105c2565b610259565b6100d561016b366004610644565b610266565b60606003805461017f90610675565b80601f01602080910402602001604051908101604052809291908181526020018280546101ab90610675565b80156101f65780601f106101cd576101008083540402835291602001916101f6565b820191905f5260205f20905b8154815290600101906020018083116101d957829003601f168201915b5050505050905090565b5f3361020d818585610290565b60019150505b92915050565b5f336102268582856102a2565b6102318585856102fc565b506001949350505050565b6102468282610359565b5050565b60606004805461017f90610675565b5f3361020d8185856102fc565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b61029d838383600161038d565b505050565b5f6102ad8484610266565b90505f198110156102f657818110156102e857828183604051637dc7a0d960e11b81526004016102df939291906106ad565b60405180910390fd5b6102f684848484035f61038d565b50505050565b6001600160a01b038316610325575f604051634b637e8f60e11b81526004016102df91906106ce565b6001600160a01b03821661034e575f60405163ec442f0560e01b81526004016102df91906106ce565b61029d83838361045f565b6001600160a01b038216610382575f60405163ec442f0560e01b81526004016102df91906106ce565b6102465f838361045f565b6001600160a01b0384166103b6575f60405163e602df0560e01b81526004016102df91906106ce565b6001600160a01b0383166103df575f604051634a1406b160e11b81526004016102df91906106ce565b6001600160a01b038085165f90815260016020908152604080832093871683529290522082905580156102f657826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161045191815260200190565b60405180910390a350505050565b6001600160a01b038316610489578060025f82825461047e91906106e2565b909155506104e69050565b6001600160a01b0383165f90815260208190526040902054818110156104c85783818360405163391434e360e21b81526004016102df939291906106ad565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b03821661050257600280548290039055610520565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161056591815260200190565b60405180910390a3505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b03811681146105bd575f80fd5b919050565b5f80604083850312156105d3575f80fd5b6105dc836105a7565b946020939093013593505050565b5f805f606084860312156105fc575f80fd5b610605846105a7565b9250610613602085016105a7565b929592945050506040919091013590565b5f60208284031215610634575f80fd5b61063d826105a7565b9392505050565b5f8060408385031215610655575f80fd5b61065e836105a7565b915061066c602084016105a7565b90509250929050565b600181811c9082168061068957607f821691505b6020821081036106a757634e487b7160e01b5f52602260045260245ffd5b50919050565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160a01b0391909116815260200190565b8082018082111561021357634e487b7160e01b5f52601160045260245ffdfea2646970667358221220f9ae46a2e15270bfb77fe3d4d0ee0e45b749e3dde93805ee2cf795cb800244e664736f6c634300081a0033\";\n\nexport const mintableERC20Abi = parseAbi([\n \"function transfer(address to, uint256 amount) external\",\n \"function mint(address to, uint256 amount) external\",\n \"function balanceOf(address target) external returns (uint256)\",\n]);\n\nexport type BuildNonceParams = {\n nonceKey?: bigint;\n entityId?: number;\n isGlobalValidation?: boolean;\n isDeferredAction?: boolean;\n isDirectCallValidation?: boolean;\n};\n\nexport const buildFullNonceKey = ({\n nonceKey = 0n,\n entityId = 0,\n isGlobalValidation = true,\n isDeferredAction = false,\n}: BuildNonceParams): bigint => {\n return (\n (nonceKey << 40n) +\n BigInt(entityId << 8) +\n (isDeferredAction ? 2n : 0n) +\n (isGlobalValidation ? 1n : 0n)\n );\n};\n\n// Parses out the 3 components from a deferred action\nexport const parseDeferredAction = (\n deferredAction: Hex\n): {\n nonce: bigint;\n deferredActionData: Hex;\n hasAssociatedExecHooks: boolean;\n} => {\n return {\n nonce: BigInt(`0x${deferredAction.slice(4, 68)}`),\n deferredActionData: `0x${deferredAction.slice(68)}`,\n hasAssociatedExecHooks: deferredAction[3] === \"1\",\n };\n};\n"]}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/ma-v2/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n concat,\n toHex,\n custom,\n encodeFunctionData,\n type Hex,\n type Chain,\n type Address,\n type Transport,\n parseAbi,\n size,\n concatHex,\n hexToNumber,\n} from \"viem\";\nimport {\n arbitrum,\n arbitrumSepolia,\n base,\n baseSepolia,\n mainnet,\n optimism,\n optimismSepolia,\n polygon,\n polygonAmoy,\n sepolia,\n} from \"@account-kit/infra\";\nimport { createModularAccountV2 } from \"./account/modularAccountV2.js\";\nimport { type ModularAccountV2 } from \"./account/common/modularAccountV2Base.js\";\nimport { semiModularAccountStorageAbi } from \"./abis/semiModularAccountStorageAbi.js\";\nimport {\n AccountNotFoundError,\n ChainNotFoundError,\n type GetAccountParameter,\n type SmartAccountClient,\n type SmartAccountSigner,\n type SmartContractAccountWithSigner,\n type UpgradeToData,\n} from \"@aa-sdk/core\";\n\nexport const DEFAULT_OWNER_ENTITY_ID = 0;\n\nexport type PackUOSignatureParams = {\n // orderedHookData: HookData[];\n validationSignature: Hex;\n};\n\n// TODO: direct call validation 1271\nexport type Pack1271SignatureParams = {\n validationSignature: Hex;\n entityId: number;\n};\n\n// Signature packing utility for user operations\nexport const packUOSignature = ({\n // orderedHookData, TODO: integrate in next iteration of MAv2 sdk\n validationSignature,\n}: PackUOSignatureParams): Hex => {\n return concat([\"0xFF\", \"0x00\", validationSignature]);\n};\n\n// Signature packing utility for 1271 signatures\nexport const pack1271Signature = ({\n validationSignature,\n entityId,\n}: Pack1271SignatureParams): Hex => {\n return concat([\n \"0x00\",\n toHex(entityId, { size: 4 }),\n \"0xFF\",\n \"0x00\", // EOA type signature\n validationSignature,\n ]);\n};\n\nexport const getDefaultMAV2FactoryAddress = (chain: Chain): Address => {\n switch (chain.id) {\n // TODO: case mekong.id:\n case sepolia.id:\n case baseSepolia.id:\n case polygon.id:\n case mainnet.id:\n case polygonAmoy.id:\n case optimism.id:\n case optimismSepolia.id:\n case arbitrum.id:\n case arbitrumSepolia.id:\n case base.id:\n default:\n return \"0x00000000000017c61b5bEe81050EC8eFc9c6fecd\";\n }\n};\n\nexport const getDefaultSMAV2BytecodeAddress = (chain: Chain): Address => {\n switch (chain.id) {\n // TODO: case mekong.id:\n case sepolia.id:\n case baseSepolia.id:\n case polygon.id:\n case mainnet.id:\n case polygonAmoy.id:\n case optimism.id:\n case optimismSepolia.id:\n case arbitrum.id:\n case arbitrumSepolia.id:\n case base.id:\n default:\n return \"0x000000000000c5A9089039570Dd36455b5C07383\";\n }\n};\n\nexport const getDefaultSMAV2StorageAddress = (chain: Chain): Address => {\n switch (chain.id) {\n // TODO: case mekong.id:\n case sepolia.id:\n case baseSepolia.id:\n case polygon.id:\n case mainnet.id:\n case polygonAmoy.id:\n case optimism.id:\n case optimismSepolia.id:\n case arbitrum.id:\n case arbitrumSepolia.id:\n case base.id:\n default:\n return \"0x0000000000006E2f9d80CaEc0Da6500f005EB25A\";\n }\n};\n\nexport const getDefaultSMAV27702Address = (chain: Chain): Address => {\n switch (chain.id) {\n // TODO: case mekong.id:\n case sepolia.id:\n case baseSepolia.id:\n case polygon.id:\n case mainnet.id:\n case polygonAmoy.id:\n case optimism.id:\n case optimismSepolia.id:\n case arbitrum.id:\n case arbitrumSepolia.id:\n case base.id:\n default:\n return \"0x69007702764179f14F51cdce752f4f775d74E139\";\n }\n};\n\nexport const getDefaultMAV2Address = (chain: Chain): Address => {\n switch (chain.id) {\n // TODO: case mekong.id:\n case sepolia.id:\n case baseSepolia.id:\n case polygon.id:\n case mainnet.id:\n case polygonAmoy.id:\n case optimism.id:\n case optimismSepolia.id:\n case arbitrum.id:\n case arbitrumSepolia.id:\n case base.id:\n default:\n return \"0x00000000000002377B26b1EdA7b0BC371C60DD4f\";\n }\n};\n\nexport type GetMAV2UpgradeToData<\n TSigner extends SmartAccountSigner = SmartAccountSigner,\n TAccount extends\n | SmartContractAccountWithSigner<string, TSigner>\n | undefined = SmartContractAccountWithSigner<string, TSigner> | undefined\n> = GetAccountParameter<TAccount>;\n\n/**\n * Retrieves the data necessary to upgrade to a Modular Account V2 (MA v2).\n * Note that the upgrade will be to the Semi Modular Account Storage variant\n *\n * @example\n * ```ts\n * import { createLightAccountClient, getMAV2UpgradeToData } from \"@account-kit/smart-contracts\";\n *\n * const client = createLightAccountClient({});\n * const upgradeData = await getMAV2UpgradeToData(client, {});\n * ```\n *\n * @param {SmartAccountClient<TTransport, TChain, TAccount>} client The smart account client\n * @param {GetMAV2UpgradeToData<TSigner, TAccount>} args The arguments required for the upgrade\n * @returns {Promise<UpgradeToData & { createModularAccountV2FromExisting: () => Promise<ModularAccountV2<TSigner>>}>} A promise that resolves to upgrade data augmented with a function to create a Modular Account V2\n */\nexport async function getMAV2UpgradeToData<\n TTransport extends Transport = Transport,\n TChain extends Chain | undefined = Chain | undefined,\n TSigner extends SmartAccountSigner = SmartAccountSigner,\n TAccount extends\n | SmartContractAccountWithSigner<string, TSigner>\n | undefined = SmartContractAccountWithSigner<string, TSigner> | undefined\n>(\n client: SmartAccountClient<TTransport, TChain, TAccount>,\n args: GetMAV2UpgradeToData<TSigner, TAccount>\n): Promise<\n UpgradeToData & {\n createModularAccountV2FromExisting: () => Promise<\n ModularAccountV2<TSigner>\n >;\n }\n> {\n const { account: account_ = client.account } = args;\n\n if (!account_) {\n throw new AccountNotFoundError();\n }\n const account = account_ as SmartContractAccountWithSigner<string, TSigner>;\n\n const chain = client.chain;\n if (!chain) {\n throw new ChainNotFoundError();\n }\n\n const initData = encodeFunctionData({\n abi: semiModularAccountStorageAbi,\n functionName: \"initialize\",\n args: [await account.getSigner().getAddress()],\n });\n\n return {\n implAddress: getDefaultSMAV2StorageAddress(chain),\n initializationData: initData,\n createModularAccountV2FromExisting: async () =>\n createModularAccountV2({\n transport: custom(client.transport),\n chain: chain as Chain,\n signer: account.getSigner(),\n accountAddress: account.address,\n }),\n };\n}\n\nexport const entityIdAndNonceReaderBytecode =\n \"0x608060405234801561001057600080fd5b506040516104f13803806104f183398101604081905261002f916101e5565b60006008826001600160c01b0316901c90506000808263ffffffff1611610057576001610059565b815b90506001600160a01b0385163b15610133575b60006001600160a01b03861663d31b575b6bffffffff0000000000000000604085901b166040516001600160e01b031960e084901b1681526001600160401b03199091166004820152602401600060405180830381865afa1580156100d5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526100fd91908101906103c6565b805190915060ff161580156101155750606081015151155b156101205750610133565b8161012a816104a4565b9250505061006c565b604051631aab3f0d60e11b81526001600160a01b03868116600483015264ffffffff01600160c01b038516600884901b64ffffffff0016176024830152600091908616906335567e1a90604401602060405180830381865afa15801561019d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101c191906104d7565b90508060005260206000f35b6001600160a01b03811681146101e257600080fd5b50565b6000806000606084860312156101fa57600080fd5b8351610205816101cd565b6020850151909350610216816101cd565b60408501519092506001600160c01b038116811461023357600080fd5b809150509250925092565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b03811182821017156102765761027661023e565b60405290565b604051601f8201601f191681016001600160401b03811182821017156102a4576102a461023e565b604052919050565b60006001600160401b038211156102c5576102c561023e565b5060051b60200190565b600082601f8301126102e057600080fd5b81516102f36102ee826102ac565b61027c565b8082825260208201915060208360051b86010192508583111561031557600080fd5b602085015b8381101561034857805166ffffffffffffff198116811461033a57600080fd5b83526020928301920161031a565b5095945050505050565b600082601f83011261036357600080fd5b81516103716102ee826102ac565b8082825260208201915060208360051b86010192508583111561039357600080fd5b602085015b838110156103485780516001600160e01b0319811681146103b857600080fd5b835260209283019201610398565b6000602082840312156103d857600080fd5b81516001600160401b038111156103ee57600080fd5b82016080818503121561040057600080fd5b610408610254565b815160ff8116811461041957600080fd5b815260208201516001600160401b0381111561043457600080fd5b610440868285016102cf565b60208301525060408201516001600160401b0381111561045f57600080fd5b61046b868285016102cf565b60408301525060608201516001600160401b0381111561048a57600080fd5b61049686828501610352565b606083015250949350505050565b600063ffffffff821663ffffffff81036104ce57634e487b7160e01b600052601160045260246000fd5b60010192915050565b6000602082840312156104e957600080fd5b505191905056fe\";\n\nexport const mintableERC20Bytecode =\n \"0x608060405234801561000f575f80fd5b506040518060400160405280600d81526020016c26b4b73a30b13632aa37b5b2b760991b81525060405180604001604052806002815260200161135560f21b8152508160039081610060919061010d565b50600461006d828261010d565b5050506101c7565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061009d57607f821691505b6020821081036100bb57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561010857805f5260205f20601f840160051c810160208510156100e65750805b601f840160051c820191505b81811015610105575f81556001016100f2565b50505b505050565b81516001600160401b0381111561012657610126610075565b61013a816101348454610089565b846100c1565b6020601f82116001811461016c575f83156101555750848201515b5f19600385901b1c1916600184901b178455610105565b5f84815260208120601f198516915b8281101561019b578785015182556020948501946001909201910161017b565b50848210156101b857868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b610737806101d45f395ff3fe608060405234801561000f575f80fd5b506004361061008c575f3560e01c806306fdde0314610090578063095ea7b3146100ae57806318160ddd146100d157806323b872dd146100e3578063313ce567146100f657806340c10f191461010557806370a082311461011a57806395d89b4114610142578063a9059cbb1461014a578063dd62ed3e1461015d575b5f80fd5b610098610170565b6040516100a59190610572565b60405180910390f35b6100c16100bc3660046105c2565b610200565b60405190151581526020016100a5565b6002545b6040519081526020016100a5565b6100c16100f13660046105ea565b610219565b604051601281526020016100a5565b6101186101133660046105c2565b61023c565b005b6100d5610128366004610624565b6001600160a01b03165f9081526020819052604090205490565b61009861024a565b6100c16101583660046105c2565b610259565b6100d561016b366004610644565b610266565b60606003805461017f90610675565b80601f01602080910402602001604051908101604052809291908181526020018280546101ab90610675565b80156101f65780601f106101cd576101008083540402835291602001916101f6565b820191905f5260205f20905b8154815290600101906020018083116101d957829003601f168201915b5050505050905090565b5f3361020d818585610290565b60019150505b92915050565b5f336102268582856102a2565b6102318585856102fc565b506001949350505050565b6102468282610359565b5050565b60606004805461017f90610675565b5f3361020d8185856102fc565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b61029d838383600161038d565b505050565b5f6102ad8484610266565b90505f198110156102f657818110156102e857828183604051637dc7a0d960e11b81526004016102df939291906106ad565b60405180910390fd5b6102f684848484035f61038d565b50505050565b6001600160a01b038316610325575f604051634b637e8f60e11b81526004016102df91906106ce565b6001600160a01b03821661034e575f60405163ec442f0560e01b81526004016102df91906106ce565b61029d83838361045f565b6001600160a01b038216610382575f60405163ec442f0560e01b81526004016102df91906106ce565b6102465f838361045f565b6001600160a01b0384166103b6575f60405163e602df0560e01b81526004016102df91906106ce565b6001600160a01b0383166103df575f604051634a1406b160e11b81526004016102df91906106ce565b6001600160a01b038085165f90815260016020908152604080832093871683529290522082905580156102f657826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161045191815260200190565b60405180910390a350505050565b6001600160a01b038316610489578060025f82825461047e91906106e2565b909155506104e69050565b6001600160a01b0383165f90815260208190526040902054818110156104c85783818360405163391434e360e21b81526004016102df939291906106ad565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b03821661050257600280548290039055610520565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161056591815260200190565b60405180910390a3505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b03811681146105bd575f80fd5b919050565b5f80604083850312156105d3575f80fd5b6105dc836105a7565b946020939093013593505050565b5f805f606084860312156105fc575f80fd5b610605846105a7565b9250610613602085016105a7565b929592945050506040919091013590565b5f60208284031215610634575f80fd5b61063d826105a7565b9392505050565b5f8060408385031215610655575f80fd5b61065e836105a7565b915061066c602084016105a7565b90509250929050565b600181811c9082168061068957607f821691505b6020821081036106a757634e487b7160e01b5f52602260045260245ffd5b50919050565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160a01b0391909116815260200190565b8082018082111561021357634e487b7160e01b5f52601160045260245ffdfea2646970667358221220f9ae46a2e15270bfb77fe3d4d0ee0e45b749e3dde93805ee2cf795cb800244e664736f6c634300081a0033\";\n\nexport const mintableERC20Abi = parseAbi([\n \"function transfer(address to, uint256 amount) external\",\n \"function mint(address to, uint256 amount) external\",\n \"function balanceOf(address target) external returns (uint256)\",\n]);\n\nexport type BuildNonceParams = {\n nonceKey?: bigint;\n entityId?: number;\n isGlobalValidation?: boolean;\n isDeferredAction?: boolean;\n isDirectCallValidation?: boolean;\n};\n\nexport const buildFullNonceKey = ({\n nonceKey = 0n,\n entityId = 0,\n isGlobalValidation = true,\n isDeferredAction = false,\n}: BuildNonceParams): bigint => {\n return (\n (nonceKey << 40n) +\n BigInt(entityId << 8) +\n (isDeferredAction ? 2n : 0n) +\n (isGlobalValidation ? 1n : 0n)\n );\n};\n\n// Parses out the 3 components from a deferred action\nexport const parseDeferredAction = (\n deferredAction: Hex\n): {\n entityId: number;\n isGlobalValidation: boolean;\n nonce: bigint;\n deferredActionData: Hex;\n hasAssociatedExecHooks: boolean;\n} => {\n // 2 for 0x, 2 for 00/01, 38 for parallel nonce, 8 for entity id, 2 for options byte, 16 for parallel nonce\n return {\n entityId: hexToNumber(`0x${deferredAction.slice(42, 50)}`),\n isGlobalValidation:\n hexToNumber(`0x${deferredAction.slice(50, 52)}`) % 2 === 1,\n nonce: BigInt(`0x${deferredAction.slice(4, 68)}`),\n deferredActionData: `0x${deferredAction.slice(68)}` as `0x${string}`,\n hasAssociatedExecHooks: deferredAction[3] === \"1\",\n };\n};\nexport type BuildDeferredActionDigestParams = {\n fullPreSignatureDeferredActionDigest: Hex;\n sig: Hex;\n};\n\n/**\n * Creates the digest which must be prepended to the userOp signature.\n *\n * Assumption: The client this extends is used to sign the typed data.\n *\n * @param {object} args The argument object containing the following:\n * @param {Hex} args.fullPreSignatureDeferredActionDigest The The data to append the signature and length to\n * @param {Hex} args.sig The signature to include in the digest\n * @returns {Hex} The encoded digest to be prepended to the userOp signature\n */\nexport const buildDeferredActionDigest = ({\n fullPreSignatureDeferredActionDigest,\n sig,\n}: BuildDeferredActionDigestParams): Hex => {\n const sigLength = size(sig);\n\n const encodedData = concatHex([\n fullPreSignatureDeferredActionDigest,\n toHex(sigLength, { size: 4 }),\n sig,\n ]);\n return encodedData;\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modularAccountV2Base.d.ts","sourceRoot":"","sources":["../../../../../../src/ma-v2/account/common/modularAccountV2Base.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,kBAAkB,EACvB,KAAK,8BAA8B,EACnC,KAAK,4BAA4B,EAClC,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,KAAK,GAAG,EACR,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,SAAS,EAOf,MAAM,MAAM,CAAC;AAMd,eAAO,MAAM,qBAAqB,EAAE,GAAkB,CAAC;AAEvD,MAAM,MAAM,YAAY,GAAG;IACzB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,cAAc,EAAE,SAAS,GAAG,EAAE,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,eAAe,EAAE,SAAS,GAAG,EAAE,CAAC;IAChC,cAAc,EAAE,SAAS,GAAG,EAAE,CAAC;IAC/B,SAAS,EAAE,SAAS,GAAG,EAAE,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAC5B;IACE,uBAAuB,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,EAAE,KAAK,CAAC;CAClB,GACD;IACE,uBAAuB,CAAC,EAAE,KAAK,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEN,MAAM,MAAM,gBAAgB,CAC1B,OAAO,SAAS,kBAAkB,GAAG,kBAAkB,IACrD,8BAA8B,CAAC,kBAAkB,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG;IACzE,YAAY,EAAE,YAAY,CAAC;IAC3B,gBAAgB,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAChE,iBAAiB,EAAE,CACjB,IAAI,EAAE,oBAAoB,KACvB,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACjC,cAAc,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,oBAAoB,CAC9B,OAAO,SAAS,kBAAkB,GAAG,kBAAkB,EACvD,UAAU,SAAS,SAAS,GAAG,SAAS,IACtC,IAAI,CACN,4BAA4B,CAAC,kBAAkB,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,EAE1E,eAAe,GACf,oBAAoB,GACpB,UAAU,GACV,aAAa,GACb,eAAe,GACf,mBAAmB,CACtB,GAAG;IACF,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,GAAG,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,wBAAwB,CAClC,OAAO,SAAS,kBAAkB,GAAG,kBAAkB,IACrD,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;AAEvC,wBAAsB,cAAc,CAClC,OAAO,SAAS,kBAAkB,GAAG,kBAAkB,EACvD,MAAM,EAAE,oBAAoB,CAAC,OAAO,CAAC,GAAG,wBAAwB,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"modularAccountV2Base.d.ts","sourceRoot":"","sources":["../../../../../../src/ma-v2/account/common/modularAccountV2Base.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,kBAAkB,EACvB,KAAK,8BAA8B,EACnC,KAAK,4BAA4B,EAClC,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,KAAK,GAAG,EACR,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,SAAS,EAOf,MAAM,MAAM,CAAC;AAMd,eAAO,MAAM,qBAAqB,EAAE,GAAkB,CAAC;AAEvD,MAAM,MAAM,YAAY,GAAG;IACzB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,cAAc,EAAE,SAAS,GAAG,EAAE,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,eAAe,EAAE,SAAS,GAAG,EAAE,CAAC;IAChC,cAAc,EAAE,SAAS,GAAG,EAAE,CAAC;IAC/B,SAAS,EAAE,SAAS,GAAG,EAAE,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAC5B;IACE,uBAAuB,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,EAAE,KAAK,CAAC;CAClB,GACD;IACE,uBAAuB,CAAC,EAAE,KAAK,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEN,MAAM,MAAM,gBAAgB,CAC1B,OAAO,SAAS,kBAAkB,GAAG,kBAAkB,IACrD,8BAA8B,CAAC,kBAAkB,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG;IACzE,YAAY,EAAE,YAAY,CAAC;IAC3B,gBAAgB,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAChE,iBAAiB,EAAE,CACjB,IAAI,EAAE,oBAAoB,KACvB,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACjC,cAAc,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,oBAAoB,CAC9B,OAAO,SAAS,kBAAkB,GAAG,kBAAkB,EACvD,UAAU,SAAS,SAAS,GAAG,SAAS,IACtC,IAAI,CACN,4BAA4B,CAAC,kBAAkB,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,EAE1E,eAAe,GACf,oBAAoB,GACpB,UAAU,GACV,aAAa,GACb,eAAe,GACf,mBAAmB,CACtB,GAAG;IACF,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,GAAG,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,wBAAwB,CAClC,OAAO,SAAS,kBAAkB,GAAG,kBAAkB,IACrD,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;AAEvC,wBAAsB,cAAc,CAClC,OAAO,SAAS,kBAAkB,GAAG,kBAAkB,EACvD,MAAM,EAAE,oBAAoB,CAAC,OAAO,CAAC,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAqM1E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nativeSMASigner.d.ts","sourceRoot":"","sources":["../../../../../src/ma-v2/account/nativeSMASigner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAGL,KAAK,GAAG,EACR,KAAK,eAAe,EAEpB,KAAK,mBAAmB,EACxB,KAAK,KAAK,EACV,KAAK,OAAO,EAGb,MAAM,MAAM,CAAC;AAQd;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,eAAe,WAClB,kBAAkB,SACnB,KAAK,kBACI,OAAO,uBACF,GAAG;6BAGC,GAAG;oCAUY,GAAG,KAAG,QAAQ,GAAG,CAAC;;
|
|
1
|
+
{"version":3,"file":"nativeSMASigner.d.ts","sourceRoot":"","sources":["../../../../../src/ma-v2/account/nativeSMASigner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAGL,KAAK,GAAG,EACR,KAAK,eAAe,EAEpB,KAAK,mBAAmB,EACxB,KAAK,KAAK,EACV,KAAK,OAAO,EAGb,MAAM,MAAM,CAAC;AAQd;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,eAAe,WAClB,kBAAkB,SACnB,KAAK,kBACI,OAAO,uBACF,GAAG;6BAGC,GAAG;oCAUY,GAAG,KAAG,QAAQ,GAAG,CAAC;;iBAmBd,eAAe;QAAK,QAAQ,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oJA4BvE,QAAQ,GAAG,CAAC;CA6BlB,CAAC"}
|
|
@@ -37,10 +37,6 @@ export type CreateDeferredActionTypedDataParams = {
|
|
|
37
37
|
deadline: number;
|
|
38
38
|
nonce: bigint;
|
|
39
39
|
};
|
|
40
|
-
export type BuildDeferredActionDigestParams = {
|
|
41
|
-
fullPreSignatureDeferredActionDigest: Hex;
|
|
42
|
-
sig: Hex;
|
|
43
|
-
};
|
|
44
40
|
export type BuildPreSignatureDeferredActionDigestParams = {
|
|
45
41
|
typedData: DeferredActionTypedData;
|
|
46
42
|
};
|
|
@@ -57,7 +53,6 @@ export type EntityIdAndNonceParams = {
|
|
|
57
53
|
};
|
|
58
54
|
export type DeferralActions = {
|
|
59
55
|
createDeferredActionTypedDataObject: (args: CreateDeferredActionTypedDataParams) => Promise<DeferredActionReturnData>;
|
|
60
|
-
buildDeferredActionDigest: (args: BuildDeferredActionDigestParams) => Hex;
|
|
61
56
|
buildPreSignatureDeferredActionDigest: (args: BuildPreSignatureDeferredActionDigestParams) => Hex;
|
|
62
57
|
buildUserOperationWithDeferredAction: (args: BuildUserOperationWithDeferredActionParams) => Promise<UserOperationRequest_v7>;
|
|
63
58
|
getEntityIdAndNonce: (args: EntityIdAndNonceParams) => Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deferralActions.d.ts","sourceRoot":"","sources":["../../../../../src/ma-v2/actions/deferralActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,qBAAqB,EAC1B,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,EAC7B,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,GAAG,EAQT,MAAM,MAAM,CAAC;AAGd,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAElE,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,iBAAiB,EAAE,OAAO,CAAC;KAC5B,CAAC;IACF,KAAK,EAAE;QACL,cAAc,EAAE;YACd;gBAAE,IAAI,EAAE,OAAO,CAAC;gBAAC,IAAI,EAAE,SAAS,CAAA;aAAE;YAClC;gBAAE,IAAI,EAAE,UAAU,CAAC;gBAAC,IAAI,EAAE,QAAQ,CAAA;aAAE;YACpC;gBAAE,IAAI,EAAE,MAAM,CAAC;gBAAC,IAAI,EAAE,OAAO,CAAA;aAAE;SAChC,CAAC;KACH,CAAC;IACF,WAAW,EAAE,gBAAgB,CAAC;IAC9B,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,GAAG,CAAC;KACX,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,SAAS,EAAE,uBAAuB,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,mCAAmC,GAAG;IAChD,QAAQ,EAAE,GAAG,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM
|
|
1
|
+
{"version":3,"file":"deferralActions.d.ts","sourceRoot":"","sources":["../../../../../src/ma-v2/actions/deferralActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,qBAAqB,EAC1B,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,EAC7B,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,GAAG,EAQT,MAAM,MAAM,CAAC;AAGd,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAElE,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,iBAAiB,EAAE,OAAO,CAAC;KAC5B,CAAC;IACF,KAAK,EAAE;QACL,cAAc,EAAE;YACd;gBAAE,IAAI,EAAE,OAAO,CAAC;gBAAC,IAAI,EAAE,SAAS,CAAA;aAAE;YAClC;gBAAE,IAAI,EAAE,UAAU,CAAC;gBAAC,IAAI,EAAE,QAAQ,CAAA;aAAE;YACpC;gBAAE,IAAI,EAAE,MAAM,CAAC;gBAAC,IAAI,EAAE,OAAO,CAAA;aAAE;SAChC,CAAC;KACH,CAAC;IACF,WAAW,EAAE,gBAAgB,CAAC;IAC9B,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,GAAG,CAAC;KACX,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,SAAS,EAAE,uBAAuB,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,mCAAmC,GAAG;IAChD,QAAQ,EAAE,GAAG,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,2CAA2C,GAAG;IACxD,SAAS,EAAE,uBAAuB,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,0CAA0C,GAAG;IACvD,EAAE,EAAE,qBAAqB,GAAG,0BAA0B,CAAC;IACvD,gBAAgB,EAAE,GAAG,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,mCAAmC,EAAE,CACnC,IAAI,EAAE,mCAAmC,KACtC,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACvC,qCAAqC,EAAE,CACrC,IAAI,EAAE,2CAA2C,KAC9C,GAAG,CAAC;IACT,oCAAoC,EAAE,CACpC,IAAI,EAAE,0CAA0C,KAC7C,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACtC,mBAAmB,EAAE,CACnB,IAAI,EAAE,sBAAsB,KACzB,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,CAC5B,MAAM,EAAE,sBAAsB,KAC3B,eAyJJ,CAAC"}
|
|
@@ -12,8 +12,9 @@ export type * from "./actions/deferralActions.js";
|
|
|
12
12
|
export { deferralActions } from "./actions/deferralActions.js";
|
|
13
13
|
export type * from "./permissionBuilder.js";
|
|
14
14
|
export { PermissionBuilder, PermissionType } from "./permissionBuilder.js";
|
|
15
|
+
export * from "./permissionBuilderErrors.js";
|
|
15
16
|
export { getDefaultAllowlistModuleAddress, getDefaultNativeTokenLimitModuleAddress, getDefaultPaymasterGuardModuleAddress, getDefaultSingleSignerValidationModuleAddress, getDefaultTimeRangeModuleAddress, getDefaultWebauthnValidationModuleAddress, } from "./modules/utils.js";
|
|
16
|
-
export { buildFullNonceKey } from "./utils.js";
|
|
17
|
+
export { buildFullNonceKey, buildDeferredActionDigest } from "./utils.js";
|
|
17
18
|
export { allowlistModuleAbi } from "./modules/allowlist-module/abis/allowlistModuleAbi.js";
|
|
18
19
|
export { AllowlistModule } from "./modules/allowlist-module/module.js";
|
|
19
20
|
export { nativeTokenLimitModuleAbi } from "./modules/native-token-limit-module/abis/nativeTokenLimitModuleAbi.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ma-v2/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,6BAA6B,EAAE,MAAM,yCAAyC,CAAC;AACxF,OAAO,EAAE,4BAA4B,EAAE,MAAM,wCAAwC,CAAC;AAEtF,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,cAAc,GACf,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EACL,yBAAyB,EACzB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,2BAA2B,CAAC;AACnC,mBAAmB,mDAAmD,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,mDAAmD,CAAC;AAC7F,mBAAmB,8BAA8B,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,mBAAmB,wBAAwB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ma-v2/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,6BAA6B,EAAE,MAAM,yCAAyC,CAAC;AACxF,OAAO,EAAE,4BAA4B,EAAE,MAAM,wCAAwC,CAAC;AAEtF,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,cAAc,GACf,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EACL,yBAAyB,EACzB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,2BAA2B,CAAC;AACnC,mBAAmB,mDAAmD,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,mDAAmD,CAAC;AAC7F,mBAAmB,8BAA8B,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,mBAAmB,wBAAwB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC3E,cAAc,8BAA8B,CAAC;AAE7C,OAAO,EACL,gCAAgC,EAChC,uCAAuC,EACvC,qCAAqC,EACrC,6CAA6C,EAC7C,gCAAgC,EAChC,yCAAyC,GAC1C,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,uDAAuD,CAAC;AAC3F,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,uEAAuE,CAAC;AAClH,OAAO,EAAE,sBAAsB,EAAE,MAAM,+CAA+C,CAAC;AACvF,OAAO,EAAE,uBAAuB,EAAE,MAAM,kEAAkE,CAAC;AAC3G,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAE,+BAA+B,EAAE,MAAM,4EAA4E,CAAC;AAC7H,OAAO,EAAE,4BAA4B,EAAE,MAAM,8CAA8C,CAAC;AAC5F,OAAO,EAAE,kBAAkB,EAAE,MAAM,wDAAwD,CAAC;AAC5F,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,2BAA2B,EAAE,MAAM,6DAA6D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../../../../../src/ma-v2/modules/single-signer-validation/signer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAIL,KAAK,GAAG,EACR,KAAK,eAAe,EAEpB,KAAK,mBAAmB,EACxB,KAAK,KAAK,EACV,KAAK,OAAO,EAEb,MAAM,MAAM,CAAC;AAOd;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,yBAAyB,WAC5B,kBAAkB,SACnB,KAAK,kBACI,OAAO,YACb,MAAM,uBACK,GAAG;6BAGC,GAAG;oCAUY,GAAG,KAAG,QAAQ,GAAG,CAAC;;
|
|
1
|
+
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../../../../../src/ma-v2/modules/single-signer-validation/signer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAIL,KAAK,GAAG,EACR,KAAK,eAAe,EAEpB,KAAK,mBAAmB,EACxB,KAAK,KAAK,EACV,KAAK,OAAO,EAEb,MAAM,MAAM,CAAC;AAOd;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,yBAAyB,WAC5B,kBAAkB,SACnB,KAAK,kBACI,OAAO,YACb,MAAM,uBACK,GAAG;6BAGC,GAAG;oCAUY,GAAG,KAAG,QAAQ,GAAG,CAAC;;iBAmBd,eAAe;QAAK,QAAQ,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oJA8BvE,QAAQ,GAAG,CAAC;CA+BlB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissionBuilder.d.ts","sourceRoot":"","sources":["../../../../src/ma-v2/permissionBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"permissionBuilder.d.ts","sourceRoot":"","sources":["../../../../src/ma-v2/permissionBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { BaseError, type Address } from "@aa-sdk/core";
|
|
2
|
+
import type { Permission } from "./permissionBuilder";
|
|
3
|
+
export declare class RootPermissionOnlyError extends BaseError {
|
|
4
|
+
name: string;
|
|
5
|
+
/**
|
|
6
|
+
* Constructor for initializing an error message indicating that an account could not be found to execute the specified action.
|
|
7
|
+
*
|
|
8
|
+
* @param {Permission} permission The permission trying to be added atop the root permission
|
|
9
|
+
*/
|
|
10
|
+
constructor(permission: Permission);
|
|
11
|
+
}
|
|
12
|
+
export declare class AccountAddressAsTargetError extends BaseError {
|
|
13
|
+
name: string;
|
|
14
|
+
/**
|
|
15
|
+
* Constructor for initializing an error message indicating that account address is used as target.
|
|
16
|
+
*
|
|
17
|
+
* @param {Permission} permission The permission with account address as target
|
|
18
|
+
*/
|
|
19
|
+
constructor(permission: Permission);
|
|
20
|
+
}
|
|
21
|
+
export declare class DuplicateTargetAddressError extends BaseError {
|
|
22
|
+
name: string;
|
|
23
|
+
/**
|
|
24
|
+
* Constructor for initializing an error message indicating duplicate target address in permissions.
|
|
25
|
+
*
|
|
26
|
+
* @param {Permission} permission The permission with duplicate target address
|
|
27
|
+
* @param {Address} targetAddress The duplicate target address
|
|
28
|
+
*/
|
|
29
|
+
constructor(permission: Permission, targetAddress: Address);
|
|
30
|
+
}
|
|
31
|
+
export declare class NoFunctionsProvidedError extends BaseError {
|
|
32
|
+
name: string;
|
|
33
|
+
/**
|
|
34
|
+
* Constructor for initializing an error message indicating no functions were provided.
|
|
35
|
+
*
|
|
36
|
+
* @param {Permission} permission The permission missing functions
|
|
37
|
+
*/
|
|
38
|
+
constructor(permission: Permission);
|
|
39
|
+
}
|
|
40
|
+
export declare class ExpiredDeadlineError extends BaseError {
|
|
41
|
+
name: string;
|
|
42
|
+
/**
|
|
43
|
+
* Constructor for initializing an error message indicating the deadline has expired.
|
|
44
|
+
*
|
|
45
|
+
* @param {number} deadline The expired deadline timestamp
|
|
46
|
+
* @param {number} currentTime The current timestamp
|
|
47
|
+
*/
|
|
48
|
+
constructor(deadline: number, currentTime: number);
|
|
49
|
+
}
|
|
50
|
+
export declare class DeadlineOverLimitError extends BaseError {
|
|
51
|
+
name: string;
|
|
52
|
+
/**
|
|
53
|
+
* Constructor for initializing an error message indicating the deadline has expired.
|
|
54
|
+
*
|
|
55
|
+
* @param {number} deadline The expired deadline timestamp
|
|
56
|
+
*/
|
|
57
|
+
constructor(deadline: number);
|
|
58
|
+
}
|
|
59
|
+
export declare class ValidationConfigUnsetError extends BaseError {
|
|
60
|
+
name: string;
|
|
61
|
+
/**
|
|
62
|
+
* Constructor for initializing an error message indicating the validation config is unset.
|
|
63
|
+
*/
|
|
64
|
+
constructor();
|
|
65
|
+
}
|
|
66
|
+
export declare class MultipleNativeTokenTransferError extends BaseError {
|
|
67
|
+
name: string;
|
|
68
|
+
/**
|
|
69
|
+
* Constructor for initializing an error message indicating multiple native token transfer permissions.
|
|
70
|
+
*
|
|
71
|
+
* @param {Permission} permission The duplicate native token transfer permission
|
|
72
|
+
*/
|
|
73
|
+
constructor(permission: Permission);
|
|
74
|
+
}
|
|
75
|
+
export declare class ZeroAddressError extends BaseError {
|
|
76
|
+
name: string;
|
|
77
|
+
/**
|
|
78
|
+
* Constructor for initializing an error message indicating zero address was provided.
|
|
79
|
+
*
|
|
80
|
+
* @param {Permission} permission The permission with zero address
|
|
81
|
+
*/
|
|
82
|
+
constructor(permission: Permission);
|
|
83
|
+
}
|
|
84
|
+
export declare class MultipleGasLimitError extends BaseError {
|
|
85
|
+
name: string;
|
|
86
|
+
/**
|
|
87
|
+
* Constructor for initializing an error message indicating multiple gas limit permissions.
|
|
88
|
+
*
|
|
89
|
+
* @param {Permission} permission The duplicate gas limit permission
|
|
90
|
+
*/
|
|
91
|
+
constructor(permission: Permission);
|
|
92
|
+
}
|
|
93
|
+
export declare class UnsupportedPermissionTypeError extends BaseError {
|
|
94
|
+
name: string;
|
|
95
|
+
/**
|
|
96
|
+
* Constructor for initializing an error message indicating an unsupported permission type.
|
|
97
|
+
*/
|
|
98
|
+
constructor();
|
|
99
|
+
}
|
|
100
|
+
export declare class SelectorNotAllowed extends BaseError {
|
|
101
|
+
name: string;
|
|
102
|
+
/**
|
|
103
|
+
* Constructor for initializing an error message indicating that the selector being added is not allowed.
|
|
104
|
+
*
|
|
105
|
+
* @param {string} functionName The function name of the selector that is being added.
|
|
106
|
+
*/
|
|
107
|
+
constructor(functionName: string);
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=permissionBuilderErrors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permissionBuilderErrors.d.ts","sourceRoot":"","sources":["../../../../src/ma-v2/permissionBuilderErrors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,OAAO,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD,qBAAa,uBAAwB,SAAQ,SAAS;IAC3C,IAAI,SAAgD;IAE7D;;;;OAIG;gBACS,UAAU,EAAE,UAAU;CAGnC;AAED,qBAAa,2BAA4B,SAAQ,SAAS;IAC/C,IAAI,SAAoD;IAEjE;;;;OAIG;gBACS,UAAU,EAAE,UAAU;CAKnC;AAED,qBAAa,2BAA4B,SAAQ,SAAS;IAC/C,IAAI,SAAoD;IAEjE;;;;;OAKG;gBACS,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO;CAK3D;AAED,qBAAa,wBAAyB,SAAQ,SAAS;IAC5C,IAAI,SAAiD;IAE9D;;;;OAIG;gBACS,UAAU,EAAE,UAAU;CAGnC;AAED,qBAAa,oBAAqB,SAAQ,SAAS;IACxC,IAAI,SAA6C;IAE1D;;;;;OAKG;gBACS,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;CAKlD;AAED,qBAAa,sBAAuB,SAAQ,SAAS;IAC1C,IAAI,SAA+C;IAE5D;;;;OAIG;gBACS,QAAQ,EAAE,MAAM;CAK7B;AAED,qBAAa,0BAA2B,SAAQ,SAAS;IAC9C,IAAI,SAAmD;IAEhE;;OAEG;;CAIJ;AAED,qBAAa,gCAAiC,SAAQ,SAAS;IACpD,IAAI,SAAyD;IAEtE;;;;OAIG;gBACS,UAAU,EAAE,UAAU;CAKnC;AAED,qBAAa,gBAAiB,SAAQ,SAAS;IACpC,IAAI,SAAyC;IAEtD;;;;OAIG;gBACS,UAAU,EAAE,UAAU;CAGnC;AAED,qBAAa,qBAAsB,SAAQ,SAAS;IACzC,IAAI,SAA8C;IAE3D;;;;OAIG;gBACS,UAAU,EAAE,UAAU;CAGnC;AAED,qBAAa,8BAA+B,SAAQ,SAAS;IAClD,IAAI,SAAuD;IAEpE;;OAEG;;CAIJ;AAED,qBAAa,kBAAmB,SAAQ,SAAS;IACtC,IAAI,SAAwB;IAErC;;;;OAIG;gBACS,YAAY,EAAE,MAAM;CAGjC"}
|
|
@@ -83,8 +83,25 @@ export type BuildNonceParams = {
|
|
|
83
83
|
};
|
|
84
84
|
export declare const buildFullNonceKey: ({ nonceKey, entityId, isGlobalValidation, isDeferredAction, }: BuildNonceParams) => bigint;
|
|
85
85
|
export declare const parseDeferredAction: (deferredAction: Hex) => {
|
|
86
|
+
entityId: number;
|
|
87
|
+
isGlobalValidation: boolean;
|
|
86
88
|
nonce: bigint;
|
|
87
89
|
deferredActionData: Hex;
|
|
88
90
|
hasAssociatedExecHooks: boolean;
|
|
89
91
|
};
|
|
92
|
+
export type BuildDeferredActionDigestParams = {
|
|
93
|
+
fullPreSignatureDeferredActionDigest: Hex;
|
|
94
|
+
sig: Hex;
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
* Creates the digest which must be prepended to the userOp signature.
|
|
98
|
+
*
|
|
99
|
+
* Assumption: The client this extends is used to sign the typed data.
|
|
100
|
+
*
|
|
101
|
+
* @param {object} args The argument object containing the following:
|
|
102
|
+
* @param {Hex} args.fullPreSignatureDeferredActionDigest The The data to append the signature and length to
|
|
103
|
+
* @param {Hex} args.sig The signature to include in the digest
|
|
104
|
+
* @returns {Hex} The encoded digest to be prepended to the userOp signature
|
|
105
|
+
*/
|
|
106
|
+
export declare const buildDeferredActionDigest: ({ fullPreSignatureDeferredActionDigest, sig, }: BuildDeferredActionDigestParams) => Hex;
|
|
90
107
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/ma-v2/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,GAAG,EACR,KAAK,KAAK,EACV,KAAK,OAAO,EACZ,KAAK,SAAS,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/ma-v2/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@account-kit/smart-contracts",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.26.0",
|
|
4
4
|
"description": "aa-sdk compatible interfaces for Alchemy Smart Accounts",
|
|
5
5
|
"author": "Alchemy",
|
|
6
6
|
"license": "MIT",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"test:run": "vitest run"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
|
-
"@account-kit/plugingen": "^4.
|
|
56
|
+
"@account-kit/plugingen": "^4.26.0",
|
|
57
57
|
"change-case": "^5.1.2",
|
|
58
58
|
"dedent": "^1.5.1",
|
|
59
59
|
"dotenv": "^16.3.1",
|
|
@@ -73,10 +73,10 @@
|
|
|
73
73
|
"url": "https://github.com/alchemyplatform/aa-sdk/issues"
|
|
74
74
|
},
|
|
75
75
|
"homepage": "https://github.com/alchemyplatform/aa-sdk#readme",
|
|
76
|
-
"gitHead": "
|
|
76
|
+
"gitHead": "cce56919f91518b2bc1f94c1a721d99dd0f21646",
|
|
77
77
|
"dependencies": {
|
|
78
|
-
"@aa-sdk/core": "^4.
|
|
79
|
-
"@account-kit/infra": "^4.
|
|
78
|
+
"@aa-sdk/core": "^4.26.0",
|
|
79
|
+
"@account-kit/infra": "^4.26.0"
|
|
80
80
|
},
|
|
81
81
|
"peerDependencies": {
|
|
82
82
|
"viem": "^2.22.6"
|
|
@@ -96,7 +96,7 @@ export type CreateMAV2BaseReturnType<
|
|
|
96
96
|
export async function createMAv2Base<
|
|
97
97
|
TSigner extends SmartAccountSigner = SmartAccountSigner
|
|
98
98
|
>(config: CreateMAV2BaseParams<TSigner>): CreateMAV2BaseReturnType<TSigner> {
|
|
99
|
-
|
|
99
|
+
let {
|
|
100
100
|
transport,
|
|
101
101
|
chain,
|
|
102
102
|
signer,
|
|
@@ -129,26 +129,32 @@ export async function createMAv2Base<
|
|
|
129
129
|
client,
|
|
130
130
|
});
|
|
131
131
|
|
|
132
|
-
|
|
133
|
-
let nonce: bigint
|
|
134
|
-
let deferredActionData: Hex
|
|
132
|
+
// These default values signal that we should not use the set deferred action nonce
|
|
133
|
+
let nonce: bigint | undefined;
|
|
134
|
+
let deferredActionData: Hex | undefined;
|
|
135
135
|
let hasAssociatedExecHooks: boolean = false;
|
|
136
136
|
|
|
137
137
|
if (deferredAction) {
|
|
138
|
-
|
|
139
|
-
|
|
138
|
+
let deferredActionNonce: bigint = 0n;
|
|
139
|
+
// We always update entity id and isGlobalValidation to the deferred action value since the client could be used to send multiple calls
|
|
140
|
+
({
|
|
141
|
+
entityId,
|
|
142
|
+
isGlobalValidation,
|
|
143
|
+
nonce: deferredActionNonce,
|
|
144
|
+
} = parseDeferredAction(deferredAction));
|
|
140
145
|
|
|
141
146
|
// Set these values if the deferred action has not been consumed. We check this with the EP
|
|
142
147
|
const nextNonceForDeferredAction: bigint =
|
|
143
148
|
(await entryPointContract.read.getNonce([
|
|
144
149
|
accountAddress,
|
|
145
|
-
|
|
150
|
+
deferredActionNonce >> 64n,
|
|
146
151
|
])) as bigint;
|
|
147
152
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
} else if (
|
|
153
|
+
if (deferredActionNonce === nextNonceForDeferredAction) {
|
|
154
|
+
({ nonce, deferredActionData, hasAssociatedExecHooks } =
|
|
155
|
+
parseDeferredAction(deferredAction));
|
|
156
|
+
} else if (deferredActionNonce > nextNonceForDeferredAction) {
|
|
157
|
+
// if nonce is greater than the next nonce, its invalid, so we throw
|
|
152
158
|
throw new InvalidDeferredActionNonce();
|
|
153
159
|
}
|
|
154
160
|
}
|
|
@@ -185,8 +191,10 @@ export async function createMAv2Base<
|
|
|
185
191
|
!!(await client.getCode({ address: accountAddress }));
|
|
186
192
|
|
|
187
193
|
const getNonce = async (nonceKey: bigint = 0n): Promise<bigint> => {
|
|
188
|
-
if (
|
|
189
|
-
|
|
194
|
+
if (nonce) {
|
|
195
|
+
const tempNonce = nonce;
|
|
196
|
+
nonce = undefined; // set to falsy value once used
|
|
197
|
+
return tempNonce;
|
|
190
198
|
}
|
|
191
199
|
|
|
192
200
|
if (nonceKey > maxUint152) {
|
|
@@ -246,11 +254,14 @@ export async function createMAv2Base<
|
|
|
246
254
|
const validationData = await getValidationData({
|
|
247
255
|
entityId: Number(entityId),
|
|
248
256
|
});
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
257
|
+
if (hasAssociatedExecHooks) {
|
|
258
|
+
hasAssociatedExecHooks = false; // set to falsy value once used
|
|
259
|
+
return concatHex([executeUserOpSelector, callData]);
|
|
260
|
+
}
|
|
261
|
+
if (validationData.executionHooks.length) {
|
|
262
|
+
return concatHex([executeUserOpSelector, callData]);
|
|
263
|
+
}
|
|
264
|
+
return callData;
|
|
254
265
|
};
|
|
255
266
|
|
|
256
267
|
const baseAccount = await toSmartContractAccount({
|
|
@@ -59,7 +59,7 @@ export const nativeSMASigner = (
|
|
|
59
59
|
},
|
|
60
60
|
|
|
61
61
|
signUserOperationHash: async (uoHash: Hex): Promise<Hex> => {
|
|
62
|
-
|
|
62
|
+
let sig = await signer
|
|
63
63
|
.signMessage({ raw: uoHash })
|
|
64
64
|
.then((signature: Hex) =>
|
|
65
65
|
packUOSignature({
|
|
@@ -68,7 +68,12 @@ export const nativeSMASigner = (
|
|
|
68
68
|
})
|
|
69
69
|
);
|
|
70
70
|
|
|
71
|
-
|
|
71
|
+
if (deferredActionData) {
|
|
72
|
+
sig = concatHex([deferredActionData, sig]);
|
|
73
|
+
deferredActionData = undefined;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
return sig;
|
|
72
77
|
},
|
|
73
78
|
|
|
74
79
|
// we apply the expected 1271 packing here since the account contract will expect it
|
|
@@ -51,11 +51,6 @@ export type CreateDeferredActionTypedDataParams = {
|
|
|
51
51
|
nonce: bigint;
|
|
52
52
|
};
|
|
53
53
|
|
|
54
|
-
export type BuildDeferredActionDigestParams = {
|
|
55
|
-
fullPreSignatureDeferredActionDigest: Hex;
|
|
56
|
-
sig: Hex;
|
|
57
|
-
};
|
|
58
|
-
|
|
59
54
|
export type BuildPreSignatureDeferredActionDigestParams = {
|
|
60
55
|
typedData: DeferredActionTypedData;
|
|
61
56
|
};
|
|
@@ -77,7 +72,6 @@ export type DeferralActions = {
|
|
|
77
72
|
createDeferredActionTypedDataObject: (
|
|
78
73
|
args: CreateDeferredActionTypedDataParams
|
|
79
74
|
) => Promise<DeferredActionReturnData>;
|
|
80
|
-
buildDeferredActionDigest: (args: BuildDeferredActionDigestParams) => Hex;
|
|
81
75
|
buildPreSignatureDeferredActionDigest: (
|
|
82
76
|
args: BuildPreSignatureDeferredActionDigestParams
|
|
83
77
|
) => Hex;
|
|
@@ -135,30 +129,6 @@ export const deferralActions: (
|
|
|
135
129
|
};
|
|
136
130
|
};
|
|
137
131
|
|
|
138
|
-
/**
|
|
139
|
-
* Creates the digest which must be prepended to the userOp signature.
|
|
140
|
-
*
|
|
141
|
-
* Assumption: The client this extends is used to sign the typed data.
|
|
142
|
-
*
|
|
143
|
-
* @param {object} args The argument object containing the following:
|
|
144
|
-
* @param {Hex} args.fullPreSignatureDeferredActionDigest The The data to append the signature and length to
|
|
145
|
-
* @param {Hex} args.sig The signature to include in the digest
|
|
146
|
-
* @returns {Hex} The encoded digest to be prepended to the userOp signature
|
|
147
|
-
*/
|
|
148
|
-
const buildDeferredActionDigest = ({
|
|
149
|
-
fullPreSignatureDeferredActionDigest,
|
|
150
|
-
sig,
|
|
151
|
-
}: BuildDeferredActionDigestParams): Hex => {
|
|
152
|
-
const sigLength = size(sig);
|
|
153
|
-
|
|
154
|
-
const encodedData = concatHex([
|
|
155
|
-
fullPreSignatureDeferredActionDigest,
|
|
156
|
-
toHex(sigLength, { size: 4 }),
|
|
157
|
-
sig,
|
|
158
|
-
]);
|
|
159
|
-
return encodedData;
|
|
160
|
-
};
|
|
161
|
-
|
|
162
132
|
const buildPreSignatureDeferredActionDigest = ({
|
|
163
133
|
typedData,
|
|
164
134
|
}: BuildPreSignatureDeferredActionDigestParams): Hex => {
|
|
@@ -270,7 +240,6 @@ export const deferralActions: (
|
|
|
270
240
|
|
|
271
241
|
return {
|
|
272
242
|
createDeferredActionTypedDataObject,
|
|
273
|
-
buildDeferredActionDigest,
|
|
274
243
|
buildPreSignatureDeferredActionDigest,
|
|
275
244
|
buildUserOperationWithDeferredAction,
|
|
276
245
|
getEntityIdAndNonce,
|
package/src/ma-v2/index.ts
CHANGED
|
@@ -24,6 +24,7 @@ export type * from "./actions/deferralActions.js";
|
|
|
24
24
|
export { deferralActions } from "./actions/deferralActions.js";
|
|
25
25
|
export type * from "./permissionBuilder.js";
|
|
26
26
|
export { PermissionBuilder, PermissionType } from "./permissionBuilder.js";
|
|
27
|
+
export * from "./permissionBuilderErrors.js";
|
|
27
28
|
|
|
28
29
|
export {
|
|
29
30
|
getDefaultAllowlistModuleAddress,
|
|
@@ -33,7 +34,7 @@ export {
|
|
|
33
34
|
getDefaultTimeRangeModuleAddress,
|
|
34
35
|
getDefaultWebauthnValidationModuleAddress,
|
|
35
36
|
} from "./modules/utils.js";
|
|
36
|
-
export { buildFullNonceKey } from "./utils.js";
|
|
37
|
+
export { buildFullNonceKey, buildDeferredActionDigest } from "./utils.js";
|
|
37
38
|
export { allowlistModuleAbi } from "./modules/allowlist-module/abis/allowlistModuleAbi.js";
|
|
38
39
|
export { AllowlistModule } from "./modules/allowlist-module/module.js";
|
|
39
40
|
export { nativeTokenLimitModuleAbi } from "./modules/native-token-limit-module/abis/nativeTokenLimitModuleAbi.js";
|
|
@@ -61,7 +61,7 @@ export const singleSignerMessageSigner = (
|
|
|
61
61
|
},
|
|
62
62
|
|
|
63
63
|
signUserOperationHash: async (uoHash: Hex): Promise<Hex> => {
|
|
64
|
-
|
|
64
|
+
let sig = await signer
|
|
65
65
|
.signMessage({ raw: uoHash })
|
|
66
66
|
.then((signature: Hex) =>
|
|
67
67
|
packUOSignature({
|
|
@@ -70,7 +70,12 @@ export const singleSignerMessageSigner = (
|
|
|
70
70
|
})
|
|
71
71
|
);
|
|
72
72
|
|
|
73
|
-
|
|
73
|
+
if (deferredActionData) {
|
|
74
|
+
sig = concatHex([deferredActionData, sig]);
|
|
75
|
+
deferredActionData = undefined;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
return sig;
|
|
74
79
|
},
|
|
75
80
|
|
|
76
81
|
// we apply the expected 1271 packing here since the account contract will expect it
|