{"version":3,"file":"serializeAuthorizationList-yxAfJ36e.mjs","names":["sha256","sha256n","noble_sha256"],"sources":["../../../node_modules/.pnpm/viem@2.47.6_typescript@6.0.2_zod@4.3.6/node_modules/viem/_esm/utils/encoding/toRlp.js","../../../node_modules/.pnpm/viem@2.47.6_typescript@6.0.2_zod@4.3.6/node_modules/viem/_esm/utils/blob/blobsToCommitments.js","../../../node_modules/.pnpm/viem@2.47.6_typescript@6.0.2_zod@4.3.6/node_modules/viem/_esm/utils/blob/blobsToProofs.js","../../../node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/esm/sha256.js","../../../node_modules/.pnpm/viem@2.47.6_typescript@6.0.2_zod@4.3.6/node_modules/viem/_esm/utils/hash/sha256.js","../../../node_modules/.pnpm/viem@2.47.6_typescript@6.0.2_zod@4.3.6/node_modules/viem/_esm/utils/blob/commitmentToVersionedHash.js","../../../node_modules/.pnpm/viem@2.47.6_typescript@6.0.2_zod@4.3.6/node_modules/viem/_esm/utils/blob/commitmentsToVersionedHashes.js","../../../node_modules/.pnpm/viem@2.47.6_typescript@6.0.2_zod@4.3.6/node_modules/viem/_esm/constants/blob.js","../../../node_modules/.pnpm/viem@2.47.6_typescript@6.0.2_zod@4.3.6/node_modules/viem/_esm/errors/blob.js","../../../node_modules/.pnpm/viem@2.47.6_typescript@6.0.2_zod@4.3.6/node_modules/viem/_esm/utils/blob/toBlobs.js","../../../node_modules/.pnpm/viem@2.47.6_typescript@6.0.2_zod@4.3.6/node_modules/viem/_esm/utils/blob/toBlobSidecars.js","../../../node_modules/.pnpm/viem@2.47.6_typescript@6.0.2_zod@4.3.6/node_modules/viem/_esm/utils/transaction/getTransactionType.js","../../../node_modules/.pnpm/viem@2.47.6_typescript@6.0.2_zod@4.3.6/node_modules/viem/_esm/utils/transaction/assertTransaction.js","../../../node_modules/.pnpm/viem@2.47.6_typescript@6.0.2_zod@4.3.6/node_modules/viem/_esm/utils/transaction/serializeAccessList.js","../../../node_modules/.pnpm/viem@2.47.6_typescript@6.0.2_zod@4.3.6/node_modules/viem/_esm/utils/transaction/serializeTransaction.js","../../../node_modules/.pnpm/viem@2.47.6_typescript@6.0.2_zod@4.3.6/node_modules/viem/_esm/utils/authorization/serializeAuthorizationList.js"],"sourcesContent":["import { BaseError } from '../../errors/base.js';\nimport { createCursor, } from '../cursor.js';\nimport { hexToBytes } from './toBytes.js';\nimport { bytesToHex } from './toHex.js';\nexport function toRlp(bytes, to = 'hex') {\n    const encodable = getEncodable(bytes);\n    const cursor = createCursor(new Uint8Array(encodable.length));\n    encodable.encode(cursor);\n    if (to === 'hex')\n        return bytesToHex(cursor.bytes);\n    return cursor.bytes;\n}\nexport function bytesToRlp(bytes, to = 'bytes') {\n    return toRlp(bytes, to);\n}\nexport function hexToRlp(hex, to = 'hex') {\n    return toRlp(hex, to);\n}\nfunction getEncodable(bytes) {\n    if (Array.isArray(bytes))\n        return getEncodableList(bytes.map((x) => getEncodable(x)));\n    return getEncodableBytes(bytes);\n}\nfunction getEncodableList(list) {\n    const bodyLength = list.reduce((acc, x) => acc + x.length, 0);\n    const sizeOfBodyLength = getSizeOfLength(bodyLength);\n    const length = (() => {\n        if (bodyLength <= 55)\n            return 1 + bodyLength;\n        return 1 + sizeOfBodyLength + bodyLength;\n    })();\n    return {\n        length,\n        encode(cursor) {\n            if (bodyLength <= 55) {\n                cursor.pushByte(0xc0 + bodyLength);\n            }\n            else {\n                cursor.pushByte(0xc0 + 55 + sizeOfBodyLength);\n                if (sizeOfBodyLength === 1)\n                    cursor.pushUint8(bodyLength);\n                else if (sizeOfBodyLength === 2)\n                    cursor.pushUint16(bodyLength);\n                else if (sizeOfBodyLength === 3)\n                    cursor.pushUint24(bodyLength);\n                else\n                    cursor.pushUint32(bodyLength);\n            }\n            for (const { encode } of list) {\n                encode(cursor);\n            }\n        },\n    };\n}\nfunction getEncodableBytes(bytesOrHex) {\n    const bytes = typeof bytesOrHex === 'string' ? hexToBytes(bytesOrHex) : bytesOrHex;\n    const sizeOfBytesLength = getSizeOfLength(bytes.length);\n    const length = (() => {\n        if (bytes.length === 1 && bytes[0] < 0x80)\n            return 1;\n        if (bytes.length <= 55)\n            return 1 + bytes.length;\n        return 1 + sizeOfBytesLength + bytes.length;\n    })();\n    return {\n        length,\n        encode(cursor) {\n            if (bytes.length === 1 && bytes[0] < 0x80) {\n                cursor.pushBytes(bytes);\n            }\n            else if (bytes.length <= 55) {\n                cursor.pushByte(0x80 + bytes.length);\n                cursor.pushBytes(bytes);\n            }\n            else {\n                cursor.pushByte(0x80 + 55 + sizeOfBytesLength);\n                if (sizeOfBytesLength === 1)\n                    cursor.pushUint8(bytes.length);\n                else if (sizeOfBytesLength === 2)\n                    cursor.pushUint16(bytes.length);\n                else if (sizeOfBytesLength === 3)\n                    cursor.pushUint24(bytes.length);\n                else\n                    cursor.pushUint32(bytes.length);\n                cursor.pushBytes(bytes);\n            }\n        },\n    };\n}\nfunction getSizeOfLength(length) {\n    if (length < 2 ** 8)\n        return 1;\n    if (length < 2 ** 16)\n        return 2;\n    if (length < 2 ** 24)\n        return 3;\n    if (length < 2 ** 32)\n        return 4;\n    throw new BaseError('Length is too large.');\n}\n//# sourceMappingURL=toRlp.js.map","import { hexToBytes } from '../encoding/toBytes.js';\nimport { bytesToHex } from '../encoding/toHex.js';\n/**\n * Compute commitments from a list of blobs.\n *\n * @example\n * ```ts\n * import { blobsToCommitments, toBlobs } from 'viem'\n * import { kzg } from './kzg'\n *\n * const blobs = toBlobs({ data: '0x1234' })\n * const commitments = blobsToCommitments({ blobs, kzg })\n * ```\n */\nexport function blobsToCommitments(parameters) {\n    const { kzg } = parameters;\n    const to = parameters.to ?? (typeof parameters.blobs[0] === 'string' ? 'hex' : 'bytes');\n    const blobs = (typeof parameters.blobs[0] === 'string'\n        ? parameters.blobs.map((x) => hexToBytes(x))\n        : parameters.blobs);\n    const commitments = [];\n    for (const blob of blobs)\n        commitments.push(Uint8Array.from(kzg.blobToKzgCommitment(blob)));\n    return (to === 'bytes'\n        ? commitments\n        : commitments.map((x) => bytesToHex(x)));\n}\n//# sourceMappingURL=blobsToCommitments.js.map","import { hexToBytes } from '../encoding/toBytes.js';\nimport { bytesToHex } from '../encoding/toHex.js';\n/**\n * Compute the proofs for a list of blobs and their commitments.\n *\n * @example\n * ```ts\n * import {\n *   blobsToCommitments,\n *   toBlobs\n * } from 'viem'\n * import { kzg } from './kzg'\n *\n * const blobs = toBlobs({ data: '0x1234' })\n * const commitments = blobsToCommitments({ blobs, kzg })\n * const proofs = blobsToProofs({ blobs, commitments, kzg })\n * ```\n */\nexport function blobsToProofs(parameters) {\n    const { kzg } = parameters;\n    const to = parameters.to ?? (typeof parameters.blobs[0] === 'string' ? 'hex' : 'bytes');\n    const blobs = (typeof parameters.blobs[0] === 'string'\n        ? parameters.blobs.map((x) => hexToBytes(x))\n        : parameters.blobs);\n    const commitments = (typeof parameters.commitments[0] === 'string'\n        ? parameters.commitments.map((x) => hexToBytes(x))\n        : parameters.commitments);\n    const proofs = [];\n    for (let i = 0; i < blobs.length; i++) {\n        const blob = blobs[i];\n        const commitment = commitments[i];\n        proofs.push(Uint8Array.from(kzg.computeBlobKzgProof(blob, commitment)));\n    }\n    return (to === 'bytes'\n        ? proofs\n        : proofs.map((x) => bytesToHex(x)));\n}\n//# sourceMappingURL=blobsToProofs.js.map","/**\n * SHA2-256 a.k.a. sha256. In JS, it is the fastest hash, even faster than Blake3.\n *\n * To break sha256 using birthday attack, attackers need to try 2^128 hashes.\n * BTC network is doing 2^70 hashes/sec (2^95 hashes/year) as per 2025.\n *\n * Check out [FIPS 180-4](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf).\n * @module\n * @deprecated\n */\nimport { SHA224 as SHA224n, sha224 as sha224n, SHA256 as SHA256n, sha256 as sha256n, } from \"./sha2.js\";\n/** @deprecated Use import from `noble/hashes/sha2` module */\nexport const SHA256 = SHA256n;\n/** @deprecated Use import from `noble/hashes/sha2` module */\nexport const sha256 = sha256n;\n/** @deprecated Use import from `noble/hashes/sha2` module */\nexport const SHA224 = SHA224n;\n/** @deprecated Use import from `noble/hashes/sha2` module */\nexport const sha224 = sha224n;\n//# sourceMappingURL=sha256.js.map","import { sha256 as noble_sha256 } from '@noble/hashes/sha256';\nimport { isHex } from '../data/isHex.js';\nimport { toBytes } from '../encoding/toBytes.js';\nimport { toHex } from '../encoding/toHex.js';\nexport function sha256(value, to_) {\n    const to = to_ || 'hex';\n    const bytes = noble_sha256(isHex(value, { strict: false }) ? toBytes(value) : value);\n    if (to === 'bytes')\n        return bytes;\n    return toHex(bytes);\n}\n//# sourceMappingURL=sha256.js.map","import { bytesToHex } from '../encoding/toHex.js';\nimport { sha256 } from '../hash/sha256.js';\n/**\n * Transform a commitment to it's versioned hash.\n *\n * @example\n * ```ts\n * import {\n *   blobsToCommitments,\n *   commitmentToVersionedHash,\n *   toBlobs\n * } from 'viem'\n * import { kzg } from './kzg'\n *\n * const blobs = toBlobs({ data: '0x1234' })\n * const [commitment] = blobsToCommitments({ blobs, kzg })\n * const versionedHash = commitmentToVersionedHash({ commitment })\n * ```\n */\nexport function commitmentToVersionedHash(parameters) {\n    const { commitment, version = 1 } = parameters;\n    const to = parameters.to ?? (typeof commitment === 'string' ? 'hex' : 'bytes');\n    const versionedHash = sha256(commitment, 'bytes');\n    versionedHash.set([version], 0);\n    return (to === 'bytes' ? versionedHash : bytesToHex(versionedHash));\n}\n//# sourceMappingURL=commitmentToVersionedHash.js.map","import { commitmentToVersionedHash, } from './commitmentToVersionedHash.js';\n/**\n * Transform a list of commitments to their versioned hashes.\n *\n * @example\n * ```ts\n * import {\n *   blobsToCommitments,\n *   commitmentsToVersionedHashes,\n *   toBlobs\n * } from 'viem'\n * import { kzg } from './kzg'\n *\n * const blobs = toBlobs({ data: '0x1234' })\n * const commitments = blobsToCommitments({ blobs, kzg })\n * const versionedHashes = commitmentsToVersionedHashes({ commitments })\n * ```\n */\nexport function commitmentsToVersionedHashes(parameters) {\n    const { commitments, version } = parameters;\n    const to = parameters.to ?? (typeof commitments[0] === 'string' ? 'hex' : 'bytes');\n    const hashes = [];\n    for (const commitment of commitments) {\n        hashes.push(commitmentToVersionedHash({\n            commitment,\n            to,\n            version,\n        }));\n    }\n    return hashes;\n}\n//# sourceMappingURL=commitmentsToVersionedHashes.js.map","// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md#parameters\n/** Blob limit per transaction. */\nconst blobsPerTransaction = 6;\n/** The number of bytes in a BLS scalar field element. */\nexport const bytesPerFieldElement = 32;\n/** The number of field elements in a blob. */\nexport const fieldElementsPerBlob = 4096;\n/** The number of bytes in a blob. */\nexport const bytesPerBlob = bytesPerFieldElement * fieldElementsPerBlob;\n/** Blob bytes limit per transaction. */\nexport const maxBytesPerTransaction = bytesPerBlob * blobsPerTransaction -\n    // terminator byte (0x80).\n    1 -\n    // zero byte (0x00) appended to each field element.\n    1 * fieldElementsPerBlob * blobsPerTransaction;\n//# sourceMappingURL=blob.js.map","import { versionedHashVersionKzg } from '../constants/kzg.js';\nimport { BaseError } from './base.js';\nexport class BlobSizeTooLargeError extends BaseError {\n    constructor({ maxSize, size }) {\n        super('Blob size is too large.', {\n            metaMessages: [`Max: ${maxSize} bytes`, `Given: ${size} bytes`],\n            name: 'BlobSizeTooLargeError',\n        });\n    }\n}\nexport class EmptyBlobError extends BaseError {\n    constructor() {\n        super('Blob data must not be empty.', { name: 'EmptyBlobError' });\n    }\n}\nexport class InvalidVersionedHashSizeError extends BaseError {\n    constructor({ hash, size, }) {\n        super(`Versioned hash \"${hash}\" size is invalid.`, {\n            metaMessages: ['Expected: 32', `Received: ${size}`],\n            name: 'InvalidVersionedHashSizeError',\n        });\n    }\n}\nexport class InvalidVersionedHashVersionError extends BaseError {\n    constructor({ hash, version, }) {\n        super(`Versioned hash \"${hash}\" version is invalid.`, {\n            metaMessages: [\n                `Expected: ${versionedHashVersionKzg}`,\n                `Received: ${version}`,\n            ],\n            name: 'InvalidVersionedHashVersionError',\n        });\n    }\n}\n//# sourceMappingURL=blob.js.map","import { bytesPerBlob, bytesPerFieldElement, fieldElementsPerBlob, maxBytesPerTransaction, } from '../../constants/blob.js';\nimport { BlobSizeTooLargeError, EmptyBlobError, } from '../../errors/blob.js';\nimport { createCursor } from '../cursor.js';\nimport { size } from '../data/size.js';\nimport { hexToBytes } from '../encoding/toBytes.js';\nimport { bytesToHex } from '../encoding/toHex.js';\n/**\n * Transforms arbitrary data to blobs.\n *\n * @example\n * ```ts\n * import { toBlobs, stringToHex } from 'viem'\n *\n * const blobs = toBlobs({ data: stringToHex('hello world') })\n * ```\n */\nexport function toBlobs(parameters) {\n    const to = parameters.to ?? (typeof parameters.data === 'string' ? 'hex' : 'bytes');\n    const data = (typeof parameters.data === 'string'\n        ? hexToBytes(parameters.data)\n        : parameters.data);\n    const size_ = size(data);\n    if (!size_)\n        throw new EmptyBlobError();\n    if (size_ > maxBytesPerTransaction)\n        throw new BlobSizeTooLargeError({\n            maxSize: maxBytesPerTransaction,\n            size: size_,\n        });\n    const blobs = [];\n    let active = true;\n    let position = 0;\n    while (active) {\n        const blob = createCursor(new Uint8Array(bytesPerBlob));\n        let size = 0;\n        while (size < fieldElementsPerBlob) {\n            const bytes = data.slice(position, position + (bytesPerFieldElement - 1));\n            // Push a zero byte so the field element doesn't overflow the BLS modulus.\n            blob.pushByte(0x00);\n            // Push the current segment of data bytes.\n            blob.pushBytes(bytes);\n            // If we detect that the current segment of data bytes is less than 31 bytes,\n            // we can stop processing and push a terminator byte to indicate the end of the blob.\n            if (bytes.length < 31) {\n                blob.pushByte(0x80);\n                active = false;\n                break;\n            }\n            size++;\n            position += 31;\n        }\n        blobs.push(blob);\n    }\n    return (to === 'bytes'\n        ? blobs.map((x) => x.bytes)\n        : blobs.map((x) => bytesToHex(x.bytes)));\n}\n//# sourceMappingURL=toBlobs.js.map","import { blobsToCommitments, } from './blobsToCommitments.js';\nimport { blobsToProofs } from './blobsToProofs.js';\nimport { toBlobs } from './toBlobs.js';\n/**\n * Transforms arbitrary data (or blobs, commitments, & proofs) into a sidecar array.\n *\n * @example\n * ```ts\n * import { toBlobSidecars, stringToHex } from 'viem'\n *\n * const sidecars = toBlobSidecars({ data: stringToHex('hello world') })\n * ```\n *\n * @example\n * ```ts\n * import {\n *   blobsToCommitments,\n *   toBlobs,\n *   blobsToProofs,\n *   toBlobSidecars,\n *   stringToHex\n * } from 'viem'\n *\n * const blobs = toBlobs({ data: stringToHex('hello world') })\n * const commitments = blobsToCommitments({ blobs, kzg })\n * const proofs = blobsToProofs({ blobs, commitments, kzg })\n *\n * const sidecars = toBlobSidecars({ blobs, commitments, proofs })\n * ```\n */\nexport function toBlobSidecars(parameters) {\n    const { data, kzg, to } = parameters;\n    const blobs = parameters.blobs ?? toBlobs({ data: data, to });\n    const commitments = parameters.commitments ?? blobsToCommitments({ blobs, kzg: kzg, to });\n    const proofs = parameters.proofs ?? blobsToProofs({ blobs, commitments, kzg: kzg, to });\n    const sidecars = [];\n    for (let i = 0; i < blobs.length; i++)\n        sidecars.push({\n            blob: blobs[i],\n            commitment: commitments[i],\n            proof: proofs[i],\n        });\n    return sidecars;\n}\n//# sourceMappingURL=toBlobSidecars.js.map","import { InvalidSerializableTransactionError, } from '../../errors/transaction.js';\nexport function getTransactionType(transaction) {\n    if (transaction.type)\n        return transaction.type;\n    if (typeof transaction.authorizationList !== 'undefined')\n        return 'eip7702';\n    if (typeof transaction.blobs !== 'undefined' ||\n        typeof transaction.blobVersionedHashes !== 'undefined' ||\n        typeof transaction.maxFeePerBlobGas !== 'undefined' ||\n        typeof transaction.sidecars !== 'undefined')\n        return 'eip4844';\n    if (typeof transaction.maxFeePerGas !== 'undefined' ||\n        typeof transaction.maxPriorityFeePerGas !== 'undefined') {\n        return 'eip1559';\n    }\n    if (typeof transaction.gasPrice !== 'undefined') {\n        if (typeof transaction.accessList !== 'undefined')\n            return 'eip2930';\n        return 'legacy';\n    }\n    throw new InvalidSerializableTransactionError({ transaction });\n}\n//# sourceMappingURL=getTransactionType.js.map","import { versionedHashVersionKzg } from '../../constants/kzg.js';\nimport { maxUint256 } from '../../constants/number.js';\nimport { InvalidAddressError, } from '../../errors/address.js';\nimport { BaseError } from '../../errors/base.js';\nimport { EmptyBlobError, InvalidVersionedHashSizeError, InvalidVersionedHashVersionError, } from '../../errors/blob.js';\nimport { InvalidChainIdError, } from '../../errors/chain.js';\nimport { FeeCapTooHighError, TipAboveFeeCapError, } from '../../errors/node.js';\nimport { isAddress } from '../address/isAddress.js';\nimport { size } from '../data/size.js';\nimport { slice } from '../data/slice.js';\nimport { hexToNumber } from '../encoding/fromHex.js';\nexport function assertTransactionEIP7702(transaction) {\n    const { authorizationList } = transaction;\n    if (authorizationList) {\n        for (const authorization of authorizationList) {\n            const { chainId } = authorization;\n            const address = authorization.address;\n            if (!isAddress(address))\n                throw new InvalidAddressError({ address });\n            if (chainId < 0)\n                throw new InvalidChainIdError({ chainId });\n        }\n    }\n    assertTransactionEIP1559(transaction);\n}\nexport function assertTransactionEIP4844(transaction) {\n    const { blobVersionedHashes } = transaction;\n    if (blobVersionedHashes) {\n        if (blobVersionedHashes.length === 0)\n            throw new EmptyBlobError();\n        for (const hash of blobVersionedHashes) {\n            const size_ = size(hash);\n            const version = hexToNumber(slice(hash, 0, 1));\n            if (size_ !== 32)\n                throw new InvalidVersionedHashSizeError({ hash, size: size_ });\n            if (version !== versionedHashVersionKzg)\n                throw new InvalidVersionedHashVersionError({\n                    hash,\n                    version,\n                });\n        }\n    }\n    assertTransactionEIP1559(transaction);\n}\nexport function assertTransactionEIP1559(transaction) {\n    const { chainId, maxPriorityFeePerGas, maxFeePerGas, to } = transaction;\n    if (chainId <= 0)\n        throw new InvalidChainIdError({ chainId });\n    if (to && !isAddress(to))\n        throw new InvalidAddressError({ address: to });\n    if (maxFeePerGas && maxFeePerGas > maxUint256)\n        throw new FeeCapTooHighError({ maxFeePerGas });\n    if (maxPriorityFeePerGas &&\n        maxFeePerGas &&\n        maxPriorityFeePerGas > maxFeePerGas)\n        throw new TipAboveFeeCapError({ maxFeePerGas, maxPriorityFeePerGas });\n}\nexport function assertTransactionEIP2930(transaction) {\n    const { chainId, maxPriorityFeePerGas, gasPrice, maxFeePerGas, to } = transaction;\n    if (chainId <= 0)\n        throw new InvalidChainIdError({ chainId });\n    if (to && !isAddress(to))\n        throw new InvalidAddressError({ address: to });\n    if (maxPriorityFeePerGas || maxFeePerGas)\n        throw new BaseError('`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute.');\n    if (gasPrice && gasPrice > maxUint256)\n        throw new FeeCapTooHighError({ maxFeePerGas: gasPrice });\n}\nexport function assertTransactionLegacy(transaction) {\n    const { chainId, maxPriorityFeePerGas, gasPrice, maxFeePerGas, to } = transaction;\n    if (to && !isAddress(to))\n        throw new InvalidAddressError({ address: to });\n    if (typeof chainId !== 'undefined' && chainId <= 0)\n        throw new InvalidChainIdError({ chainId });\n    if (maxPriorityFeePerGas || maxFeePerGas)\n        throw new BaseError('`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.');\n    if (gasPrice && gasPrice > maxUint256)\n        throw new FeeCapTooHighError({ maxFeePerGas: gasPrice });\n}\n//# sourceMappingURL=assertTransaction.js.map","import { InvalidAddressError, } from '../../errors/address.js';\nimport { InvalidStorageKeySizeError, } from '../../errors/transaction.js';\nimport { isAddress } from '../address/isAddress.js';\n/*\n * Serialize an  EIP-2930 access list\n * @remarks\n * Use to create a transaction serializer with support for EIP-2930 access lists\n *\n * @param accessList - Array of objects of address and arrays of Storage Keys\n * @throws InvalidAddressError, InvalidStorageKeySizeError\n * @returns Array of hex strings\n */\nexport function serializeAccessList(accessList) {\n    if (!accessList || accessList.length === 0)\n        return [];\n    const serializedAccessList = [];\n    for (let i = 0; i < accessList.length; i++) {\n        const { address, storageKeys } = accessList[i];\n        for (let j = 0; j < storageKeys.length; j++) {\n            if (storageKeys[j].length - 2 !== 64) {\n                throw new InvalidStorageKeySizeError({ storageKey: storageKeys[j] });\n            }\n        }\n        if (!isAddress(address, { strict: false })) {\n            throw new InvalidAddressError({ address });\n        }\n        serializedAccessList.push([address, storageKeys]);\n    }\n    return serializedAccessList;\n}\n//# sourceMappingURL=serializeAccessList.js.map","import { InvalidLegacyVError, } from '../../errors/transaction.js';\nimport { serializeAuthorizationList, } from '../authorization/serializeAuthorizationList.js';\nimport { blobsToCommitments, } from '../blob/blobsToCommitments.js';\nimport { blobsToProofs, } from '../blob/blobsToProofs.js';\nimport { commitmentsToVersionedHashes, } from '../blob/commitmentsToVersionedHashes.js';\nimport { toBlobSidecars, } from '../blob/toBlobSidecars.js';\nimport { concatHex } from '../data/concat.js';\nimport { trim } from '../data/trim.js';\nimport { bytesToHex, numberToHex, } from '../encoding/toHex.js';\nimport { toRlp } from '../encoding/toRlp.js';\nimport { assertTransactionEIP1559, assertTransactionEIP2930, assertTransactionEIP4844, assertTransactionEIP7702, assertTransactionLegacy, } from './assertTransaction.js';\nimport { getTransactionType, } from './getTransactionType.js';\nimport { serializeAccessList, } from './serializeAccessList.js';\nexport function serializeTransaction(transaction, signature) {\n    const type = getTransactionType(transaction);\n    if (type === 'eip1559')\n        return serializeTransactionEIP1559(transaction, signature);\n    if (type === 'eip2930')\n        return serializeTransactionEIP2930(transaction, signature);\n    if (type === 'eip4844')\n        return serializeTransactionEIP4844(transaction, signature);\n    if (type === 'eip7702')\n        return serializeTransactionEIP7702(transaction, signature);\n    return serializeTransactionLegacy(transaction, signature);\n}\nfunction serializeTransactionEIP7702(transaction, signature) {\n    const { authorizationList, chainId, gas, nonce, to, value, maxFeePerGas, maxPriorityFeePerGas, accessList, data, } = transaction;\n    assertTransactionEIP7702(transaction);\n    const serializedAccessList = serializeAccessList(accessList);\n    const serializedAuthorizationList = serializeAuthorizationList(authorizationList);\n    return concatHex([\n        '0x04',\n        toRlp([\n            numberToHex(chainId),\n            nonce ? numberToHex(nonce) : '0x',\n            maxPriorityFeePerGas ? numberToHex(maxPriorityFeePerGas) : '0x',\n            maxFeePerGas ? numberToHex(maxFeePerGas) : '0x',\n            gas ? numberToHex(gas) : '0x',\n            to ?? '0x',\n            value ? numberToHex(value) : '0x',\n            data ?? '0x',\n            serializedAccessList,\n            serializedAuthorizationList,\n            ...toYParitySignatureArray(transaction, signature),\n        ]),\n    ]);\n}\nfunction serializeTransactionEIP4844(transaction, signature) {\n    const { chainId, gas, nonce, to, value, maxFeePerBlobGas, maxFeePerGas, maxPriorityFeePerGas, accessList, data, } = transaction;\n    assertTransactionEIP4844(transaction);\n    let blobVersionedHashes = transaction.blobVersionedHashes;\n    let sidecars = transaction.sidecars;\n    // If `blobs` are passed, we will need to compute the KZG commitments & proofs.\n    if (transaction.blobs &&\n        (typeof blobVersionedHashes === 'undefined' ||\n            typeof sidecars === 'undefined')) {\n        const blobs = (typeof transaction.blobs[0] === 'string'\n            ? transaction.blobs\n            : transaction.blobs.map((x) => bytesToHex(x)));\n        const kzg = transaction.kzg;\n        const commitments = blobsToCommitments({\n            blobs,\n            kzg,\n        });\n        if (typeof blobVersionedHashes === 'undefined')\n            blobVersionedHashes = commitmentsToVersionedHashes({\n                commitments,\n            });\n        if (typeof sidecars === 'undefined') {\n            const proofs = blobsToProofs({ blobs, commitments, kzg });\n            sidecars = toBlobSidecars({ blobs, commitments, proofs });\n        }\n    }\n    const serializedAccessList = serializeAccessList(accessList);\n    const serializedTransaction = [\n        numberToHex(chainId),\n        nonce ? numberToHex(nonce) : '0x',\n        maxPriorityFeePerGas ? numberToHex(maxPriorityFeePerGas) : '0x',\n        maxFeePerGas ? numberToHex(maxFeePerGas) : '0x',\n        gas ? numberToHex(gas) : '0x',\n        to ?? '0x',\n        value ? numberToHex(value) : '0x',\n        data ?? '0x',\n        serializedAccessList,\n        maxFeePerBlobGas ? numberToHex(maxFeePerBlobGas) : '0x',\n        blobVersionedHashes ?? [],\n        ...toYParitySignatureArray(transaction, signature),\n    ];\n    const blobs = [];\n    const commitments = [];\n    const proofs = [];\n    if (sidecars)\n        for (let i = 0; i < sidecars.length; i++) {\n            const { blob, commitment, proof } = sidecars[i];\n            blobs.push(blob);\n            commitments.push(commitment);\n            proofs.push(proof);\n        }\n    return concatHex([\n        '0x03',\n        sidecars\n            ? // If sidecars are enabled, envelope turns into a \"wrapper\":\n                toRlp([serializedTransaction, blobs, commitments, proofs])\n            : // If sidecars are disabled, standard envelope is used:\n                toRlp(serializedTransaction),\n    ]);\n}\nfunction serializeTransactionEIP1559(transaction, signature) {\n    const { chainId, gas, nonce, to, value, maxFeePerGas, maxPriorityFeePerGas, accessList, data, } = transaction;\n    assertTransactionEIP1559(transaction);\n    const serializedAccessList = serializeAccessList(accessList);\n    const serializedTransaction = [\n        numberToHex(chainId),\n        nonce ? numberToHex(nonce) : '0x',\n        maxPriorityFeePerGas ? numberToHex(maxPriorityFeePerGas) : '0x',\n        maxFeePerGas ? numberToHex(maxFeePerGas) : '0x',\n        gas ? numberToHex(gas) : '0x',\n        to ?? '0x',\n        value ? numberToHex(value) : '0x',\n        data ?? '0x',\n        serializedAccessList,\n        ...toYParitySignatureArray(transaction, signature),\n    ];\n    return concatHex([\n        '0x02',\n        toRlp(serializedTransaction),\n    ]);\n}\nfunction serializeTransactionEIP2930(transaction, signature) {\n    const { chainId, gas, data, nonce, to, value, accessList, gasPrice } = transaction;\n    assertTransactionEIP2930(transaction);\n    const serializedAccessList = serializeAccessList(accessList);\n    const serializedTransaction = [\n        numberToHex(chainId),\n        nonce ? numberToHex(nonce) : '0x',\n        gasPrice ? numberToHex(gasPrice) : '0x',\n        gas ? numberToHex(gas) : '0x',\n        to ?? '0x',\n        value ? numberToHex(value) : '0x',\n        data ?? '0x',\n        serializedAccessList,\n        ...toYParitySignatureArray(transaction, signature),\n    ];\n    return concatHex([\n        '0x01',\n        toRlp(serializedTransaction),\n    ]);\n}\nfunction serializeTransactionLegacy(transaction, signature) {\n    const { chainId = 0, gas, data, nonce, to, value, gasPrice } = transaction;\n    assertTransactionLegacy(transaction);\n    let serializedTransaction = [\n        nonce ? numberToHex(nonce) : '0x',\n        gasPrice ? numberToHex(gasPrice) : '0x',\n        gas ? numberToHex(gas) : '0x',\n        to ?? '0x',\n        value ? numberToHex(value) : '0x',\n        data ?? '0x',\n    ];\n    if (signature) {\n        const v = (() => {\n            // EIP-155 (inferred chainId)\n            if (signature.v >= 35n) {\n                const inferredChainId = (signature.v - 35n) / 2n;\n                if (inferredChainId > 0)\n                    return signature.v;\n                return 27n + (signature.v === 35n ? 0n : 1n);\n            }\n            // EIP-155 (explicit chainId)\n            if (chainId > 0)\n                return BigInt(chainId * 2) + BigInt(35n + signature.v - 27n);\n            // Pre-EIP-155 (no chainId)\n            const v = 27n + (signature.v === 27n ? 0n : 1n);\n            if (signature.v !== v)\n                throw new InvalidLegacyVError({ v: signature.v });\n            return v;\n        })();\n        const r = trim(signature.r);\n        const s = trim(signature.s);\n        serializedTransaction = [\n            ...serializedTransaction,\n            numberToHex(v),\n            r === '0x00' ? '0x' : r,\n            s === '0x00' ? '0x' : s,\n        ];\n    }\n    else if (chainId > 0) {\n        serializedTransaction = [\n            ...serializedTransaction,\n            numberToHex(chainId),\n            '0x',\n            '0x',\n        ];\n    }\n    return toRlp(serializedTransaction);\n}\nexport function toYParitySignatureArray(transaction, signature_) {\n    const signature = signature_ ?? transaction;\n    const { v, yParity } = signature;\n    if (typeof signature.r === 'undefined')\n        return [];\n    if (typeof signature.s === 'undefined')\n        return [];\n    if (typeof v === 'undefined' && typeof yParity === 'undefined')\n        return [];\n    const r = trim(signature.r);\n    const s = trim(signature.s);\n    const yParity_ = (() => {\n        if (typeof yParity === 'number')\n            return yParity ? numberToHex(1) : '0x';\n        if (v === 0n)\n            return '0x';\n        if (v === 1n)\n            return numberToHex(1);\n        return v === 27n ? '0x' : numberToHex(1);\n    })();\n    return [yParity_, r === '0x00' ? '0x' : r, s === '0x00' ? '0x' : s];\n}\n//# sourceMappingURL=serializeTransaction.js.map","import { toHex } from '../encoding/toHex.js';\nimport { toYParitySignatureArray } from '../transaction/serializeTransaction.js';\n/*\n * Serializes an EIP-7702 authorization list.\n */\nexport function serializeAuthorizationList(authorizationList) {\n    if (!authorizationList || authorizationList.length === 0)\n        return [];\n    const serializedAuthorizationList = [];\n    for (const authorization of authorizationList) {\n        const { chainId, nonce, ...signature } = authorization;\n        const contractAddress = authorization.address;\n        serializedAuthorizationList.push([\n            chainId ? toHex(chainId) : '0x',\n            contractAddress,\n            nonce ? toHex(nonce) : '0x',\n            ...toYParitySignatureArray({}, signature),\n        ]);\n    }\n    return serializedAuthorizationList;\n}\n//# sourceMappingURL=serializeAuthorizationList.js.map"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],"mappings":"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"}