@account-kit/infra 4.34.1 → 4.35.1
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/actions/simulateUserOperationChanges.js.map +1 -1
- package/dist/esm/actions/types.js.map +1 -1
- package/dist/esm/alchemyTransport.js +6 -16
- package/dist/esm/alchemyTransport.js.map +1 -1
- package/dist/esm/chains.d.ts +3 -0
- package/dist/esm/chains.js +69 -0
- package/dist/esm/chains.js.map +1 -1
- package/dist/esm/client/decorators/alchemyEnhancedApis.js.map +1 -1
- package/dist/esm/client/decorators/smartAccount.js.map +1 -1
- package/dist/esm/client/isAlchemySmartAccountClient.js.map +1 -1
- package/dist/esm/client/smartAccountClient.js.map +1 -1
- package/dist/esm/client/types.js.map +1 -1
- package/dist/esm/defaults.js.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/metrics.js.map +1 -1
- package/dist/esm/middleware/feeEstimator.js.map +1 -1
- package/dist/esm/middleware/gasManager.js.map +1 -1
- package/dist/esm/middleware/userOperationSimulator.js.map +1 -1
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/version.js.map +1 -1
- package/dist/types/actions/types.d.ts.map +1 -1
- package/dist/types/alchemyTrackerHeaders.d.ts.map +1 -1
- package/dist/types/alchemyTransport.d.ts.map +1 -1
- package/dist/types/chains.d.ts +3 -0
- package/dist/types/chains.d.ts.map +1 -1
- package/dist/types/client/decorators/smartAccount.d.ts.map +1 -1
- package/dist/types/client/rpcClient.d.ts.map +1 -1
- package/dist/types/defaults.d.ts.map +1 -1
- package/dist/types/gas-manager.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/package.json +5 -7
- package/src/actions/simulateUserOperationChanges.ts +5 -5
- package/src/actions/types.ts +11 -11
- package/src/alchemyTransport.ts +17 -24
- package/src/chains.ts +72 -0
- package/src/client/decorators/alchemyEnhancedApis.ts +4 -4
- package/src/client/decorators/smartAccount.ts +9 -8
- package/src/client/isAlchemySmartAccountClient.ts +2 -2
- package/src/client/smartAccountClient.ts +10 -10
- package/src/client/types.ts +1 -1
- package/src/defaults.ts +1 -1
- package/src/index.ts +3 -0
- package/src/metrics.ts +1 -1
- package/src/middleware/feeEstimator.ts +3 -3
- package/src/middleware/gasManager.ts +25 -25
- package/src/middleware/userOperationSimulator.ts +1 -1
- package/src/version.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feeEstimator.js","sourceRoot":"","sources":["../../../src/middleware/feeEstimator.ts"],"names":[],"mappings":"AACA,OAAO,EACL,8BAA8B,EAC9B,cAAc,EACd,iBAAiB,GAClB,MAAM,cAAc,CAAC;AAGtB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAG9B,CAAC,SAAS,EAAE,EAAE,CACd,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;IAC3D,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;IACjE,MAAM,UAAU,GAAG,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IACtD,IAAI,CAAC,KAAK,EAAE,4BAA4B,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC5D,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;QACvC,4GAA4G;QAC5G,UAAU,CAAC,OAAO,CAAC;YACjB,MAAM,EAAE,8BAA8B;YACtC,MAAM,EAAE,EAAE;SACX,CAAC;KACH,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;IAC1C,IAAI,aAAa,IAAI,IAAI,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,oBAAoB,GAAG,8BAA8B,CACzD,4BAA4B,EAC5B,SAAS,EAAE,oBAAoB,EAC/B,UAAU,EAAE,oBAAoB,CACjC,CAAC;IACF,MAAM,YAAY,GAAG,8BAA8B,CACjD,cAAc,CAAC,aAAa,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,oBAAoB,CAAC,EACjE,SAAS,EAAE,YAAY,EACvB,UAAU,EAAE,YAAY,CACzB,CAAC;IAEF,OAAO;QACL,GAAG,MAAM;QACT,oBAAoB;QACpB,YAAY;KACb,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import type { ClientMiddlewareFn } from \"@aa-sdk/core\";\nimport {\n applyUserOpOverrideOrFeeOption,\n bigIntMultiply,\n clientHeaderTrack,\n} from \"@aa-sdk/core\";\nimport type { AlchemyTransport } from \"../alchemyTransport\";\n\n/**\n * Function that estimates the transaction fees using Alchemy methods for a given client.\n * It fetches the latest block and estimates the max priority fee per gas, applying any overrides or fee options provided.\n *\n * @example\n * ```ts\n * import { alchemyFeeEstimator, alchemy } from \"@account-kit/infra\";\n * import { createSmartAccountClient } from \"@aa-sdk/core\";\n *\n * const alchemyTransport = alchemy({\n * chain: sepolia,\n * apiKey: \"your-api-key\"\n * });\n *\n * const client = createSmartAccountClient({\n * feeEstimator: alchemyFeeEstimator(alchemyTransport),\n * ...otherParams\n * });\n * ```\n *\n * @param {AlchemyTransport} transport An alchemy transport for making Alchemy specific RPC calls\n * @returns {ClientMiddlewareFn} A middleware function that takes a transaction structure and fee options, and returns the augmented structure with estimated fees\n */\nexport const alchemyFeeEstimator: (\n transport: AlchemyTransport
|
|
1
|
+
{"version":3,"file":"feeEstimator.js","sourceRoot":"","sources":["../../../src/middleware/feeEstimator.ts"],"names":[],"mappings":"AACA,OAAO,EACL,8BAA8B,EAC9B,cAAc,EACd,iBAAiB,GAClB,MAAM,cAAc,CAAC;AAGtB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAG9B,CAAC,SAAS,EAAE,EAAE,CACd,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;IAC3D,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;IACjE,MAAM,UAAU,GAAG,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IACtD,IAAI,CAAC,KAAK,EAAE,4BAA4B,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC5D,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;QACvC,4GAA4G;QAC5G,UAAU,CAAC,OAAO,CAAC;YACjB,MAAM,EAAE,8BAA8B;YACtC,MAAM,EAAE,EAAE;SACX,CAAC;KACH,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;IAC1C,IAAI,aAAa,IAAI,IAAI,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,oBAAoB,GAAG,8BAA8B,CACzD,4BAA4B,EAC5B,SAAS,EAAE,oBAAoB,EAC/B,UAAU,EAAE,oBAAoB,CACjC,CAAC;IACF,MAAM,YAAY,GAAG,8BAA8B,CACjD,cAAc,CAAC,aAAa,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,oBAAoB,CAAC,EACjE,SAAS,EAAE,YAAY,EACvB,UAAU,EAAE,YAAY,CACzB,CAAC;IAEF,OAAO;QACL,GAAG,MAAM;QACT,oBAAoB;QACpB,YAAY;KACb,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import type { ClientMiddlewareFn } from \"@aa-sdk/core\";\nimport {\n applyUserOpOverrideOrFeeOption,\n bigIntMultiply,\n clientHeaderTrack,\n} from \"@aa-sdk/core\";\nimport type { AlchemyTransport } from \"../alchemyTransport\";\n\n/**\n * Function that estimates the transaction fees using Alchemy methods for a given client.\n * It fetches the latest block and estimates the max priority fee per gas, applying any overrides or fee options provided.\n *\n * @example\n * ```ts\n * import { alchemyFeeEstimator, alchemy } from \"@account-kit/infra\";\n * import { createSmartAccountClient } from \"@aa-sdk/core\";\n *\n * const alchemyTransport = alchemy({\n * chain: sepolia,\n * apiKey: \"your-api-key\"\n * });\n *\n * const client = createSmartAccountClient({\n * feeEstimator: alchemyFeeEstimator(alchemyTransport),\n * ...otherParams\n * });\n * ```\n *\n * @param {AlchemyTransport} transport An alchemy transport for making Alchemy specific RPC calls\n * @returns {ClientMiddlewareFn} A middleware function that takes a transaction structure and fee options, and returns the augmented structure with estimated fees\n */\nexport const alchemyFeeEstimator: (\n transport: AlchemyTransport,\n) => ClientMiddlewareFn =\n (transport) =>\n async (struct, { overrides, feeOptions, client: client_ }) => {\n const client = clientHeaderTrack(client_, \"alchemyFeeEstimator\");\n const transport_ = transport({ chain: client.chain });\n let [block, maxPriorityFeePerGasEstimate] = await Promise.all([\n client.getBlock({ blockTag: \"latest\" }),\n // it is a fair assumption that if someone is using this Alchemy Middleware, then they are using Alchemy RPC\n transport_.request({\n method: \"rundler_maxPriorityFeePerGas\",\n params: [],\n }),\n ]);\n\n const baseFeePerGas = block.baseFeePerGas;\n if (baseFeePerGas == null) {\n throw new Error(\"baseFeePerGas is null\");\n }\n\n const maxPriorityFeePerGas = applyUserOpOverrideOrFeeOption(\n maxPriorityFeePerGasEstimate,\n overrides?.maxPriorityFeePerGas,\n feeOptions?.maxPriorityFeePerGas,\n );\n const maxFeePerGas = applyUserOpOverrideOrFeeOption(\n bigIntMultiply(baseFeePerGas, 1.5) + BigInt(maxPriorityFeePerGas),\n overrides?.maxFeePerGas,\n feeOptions?.maxFeePerGas,\n );\n\n return {\n ...struct,\n maxPriorityFeePerGas,\n maxFeePerGas,\n };\n };\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gasManager.js","sourceRoot":"","sources":["../../../src/middleware/gasManager.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n Address,\n ClientMiddlewareConfig,\n ClientMiddlewareFn,\n EntryPointVersion,\n Erc7677Client,\n Multiplier,\n SmartContractAccount,\n UserOperationFeeOptions,\n UserOperationOverrides,\n UserOperationRequest,\n} from \"@aa-sdk/core\";\nimport {\n bypassPaymasterAndData,\n ChainNotFoundError,\n clientHeaderTrack,\n deepHexlify,\n defaultGasEstimator,\n erc7677Middleware,\n filterUndefined,\n isBigNumberish,\n isMultiplier,\n noopMiddleware,\n resolveProperties,\n} from \"@aa-sdk/core\";\nimport {\n fromHex,\n isHex,\n toHex,\n type Hex,\n encodeAbiParameters,\n encodeFunctionData,\n parseAbi,\n sliceHex,\n} from \"viem\";\nimport type { AlchemySmartAccountClient } from \"../client/smartAccountClient.js\";\nimport type { AlchemyTransport } from \"../alchemyTransport.js\";\nimport { alchemyFeeEstimator } from \"./feeEstimator.js\";\nimport type { RequestGasAndPaymasterAndDataRequest } from \"../actions/types.js\";\nimport { PermitTypes, EIP712NoncesAbi } from \"../gas-manager.js\";\nimport type { PermitMessage, PermitDomain } from \"../gas-manager.js\";\nimport type { MiddlewareClient } from \"../../../../aa-sdk/core/dist/types/middleware/actions.js\";\n\ntype Context = {\n policyId: string | string[];\n erc20Context?: {\n tokenAddress: Address;\n maxTokenAmount?: BigInt;\n permit?: Hex;\n };\n};\n/**\n * Paymaster middleware factory that uses Alchemy's Gas Manager for sponsoring\n * transactions. Adheres to the ERC-7677 standardized communication protocol.\n *\n * @example\n * ```ts\n * import { sepolia, alchemyGasManagerMiddleware } from \"@account-kit/infra\";\n * import { http } from \"viem\";\n *\n * const client = createSmartAccountClient({\n * transport: http(\"rpc-url\"),\n * chain: sepolia,\n * ...alchemyGasManagerMiddleware(\"policyId\")\n * });\n * ```\n *\n * @param {string | string[]} policyId - The policyId (or list of policyIds) for Alchemy's gas manager\n * @param {PolicyToken | undefined} policyToken - The policy token configuration\n * @returns {Pick<ClientMiddlewareConfig, \"dummyPaymasterAndData\" | \"paymasterAndData\">} Partial client middleware configuration containing `dummyPaymasterAndData` and `paymasterAndData`\n */\nexport function alchemyGasManagerMiddleware(\n policyId: string | string[],\n policyToken?: PolicyToken\n): Required<\n Pick<ClientMiddlewareConfig, \"dummyPaymasterAndData\" | \"paymasterAndData\">\n> {\n const buildContext = async (\n uo: Parameters<ClientMiddlewareFn>[0],\n args: Parameters<ClientMiddlewareFn>[1]\n ): Promise<Context> => {\n const context: Context = { policyId };\n\n const { account, client } = args;\n if (!client.chain) {\n throw new ChainNotFoundError();\n }\n\n if (policyToken !== undefined) {\n const userOp = await deepHexlify(await resolveProperties(uo));\n context.erc20Context = {\n tokenAddress: policyToken.address,\n maxTokenAmount: policyToken.maxTokenAmount,\n };\n\n if (policyToken.approvalMode === \"PERMIT\") {\n context.erc20Context.permit = await generateSignedPermit(\n userOp,\n client as AlchemySmartAccountClient,\n account,\n policyId,\n policyToken\n );\n }\n }\n\n return context;\n };\n return {\n dummyPaymasterAndData: async (uo, args) => {\n const context = await buildContext(uo, args);\n const baseMiddleware = erc7677Middleware({ context });\n return baseMiddleware.dummyPaymasterAndData(uo, args);\n },\n\n paymasterAndData: async (uo, args) => {\n const context = await buildContext(uo, args);\n const baseMiddleware = erc7677Middleware({ context });\n return baseMiddleware.paymasterAndData(uo, args);\n },\n };\n}\n\ninterface AlchemyGasAndPaymasterAndDataMiddlewareParams {\n policyId: string | string[];\n policyToken?: PolicyToken;\n transport: AlchemyTransport;\n gasEstimatorOverride?: ClientMiddlewareFn;\n feeEstimatorOverride?: ClientMiddlewareFn;\n}\n\nexport type PolicyToken = {\n address: Address;\n maxTokenAmount: bigint;\n approvalMode?: \"NONE\" | \"PERMIT\";\n erc20Name?: string;\n version?: string;\n};\n\n/**\n * Paymaster middleware factory that uses Alchemy's Gas Manager for sponsoring\n * transactions. Uses Alchemy's custom `alchemy_requestGasAndPaymasterAndData`\n * method instead of conforming to the standard ERC-7677 interface. Note that\n * if you use `createAlchemySmartAccountClient`, this middleware is already\n * used by default and you do not need to manually include it.\n *\n * @example\n * ```ts twoslash\n * import { sepolia, alchemy, alchemyGasAndPaymasterAndDataMiddleware } from \"@account-kit/infra\";\n * import { createSmartAccountClient } from \"@aa-sdk/core\";\n *\n * const client = createSmartAccountClient({\n * transport: alchemy({ apiKey: \"your-api-key\" }),\n * chain: sepolia,\n * ...alchemyGasAndPaymasterAndDataMiddleware({\n * policyId: \"policyId\",\n * transport: alchemy({ apiKey: \"your-api-key\" }),\n * })\n * });\n * ```\n *\n * @param {AlchemyGasAndPaymasterAndDataMiddlewareParams} params configuration params\n * @param {AlchemyGasAndPaymasterAndDataMiddlewareParams.policyId} params.policyId the policyId for Alchemy's gas manager\n * @param {AlchemyGasAndPaymasterAndDataMiddlewareParams.transport} params.transport fallback transport to use for fee estimation when not using the paymaster\n * @param {AlchemyGasAndPaymasterAndDataMiddlewareParams.gasEstimatorOverride} params.gasEstimatorOverride custom gas estimator middleware\n * @param {AlchemyGasAndPaymasterAndDataMiddlewareParams.feeEstimatorOverride} params.feeEstimatorOverride custom fee estimator middleware\n * @returns {Pick<ClientMiddlewareConfig, \"dummyPaymasterAndData\" | \"feeEstimator\" | \"gasEstimator\" | \"paymasterAndData\">} partial client middleware configuration containing `dummyPaymasterAndData`, `feeEstimator`, `gasEstimator`, and `paymasterAndData`\n */\nexport function alchemyGasAndPaymasterAndDataMiddleware(\n params: AlchemyGasAndPaymasterAndDataMiddlewareParams\n): Pick<\n ClientMiddlewareConfig,\n \"dummyPaymasterAndData\" | \"feeEstimator\" | \"gasEstimator\" | \"paymasterAndData\"\n> {\n const {\n policyId,\n policyToken,\n transport,\n gasEstimatorOverride,\n feeEstimatorOverride,\n } = params;\n return {\n dummyPaymasterAndData: async (uo, args) => {\n if (\n // No reason to generate dummy data if we are bypassing the paymaster.\n bypassPaymasterAndData(args.overrides) ||\n // When using alchemy_requestGasAndPaymasterAndData, there is generally no reason to generate dummy\n // data. However, if the gas/feeEstimator is overriden, then this option should be enabled.\n !(gasEstimatorOverride || feeEstimatorOverride)\n ) {\n return noopMiddleware(uo, args);\n }\n\n // Fall back to the default 7677 dummyPaymasterAndData middleware.\n return alchemyGasManagerMiddleware(\n policyId,\n policyToken\n ).dummyPaymasterAndData(uo, args);\n },\n feeEstimator: (uo, args) => {\n return feeEstimatorOverride\n ? feeEstimatorOverride(uo, args)\n : bypassPaymasterAndData(args.overrides)\n ? alchemyFeeEstimator(transport)(uo, args)\n : noopMiddleware(uo, args);\n },\n gasEstimator: (uo, args) => {\n return gasEstimatorOverride\n ? gasEstimatorOverride(uo, args)\n : bypassPaymasterAndData(args.overrides)\n ? defaultGasEstimator(args.client)(uo, args)\n : noopMiddleware(uo, args);\n },\n paymasterAndData: async (\n uo,\n { account, client: client_, feeOptions, overrides: overrides_ }\n ) => {\n const client = clientHeaderTrack(client_, \"alchemyFeeEstimator\");\n if (!client.chain) {\n throw new ChainNotFoundError();\n }\n\n const userOp = deepHexlify(await resolveProperties(uo));\n\n const overrides: UserOperationOverrides = filterUndefined({\n maxFeePerGas: overrideField(\n \"maxFeePerGas\",\n overrides_ as UserOperationOverrides,\n feeOptions,\n userOp\n ),\n maxPriorityFeePerGas: overrideField(\n \"maxPriorityFeePerGas\",\n overrides_ as UserOperationOverrides,\n feeOptions,\n userOp\n ),\n callGasLimit: overrideField(\n \"callGasLimit\",\n overrides_ as UserOperationOverrides,\n feeOptions,\n userOp\n ),\n verificationGasLimit: overrideField(\n \"verificationGasLimit\",\n overrides_ as UserOperationOverrides,\n feeOptions,\n userOp\n ),\n preVerificationGas: overrideField(\n \"preVerificationGas\",\n overrides_ as UserOperationOverrides,\n feeOptions,\n userOp\n ),\n ...(account.getEntryPoint().version === \"0.7.0\"\n ? {\n paymasterVerificationGasLimit: overrideField<\"0.7.0\">(\n \"paymasterVerificationGasLimit\",\n overrides_ as UserOperationOverrides<\"0.7.0\">,\n feeOptions,\n userOp\n ),\n paymasterPostOpGasLimit: overrideField<\"0.7.0\">(\n \"paymasterPostOpGasLimit\",\n overrides_ as UserOperationOverrides<\"0.7.0\">,\n feeOptions,\n userOp\n ),\n }\n : {}),\n });\n\n let erc20Context: RequestGasAndPaymasterAndDataRequest[0][\"erc20Context\"] =\n undefined;\n if (policyToken !== undefined) {\n erc20Context = {\n tokenAddress: policyToken.address,\n maxTokenAmount: policyToken.maxTokenAmount,\n };\n if (policyToken.approvalMode === \"PERMIT\") {\n erc20Context.permit = await generateSignedPermit(\n userOp,\n client,\n account,\n policyId,\n policyToken\n );\n }\n }\n\n const result = await (client as AlchemySmartAccountClient).request({\n method: \"alchemy_requestGasAndPaymasterAndData\",\n params: [\n {\n policyId,\n entryPoint: account.getEntryPoint().address,\n userOperation: userOp,\n dummySignature: await account.getDummySignature(),\n overrides,\n ...(erc20Context\n ? {\n erc20Context,\n }\n : {}),\n },\n ],\n });\n\n return {\n ...uo,\n ...result,\n };\n },\n };\n}\n\n/**\n * Utility function to override a field in the user operation request with the overrides or fee options\n *\n * @template {EntryPointVersion} TEntryPointVersion\n * @param {keyof UserOperationFeeOptions<TEntryPointVersion>} field the field to override\n * @param {UserOperationOverrides<TEntryPointVersion> | undefined} overrides the overrides object\n * @param {UserOperationFeeOptions<TEntryPointVersion> | undefined} feeOptions the fee options object from the client\n * @param {UserOperationRequest<TEntryPointVersion>} userOperation the user operation request\n * @returns {Hex | Multiplier | undefined} the overridden field value\n */\nconst overrideField = <\n TEntryPointVersion extends EntryPointVersion = EntryPointVersion\n>(\n field: keyof UserOperationFeeOptions<TEntryPointVersion>,\n overrides: UserOperationOverrides<TEntryPointVersion> | undefined,\n feeOptions: UserOperationFeeOptions<TEntryPointVersion> | undefined,\n userOperation: UserOperationRequest<TEntryPointVersion>\n): Hex | Multiplier | undefined => {\n let _field = field as keyof UserOperationOverrides<TEntryPointVersion>;\n\n if (overrides?.[_field] != null) {\n // one-off absolute override\n if (isBigNumberish(overrides[_field])) {\n return deepHexlify(overrides[_field]);\n }\n // one-off multiplier overrides\n else {\n return {\n multiplier: Number((overrides[_field] as Multiplier).multiplier),\n };\n }\n }\n\n // provider level fee options with multiplier\n if (isMultiplier(feeOptions?.[field])) {\n return {\n multiplier: Number((feeOptions![field] as Multiplier).multiplier),\n };\n }\n\n const userOpField =\n userOperation[field as keyof UserOperationRequest<TEntryPointVersion>];\n if (isHex(userOpField) && fromHex(userOpField as Hex, \"bigint\") > 0n) {\n return userOpField;\n }\n return undefined;\n};\n\n/**\n * Utility function to generate a signed Permit for erc20 transaction\n *\n * @param {UserOperationRequest<TEntryPointVersion>} userOp - The user operation request\n * @param {MiddlewareClient} client - The Alchemy smart account client\n * @param {TAccount} account - The smart account instance\n * @param {string | string[]} policyId - The policy ID or array of policy IDs\n * @param {PolicyToken} policyToken - The policy token configuration\n * @param {Address} policyToken.address - ERC20 contract addressya\n * @param {bigint} [policyToken.maxTokenAmount] - Optional ERC20 token limit\n * @param {\"NONE\" | \"PERMIT\"} [policyToken.approvalMode] - ERC20 approve mode\n * @param {string} [policyToken.erc20Name] - EIP2612 specified ERC20 contract name\n * @param {string} [policyToken.version] - EIP2612 specified ERC20 contract version\n * @returns {Promise<Hex>} Returns a Promise containing the signed EIP2612 permit\n */\nconst generateSignedPermit = async <\n TAccount extends SmartContractAccount,\n TEntryPointVersion extends EntryPointVersion = EntryPointVersion\n>(\n userOp: UserOperationRequest<TEntryPointVersion>,\n client: MiddlewareClient,\n account: TAccount,\n policyId: string | string[],\n policyToken: {\n address: Address;\n maxTokenAmount: bigint;\n approvalMode?: \"NONE\" | \"PERMIT\";\n erc20Name?: string;\n version?: string;\n }\n): Promise<Hex> => {\n if (!client.chain) {\n throw new ChainNotFoundError();\n }\n if (!policyToken.erc20Name || !policyToken.version) {\n throw new Error(\"erc20Name or version is missing\");\n }\n\n let decimalsFuture = client.call({\n to: policyToken.address,\n data: encodeFunctionData({\n abi: parseAbi(EIP712NoncesAbi),\n functionName: \"decimals\",\n args: [],\n }),\n });\n\n let nonceFuture = client.call({\n to: policyToken.address,\n data: encodeFunctionData({\n abi: parseAbi(EIP712NoncesAbi),\n functionName: \"nonces\",\n args: [account.address],\n }),\n });\n\n let paymasterDataFuture = (client as Erc7677Client).request({\n method: \"pm_getPaymasterStubData\",\n params: [\n userOp,\n account.getEntryPoint().address,\n toHex(client.chain.id),\n {\n policyId: Array.isArray(policyId) ? policyId[0] : policyId,\n },\n ],\n });\n\n const [decimalsResponse, nonceResponse, paymasterData] = await Promise.all([\n decimalsFuture,\n nonceFuture,\n paymasterDataFuture,\n ]);\n if (!decimalsResponse.data) {\n throw new Error(\"No decimals returned from erc20 contract call\");\n }\n if (!nonceResponse.data) {\n throw new Error(\"No nonces returned from erc20 contract call\");\n }\n\n const decimals =\n 10n ** (decimalsResponse.data ? BigInt(decimalsResponse.data) : 18n);\n const maxAmountToken = policyToken.maxTokenAmount * decimals;\n const nonce = BigInt(nonceResponse.data);\n\n const paymasterAddress = paymasterData.paymaster\n ? paymasterData.paymaster\n : paymasterData.paymasterAndData\n ? sliceHex(paymasterData.paymasterAndData, 0, 20)\n : undefined;\n\n if (paymasterAddress === undefined || paymasterAddress === \"0x\") {\n throw new Error(\"no paymaster contract address available\");\n }\n\n const deadline = BigInt(Math.floor(Date.now() / 1000) + 60 * 10);\n\n const typedPermitData = {\n types: PermitTypes,\n primaryType: \"Permit\" as const,\n domain: {\n name: policyToken.erc20Name ?? \"\",\n version: policyToken.version ?? \"\",\n chainId: BigInt(client.chain.id),\n verifyingContract: policyToken.address,\n } satisfies PermitDomain,\n message: {\n owner: account.address,\n spender: paymasterAddress,\n value: maxAmountToken,\n nonce: nonce,\n deadline,\n } satisfies PermitMessage,\n } as const;\n\n const signedPermit = await account.signTypedData(typedPermitData);\n return encodeAbiParameters(\n [{ type: \"uint256\" }, { type: \"uint256\" }, { type: \"bytes\" }],\n [maxAmountToken, deadline, signedPermit]\n );\n};\n"]}
|
|
1
|
+
{"version":3,"file":"gasManager.js","sourceRoot":"","sources":["../../../src/middleware/gasManager.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,YAAY,EACZ,cAAc,EACd,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,OAAO,EACP,KAAK,EACL,KAAK,EAEL,mBAAmB,EACnB,kBAAkB,EAClB,QAAQ,EACR,QAAQ,GACT,MAAM,MAAM,CAAC;AAGd,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAYjE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,2BAA2B,CACzC,QAA2B,EAC3B,WAAyB;IAIzB,MAAM,YAAY,GAAG,KAAK,EACxB,EAAqC,EACrC,IAAuC,EACrB,EAAE;QACpB,MAAM,OAAO,GAAY,EAAE,QAAQ,EAAE,CAAC;QAEtC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,IAAI,kBAAkB,EAAE,CAAC;QACjC,CAAC;QAED,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,MAAM,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9D,OAAO,CAAC,YAAY,GAAG;gBACrB,YAAY,EAAE,WAAW,CAAC,OAAO;gBACjC,cAAc,EAAE,WAAW,CAAC,cAAc;aAC3C,CAAC;YAEF,IAAI,WAAW,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;gBAC1C,OAAO,CAAC,YAAY,CAAC,MAAM,GAAG,MAAM,oBAAoB,CACtD,MAAM,EACN,MAAmC,EACnC,OAAO,EACP,QAAQ,EACR,WAAW,CACZ,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IACF,OAAO;QACL,qBAAqB,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;YACxC,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAC7C,MAAM,cAAc,GAAG,iBAAiB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;YACtD,OAAO,cAAc,CAAC,qBAAqB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACxD,CAAC;QAED,gBAAgB,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;YACnC,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAC7C,MAAM,cAAc,GAAG,iBAAiB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;YACtD,OAAO,cAAc,CAAC,gBAAgB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACnD,CAAC;KACF,CAAC;AACJ,CAAC;AAkBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,UAAU,uCAAuC,CACrD,MAAqD;IAKrD,MAAM,EACJ,QAAQ,EACR,WAAW,EACX,SAAS,EACT,oBAAoB,EACpB,oBAAoB,GACrB,GAAG,MAAM,CAAC;IACX,OAAO;QACL,qBAAqB,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;YACxC;YACE,sEAAsE;YACtE,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC;gBACtC,mGAAmG;gBACnG,2FAA2F;gBAC3F,CAAC,CAAC,oBAAoB,IAAI,oBAAoB,CAAC,EAC/C,CAAC;gBACD,OAAO,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAClC,CAAC;YAED,kEAAkE;YAClE,OAAO,2BAA2B,CAChC,QAAQ,EACR,WAAW,CACZ,CAAC,qBAAqB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACpC,CAAC;QACD,YAAY,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE;YACzB,OAAO,oBAAoB;gBACzB,CAAC,CAAC,oBAAoB,CAAC,EAAE,EAAE,IAAI,CAAC;gBAChC,CAAC,CAAC,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC;oBACtC,CAAC,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC;oBAC1C,CAAC,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACjC,CAAC;QACD,YAAY,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE;YACzB,OAAO,oBAAoB;gBACzB,CAAC,CAAC,oBAAoB,CAAC,EAAE,EAAE,IAAI,CAAC;gBAChC,CAAC,CAAC,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC;oBACtC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC;oBAC5C,CAAC,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACjC,CAAC;QACD,gBAAgB,EAAE,KAAK,EACrB,EAAE,EACF,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,EAC/D,EAAE;YACF,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;YACjE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBAClB,MAAM,IAAI,kBAAkB,EAAE,CAAC;YACjC,CAAC;YAED,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC;YAExD,MAAM,SAAS,GAA2B,eAAe,CAAC;gBACxD,YAAY,EAAE,aAAa,CACzB,cAAc,EACd,UAAoC,EACpC,UAAU,EACV,MAAM,CACP;gBACD,oBAAoB,EAAE,aAAa,CACjC,sBAAsB,EACtB,UAAoC,EACpC,UAAU,EACV,MAAM,CACP;gBACD,YAAY,EAAE,aAAa,CACzB,cAAc,EACd,UAAoC,EACpC,UAAU,EACV,MAAM,CACP;gBACD,oBAAoB,EAAE,aAAa,CACjC,sBAAsB,EACtB,UAAoC,EACpC,UAAU,EACV,MAAM,CACP;gBACD,kBAAkB,EAAE,aAAa,CAC/B,oBAAoB,EACpB,UAAoC,EACpC,UAAU,EACV,MAAM,CACP;gBACD,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,OAAO,KAAK,OAAO;oBAC7C,CAAC,CAAC;wBACE,6BAA6B,EAAE,aAAa,CAC1C,+BAA+B,EAC/B,UAA6C,EAC7C,UAAU,EACV,MAAM,CACP;wBACD,uBAAuB,EAAE,aAAa,CACpC,yBAAyB,EACzB,UAA6C,EAC7C,UAAU,EACV,MAAM,CACP;qBACF;oBACH,CAAC,CAAC,EAAE,CAAC;aACR,CAAC,CAAC;YAEH,IAAI,YAAY,GACd,SAAS,CAAC;YACZ,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC9B,YAAY,GAAG;oBACb,YAAY,EAAE,WAAW,CAAC,OAAO;oBACjC,cAAc,EAAE,WAAW,CAAC,cAAc;iBAC3C,CAAC;gBACF,IAAI,WAAW,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;oBAC1C,YAAY,CAAC,MAAM,GAAG,MAAM,oBAAoB,CAC9C,MAAM,EACN,MAAM,EACN,OAAO,EACP,QAAQ,EACR,WAAW,CACZ,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,MAAM,MAAM,GAAG,MAAO,MAAoC,CAAC,OAAO,CAAC;gBACjE,MAAM,EAAE,uCAAuC;gBAC/C,MAAM,EAAE;oBACN;wBACE,QAAQ;wBACR,UAAU,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,OAAO;wBAC3C,aAAa,EAAE,MAAM;wBACrB,cAAc,EAAE,MAAM,OAAO,CAAC,iBAAiB,EAAE;wBACjD,SAAS;wBACT,GAAG,CAAC,YAAY;4BACd,CAAC,CAAC;gCACE,YAAY;6BACb;4BACH,CAAC,CAAC,EAAE,CAAC;qBACR;iBACF;aACF,CAAC,CAAC;YAEH,OAAO;gBACL,GAAG,EAAE;gBACL,GAAG,MAAM;aACV,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,aAAa,GAAG,CAGpB,KAAwD,EACxD,SAAiE,EACjE,UAAmE,EACnE,aAAuD,EACzB,EAAE;IAChC,IAAI,MAAM,GAAG,KAAyD,CAAC;IAEvE,IAAI,SAAS,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QAChC,4BAA4B;QAC5B,IAAI,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YACtC,OAAO,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QACxC,CAAC;QACD,+BAA+B;aAC1B,CAAC;YACJ,OAAO;gBACL,UAAU,EAAE,MAAM,CAAE,SAAS,CAAC,MAAM,CAAgB,CAAC,UAAU,CAAC;aACjE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,6CAA6C;IAC7C,IAAI,YAAY,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACtC,OAAO;YACL,UAAU,EAAE,MAAM,CAAE,UAAW,CAAC,KAAK,CAAgB,CAAC,UAAU,CAAC;SAClE,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GACf,aAAa,CAAC,KAAuD,CAAC,CAAC;IACzE,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,WAAkB,EAAE,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC;QACrE,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAM,oBAAoB,GAAG,KAAK,EAIhC,MAAgD,EAChD,MAAwB,EACxB,OAAiB,EACjB,QAA2B,EAC3B,WAMC,EACa,EAAE;IAChB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,IAAI,kBAAkB,EAAE,CAAC;IACjC,CAAC;IACD,IAAI,CAAC,WAAW,CAAC,SAAS,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC;QAC/B,EAAE,EAAE,WAAW,CAAC,OAAO;QACvB,IAAI,EAAE,kBAAkB,CAAC;YACvB,GAAG,EAAE,QAAQ,CAAC,eAAe,CAAC;YAC9B,YAAY,EAAE,UAAU;YACxB,IAAI,EAAE,EAAE;SACT,CAAC;KACH,CAAC,CAAC;IAEH,IAAI,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC;QAC5B,EAAE,EAAE,WAAW,CAAC,OAAO;QACvB,IAAI,EAAE,kBAAkB,CAAC;YACvB,GAAG,EAAE,QAAQ,CAAC,eAAe,CAAC;YAC9B,YAAY,EAAE,QAAQ;YACtB,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;SACxB,CAAC;KACH,CAAC,CAAC;IAEH,IAAI,mBAAmB,GAAI,MAAwB,CAAC,OAAO,CAAC;QAC1D,MAAM,EAAE,yBAAyB;QACjC,MAAM,EAAE;YACN,MAAM;YACN,OAAO,CAAC,aAAa,EAAE,CAAC,OAAO;YAC/B,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACtB;gBACE,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ;aAC3D;SACF;KACF,CAAC,CAAC;IAEH,MAAM,CAAC,gBAAgB,EAAE,aAAa,EAAE,aAAa,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACzE,cAAc;QACd,WAAW;QACX,mBAAmB;KACpB,CAAC,CAAC;IACH,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,QAAQ,GACZ,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACvE,MAAM,cAAc,GAAG,WAAW,CAAC,cAAc,GAAG,QAAQ,CAAC;IAC7D,MAAM,KAAK,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAEzC,MAAM,gBAAgB,GAAG,aAAa,CAAC,SAAS;QAC9C,CAAC,CAAC,aAAa,CAAC,SAAS;QACzB,CAAC,CAAC,aAAa,CAAC,gBAAgB;YAC9B,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,gBAAgB,EAAE,CAAC,EAAE,EAAE,CAAC;YACjD,CAAC,CAAC,SAAS,CAAC;IAEhB,IAAI,gBAAgB,KAAK,SAAS,IAAI,gBAAgB,KAAK,IAAI,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAEjE,MAAM,eAAe,GAAG;QACtB,KAAK,EAAE,WAAW;QAClB,WAAW,EAAE,QAAiB;QAC9B,MAAM,EAAE;YACN,IAAI,EAAE,WAAW,CAAC,SAAS,IAAI,EAAE;YACjC,OAAO,EAAE,WAAW,CAAC,OAAO,IAAI,EAAE;YAClC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,iBAAiB,EAAE,WAAW,CAAC,OAAO;SAChB;QACxB,OAAO,EAAE;YACP,KAAK,EAAE,OAAO,CAAC,OAAO;YACtB,OAAO,EAAE,gBAAgB;YACzB,KAAK,EAAE,cAAc;YACrB,KAAK,EAAE,KAAK;YACZ,QAAQ;SACe;KACjB,CAAC;IAEX,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;IAClE,OAAO,mBAAmB,CACxB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAC7D,CAAC,cAAc,EAAE,QAAQ,EAAE,YAAY,CAAC,CACzC,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import type {\n Address,\n ClientMiddlewareConfig,\n ClientMiddlewareFn,\n EntryPointVersion,\n Erc7677Client,\n Multiplier,\n SmartContractAccount,\n UserOperationFeeOptions,\n UserOperationOverrides,\n UserOperationRequest,\n} from \"@aa-sdk/core\";\nimport {\n bypassPaymasterAndData,\n ChainNotFoundError,\n clientHeaderTrack,\n deepHexlify,\n defaultGasEstimator,\n erc7677Middleware,\n filterUndefined,\n isBigNumberish,\n isMultiplier,\n noopMiddleware,\n resolveProperties,\n} from \"@aa-sdk/core\";\nimport {\n fromHex,\n isHex,\n toHex,\n type Hex,\n encodeAbiParameters,\n encodeFunctionData,\n parseAbi,\n sliceHex,\n} from \"viem\";\nimport type { AlchemySmartAccountClient } from \"../client/smartAccountClient.js\";\nimport type { AlchemyTransport } from \"../alchemyTransport.js\";\nimport { alchemyFeeEstimator } from \"./feeEstimator.js\";\nimport type { RequestGasAndPaymasterAndDataRequest } from \"../actions/types.js\";\nimport { PermitTypes, EIP712NoncesAbi } from \"../gas-manager.js\";\nimport type { PermitMessage, PermitDomain } from \"../gas-manager.js\";\nimport type { MiddlewareClient } from \"../../../../aa-sdk/core/dist/types/middleware/actions.js\";\n\ntype Context = {\n policyId: string | string[];\n erc20Context?: {\n tokenAddress: Address;\n maxTokenAmount?: BigInt;\n permit?: Hex;\n };\n};\n/**\n * Paymaster middleware factory that uses Alchemy's Gas Manager for sponsoring\n * transactions. Adheres to the ERC-7677 standardized communication protocol.\n *\n * @example\n * ```ts\n * import { sepolia, alchemyGasManagerMiddleware } from \"@account-kit/infra\";\n * import { http } from \"viem\";\n *\n * const client = createSmartAccountClient({\n * transport: http(\"rpc-url\"),\n * chain: sepolia,\n * ...alchemyGasManagerMiddleware(\"policyId\")\n * });\n * ```\n *\n * @param {string | string[]} policyId - The policyId (or list of policyIds) for Alchemy's gas manager\n * @param {PolicyToken | undefined} policyToken - The policy token configuration\n * @returns {Pick<ClientMiddlewareConfig, \"dummyPaymasterAndData\" | \"paymasterAndData\">} Partial client middleware configuration containing `dummyPaymasterAndData` and `paymasterAndData`\n */\nexport function alchemyGasManagerMiddleware(\n policyId: string | string[],\n policyToken?: PolicyToken,\n): Required<\n Pick<ClientMiddlewareConfig, \"dummyPaymasterAndData\" | \"paymasterAndData\">\n> {\n const buildContext = async (\n uo: Parameters<ClientMiddlewareFn>[0],\n args: Parameters<ClientMiddlewareFn>[1],\n ): Promise<Context> => {\n const context: Context = { policyId };\n\n const { account, client } = args;\n if (!client.chain) {\n throw new ChainNotFoundError();\n }\n\n if (policyToken !== undefined) {\n const userOp = await deepHexlify(await resolveProperties(uo));\n context.erc20Context = {\n tokenAddress: policyToken.address,\n maxTokenAmount: policyToken.maxTokenAmount,\n };\n\n if (policyToken.approvalMode === \"PERMIT\") {\n context.erc20Context.permit = await generateSignedPermit(\n userOp,\n client as AlchemySmartAccountClient,\n account,\n policyId,\n policyToken,\n );\n }\n }\n\n return context;\n };\n return {\n dummyPaymasterAndData: async (uo, args) => {\n const context = await buildContext(uo, args);\n const baseMiddleware = erc7677Middleware({ context });\n return baseMiddleware.dummyPaymasterAndData(uo, args);\n },\n\n paymasterAndData: async (uo, args) => {\n const context = await buildContext(uo, args);\n const baseMiddleware = erc7677Middleware({ context });\n return baseMiddleware.paymasterAndData(uo, args);\n },\n };\n}\n\ninterface AlchemyGasAndPaymasterAndDataMiddlewareParams {\n policyId: string | string[];\n policyToken?: PolicyToken;\n transport: AlchemyTransport;\n gasEstimatorOverride?: ClientMiddlewareFn;\n feeEstimatorOverride?: ClientMiddlewareFn;\n}\n\nexport type PolicyToken = {\n address: Address;\n maxTokenAmount: bigint;\n approvalMode?: \"NONE\" | \"PERMIT\";\n erc20Name?: string;\n version?: string;\n};\n\n/**\n * Paymaster middleware factory that uses Alchemy's Gas Manager for sponsoring\n * transactions. Uses Alchemy's custom `alchemy_requestGasAndPaymasterAndData`\n * method instead of conforming to the standard ERC-7677 interface. Note that\n * if you use `createAlchemySmartAccountClient`, this middleware is already\n * used by default and you do not need to manually include it.\n *\n * @example\n * ```ts twoslash\n * import { sepolia, alchemy, alchemyGasAndPaymasterAndDataMiddleware } from \"@account-kit/infra\";\n * import { createSmartAccountClient } from \"@aa-sdk/core\";\n *\n * const client = createSmartAccountClient({\n * transport: alchemy({ apiKey: \"your-api-key\" }),\n * chain: sepolia,\n * ...alchemyGasAndPaymasterAndDataMiddleware({\n * policyId: \"policyId\",\n * transport: alchemy({ apiKey: \"your-api-key\" }),\n * })\n * });\n * ```\n *\n * @param {AlchemyGasAndPaymasterAndDataMiddlewareParams} params configuration params\n * @param {AlchemyGasAndPaymasterAndDataMiddlewareParams.policyId} params.policyId the policyId for Alchemy's gas manager\n * @param {AlchemyGasAndPaymasterAndDataMiddlewareParams.transport} params.transport fallback transport to use for fee estimation when not using the paymaster\n * @param {AlchemyGasAndPaymasterAndDataMiddlewareParams.gasEstimatorOverride} params.gasEstimatorOverride custom gas estimator middleware\n * @param {AlchemyGasAndPaymasterAndDataMiddlewareParams.feeEstimatorOverride} params.feeEstimatorOverride custom fee estimator middleware\n * @returns {Pick<ClientMiddlewareConfig, \"dummyPaymasterAndData\" | \"feeEstimator\" | \"gasEstimator\" | \"paymasterAndData\">} partial client middleware configuration containing `dummyPaymasterAndData`, `feeEstimator`, `gasEstimator`, and `paymasterAndData`\n */\nexport function alchemyGasAndPaymasterAndDataMiddleware(\n params: AlchemyGasAndPaymasterAndDataMiddlewareParams,\n): Pick<\n ClientMiddlewareConfig,\n \"dummyPaymasterAndData\" | \"feeEstimator\" | \"gasEstimator\" | \"paymasterAndData\"\n> {\n const {\n policyId,\n policyToken,\n transport,\n gasEstimatorOverride,\n feeEstimatorOverride,\n } = params;\n return {\n dummyPaymasterAndData: async (uo, args) => {\n if (\n // No reason to generate dummy data if we are bypassing the paymaster.\n bypassPaymasterAndData(args.overrides) ||\n // When using alchemy_requestGasAndPaymasterAndData, there is generally no reason to generate dummy\n // data. However, if the gas/feeEstimator is overriden, then this option should be enabled.\n !(gasEstimatorOverride || feeEstimatorOverride)\n ) {\n return noopMiddleware(uo, args);\n }\n\n // Fall back to the default 7677 dummyPaymasterAndData middleware.\n return alchemyGasManagerMiddleware(\n policyId,\n policyToken,\n ).dummyPaymasterAndData(uo, args);\n },\n feeEstimator: (uo, args) => {\n return feeEstimatorOverride\n ? feeEstimatorOverride(uo, args)\n : bypassPaymasterAndData(args.overrides)\n ? alchemyFeeEstimator(transport)(uo, args)\n : noopMiddleware(uo, args);\n },\n gasEstimator: (uo, args) => {\n return gasEstimatorOverride\n ? gasEstimatorOverride(uo, args)\n : bypassPaymasterAndData(args.overrides)\n ? defaultGasEstimator(args.client)(uo, args)\n : noopMiddleware(uo, args);\n },\n paymasterAndData: async (\n uo,\n { account, client: client_, feeOptions, overrides: overrides_ },\n ) => {\n const client = clientHeaderTrack(client_, \"alchemyFeeEstimator\");\n if (!client.chain) {\n throw new ChainNotFoundError();\n }\n\n const userOp = deepHexlify(await resolveProperties(uo));\n\n const overrides: UserOperationOverrides = filterUndefined({\n maxFeePerGas: overrideField(\n \"maxFeePerGas\",\n overrides_ as UserOperationOverrides,\n feeOptions,\n userOp,\n ),\n maxPriorityFeePerGas: overrideField(\n \"maxPriorityFeePerGas\",\n overrides_ as UserOperationOverrides,\n feeOptions,\n userOp,\n ),\n callGasLimit: overrideField(\n \"callGasLimit\",\n overrides_ as UserOperationOverrides,\n feeOptions,\n userOp,\n ),\n verificationGasLimit: overrideField(\n \"verificationGasLimit\",\n overrides_ as UserOperationOverrides,\n feeOptions,\n userOp,\n ),\n preVerificationGas: overrideField(\n \"preVerificationGas\",\n overrides_ as UserOperationOverrides,\n feeOptions,\n userOp,\n ),\n ...(account.getEntryPoint().version === \"0.7.0\"\n ? {\n paymasterVerificationGasLimit: overrideField<\"0.7.0\">(\n \"paymasterVerificationGasLimit\",\n overrides_ as UserOperationOverrides<\"0.7.0\">,\n feeOptions,\n userOp,\n ),\n paymasterPostOpGasLimit: overrideField<\"0.7.0\">(\n \"paymasterPostOpGasLimit\",\n overrides_ as UserOperationOverrides<\"0.7.0\">,\n feeOptions,\n userOp,\n ),\n }\n : {}),\n });\n\n let erc20Context: RequestGasAndPaymasterAndDataRequest[0][\"erc20Context\"] =\n undefined;\n if (policyToken !== undefined) {\n erc20Context = {\n tokenAddress: policyToken.address,\n maxTokenAmount: policyToken.maxTokenAmount,\n };\n if (policyToken.approvalMode === \"PERMIT\") {\n erc20Context.permit = await generateSignedPermit(\n userOp,\n client,\n account,\n policyId,\n policyToken,\n );\n }\n }\n\n const result = await (client as AlchemySmartAccountClient).request({\n method: \"alchemy_requestGasAndPaymasterAndData\",\n params: [\n {\n policyId,\n entryPoint: account.getEntryPoint().address,\n userOperation: userOp,\n dummySignature: await account.getDummySignature(),\n overrides,\n ...(erc20Context\n ? {\n erc20Context,\n }\n : {}),\n },\n ],\n });\n\n return {\n ...uo,\n ...result,\n };\n },\n };\n}\n\n/**\n * Utility function to override a field in the user operation request with the overrides or fee options\n *\n * @template {EntryPointVersion} TEntryPointVersion\n * @param {keyof UserOperationFeeOptions<TEntryPointVersion>} field the field to override\n * @param {UserOperationOverrides<TEntryPointVersion> | undefined} overrides the overrides object\n * @param {UserOperationFeeOptions<TEntryPointVersion> | undefined} feeOptions the fee options object from the client\n * @param {UserOperationRequest<TEntryPointVersion>} userOperation the user operation request\n * @returns {Hex | Multiplier | undefined} the overridden field value\n */\nconst overrideField = <\n TEntryPointVersion extends EntryPointVersion = EntryPointVersion,\n>(\n field: keyof UserOperationFeeOptions<TEntryPointVersion>,\n overrides: UserOperationOverrides<TEntryPointVersion> | undefined,\n feeOptions: UserOperationFeeOptions<TEntryPointVersion> | undefined,\n userOperation: UserOperationRequest<TEntryPointVersion>,\n): Hex | Multiplier | undefined => {\n let _field = field as keyof UserOperationOverrides<TEntryPointVersion>;\n\n if (overrides?.[_field] != null) {\n // one-off absolute override\n if (isBigNumberish(overrides[_field])) {\n return deepHexlify(overrides[_field]);\n }\n // one-off multiplier overrides\n else {\n return {\n multiplier: Number((overrides[_field] as Multiplier).multiplier),\n };\n }\n }\n\n // provider level fee options with multiplier\n if (isMultiplier(feeOptions?.[field])) {\n return {\n multiplier: Number((feeOptions![field] as Multiplier).multiplier),\n };\n }\n\n const userOpField =\n userOperation[field as keyof UserOperationRequest<TEntryPointVersion>];\n if (isHex(userOpField) && fromHex(userOpField as Hex, \"bigint\") > 0n) {\n return userOpField;\n }\n return undefined;\n};\n\n/**\n * Utility function to generate a signed Permit for erc20 transaction\n *\n * @param {UserOperationRequest<TEntryPointVersion>} userOp - The user operation request\n * @param {MiddlewareClient} client - The Alchemy smart account client\n * @param {TAccount} account - The smart account instance\n * @param {string | string[]} policyId - The policy ID or array of policy IDs\n * @param {PolicyToken} policyToken - The policy token configuration\n * @param {Address} policyToken.address - ERC20 contract addressya\n * @param {bigint} [policyToken.maxTokenAmount] - Optional ERC20 token limit\n * @param {\"NONE\" | \"PERMIT\"} [policyToken.approvalMode] - ERC20 approve mode\n * @param {string} [policyToken.erc20Name] - EIP2612 specified ERC20 contract name\n * @param {string} [policyToken.version] - EIP2612 specified ERC20 contract version\n * @returns {Promise<Hex>} Returns a Promise containing the signed EIP2612 permit\n */\nconst generateSignedPermit = async <\n TAccount extends SmartContractAccount,\n TEntryPointVersion extends EntryPointVersion = EntryPointVersion,\n>(\n userOp: UserOperationRequest<TEntryPointVersion>,\n client: MiddlewareClient,\n account: TAccount,\n policyId: string | string[],\n policyToken: {\n address: Address;\n maxTokenAmount: bigint;\n approvalMode?: \"NONE\" | \"PERMIT\";\n erc20Name?: string;\n version?: string;\n },\n): Promise<Hex> => {\n if (!client.chain) {\n throw new ChainNotFoundError();\n }\n if (!policyToken.erc20Name || !policyToken.version) {\n throw new Error(\"erc20Name or version is missing\");\n }\n\n let decimalsFuture = client.call({\n to: policyToken.address,\n data: encodeFunctionData({\n abi: parseAbi(EIP712NoncesAbi),\n functionName: \"decimals\",\n args: [],\n }),\n });\n\n let nonceFuture = client.call({\n to: policyToken.address,\n data: encodeFunctionData({\n abi: parseAbi(EIP712NoncesAbi),\n functionName: \"nonces\",\n args: [account.address],\n }),\n });\n\n let paymasterDataFuture = (client as Erc7677Client).request({\n method: \"pm_getPaymasterStubData\",\n params: [\n userOp,\n account.getEntryPoint().address,\n toHex(client.chain.id),\n {\n policyId: Array.isArray(policyId) ? policyId[0] : policyId,\n },\n ],\n });\n\n const [decimalsResponse, nonceResponse, paymasterData] = await Promise.all([\n decimalsFuture,\n nonceFuture,\n paymasterDataFuture,\n ]);\n if (!decimalsResponse.data) {\n throw new Error(\"No decimals returned from erc20 contract call\");\n }\n if (!nonceResponse.data) {\n throw new Error(\"No nonces returned from erc20 contract call\");\n }\n\n const decimals =\n 10n ** (decimalsResponse.data ? BigInt(decimalsResponse.data) : 18n);\n const maxAmountToken = policyToken.maxTokenAmount * decimals;\n const nonce = BigInt(nonceResponse.data);\n\n const paymasterAddress = paymasterData.paymaster\n ? paymasterData.paymaster\n : paymasterData.paymasterAndData\n ? sliceHex(paymasterData.paymasterAndData, 0, 20)\n : undefined;\n\n if (paymasterAddress === undefined || paymasterAddress === \"0x\") {\n throw new Error(\"no paymaster contract address available\");\n }\n\n const deadline = BigInt(Math.floor(Date.now() / 1000) + 60 * 10);\n\n const typedPermitData = {\n types: PermitTypes,\n primaryType: \"Permit\" as const,\n domain: {\n name: policyToken.erc20Name ?? \"\",\n version: policyToken.version ?? \"\",\n chainId: BigInt(client.chain.id),\n verifyingContract: policyToken.address,\n } satisfies PermitDomain,\n message: {\n owner: account.address,\n spender: paymasterAddress,\n value: maxAmountToken,\n nonce: nonce,\n deadline,\n } satisfies PermitMessage,\n } as const;\n\n const signedPermit = await account.signTypedData(typedPermitData);\n return encodeAbiParameters(\n [{ type: \"uint256\" }, { type: \"uint256\" }, { type: \"bytes\" }],\n [maxAmountToken, deadline, signedPermit],\n );\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"userOperationSimulator.js","sourceRoot":"","sources":["../../../src/middleware/userOperationSimulator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,iBAAiB,GAGlB,MAAM,cAAc,CAAC;AAGtB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,6BAA6B,CAI3C,SAA2B;IAC3B,OAAO,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE;QAC3C,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC;YACnE,MAAM,EAAE,2CAA2C;YACnD,MAAM,EAAE;gBACN,WAAW,CAAC,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBAC5C,OAAO,CAAC,aAAa,EAAE,CAAC,OAAO;aAChC;SACF,CAAC,CAAC;QAEH,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import {\n deepHexlify,\n resolveProperties,\n type ClientMiddlewareFn,\n type UserOperationContext,\n} from \"@aa-sdk/core\";\nimport type { AlchemyTransport } from \"../alchemyTransport\";\n\n/**\n * A middleware function to be used during simulation of user operations which leverages Alchemy's RPC uo simulation method.\n *\n * @example\n * ```ts\n * import { alchemyUserOperationSimulator, alchemy, sepolia } from \"@account-kit/infra\";\n * import { createSmartAccountClient } from \"@aa-sdk/core\";\n *\n * const alchemyTransport = alchemy({\n * chain: sepolia,\n * apiKey: \"your-api-key\"\n * });\n *\n * const client = createSmartAccountClient({\n * chain: sepolia,\n * userOperationSimulator: alchemyUserOperationSimulator(alchemyTransport),\n * ...otherParams\n * });\n * ```\n *\n * @param {AlchemyTransport} transport An Alchemy Transport that can be used for making RPC calls to alchemy\n * @returns {ClientMiddlewareFn} A middleware function to simulate and process user operations\n */\nexport function alchemyUserOperationSimulator<\n TContext extends UserOperationContext | undefined =\n | UserOperationContext\n | undefined
|
|
1
|
+
{"version":3,"file":"userOperationSimulator.js","sourceRoot":"","sources":["../../../src/middleware/userOperationSimulator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,iBAAiB,GAGlB,MAAM,cAAc,CAAC;AAGtB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,6BAA6B,CAI3C,SAA2B;IAC3B,OAAO,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE;QAC3C,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC;YACnE,MAAM,EAAE,2CAA2C;YACnD,MAAM,EAAE;gBACN,WAAW,CAAC,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBAC5C,OAAO,CAAC,aAAa,EAAE,CAAC,OAAO;aAChC;SACF,CAAC,CAAC;QAEH,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import {\n deepHexlify,\n resolveProperties,\n type ClientMiddlewareFn,\n type UserOperationContext,\n} from \"@aa-sdk/core\";\nimport type { AlchemyTransport } from \"../alchemyTransport\";\n\n/**\n * A middleware function to be used during simulation of user operations which leverages Alchemy's RPC uo simulation method.\n *\n * @example\n * ```ts\n * import { alchemyUserOperationSimulator, alchemy, sepolia } from \"@account-kit/infra\";\n * import { createSmartAccountClient } from \"@aa-sdk/core\";\n *\n * const alchemyTransport = alchemy({\n * chain: sepolia,\n * apiKey: \"your-api-key\"\n * });\n *\n * const client = createSmartAccountClient({\n * chain: sepolia,\n * userOperationSimulator: alchemyUserOperationSimulator(alchemyTransport),\n * ...otherParams\n * });\n * ```\n *\n * @param {AlchemyTransport} transport An Alchemy Transport that can be used for making RPC calls to alchemy\n * @returns {ClientMiddlewareFn} A middleware function to simulate and process user operations\n */\nexport function alchemyUserOperationSimulator<\n TContext extends UserOperationContext | undefined =\n | UserOperationContext\n | undefined,\n>(transport: AlchemyTransport): ClientMiddlewareFn<TContext> {\n return async (struct, { account, client }) => {\n const uoSimResult = await transport({ chain: client.chain }).request({\n method: \"alchemy_simulateUserOperationAssetChanges\",\n params: [\n deepHexlify(await resolveProperties(struct)),\n account.getEntryPoint().address,\n ],\n });\n\n if (uoSimResult.error) {\n throw new Error(uoSimResult.error.message);\n }\n\n return struct;\n };\n}\n"]}
|
package/dist/esm/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const VERSION = "4.
|
|
1
|
+
export declare const VERSION = "4.35.1";
|
package/dist/esm/version.js
CHANGED
package/dist/esm/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,yBAAyB;AACzB,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC","sourcesContent":["// This file is autogenerated by inject-version.ts. Any changes will be\n// overwritten on commit!\nexport const VERSION = \"4.
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,yBAAyB;AACzB,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC","sourcesContent":["// This file is autogenerated by inject-version.ts. Any changes will be\n// overwritten on commit!\nexport const VERSION = \"4.35.1\";\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/actions/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,EAClB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAE/C,oBAAY,iBAAiB;IAC3B,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB;;;OAGG;IACH,WAAW,gBAAgB;CAC5B;AAED,oBAAY,kBAAkB;IAC5B,OAAO,YAAY;IACnB,QAAQ,aAAa;CACtB;AAED,MAAM,MAAM,wCAAwC,GAAG;IACrD,mBAAmB;IACnB,UAAU,EAAE,OAAO;IACnB,WAAW,CAAC,EAAE,IAAI;CACnB,CAAC;AAEF,MAAM,MAAM,yCAAyC,GAAG;IACtD,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,KAAK,CAAC,EAAE,yBAAyB,CAAC;CACnC,CAAC;AAEF,MAAM,WAAW,yBAA0B,SAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IACpE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,iBAAiB,CAAC;IAC7B,UAAU,EAAE,kBAAkB,CAAC;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,oCAAoC,GAAG;IACjD;QACE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QAC5B,UAAU,EAAE,OAAO,CAAC;QACpB,YAAY,CAAC,EAAE;YACb,YAAY,EAAE,OAAO,CAAC;YACtB,MAAM,CAAC,EAAE,GAAG,CAAC;YACb,cAAc,CAAC,EAAE,MAAM,CAAC;SACzB,CAAC;QACF,cAAc,EAAE,GAAG,CAAC;QACpB,aAAa,EAAE,oBAAoB,CAAC;QACpC,SAAS,CAAC,EAAE,sBAAsB,CAAC;KACpC;CACF,CAAC;AAEF,MAAM,MAAM,qCAAqC,CAC/C,kBAAkB,SAAS,iBAAiB,GAAG,iBAAiB,IAC9D,IAAI,CACN,oBAAoB,EAClB,cAAc,GACd,oBAAoB,GACpB,sBAAsB,GACtB,cAAc,GACd,sBAAsB,CACzB,GACC,CAAC,kBAAkB,SAAS,OAAO,GAC/B;IACE,gBAAgB,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC,kBAAkB,CAAC,CAAC;CACrE,GACD,kBAAkB,SAAS,OAAO,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/actions/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,EAClB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAE/C,oBAAY,iBAAiB;IAC3B,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB;;;OAGG;IACH,WAAW,gBAAgB;CAC5B;AAED,oBAAY,kBAAkB;IAC5B,OAAO,YAAY;IACnB,QAAQ,aAAa;CACtB;AAED,MAAM,MAAM,wCAAwC,GAAG;IACrD,mBAAmB;IACnB,UAAU,EAAE,OAAO;IACnB,WAAW,CAAC,EAAE,IAAI;CACnB,CAAC;AAEF,MAAM,MAAM,yCAAyC,GAAG;IACtD,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,KAAK,CAAC,EAAE,yBAAyB,CAAC;CACnC,CAAC;AAEF,MAAM,WAAW,yBAA0B,SAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IACpE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,iBAAiB,CAAC;IAC7B,UAAU,EAAE,kBAAkB,CAAC;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,oCAAoC,GAAG;IACjD;QACE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QAC5B,UAAU,EAAE,OAAO,CAAC;QACpB,YAAY,CAAC,EAAE;YACb,YAAY,EAAE,OAAO,CAAC;YACtB,MAAM,CAAC,EAAE,GAAG,CAAC;YACb,cAAc,CAAC,EAAE,MAAM,CAAC;SACzB,CAAC;QACF,cAAc,EAAE,GAAG,CAAC;QACpB,aAAa,EAAE,oBAAoB,CAAC;QACpC,SAAS,CAAC,EAAE,sBAAsB,CAAC;KACpC;CACF,CAAC;AAEF,MAAM,MAAM,qCAAqC,CAC/C,kBAAkB,SAAS,iBAAiB,GAAG,iBAAiB,IAC9D,IAAI,CACN,oBAAoB,EAClB,cAAc,GACd,oBAAoB,GACpB,sBAAsB,GACtB,cAAc,GACd,sBAAsB,CACzB,GACC,CAAC,kBAAkB,SAAS,OAAO,GAC/B;IACE,gBAAgB,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC,kBAAkB,CAAC,CAAC;CACrE,GACD,kBAAkB,SAAS,OAAO,GAChC,IAAI,CACF,oBAAoB,CAAC,OAAO,CAAC,EAC3B,WAAW,GACX,eAAe,GACf,+BAA+B,GAC/B,yBAAyB,CAC5B,GACD,KAAK,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alchemyTrackerHeaders.d.ts","sourceRoot":"","sources":["../../src/alchemyTrackerHeaders.ts"],"names":[],"mappings":"AAmBA;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,CAAC,CAAC,EAAE,OAAO,QAQtD;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,OACf,
|
|
1
|
+
{"version":3,"file":"alchemyTrackerHeaders.d.ts","sourceRoot":"","sources":["../../src/alchemyTrackerHeaders.ts"],"names":[],"mappings":"AAmBA;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,CAAC,CAAC,EAAE,OAAO,QAQtD;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,OACf,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;;;;;EAYjD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alchemyTransport.d.ts","sourceRoot":"","sources":["../../src/alchemyTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAGL,KAAK,KAAK,EACV,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,eAAe,EACrB,MAAM,MAAM,CAAC;AAEd,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAI1D,KAAK,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAC5B;KACG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK;CACvB,GACD,KAAK,CAAC;AAEV,KAAK,uBAAuB,GAAG,gBAAgB,CAAC;AAEhD,KAAK,oBAAoB,GAAG;IAC1B,iBAAiB,EAAE,uBAAuB,CAAC;IAC3C,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAwBF,MAAM,MAAM,sBAAsB,GAAG,CACjC,CAAC,uBAAuB,GAAG,KAAK,CAAC,oBAAoB,CAAC,CAAC,GACvD,CAAC,oBAAoB,GAAG,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAC1D,GAAG;IACF,wCAAwC;IACxC,UAAU,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;IACvD,8CAA8C;IAC9C,UAAU,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;IACvD,YAAY,CAAC,EAAE,WAAW,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC,CAAC;CACjE,CAAC;AAEF,KAAK,oBAAoB,GAAG,SAAS,CACnC,SAAS,EACT;IACE,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,sBAAsB,CAAC,cAAc,CAAC,CAAC;CACvD,EACD,gBAAgB,CAAC,CAAC,GAAG,eAAe,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAC5D,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GAAG;IACpD,aAAa,CAAC,UAAU,EAAE,WAAW,GAAG,IAAI,CAAC;IAC7C,MAAM,EAAE,sBAAsB,CAAC;IAC/B,mBAAmB,EAAE,sBAAsB,CAAC,cAAc,CAAC,CAAC;CAC7D,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,GACX,SAAS,IAAI,gBAAgB,CAE/B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,sBAAsB,GAAG,gBAAgB,
|
|
1
|
+
{"version":3,"file":"alchemyTransport.d.ts","sourceRoot":"","sources":["../../src/alchemyTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAGL,KAAK,KAAK,EACV,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,eAAe,EACrB,MAAM,MAAM,CAAC;AAEd,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAI1D,KAAK,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAC5B;KACG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK;CACvB,GACD,KAAK,CAAC;AAEV,KAAK,uBAAuB,GAAG,gBAAgB,CAAC;AAEhD,KAAK,oBAAoB,GAAG;IAC1B,iBAAiB,EAAE,uBAAuB,CAAC;IAC3C,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAwBF,MAAM,MAAM,sBAAsB,GAAG,CACjC,CAAC,uBAAuB,GAAG,KAAK,CAAC,oBAAoB,CAAC,CAAC,GACvD,CAAC,oBAAoB,GAAG,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAC1D,GAAG;IACF,wCAAwC;IACxC,UAAU,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;IACvD,8CAA8C;IAC9C,UAAU,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;IACvD,YAAY,CAAC,EAAE,WAAW,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC,CAAC;CACjE,CAAC;AAEF,KAAK,oBAAoB,GAAG,SAAS,CACnC,SAAS,EACT;IACE,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,sBAAsB,CAAC,cAAc,CAAC,CAAC;CACvD,EACD,gBAAgB,CAAC,CAAC,GAAG,eAAe,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAC5D,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GAAG;IACpD,aAAa,CAAC,UAAU,EAAE,WAAW,GAAG,IAAI,CAAC;IAC7C,MAAM,EAAE,sBAAsB,CAAC;IAC/B,mBAAmB,EAAE,sBAAsB,CAAC,cAAc,CAAC,CAAC;CAC7D,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,GACX,SAAS,IAAI,gBAAgB,CAE/B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,sBAAsB,GAAG,gBAAgB,CAoGxE;AAED,eAAO,MAAM,sBAAsB,GACjC,UAAU,WAAW,KACpB,MAAM,CAAC,MAAM,EAAE,MAAM,CAwBvB,CAAC"}
|
package/dist/types/chains.d.ts
CHANGED
|
@@ -66,4 +66,7 @@ export declare const gensynTestnet: Chain;
|
|
|
66
66
|
export declare const riseTestnet: Chain;
|
|
67
67
|
export declare const storyMainnet: Chain;
|
|
68
68
|
export declare const storyAeneid: Chain;
|
|
69
|
+
export declare const celoAlfajores: Chain;
|
|
70
|
+
export declare const celoMainnet: Chain;
|
|
71
|
+
export declare const teaSepolia: Chain;
|
|
69
72
|
//# sourceMappingURL=chains.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chains.d.ts","sourceRoot":"","sources":["../../src/chains.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAyBlC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,kBAAkB;
|
|
1
|
+
{"version":3,"file":"chains.d.ts","sourceRoot":"","sources":["../../src/chains.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAyBlC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,kBAAkB,GAAI,wBAGhC;IACD,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB,KAAG,KAUH,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAQtB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAQ5B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAQ7B,CAAC;AACF,eAAO,MAAM,MAAM,EAAE,KAQpB,CAAC;AACF,eAAO,MAAM,OAAO,EAAE,KAQrB,CAAC;AACF,eAAO,MAAM,QAAQ,EAAE,KAQtB,CAAC;AACF,eAAO,MAAM,cAAc,EAAE,KAQ5B,CAAC;AACF,eAAO,MAAM,eAAe,EAAE,KAQ7B,CAAC;AACF,eAAO,MAAM,OAAO,EAAE,KAQrB,CAAC;AACF,eAAO,MAAM,IAAI,EAAE,KAQlB,CAAC;AACF,eAAO,MAAM,UAAU,EAAE,KAQxB,CAAC;AACF,eAAO,MAAM,WAAW,EAAE,KAQzB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAQ3B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAQzB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAQrB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAKrB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAS3B,CAAC;AAEH,eAAO,MAAM,IAAI,EAAE,KAKlB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAKzB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KAgB9B,CAAC;AAEH,eAAO,MAAM,UAAU,EAAE,KAgBvB,CAAC;AAEH,eAAO,MAAM,YAAY,EAAE,KAgBzB,CAAC;AAEH,eAAO,MAAM,KAAK,EAAE,KAgBlB,CAAC;AAEH,eAAO,MAAM,eAAe,EAAE,KAgB5B,CAAC;AAEH,eAAO,MAAM,eAAe,EAAE,KAgB5B,CAAC;AAEH,eAAO,MAAM,aAAa,EAAE,KAgB1B,CAAC;AAEH,eAAO,MAAM,cAAc,EAAE,KAgB3B,CAAC;AAEH,eAAO,MAAM,YAAY,EAAE,KAgBzB,CAAC;AAEH,eAAO,MAAM,YAAY,EAAE,KAgBzB,CAAC;AAEH,eAAO,MAAM,eAAe,EAAE,KAgB5B,CAAC;AAEH,eAAO,MAAM,UAAU,EAAE,KAgBvB,CAAC;AAEH,eAAO,MAAM,UAAU,EAAE,KAgBvB,CAAC;AAEH,eAAO,MAAM,YAAY,EAAE,KAK1B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAsBzB,CAAC;AAEH,eAAO,MAAM,MAAM,EAAE,KAgBnB,CAAC;AAEH,eAAO,MAAM,eAAe,EAAE,KAsB5B,CAAC;AAEH,eAAO,MAAM,aAAa,EAAE,KAsB1B,CAAC;AAEH,eAAO,MAAM,WAAW,EAAE,KAsBxB,CAAC;AAEH,eAAO,MAAM,YAAY,EAAE,KAsBzB,CAAC;AAEH,eAAO,MAAM,WAAW,EAAE,KAsBxB,CAAC;AAEH,eAAO,MAAM,aAAa,EAAE,KAsB1B,CAAC;AAEH,eAAO,MAAM,WAAW,EAAE,KAsBxB,CAAC;AAEH,eAAO,MAAM,UAAU,EAAE,KAsBvB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smartAccount.d.ts","sourceRoot":"","sources":["../../../../src/client/decorators/smartAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,wBAAwB,EAC7B,KAAK,0BAA0B,EAC/B,KAAK,2BAA2B,EAChC,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAE5B,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EACV,KAAK,EACL,MAAM,EACN,GAAG,EACH,yBAAyB,EACzB,SAAS,EACV,MAAM,MAAM,CAAC;AAEd,OAAO,KAAK,EAAE,yCAAyC,EAAE,MAAM,wBAAwB,CAAC;AAGxF,MAAM,MAAM,gCAAgC,CAC1C,QAAQ,SAAS,oBAAoB,GAAG,SAAS,GAC7C,oBAAoB,GACpB,SAAS,EACb,QAAQ,SAAS,oBAAoB,GAAG,SAAS,GAC7C,oBAAoB,GACpB,SAAS,EACb,MAAM,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,EACpD,kBAAkB,
|
|
1
|
+
{"version":3,"file":"smartAccount.d.ts","sourceRoot":"","sources":["../../../../src/client/decorators/smartAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,wBAAwB,EAC7B,KAAK,0BAA0B,EAC/B,KAAK,2BAA2B,EAChC,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAE5B,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EACV,KAAK,EACL,MAAM,EACN,GAAG,EACH,yBAAyB,EACzB,SAAS,EACV,MAAM,MAAM,CAAC;AAEd,OAAO,KAAK,EAAE,yCAAyC,EAAE,MAAM,wBAAwB,CAAC;AAGxF,MAAM,MAAM,gCAAgC,CAC1C,QAAQ,SAAS,oBAAoB,GAAG,SAAS,GAC7C,oBAAoB,GACpB,SAAS,EACb,QAAQ,SAAS,oBAAoB,GAAG,SAAS,GAC7C,oBAAoB,GACpB,SAAS,EACb,MAAM,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,EACpD,kBAAkB,SAChB,wBAAwB,CAAC,QAAQ,CAAC,GAAG,wBAAwB,CAAC,QAAQ,CAAC,IACvE;IACF,qBAAqB,EAAE,CACrB,IAAI,EAAE,2BAA2B,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAClD,OAAO,CAAC,yCAAyC,CAAC,CAAC;IACxD,iBAAiB,EAAE,CACjB,IAAI,EAAE,2BAA2B,CAC/B,QAAQ,EACR,QAAQ,EACR,wBAAwB,CAAC,QAAQ,CAAC,CACnC,KACE,OAAO,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC1D,eAAe,EAAE,CAAC,cAAc,SAAS,KAAK,GAAG,SAAS,GAAG,SAAS,EACpE,IAAI,EAAE,yBAAyB,CAAC,MAAM,EAAE,QAAQ,EAAE,cAAc,CAAC,EACjE,SAAS,CAAC,EAAE,sBAAsB,CAAC,kBAAkB,CAAC,EACtD,OAAO,CAAC,EAAE,QAAQ,KACf,OAAO,CAAC,GAAG,CAAC,CAAC;IAClB,gBAAgB,EAAE,CAChB,IAAI,EAAE,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,CAAC,KACjD,OAAO,CAAC,GAAG,CAAC,CAAC;CACnB,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,cAAc,EAAE,CAC3B,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,MAAM,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,EACpD,QAAQ,SAAS,oBAAoB,GAAG,SAAS,GAC7C,oBAAoB,GACpB,SAAS,EACb,QAAQ,SAAS,oBAAoB,GAAG,SAAS,GAC7C,oBAAoB,GACpB,SAAS,EAEb,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,KACzC,gCAAgC,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CA+B9D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpcClient.d.ts","sourceRoot":"","sources":["../../../src/client/rpcClient.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,4BAA4B;
|
|
1
|
+
{"version":3,"file":"rpcClient.d.ts","sourceRoot":"","sources":["../../../src/client/rpcClient.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,4BAA4B,GAAI,uBAG1C;IACD,SAAS,EAAE,gBAAgB,CAAC;IAC5B,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;CAC1B,KAAG,wBAKH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAUlC;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,iCAAiC,
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAUlC;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,iCAAiC,GAC5C,OAAO,KAAK,KACX,uBAoBF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gas-manager.d.ts","sourceRoot":"","sources":["../../src/gas-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAmBhD,eAAO,MAAM,yBAAyB,+CACQ,CAAC;AAC/C,eAAO,MAAM,yBAAyB,+CACQ,CAAC;AAC/C,eAAO,MAAM,0BAA0B,+CACO,CAAC;AAC/C,eAAO,MAAM,yBAAyB,+CACQ,CAAC;AAE/C;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,0BAA0B,
|
|
1
|
+
{"version":3,"file":"gas-manager.d.ts","sourceRoot":"","sources":["../../src/gas-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAmBhD,eAAO,MAAM,yBAAyB,+CACQ,CAAC;AAC/C,eAAO,MAAM,yBAAyB,+CACQ,CAAC;AAC/C,eAAO,MAAM,0BAA0B,+CACO,CAAC;AAC/C,eAAO,MAAM,yBAAyB,+CACQ,CAAC;AAE/C;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,0BAA0B,GAAI,OAAO,KAAK,KAAG,OAwBzD,CAAC;AAEF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAcd,CAAC;AAEX,eAAO,MAAM,eAAe,wRAKlB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,GAAG,CAAC;IACX,OAAO,EAAE,GAAG,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,GAAG,CAAC;CACxB,CAAC"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ export type * from "./actions/types.js";
|
|
|
4
4
|
export type * from "./alchemyTransport.js";
|
|
5
5
|
export { alchemy, isAlchemyTransport } from "./alchemyTransport.js";
|
|
6
6
|
export type * from "./chains.js";
|
|
7
|
-
export { arbitrum, arbitrumGoerli, arbitrumNova, arbitrumSepolia, base, baseGoerli, baseSepolia, defineAlchemyChain, fraxtal, fraxtalSepolia, goerli, mainnet, optimism, optimismGoerli, optimismSepolia, polygon, polygonAmoy, polygonMumbai, sepolia, shape, shapeSepolia, worldChain, worldChainSepolia, zora, zoraSepolia, beraChainBartio, opbnbMainnet, opbnbTestnet, soneiumMinato, soneiumMainnet, unichainMainnet, unichainSepolia, inkMainnet, inkSepolia, mekong, monadTestnet, openlootSepolia, gensynTestnet, riseTestnet, storyMainnet, storyAeneid, } from "./chains.js";
|
|
7
|
+
export { arbitrum, arbitrumGoerli, arbitrumNova, arbitrumSepolia, base, baseGoerli, baseSepolia, defineAlchemyChain, fraxtal, fraxtalSepolia, goerli, mainnet, optimism, optimismGoerli, optimismSepolia, polygon, polygonAmoy, polygonMumbai, sepolia, shape, shapeSepolia, worldChain, worldChainSepolia, zora, zoraSepolia, beraChainBartio, opbnbMainnet, opbnbTestnet, soneiumMinato, soneiumMainnet, unichainMainnet, unichainSepolia, inkMainnet, inkSepolia, mekong, monadTestnet, openlootSepolia, gensynTestnet, riseTestnet, storyMainnet, storyAeneid, celoAlfajores, celoMainnet, teaSepolia, } from "./chains.js";
|
|
8
8
|
export type * from "./client/decorators/alchemyEnhancedApis.js";
|
|
9
9
|
export { alchemyEnhancedApiActions } from "./client/decorators/alchemyEnhancedApis.js";
|
|
10
10
|
export type * from "./client/decorators/smartAccount.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,2CAA2C,CAAC;AAC/D,OAAO,EAAE,4BAA4B,EAAE,MAAM,2CAA2C,CAAC;AACzF,mBAAmB,oBAAoB,CAAC;AACxC,mBAAmB,uBAAuB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACpE,mBAAmB,aAAa,CAAC;AACjC,OAAO,EACL,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,eAAe,EACf,IAAI,EACJ,UAAU,EACV,WAAW,EACX,kBAAkB,EAClB,OAAO,EACP,cAAc,EACd,MAAM,EACN,OAAO,EACP,QAAQ,EACR,cAAc,EACd,eAAe,EACf,OAAO,EACP,WAAW,EACX,aAAa,EACb,OAAO,EACP,KAAK,EACL,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,IAAI,EACJ,WAAW,EACX,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,cAAc,EACd,eAAe,EACf,eAAe,EACf,UAAU,EACV,UAAU,EACV,MAAM,EACN,YAAY,EACZ,eAAe,EACf,aAAa,EACb,WAAW,EACX,YAAY,EACZ,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,2CAA2C,CAAC;AAC/D,OAAO,EAAE,4BAA4B,EAAE,MAAM,2CAA2C,CAAC;AACzF,mBAAmB,oBAAoB,CAAC;AACxC,mBAAmB,uBAAuB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACpE,mBAAmB,aAAa,CAAC;AACjC,OAAO,EACL,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,eAAe,EACf,IAAI,EACJ,UAAU,EACV,WAAW,EACX,kBAAkB,EAClB,OAAO,EACP,cAAc,EACd,MAAM,EACN,OAAO,EACP,QAAQ,EACR,cAAc,EACd,eAAe,EACf,OAAO,EACP,WAAW,EACX,aAAa,EACb,OAAO,EACP,KAAK,EACL,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,IAAI,EACJ,WAAW,EACX,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,cAAc,EACd,eAAe,EACf,eAAe,EACf,UAAU,EACV,UAAU,EACV,MAAM,EACN,YAAY,EACZ,eAAe,EACf,aAAa,EACb,WAAW,EACX,YAAY,EACZ,WAAW,EACX,aAAa,EACb,WAAW,EACX,UAAU,GACX,MAAM,aAAa,CAAC;AACrB,mBAAmB,4CAA4C,CAAC;AAChE,OAAO,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AACvF,mBAAmB,qCAAqC,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,2BAA2B,EAAE,MAAM,yCAAyC,CAAC;AACtF,mBAAmB,uBAAuB,CAAC;AAC3C,OAAO,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AACrE,mBAAmB,gCAAgC,CAAC;AACpD,OAAO,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAC;AACjF,mBAAmB,mBAAmB,CAAC;AACvC,OAAO,EAAE,iCAAiC,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,mBAAmB,4BAA4B,CAAC;AAChD,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EACL,2BAA2B,EAC3B,uCAAuC,GACxC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AACvF,mBAAmB,aAAa,CAAC"}
|
package/dist/types/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "4.
|
|
1
|
+
export declare const VERSION = "4.35.1";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@account-kit/infra",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.35.1",
|
|
4
4
|
"description": "adapters for @aa-sdk/core for interacting with alchemy services",
|
|
5
5
|
"author": "Alchemy",
|
|
6
6
|
"license": "MIT",
|
|
@@ -40,13 +40,11 @@
|
|
|
40
40
|
"test:run": "vitest run"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
|
-
"typescript": "
|
|
44
|
-
"typescript-template": "*",
|
|
45
|
-
"vitest": "^2.0.4"
|
|
43
|
+
"typescript-template": "*"
|
|
46
44
|
},
|
|
47
45
|
"dependencies": {
|
|
48
|
-
"@aa-sdk/core": "^4.
|
|
49
|
-
"@account-kit/logging": "^4.
|
|
46
|
+
"@aa-sdk/core": "^4.35.1",
|
|
47
|
+
"@account-kit/logging": "^4.35.1",
|
|
50
48
|
"eventemitter3": "^5.0.1",
|
|
51
49
|
"zod": "^3.22.4"
|
|
52
50
|
},
|
|
@@ -65,7 +63,7 @@
|
|
|
65
63
|
"url": "https://github.com/alchemyplatform/aa-sdk/issues"
|
|
66
64
|
},
|
|
67
65
|
"homepage": "https://github.com/alchemyplatform/aa-sdk#readme",
|
|
68
|
-
"gitHead": "
|
|
66
|
+
"gitHead": "31e2138c2dd08c5b32cc2d67b3f0d7b2a7d21f4f",
|
|
69
67
|
"optionalDependencies": {
|
|
70
68
|
"alchemy-sdk": "^3.0.0"
|
|
71
69
|
}
|
|
@@ -31,13 +31,13 @@ export const simulateUserOperationChanges: <
|
|
|
31
31
|
TChain extends Chain | undefined = Chain | undefined,
|
|
32
32
|
TAccount extends SmartContractAccount | undefined =
|
|
33
33
|
| SmartContractAccount
|
|
34
|
-
| undefined
|
|
34
|
+
| undefined,
|
|
35
35
|
>(
|
|
36
36
|
client: Client<Transport, TChain, TAccount, AlchemyRpcSchema>,
|
|
37
|
-
args: SendUserOperationParameters<TAccount
|
|
37
|
+
args: SendUserOperationParameters<TAccount>,
|
|
38
38
|
) => Promise<SimulateUserOperationAssetChangesResponse> = async (
|
|
39
39
|
client,
|
|
40
|
-
{ account = client.account, overrides, ...params }
|
|
40
|
+
{ account = client.account, overrides, ...params },
|
|
41
41
|
) => {
|
|
42
42
|
if (!account) {
|
|
43
43
|
throw new AccountNotFoundError();
|
|
@@ -47,7 +47,7 @@ export const simulateUserOperationChanges: <
|
|
|
47
47
|
throw new IncompatibleClientError(
|
|
48
48
|
"AlchemySmartAccountClient",
|
|
49
49
|
"SimulateUserOperationAssetChanges",
|
|
50
|
-
client
|
|
50
|
+
client,
|
|
51
51
|
);
|
|
52
52
|
}
|
|
53
53
|
|
|
@@ -56,7 +56,7 @@ export const simulateUserOperationChanges: <
|
|
|
56
56
|
...params,
|
|
57
57
|
account,
|
|
58
58
|
overrides,
|
|
59
|
-
})
|
|
59
|
+
}),
|
|
60
60
|
);
|
|
61
61
|
|
|
62
62
|
return client.request({
|
package/src/actions/types.ts
CHANGED
|
@@ -26,7 +26,7 @@ export enum SimulateChangeType {
|
|
|
26
26
|
export type SimulateUserOperationAssetChangesRequest = [
|
|
27
27
|
UserOperationStruct,
|
|
28
28
|
entryPoint: Address,
|
|
29
|
-
blockNumber?: Hash
|
|
29
|
+
blockNumber?: Hash,
|
|
30
30
|
];
|
|
31
31
|
|
|
32
32
|
export type SimulateUserOperationAssetChangesResponse = {
|
|
@@ -65,11 +65,11 @@ export type RequestGasAndPaymasterAndDataRequest = [
|
|
|
65
65
|
dummySignature: Hex;
|
|
66
66
|
userOperation: UserOperationRequest;
|
|
67
67
|
overrides?: UserOperationOverrides;
|
|
68
|
-
}
|
|
68
|
+
},
|
|
69
69
|
];
|
|
70
70
|
|
|
71
71
|
export type RequestGasAndPaymasterAndDataResponse<
|
|
72
|
-
TEntryPointVersion extends EntryPointVersion = EntryPointVersion
|
|
72
|
+
TEntryPointVersion extends EntryPointVersion = EntryPointVersion,
|
|
73
73
|
> = Pick<
|
|
74
74
|
UserOperationRequest,
|
|
75
75
|
| "callGasLimit"
|
|
@@ -83,11 +83,11 @@ export type RequestGasAndPaymasterAndDataResponse<
|
|
|
83
83
|
paymasterAndData: UserOperationRequest<"0.6.0">["paymasterAndData"];
|
|
84
84
|
}
|
|
85
85
|
: TEntryPointVersion extends "0.7.0"
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
86
|
+
? Pick<
|
|
87
|
+
UserOperationRequest<"0.7.0">,
|
|
88
|
+
| "paymaster"
|
|
89
|
+
| "paymasterData"
|
|
90
|
+
| "paymasterVerificationGasLimit"
|
|
91
|
+
| "paymasterPostOpGasLimit"
|
|
92
|
+
>
|
|
93
|
+
: never);
|
package/src/alchemyTransport.ts
CHANGED
|
@@ -92,7 +92,7 @@ export type AlchemyTransport = AlchemyTransportBase & {
|
|
|
92
92
|
*/
|
|
93
93
|
export function isAlchemyTransport(
|
|
94
94
|
transport: Transport,
|
|
95
|
-
chain: Chain
|
|
95
|
+
chain: Chain,
|
|
96
96
|
): transport is AlchemyTransport {
|
|
97
97
|
return transport({ chain }).config.type === "alchemy";
|
|
98
98
|
}
|
|
@@ -140,13 +140,13 @@ export function isAlchemyTransport(
|
|
|
140
140
|
* @returns {AlchemyTransport} The configured Alchemy transport object.
|
|
141
141
|
*/
|
|
142
142
|
export function alchemy(config: AlchemyTransportConfig): AlchemyTransport {
|
|
143
|
-
const { retryDelay, retryCount
|
|
143
|
+
const { retryDelay, retryCount } = config;
|
|
144
144
|
// we create a copy here in case we create a split transport down below
|
|
145
145
|
// we don't want to add alchemy headers to 3rd party nodes
|
|
146
146
|
const fetchOptions = { ...config.fetchOptions };
|
|
147
147
|
|
|
148
148
|
const connectionConfig = ConnectionConfigSchema.parse(
|
|
149
|
-
config.alchemyConnection ?? config
|
|
149
|
+
config.alchemyConnection ?? config,
|
|
150
150
|
);
|
|
151
151
|
|
|
152
152
|
const headersAsObject = convertHeadersToObject(fetchOptions.headers);
|
|
@@ -181,7 +181,7 @@ export function alchemy(config: AlchemyTransportConfig): AlchemyTransport {
|
|
|
181
181
|
const chainAgnosticRpcUrl =
|
|
182
182
|
connectionConfig.rpcUrl == null
|
|
183
183
|
? "https://api.g.alchemy.com/v2/"
|
|
184
|
-
: connectionConfig.chainAgnosticUrl ?? connectionConfig.rpcUrl;
|
|
184
|
+
: (connectionConfig.chainAgnosticUrl ?? connectionConfig.rpcUrl);
|
|
185
185
|
|
|
186
186
|
const innerTransport = (() => {
|
|
187
187
|
mutateRemoveTrackingHeaders(config?.fetchOptions?.headers);
|
|
@@ -190,22 +190,15 @@ export function alchemy(config: AlchemyTransportConfig): AlchemyTransport {
|
|
|
190
190
|
overrides: [
|
|
191
191
|
{
|
|
192
192
|
methods: alchemyMethods,
|
|
193
|
-
transport: http(rpcUrl, {
|
|
194
|
-
fetchOptions,
|
|
195
|
-
retryCount: 0,
|
|
196
|
-
}),
|
|
193
|
+
transport: http(rpcUrl, { fetchOptions }),
|
|
197
194
|
},
|
|
198
195
|
{
|
|
199
196
|
methods: chainAgnosticMethods,
|
|
200
|
-
transport: http(chainAgnosticRpcUrl, {
|
|
201
|
-
fetchOptions,
|
|
202
|
-
retryCount: 0,
|
|
203
|
-
}),
|
|
197
|
+
transport: http(chainAgnosticRpcUrl, { fetchOptions }),
|
|
204
198
|
},
|
|
205
199
|
],
|
|
206
200
|
fallback: http(config.nodeRpcUrl, {
|
|
207
201
|
fetchOptions: config.fetchOptions,
|
|
208
|
-
retryCount: 0,
|
|
209
202
|
}),
|
|
210
203
|
});
|
|
211
204
|
}
|
|
@@ -214,13 +207,10 @@ export function alchemy(config: AlchemyTransportConfig): AlchemyTransport {
|
|
|
214
207
|
overrides: [
|
|
215
208
|
{
|
|
216
209
|
methods: chainAgnosticMethods,
|
|
217
|
-
transport: http(chainAgnosticRpcUrl, {
|
|
218
|
-
fetchOptions,
|
|
219
|
-
retryCount: 0,
|
|
220
|
-
}),
|
|
210
|
+
transport: http(chainAgnosticRpcUrl, { fetchOptions }),
|
|
221
211
|
},
|
|
222
212
|
],
|
|
223
|
-
fallback: http(rpcUrl, { fetchOptions
|
|
213
|
+
fallback: http(rpcUrl, { fetchOptions }),
|
|
224
214
|
});
|
|
225
215
|
})();
|
|
226
216
|
|
|
@@ -233,7 +223,7 @@ export function alchemy(config: AlchemyTransportConfig): AlchemyTransport {
|
|
|
233
223
|
retryDelay,
|
|
234
224
|
type: "alchemy",
|
|
235
225
|
},
|
|
236
|
-
{ alchemyRpcUrl: rpcUrl, fetchOptions }
|
|
226
|
+
{ alchemyRpcUrl: rpcUrl, fetchOptions },
|
|
237
227
|
);
|
|
238
228
|
};
|
|
239
229
|
|
|
@@ -252,7 +242,7 @@ export function alchemy(config: AlchemyTransportConfig): AlchemyTransport {
|
|
|
252
242
|
}
|
|
253
243
|
|
|
254
244
|
export const convertHeadersToObject = (
|
|
255
|
-
headers?: HeadersInit
|
|
245
|
+
headers?: HeadersInit,
|
|
256
246
|
): Record<string, string> => {
|
|
257
247
|
if (!headers) {
|
|
258
248
|
return {};
|
|
@@ -267,10 +257,13 @@ export const convertHeadersToObject = (
|
|
|
267
257
|
}
|
|
268
258
|
|
|
269
259
|
if (Array.isArray(headers)) {
|
|
270
|
-
return headers.reduce(
|
|
271
|
-
acc
|
|
272
|
-
|
|
273
|
-
|
|
260
|
+
return headers.reduce(
|
|
261
|
+
(acc, header) => {
|
|
262
|
+
acc[header[0]] = header[1];
|
|
263
|
+
return acc;
|
|
264
|
+
},
|
|
265
|
+
{} as Record<string, string>,
|
|
266
|
+
);
|
|
274
267
|
}
|
|
275
268
|
|
|
276
269
|
return headers;
|
package/src/chains.ts
CHANGED
|
@@ -640,3 +640,75 @@ export const storyAeneid: Chain = defineChain({
|
|
|
640
640
|
},
|
|
641
641
|
testnet: true,
|
|
642
642
|
});
|
|
643
|
+
|
|
644
|
+
export const celoAlfajores: Chain = defineChain({
|
|
645
|
+
id: 44787,
|
|
646
|
+
name: "Celo Alfajores",
|
|
647
|
+
nativeCurrency: { name: "Celo native asset", symbol: "CELO", decimals: 18 },
|
|
648
|
+
rpcUrls: {
|
|
649
|
+
default: {
|
|
650
|
+
http: ["https://celo-alfajores.g.alchemy.com/v2"],
|
|
651
|
+
},
|
|
652
|
+
public: {
|
|
653
|
+
http: ["https://celo-alfajores.g.alchemy.com/v2"],
|
|
654
|
+
},
|
|
655
|
+
alchemy: {
|
|
656
|
+
http: ["https://celo-alfajores.g.alchemy.com/v2"],
|
|
657
|
+
},
|
|
658
|
+
},
|
|
659
|
+
blockExplorers: {
|
|
660
|
+
default: {
|
|
661
|
+
name: "Block Explorer",
|
|
662
|
+
url: "https://celo-alfajores.blockscout.com/",
|
|
663
|
+
},
|
|
664
|
+
},
|
|
665
|
+
testnet: true,
|
|
666
|
+
});
|
|
667
|
+
|
|
668
|
+
export const celoMainnet: Chain = defineChain({
|
|
669
|
+
id: 42220,
|
|
670
|
+
name: "Celo Mainnet",
|
|
671
|
+
nativeCurrency: { name: "Celo native asset", symbol: "CELO", decimals: 18 },
|
|
672
|
+
rpcUrls: {
|
|
673
|
+
default: {
|
|
674
|
+
http: ["https://celo-mainnet.g.alchemy.com/v2"],
|
|
675
|
+
},
|
|
676
|
+
public: {
|
|
677
|
+
http: ["https://celo-mainnet.g.alchemy.com/v2"],
|
|
678
|
+
},
|
|
679
|
+
alchemy: {
|
|
680
|
+
http: ["https://celo-mainnet.g.alchemy.com/v2"],
|
|
681
|
+
},
|
|
682
|
+
},
|
|
683
|
+
blockExplorers: {
|
|
684
|
+
default: {
|
|
685
|
+
name: "Block Explorer",
|
|
686
|
+
url: "https://celo.blockscout.com/",
|
|
687
|
+
},
|
|
688
|
+
},
|
|
689
|
+
testnet: false,
|
|
690
|
+
});
|
|
691
|
+
|
|
692
|
+
export const teaSepolia: Chain = defineChain({
|
|
693
|
+
id: 10218,
|
|
694
|
+
name: "Tea Sepolia",
|
|
695
|
+
nativeCurrency: { name: "TEA", symbol: "TEA", decimals: 18 },
|
|
696
|
+
rpcUrls: {
|
|
697
|
+
default: {
|
|
698
|
+
http: ["https://tea-sepolia.g.alchemy.com/v2"],
|
|
699
|
+
},
|
|
700
|
+
public: {
|
|
701
|
+
http: ["https://tea-sepolia.g.alchemy.com/v2"],
|
|
702
|
+
},
|
|
703
|
+
alchemy: {
|
|
704
|
+
http: ["https://tea-sepolia.g.alchemy.com/v2"],
|
|
705
|
+
},
|
|
706
|
+
},
|
|
707
|
+
blockExplorers: {
|
|
708
|
+
default: {
|
|
709
|
+
name: "Block Explorer",
|
|
710
|
+
url: "https://sepolia.tea.xyz/",
|
|
711
|
+
},
|
|
712
|
+
},
|
|
713
|
+
testnet: true,
|
|
714
|
+
});
|
|
@@ -32,14 +32,14 @@ export type AlchemyEnhancedApis = {
|
|
|
32
32
|
* @returns {(client: AlchemySmartAccountClient) => AlchemyEnhancedApis} A client decorator for Alchemy Smart Account clients that adds the enhanced API methods
|
|
33
33
|
*/
|
|
34
34
|
export function alchemyEnhancedApiActions(
|
|
35
|
-
alchemy: Alchemy
|
|
35
|
+
alchemy: Alchemy,
|
|
36
36
|
): <
|
|
37
37
|
TChain extends Chain | undefined = Chain | undefined,
|
|
38
38
|
TAccount extends SmartContractAccount | undefined =
|
|
39
39
|
| SmartContractAccount
|
|
40
|
-
| undefined
|
|
40
|
+
| undefined,
|
|
41
41
|
>(
|
|
42
|
-
client: AlchemySmartAccountClient<TChain, TAccount
|
|
42
|
+
client: AlchemySmartAccountClient<TChain, TAccount>,
|
|
43
43
|
) => AlchemyEnhancedApis {
|
|
44
44
|
return (client) => {
|
|
45
45
|
const alchemySdk = AlchemySdkClientSchema.parse(alchemy);
|
|
@@ -49,7 +49,7 @@ export function alchemyEnhancedApiActions(
|
|
|
49
49
|
alchemy.config.url !== client.transport.alchemyRpcUrl
|
|
50
50
|
) {
|
|
51
51
|
throw new Error(
|
|
52
|
-
"Alchemy SDK client JSON-RPC URL must match AlchemyProvider JSON-RPC URL"
|
|
52
|
+
"Alchemy SDK client JSON-RPC URL must match AlchemyProvider JSON-RPC URL",
|
|
53
53
|
);
|
|
54
54
|
}
|
|
55
55
|
|