UNPKG

@alchemy/aa-core

Version:

viem based SDK that enables interactions with ERC-4337 Smart Accounts. ABIs are based off the definitions generated in @account-abstraction/contracts

66 lines 3.17 kB
import { encodeAbiParameters, hexToBigInt, keccak256, } from "viem"; import { arbitrum, arbitrumGoerli, arbitrumSepolia, base, baseGoerli, baseSepolia, goerli, mainnet, optimism, optimismGoerli, optimismSepolia, polygon, polygonAmoy, polygonMumbai, sepolia, fraxtal, fraxtalTestnet, zora, zoraSepolia, } from "../chains/index.js"; import { EntryPointAbi_v6 } from "../abis/EntryPointAbi_v6.js"; const packUserOperation = (request) => { const hashedInitCode = keccak256(request.initCode); const hashedCallData = keccak256(request.callData); const hashedPaymasterAndData = keccak256(request.paymasterAndData); return encodeAbiParameters([ { type: "address" }, { type: "uint256" }, { type: "bytes32" }, { type: "bytes32" }, { type: "uint256" }, { type: "uint256" }, { type: "uint256" }, { type: "uint256" }, { type: "uint256" }, { type: "bytes32" }, ], [ request.sender, hexToBigInt(request.nonce), hashedInitCode, hashedCallData, hexToBigInt(request.callGasLimit), hexToBigInt(request.verificationGasLimit), hexToBigInt(request.preVerificationGas), hexToBigInt(request.maxFeePerGas), hexToBigInt(request.maxPriorityFeePerGas), hashedPaymasterAndData, ]); }; export default { version: "0.6.0", address: { [mainnet.id]: "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", [sepolia.id]: "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", [goerli.id]: "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", [polygon.id]: "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", [polygonMumbai.id]: "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", [polygonAmoy.id]: "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", [optimism.id]: "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", [optimismGoerli.id]: "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", [optimismSepolia.id]: "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", [arbitrum.id]: "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", [arbitrumGoerli.id]: "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", [arbitrumSepolia.id]: "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", [base.id]: "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", [baseGoerli.id]: "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", [baseSepolia.id]: "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", [fraxtal.id]: "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", [fraxtalTestnet.id]: "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", [zora.id]: "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", [zoraSepolia.id]: "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", }, abi: EntryPointAbi_v6, getUserOperationHash: (request, entryPointAddress, chainId) => { const encoded = encodeAbiParameters([{ type: "bytes32" }, { type: "address" }, { type: "uint256" }], [ keccak256(packUserOperation(request)), entryPointAddress, BigInt(chainId), ]); return keccak256(encoded); }, packUserOperation, }; //# sourceMappingURL=0.6.js.map