UNPKG

based-auth

Version:

A Next.js/Node.js authentication and wallet API kit for Ethereum and Solana, with utilities for serialization and contract interaction, designed for serverless and API route usage.

1,625 lines 56.1 kB
import { a as _, Z as Le, t as ut, f as lt, X as ft, d as ke, p as $e, g as Fe, P as Ge } from "./index-ChpwqF0V.mjs"; import { defineChain as Q } from "viem"; import { clusterApiUrl as He } from "@solana/web3.js"; import { WalletAdapterNetwork as Oe } from "@solana/wallet-adapter-base"; function D(e) { return { formatters: void 0, fees: void 0, serializers: void 0, ...e }; } const Ce = "2.28.1"; let H = { getDocsUrl: ({ docsBaseUrl: e, docsPath: t = "", docsSlug: s }) => t ? `${e ?? "https://viem.sh"}${t}${s ? `#${s}` : ""}` : void 0, version: `viem@${Ce}` }; class h extends Error { constructor(t, s = {}) { var a; const n = (() => { var c; return s.cause instanceof h ? s.cause.details : (c = s.cause) != null && c.message ? s.cause.message : s.details; })(), i = s.cause instanceof h && s.cause.docsPath || s.docsPath, r = (a = H.getDocsUrl) == null ? void 0 : a.call(H, { ...s, docsPath: i }), o = [ t || "An error occurred.", "", ...s.metaMessages ? [...s.metaMessages, ""] : [], ...r ? [`Docs: ${r}`] : [], ...n ? [`Details: ${n}`] : [], ...H.version ? [`Version: ${H.version}`] : [] ].join(` `); super(o, s.cause ? { cause: s.cause } : void 0), Object.defineProperty(this, "details", { enumerable: !0, configurable: !0, writable: !0, value: void 0 }), Object.defineProperty(this, "docsPath", { enumerable: !0, configurable: !0, writable: !0, value: void 0 }), Object.defineProperty(this, "metaMessages", { enumerable: !0, configurable: !0, writable: !0, value: void 0 }), Object.defineProperty(this, "shortMessage", { enumerable: !0, configurable: !0, writable: !0, value: void 0 }), Object.defineProperty(this, "version", { enumerable: !0, configurable: !0, writable: !0, value: void 0 }), Object.defineProperty(this, "name", { enumerable: !0, configurable: !0, writable: !0, value: "BaseError" }), this.details = n, this.docsPath = i, this.metaMessages = s.metaMessages, this.name = s.name ?? this.name, this.shortMessage = t, this.version = Ce; } walk(t) { return _e(this, t); } } function _e(e, t) { return t != null && t(e) ? e : e && typeof e == "object" && "cause" in e && e.cause !== void 0 ? _e(e.cause, t) : t ? null : e; } class dt extends h { constructor({ max: t, min: s, signed: n, size: i, value: r }) { super(`Number "${r}" is not in safe ${i ? `${i * 8}-bit ${n ? "signed" : "unsigned"} ` : ""}integer range ${t ? `(${s} to ${t})` : `(above ${s})`}`, { name: "IntegerOutOfRangeError" }); } } class ht extends h { constructor({ givenSize: t, maxSize: s }) { super(`Size cannot exceed ${s} bytes. Given size: ${t} bytes.`, { name: "SizeOverflowError" }); } } function N(e, { strict: t = !0 } = {}) { return !e || typeof e != "string" ? !1 : t ? /^0x[0-9a-fA-F]*$/.test(e) : e.startsWith("0x"); } function S(e) { return N(e, { strict: !1 }) ? Math.ceil((e.length - 2) / 2) : e.length; } function q(e, { dir: t = "left" } = {}) { let s = typeof e == "string" ? e.replace("0x", "") : e, n = 0; for (let i = 0; i < s.length - 1 && s[t === "left" ? i : s.length - i - 1].toString() === "0"; i++) n++; return s = t === "left" ? s.slice(n) : s.slice(0, s.length - n), typeof e == "string" ? (s.length === 1 && t === "right" && (s = `${s}0`), `0x${s.length % 2 === 1 ? `0${s}` : s}`) : s; } class pt extends h { constructor({ offset: t, position: s, size: n }) { super(`Slice ${s === "start" ? "starting" : "ending"} at offset "${t}" is out-of-bounds (size: ${n}).`, { name: "SliceOffsetOutOfBoundsError" }); } } class De extends h { constructor({ size: t, targetSize: s, type: n }) { super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} size (${t}) exceeds padding size (${s}).`, { name: "SizeExceedsPaddingSizeError" }); } } function L(e, { dir: t, size: s = 32 } = {}) { return typeof e == "string" ? bt(e, { dir: t, size: s }) : xt(e, { dir: t, size: s }); } function bt(e, { dir: t, size: s = 32 } = {}) { if (s === null) return e; const n = e.replace("0x", ""); if (n.length > s * 2) throw new De({ size: Math.ceil(n.length / 2), targetSize: s, type: "hex" }); return `0x${n[t === "right" ? "padEnd" : "padStart"](s * 2, "0")}`; } function xt(e, { dir: t, size: s = 32 } = {}) { if (s === null) return e; if (e.length > s) throw new De({ size: e.length, targetSize: s, type: "bytes" }); const n = new Uint8Array(s); for (let i = 0; i < s; i++) { const r = t === "right"; n[r ? i : s - i - 1] = e[r ? i : e.length - i - 1]; } return n; } const mt = /* @__PURE__ */ Array.from({ length: 256 }, (e, t) => t.toString(16).padStart(2, "0")); function f(e, t = {}) { return typeof e == "number" || typeof e == "bigint" ? Ne(e, t) : typeof e == "string" ? wt(e, t) : typeof e == "boolean" ? gt(e, t) : P(e, t); } function gt(e, t = {}) { const s = `0x${Number(e)}`; return typeof t.size == "number" ? (k(s, { size: t.size }), L(s, { size: t.size })) : s; } function P(e, t = {}) { let s = ""; for (let i = 0; i < e.length; i++) s += mt[e[i]]; const n = `0x${s}`; return typeof t.size == "number" ? (k(n, { size: t.size }), L(n, { dir: "right", size: t.size })) : n; } function Ne(e, t = {}) { const { signed: s, size: n } = t, i = BigInt(e); let r; n ? s ? r = (1n << BigInt(n) * 8n - 1n) - 1n : r = 2n ** (BigInt(n) * 8n) - 1n : typeof e == "number" && (r = BigInt(Number.MAX_SAFE_INTEGER)); const o = typeof r == "bigint" && s ? -r - 1n : 0; if (r && i > r || i < o) { const c = typeof e == "bigint" ? "n" : ""; throw new dt({ max: r ? `${r}${c}` : void 0, min: `${o}${c}`, signed: s, size: n, value: `${e}${c}` }); } const a = `0x${(s && i < 0 ? (1n << BigInt(n * 8)) + BigInt(i) : i).toString(16)}`; return n ? L(a, { size: n }) : a; } const yt = /* @__PURE__ */ new TextEncoder(); function wt(e, t = {}) { const s = yt.encode(e); return P(s, t); } const Bt = /* @__PURE__ */ new TextEncoder(); function Ve(e, t = {}) { return typeof e == "number" || typeof e == "bigint" ? vt(e, t) : typeof e == "boolean" ? Pt(e, t) : N(e) ? E(e, t) : Me(e, t); } function Pt(e, t = {}) { const s = new Uint8Array(1); return s[0] = Number(e), typeof t.size == "number" ? (k(s, { size: t.size }), L(s, { size: t.size })) : s; } const y = { zero: 48, nine: 57, A: 65, F: 70, a: 97, f: 102 }; function Be(e) { if (e >= y.zero && e <= y.nine) return e - y.zero; if (e >= y.A && e <= y.F) return e - (y.A - 10); if (e >= y.a && e <= y.f) return e - (y.a - 10); } function E(e, t = {}) { let s = e; t.size && (k(s, { size: t.size }), s = L(s, { dir: "right", size: t.size })); let n = s.slice(2); n.length % 2 && (n = `0${n}`); const i = n.length / 2, r = new Uint8Array(i); for (let o = 0, a = 0; o < i; o++) { const c = Be(n.charCodeAt(a++)), u = Be(n.charCodeAt(a++)); if (c === void 0 || u === void 0) throw new h(`Invalid byte sequence ("${n[a - 2]}${n[a - 1]}" in "${n}").`); r[o] = c * 16 + u; } return r; } function vt(e, t) { const s = Ne(e, t); return E(s); } function Me(e, t = {}) { const s = Bt.encode(e); return typeof t.size == "number" ? (k(s, { size: t.size }), L(s, { dir: "right", size: t.size })) : s; } function k(e, { size: t }) { if (S(e) > t) throw new ht({ givenSize: S(e), maxSize: t }); } function T(e, t = {}) { const { signed: s } = t; t.size && k(e, { size: t.size }); const n = BigInt(e); if (!s) return n; const i = (e.length - 2) / 2, r = (1n << BigInt(i) * 8n - 1n) - 1n; return n <= r ? n : n - BigInt(`0x${"f".padStart(i * 2, "f")}`) - 1n; } function Y(e, t = {}) { return Number(T(e, t)); } function le(e, t) { return ({ exclude: s, format: n }) => ({ exclude: s, format: (i) => { const r = t(i); if (s) for (const o of s) delete r[o]; return { ...r, ...n(i) }; }, type: e }); } const je = { "0x0": "legacy", "0x1": "eip2930", "0x2": "eip1559", "0x3": "eip4844", "0x4": "eip7702" }; function fe(e) { const t = { ...e, blockHash: e.blockHash ? e.blockHash : null, blockNumber: e.blockNumber ? BigInt(e.blockNumber) : null, chainId: e.chainId ? Y(e.chainId) : void 0, gas: e.gas ? BigInt(e.gas) : void 0, gasPrice: e.gasPrice ? BigInt(e.gasPrice) : void 0, maxFeePerBlobGas: e.maxFeePerBlobGas ? BigInt(e.maxFeePerBlobGas) : void 0, maxFeePerGas: e.maxFeePerGas ? BigInt(e.maxFeePerGas) : void 0, maxPriorityFeePerGas: e.maxPriorityFeePerGas ? BigInt(e.maxPriorityFeePerGas) : void 0, nonce: e.nonce ? Y(e.nonce) : void 0, to: e.to ? e.to : null, transactionIndex: e.transactionIndex ? Number(e.transactionIndex) : null, type: e.type ? je[e.type] : void 0, typeHex: e.type ? e.type : void 0, value: e.value ? BigInt(e.value) : void 0, v: e.v ? BigInt(e.v) : void 0 }; return e.authorizationList && (t.authorizationList = It(e.authorizationList)), t.yParity = (() => { if (e.yParity) return Number(e.yParity); if (typeof t.v == "bigint") { if (t.v === 0n || t.v === 27n) return 0; if (t.v === 1n || t.v === 28n) return 1; if (t.v >= 35n) return t.v % 2n === 0n ? 1 : 0; } })(), t.type === "legacy" && (delete t.accessList, delete t.maxFeePerBlobGas, delete t.maxFeePerGas, delete t.maxPriorityFeePerGas, delete t.yParity), t.type === "eip2930" && (delete t.maxFeePerBlobGas, delete t.maxFeePerGas, delete t.maxPriorityFeePerGas), t.type === "eip1559" && delete t.maxFeePerBlobGas, t; } const Et = /* @__PURE__ */ le("transaction", fe); function It(e) { return e.map((t) => ({ address: t.address, chainId: Number(t.chainId), nonce: Number(t.nonce), r: t.r, s: t.s, yParity: Number(t.yParity) })); } function Ut(e) { const t = (e.transactions ?? []).map((s) => typeof s == "string" ? s : fe(s)); return { ...e, baseFeePerGas: e.baseFeePerGas ? BigInt(e.baseFeePerGas) : null, blobGasUsed: e.blobGasUsed ? BigInt(e.blobGasUsed) : void 0, difficulty: e.difficulty ? BigInt(e.difficulty) : void 0, excessBlobGas: e.excessBlobGas ? BigInt(e.excessBlobGas) : void 0, gasLimit: e.gasLimit ? BigInt(e.gasLimit) : void 0, gasUsed: e.gasUsed ? BigInt(e.gasUsed) : void 0, hash: e.hash ? e.hash : null, logsBloom: e.logsBloom ? e.logsBloom : null, nonce: e.nonce ? e.nonce : null, number: e.number ? BigInt(e.number) : null, size: e.size ? BigInt(e.size) : void 0, timestamp: e.timestamp ? BigInt(e.timestamp) : void 0, transactions: t, totalDifficulty: e.totalDifficulty ? BigInt(e.totalDifficulty) : null }; } const zt = /* @__PURE__ */ le("block", Ut); function At(e, { args: t, eventName: s } = {}) { return { ...e, blockHash: e.blockHash ? e.blockHash : null, blockNumber: e.blockNumber ? BigInt(e.blockNumber) : null, logIndex: e.logIndex ? Number(e.logIndex) : null, transactionHash: e.transactionHash ? e.transactionHash : null, transactionIndex: e.transactionIndex ? Number(e.transactionIndex) : null, ...s ? { args: t, eventName: s } : {} }; } const Tt = { "0x0": "reverted", "0x1": "success" }; function St(e) { const t = { ...e, blockNumber: e.blockNumber ? BigInt(e.blockNumber) : null, contractAddress: e.contractAddress ? e.contractAddress : null, cumulativeGasUsed: e.cumulativeGasUsed ? BigInt(e.cumulativeGasUsed) : null, effectiveGasPrice: e.effectiveGasPrice ? BigInt(e.effectiveGasPrice) : null, gasUsed: e.gasUsed ? BigInt(e.gasUsed) : null, logs: e.logs ? e.logs.map((s) => At(s)) : null, to: e.to ? e.to : null, transactionIndex: e.transactionIndex ? Y(e.transactionIndex) : null, status: e.status ? Tt[e.status] : null, type: e.type ? je[e.type] || e.type : null }; return e.blobGasPrice && (t.blobGasPrice = BigInt(e.blobGasPrice)), e.blobGasUsed && (t.blobGasUsed = BigInt(e.blobGasUsed)), t; } const Lt = /* @__PURE__ */ le("transactionReceipt", St), de = 2n ** 256n - 1n; function V(e) { return `0x${e.reduce((t, s) => t + s.replace("0x", ""), "")}`; } class Pe extends h { constructor({ offset: t }) { super(`Offset \`${t}\` cannot be negative.`, { name: "NegativeOffsetError" }); } } class kt extends h { constructor({ length: t, position: s }) { super(`Position \`${s}\` is out of bounds (\`0 < position < ${t}\`).`, { name: "PositionOutOfBoundsError" }); } } class $t extends h { constructor({ count: t, limit: s }) { super(`Recursive read limit of \`${s}\` exceeded (recursive read count: \`${t}\`).`, { name: "RecursiveReadLimitExceededError" }); } } const Ft = { bytes: new Uint8Array(), dataView: new DataView(new ArrayBuffer(0)), position: 0, positionReadCount: /* @__PURE__ */ new Map(), recursiveReadCount: 0, recursiveReadLimit: Number.POSITIVE_INFINITY, assertReadLimit() { if (this.recursiveReadCount >= this.recursiveReadLimit) throw new $t({ count: this.recursiveReadCount + 1, limit: this.recursiveReadLimit }); }, assertPosition(e) { if (e < 0 || e > this.bytes.length - 1) throw new kt({ length: this.bytes.length, position: e }); }, decrementPosition(e) { if (e < 0) throw new Pe({ offset: e }); const t = this.position - e; this.assertPosition(t), this.position = t; }, getReadCount(e) { return this.positionReadCount.get(e || this.position) || 0; }, incrementPosition(e) { if (e < 0) throw new Pe({ offset: e }); const t = this.position + e; this.assertPosition(t), this.position = t; }, inspectByte(e) { const t = e ?? this.position; return this.assertPosition(t), this.bytes[t]; }, inspectBytes(e, t) { const s = t ?? this.position; return this.assertPosition(s + e - 1), this.bytes.subarray(s, s + e); }, inspectUint8(e) { const t = e ?? this.position; return this.assertPosition(t), this.bytes[t]; }, inspectUint16(e) { const t = e ?? this.position; return this.assertPosition(t + 1), this.dataView.getUint16(t); }, inspectUint24(e) { const t = e ?? this.position; return this.assertPosition(t + 2), (this.dataView.getUint16(t) << 8) + this.dataView.getUint8(t + 2); }, inspectUint32(e) { const t = e ?? this.position; return this.assertPosition(t + 3), this.dataView.getUint32(t); }, pushByte(e) { this.assertPosition(this.position), this.bytes[this.position] = e, this.position++; }, pushBytes(e) { this.assertPosition(this.position + e.length - 1), this.bytes.set(e, this.position), this.position += e.length; }, pushUint8(e) { this.assertPosition(this.position), this.bytes[this.position] = e, this.position++; }, pushUint16(e) { this.assertPosition(this.position + 1), this.dataView.setUint16(this.position, e), this.position += 2; }, pushUint24(e) { this.assertPosition(this.position + 2), this.dataView.setUint16(this.position, e >> 8), this.dataView.setUint8(this.position + 2, e & 255), this.position += 3; }, pushUint32(e) { this.assertPosition(this.position + 3), this.dataView.setUint32(this.position, e), this.position += 4; }, readByte() { this.assertReadLimit(), this._touch(); const e = this.inspectByte(); return this.position++, e; }, readBytes(e, t) { this.assertReadLimit(), this._touch(); const s = this.inspectBytes(e); return this.position += t ?? e, s; }, readUint8() { this.assertReadLimit(), this._touch(); const e = this.inspectUint8(); return this.position += 1, e; }, readUint16() { this.assertReadLimit(), this._touch(); const e = this.inspectUint16(); return this.position += 2, e; }, readUint24() { this.assertReadLimit(), this._touch(); const e = this.inspectUint24(); return this.position += 3, e; }, readUint32() { this.assertReadLimit(), this._touch(); const e = this.inspectUint32(); return this.position += 4, e; }, get remaining() { return this.bytes.length - this.position; }, setPosition(e) { const t = this.position; return this.assertPosition(e), this.position = e, () => this.position = t; }, _touch() { if (this.recursiveReadLimit === Number.POSITIVE_INFINITY) return; const e = this.getReadCount(); this.positionReadCount.set(this.position, e + 1), e > 0 && this.recursiveReadCount++; } }; function Re(e, { recursiveReadLimit: t = 8192 } = {}) { const s = Object.create(Ft); return s.bytes = e, s.dataView = new DataView(e.buffer, e.byteOffset, e.byteLength), s.positionReadCount = /* @__PURE__ */ new Map(), s.recursiveReadLimit = t, s; } function I(e, t = "hex") { const s = Ke(e), n = Re(new Uint8Array(s.length)); return s.encode(n), t === "hex" ? P(n.bytes) : n.bytes; } function Ke(e) { return Array.isArray(e) ? Gt(e.map((t) => Ke(t))) : Ht(e); } function Gt(e) { const t = e.reduce((i, r) => i + r.length, 0), s = Xe(t); return { length: t <= 55 ? 1 + t : 1 + s + t, encode(i) { t <= 55 ? i.pushByte(192 + t) : (i.pushByte(247 + s), s === 1 ? i.pushUint8(t) : s === 2 ? i.pushUint16(t) : s === 3 ? i.pushUint24(t) : i.pushUint32(t)); for (const { encode: r } of e) r(i); } }; } function Ht(e) { const t = typeof e == "string" ? E(e) : e, s = Xe(t.length); return { length: t.length === 1 && t[0] < 128 ? 1 : t.length <= 55 ? 1 + t.length : 1 + s + t.length, encode(i) { t.length === 1 && t[0] < 128 ? i.pushBytes(t) : t.length <= 55 ? (i.pushByte(128 + t.length), i.pushBytes(t)) : (i.pushByte(183 + s), s === 1 ? i.pushUint8(t.length) : s === 2 ? i.pushUint16(t.length) : s === 3 ? i.pushUint24(t.length) : i.pushUint32(t.length), i.pushBytes(t)); } }; } function Xe(e) { if (e < 2 ** 8) return 1; if (e < 2 ** 16) return 2; if (e < 2 ** 24) return 3; if (e < 2 ** 32) return 4; throw new h("Length is too large."); } const Ot = { ether: -9, wei: 9 }; function Ct(e, t) { let s = e.toString(); const n = s.startsWith("-"); n && (s = s.slice(1)), s = s.padStart(t, "0"); let [i, r] = [ s.slice(0, s.length - t), s.slice(s.length - t) ]; return r = r.replace(/(0+)$/, ""), `${n ? "-" : ""}${i || "0"}${r ? `.${r}` : ""}`; } function ue(e, t = "wei") { return Ct(e, Ot[t]); } function _t(e) { const t = Object.entries(e).map(([n, i]) => i === void 0 || i === !1 ? null : [n, i]).filter(Boolean), s = t.reduce((n, [i]) => Math.max(n, i.length), 0); return t.map(([n, i]) => ` ${`${n}:`.padEnd(s + 1)} ${i}`).join(` `); } class Dt extends h { constructor({ v: t }) { super(`Invalid \`v\` value "${t}". Expected 27 or 28.`, { name: "InvalidLegacyVError" }); } } class Nt extends h { constructor({ transaction: t }) { super("Cannot infer a transaction type from provided transaction.", { metaMessages: [ "Provided Transaction:", "{", _t(t), "}", "", "To infer the type, either provide:", "- a `type` to the Transaction, or", "- an EIP-1559 Transaction with `maxFeePerGas`, or", "- an EIP-2930 Transaction with `gasPrice` & `accessList`, or", "- an EIP-4844 Transaction with `blobs`, `blobVersionedHashes`, `sidecars`, or", "- an EIP-7702 Transaction with `authorizationList`, or", "- a Legacy Transaction with `gasPrice`" ], name: "InvalidSerializableTransactionError" }); } } class Vt extends h { constructor({ storageKey: t }) { super(`Size for storage key "${t}" is invalid. Expected 32 bytes. Got ${Math.floor((t.length - 2) / 2)} bytes.`, { name: "InvalidStorageKeySizeError" }); } } function Mt(e) { if (!e || e.length === 0) return []; const t = []; for (const s of e) { const { chainId: n, nonce: i, ...r } = s, o = s.address; t.push([ n ? f(n) : "0x", o, i ? f(i) : "0x", ...M({}, r) ]); } return t; } function We(e) { const { kzg: t } = e, s = e.to ?? (typeof e.blobs[0] == "string" ? "hex" : "bytes"), n = typeof e.blobs[0] == "string" ? e.blobs.map((r) => E(r)) : e.blobs, i = []; for (const r of n) i.push(Uint8Array.from(t.blobToKzgCommitment(r))); return s === "bytes" ? i : i.map((r) => P(r)); } function qe(e) { const { kzg: t } = e, s = e.to ?? (typeof e.blobs[0] == "string" ? "hex" : "bytes"), n = typeof e.blobs[0] == "string" ? e.blobs.map((o) => E(o)) : e.blobs, i = typeof e.commitments[0] == "string" ? e.commitments.map((o) => E(o)) : e.commitments, r = []; for (let o = 0; o < n.length; o++) { const a = n[o], c = i[o]; r.push(Uint8Array.from(t.computeBlobKzgProof(a, c))); } return s === "bytes" ? r : r.map((o) => P(o)); } function ve(e) { if (!Number.isSafeInteger(e) || e < 0) throw new Error("positive integer expected, got " + e); } function jt(e) { return e instanceof Uint8Array || ArrayBuffer.isView(e) && e.constructor.name === "Uint8Array"; } function he(e, ...t) { if (!jt(e)) throw new Error("Uint8Array expected"); if (t.length > 0 && !t.includes(e.length)) throw new Error("Uint8Array expected of length " + t + ", got length=" + e.length); } function Z(e, t = !0) { if (e.destroyed) throw new Error("Hash instance has been destroyed"); if (t && e.finished) throw new Error("Hash#digest() has already been called"); } function Ye(e, t) { he(e); const s = t.outputLen; if (e.length < s) throw new Error("digestInto() expects output buffer of length at least " + s); } /*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */ function Rt(e) { return new Uint32Array(e.buffer, e.byteOffset, Math.floor(e.byteLength / 4)); } function ne(e) { return new DataView(e.buffer, e.byteOffset, e.byteLength); } function x(e, t) { return e << 32 - t | e >>> t; } const Ee = new Uint8Array(new Uint32Array([287454020]).buffer)[0] === 68; function Kt(e) { return e << 24 & 4278190080 | e << 8 & 16711680 | e >>> 8 & 65280 | e >>> 24 & 255; } function Ie(e) { for (let t = 0; t < e.length; t++) e[t] = Kt(e[t]); } typeof Uint8Array.from([]).toHex == "function" && Uint8Array.fromHex; function Xt(e) { if (typeof e != "string") throw new Error("utf8ToBytes expected string, got " + typeof e); return new Uint8Array(new TextEncoder().encode(e)); } function pe(e) { return typeof e == "string" && (e = Xt(e)), he(e), e; } class Ze { // Safe version that clones internal state clone() { return this._cloneInto(); } } function Je(e) { const t = (n) => e().update(pe(n)).digest(), s = e(); return t.outputLen = s.outputLen, t.blockLen = s.blockLen, t.create = () => e(), t; } function Wt(e, t, s, n) { if (typeof e.setBigUint64 == "function") return e.setBigUint64(t, s, n); const i = BigInt(32), r = BigInt(4294967295), o = Number(s >> i & r), a = Number(s & r), c = n ? 4 : 0, u = n ? 0 : 4; e.setUint32(t + c, o, n), e.setUint32(t + u, a, n); } function qt(e, t, s) { return e & t ^ ~e & s; } function Yt(e, t, s) { return e & t ^ e & s ^ t & s; } class Zt extends Ze { constructor(t, s, n, i) { super(), this.finished = !1, this.length = 0, this.pos = 0, this.destroyed = !1, this.blockLen = t, this.outputLen = s, this.padOffset = n, this.isLE = i, this.buffer = new Uint8Array(t), this.view = ne(this.buffer); } update(t) { Z(this); const { view: s, buffer: n, blockLen: i } = this; t = pe(t); const r = t.length; for (let o = 0; o < r; ) { const a = Math.min(i - this.pos, r - o); if (a === i) { const c = ne(t); for (; i <= r - o; o += i) this.process(c, o); continue; } n.set(t.subarray(o, o + a), this.pos), this.pos += a, o += a, this.pos === i && (this.process(s, 0), this.pos = 0); } return this.length += t.length, this.roundClean(), this; } digestInto(t) { Z(this), Ye(t, this), this.finished = !0; const { buffer: s, view: n, blockLen: i, isLE: r } = this; let { pos: o } = this; s[o++] = 128, this.buffer.subarray(o).fill(0), this.padOffset > i - o && (this.process(n, 0), o = 0); for (let l = o; l < i; l++) s[l] = 0; Wt(n, i - 8, BigInt(this.length * 8), r), this.process(n, 0); const a = ne(t), c = this.outputLen; if (c % 4) throw new Error("_sha2: outputLen should be aligned to 32bit"); const u = c / 4, d = this.get(); if (u > d.length) throw new Error("_sha2: outputLen bigger than state"); for (let l = 0; l < u; l++) a.setUint32(4 * l, d[l], r); } digest() { const { buffer: t, outputLen: s } = this; this.digestInto(t); const n = t.slice(0, s); return this.destroy(), n; } _cloneInto(t) { t || (t = new this.constructor()), t.set(...this.get()); const { blockLen: s, buffer: n, length: i, finished: r, destroyed: o, pos: a } = this; return t.length = i, t.pos = a, t.finished = r, t.destroyed = o, i % s && t.buffer.set(n), t; } } const Jt = /* @__PURE__ */ new Uint32Array([ 1116352408, 1899447441, 3049323471, 3921009573, 961987163, 1508970993, 2453635748, 2870763221, 3624381080, 310598401, 607225278, 1426881987, 1925078388, 2162078206, 2614888103, 3248222580, 3835390401, 4022224774, 264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986, 2554220882, 2821834349, 2952996808, 3210313671, 3336571891, 3584528711, 113926993, 338241895, 666307205, 773529912, 1294757372, 1396182291, 1695183700, 1986661051, 2177026350, 2456956037, 2730485921, 2820302411, 3259730800, 3345764771, 3516065817, 3600352804, 4094571909, 275423344, 430227734, 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779, 1955562222, 2024104815, 2227730452, 2361852424, 2428436474, 2756734187, 3204031479, 3329325298 ]), w = /* @__PURE__ */ new Uint32Array([ 1779033703, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635, 1541459225 ]), B = /* @__PURE__ */ new Uint32Array(64); class Qt extends Zt { constructor(t = 32) { super(64, t, 8, !1), this.A = w[0] | 0, this.B = w[1] | 0, this.C = w[2] | 0, this.D = w[3] | 0, this.E = w[4] | 0, this.F = w[5] | 0, this.G = w[6] | 0, this.H = w[7] | 0; } get() { const { A: t, B: s, C: n, D: i, E: r, F: o, G: a, H: c } = this; return [t, s, n, i, r, o, a, c]; } // prettier-ignore set(t, s, n, i, r, o, a, c) { this.A = t | 0, this.B = s | 0, this.C = n | 0, this.D = i | 0, this.E = r | 0, this.F = o | 0, this.G = a | 0, this.H = c | 0; } process(t, s) { for (let l = 0; l < 16; l++, s += 4) B[l] = t.getUint32(s, !1); for (let l = 16; l < 64; l++) { const b = B[l - 15], p = B[l - 2], $ = x(b, 7) ^ x(b, 18) ^ b >>> 3, A = x(p, 17) ^ x(p, 19) ^ p >>> 10; B[l] = A + B[l - 7] + $ + B[l - 16] | 0; } let { A: n, B: i, C: r, D: o, E: a, F: c, G: u, H: d } = this; for (let l = 0; l < 64; l++) { const b = x(a, 6) ^ x(a, 11) ^ x(a, 25), p = d + b + qt(a, c, u) + Jt[l] + B[l] | 0, A = (x(n, 2) ^ x(n, 13) ^ x(n, 22)) + Yt(n, i, r) | 0; d = u, u = c, c = a, a = o + p | 0, o = r, r = i, i = n, n = p + A | 0; } n = n + this.A | 0, i = i + this.B | 0, r = r + this.C | 0, o = o + this.D | 0, a = a + this.E | 0, c = c + this.F | 0, u = u + this.G | 0, d = d + this.H | 0, this.set(n, i, r, o, a, c, u, d); } roundClean() { B.fill(0); } destroy() { this.set(0, 0, 0, 0, 0, 0, 0, 0), this.buffer.fill(0); } } const es = /* @__PURE__ */ Je(() => new Qt()); function ts(e, t) { return es(N(e, { strict: !1 }) ? Ve(e) : e); } function ss(e) { const { commitment: t, version: s = 1 } = e, n = e.to ?? (typeof t == "string" ? "hex" : "bytes"), i = ts(t); return i.set([s], 0), n === "bytes" ? i : P(i); } function ns(e) { const { commitments: t, version: s } = e, n = e.to ?? (typeof t[0] == "string" ? "hex" : "bytes"), i = []; for (const r of t) i.push(ss({ commitment: r, to: n, version: s })); return i; } const Ue = 6, Qe = 32, be = 4096, et = Qe * be, ze = et * Ue - // terminator byte (0x80). 1 - // zero byte (0x00) appended to each field element. 1 * be * Ue, tt = 1; class is extends h { constructor({ maxSize: t, size: s }) { super("Blob size is too large.", { metaMessages: [`Max: ${t} bytes`, `Given: ${s} bytes`], name: "BlobSizeTooLargeError" }); } } class st extends h { constructor() { super("Blob data must not be empty.", { name: "EmptyBlobError" }); } } class rs extends h { constructor({ hash: t, size: s }) { super(`Versioned hash "${t}" size is invalid.`, { metaMessages: ["Expected: 32", `Received: ${s}`], name: "InvalidVersionedHashSizeError" }); } } class os extends h { constructor({ hash: t, version: s }) { super(`Versioned hash "${t}" version is invalid.`, { metaMessages: [ `Expected: ${tt}`, `Received: ${s}` ], name: "InvalidVersionedHashVersionError" }); } } function as(e) { const t = e.to ?? (typeof e.data == "string" ? "hex" : "bytes"), s = typeof e.data == "string" ? E(e.data) : e.data, n = S(s); if (!n) throw new st(); if (n > ze) throw new is({ maxSize: ze, size: n }); const i = []; let r = !0, o = 0; for (; r; ) { const a = Re(new Uint8Array(et)); let c = 0; for (; c < be; ) { const u = s.slice(o, o + (Qe - 1)); if (a.pushByte(0), a.pushBytes(u), u.length < 31) { a.pushByte(128), r = !1; break; } c++, o += 31; } i.push(a); } return t === "bytes" ? i.map((a) => a.bytes) : i.map((a) => P(a.bytes)); } function cs(e) { const { data: t, kzg: s, to: n } = e, i = e.blobs ?? as({ data: t, to: n }), r = e.commitments ?? We({ blobs: i, kzg: s, to: n }), o = e.proofs ?? qe({ blobs: i, commitments: r, kzg: s, to: n }), a = []; for (let c = 0; c < i.length; c++) a.push({ blob: i[c], commitment: r[c], proof: o[c] }); return a; } class U extends h { constructor({ address: t }) { super(`Address "${t}" is invalid.`, { metaMessages: [ "- Address must be a hex value of 20 bytes (40 hex characters).", "- Address must match its checksum counterpart." ], name: "InvalidAddressError" }); } } class ee extends h { constructor({ chainId: t }) { super(typeof t == "number" ? `Chain ID "${t}" is invalid.` : "Chain ID is invalid.", { name: "InvalidChainIdError" }); } } class te extends h { constructor({ cause: t, maxFeePerGas: s } = {}) { super(`The fee cap (\`maxFeePerGas\`${s ? ` = ${ue(s)} gwei` : ""}) cannot be higher than the maximum allowed value (2^256-1).`, { cause: t, name: "FeeCapTooHighError" }); } } Object.defineProperty(te, "nodeMessage", { enumerable: !0, configurable: !0, writable: !0, value: /max fee per gas higher than 2\^256-1|fee cap higher than 2\^256-1/ }); class nt extends h { constructor({ cause: t, maxPriorityFeePerGas: s, maxFeePerGas: n } = {}) { super([ `The provided tip (\`maxPriorityFeePerGas\`${s ? ` = ${ue(s)} gwei` : ""}) cannot be higher than the fee cap (\`maxFeePerGas\`${n ? ` = ${ue(n)} gwei` : ""}).` ].join(` `), { cause: t, name: "TipAboveFeeCapError" }); } } Object.defineProperty(nt, "nodeMessage", { enumerable: !0, configurable: !0, writable: !0, value: /max priority fee per gas higher than max fee per gas|tip higher than fee cap/ }); class it extends Map { constructor(t) { super(), Object.defineProperty(this, "maxSize", { enumerable: !0, configurable: !0, writable: !0, value: void 0 }), this.maxSize = t; } get(t) { const s = super.get(t); return super.has(t) && s !== void 0 && (this.delete(t), super.set(t, s)), s; } set(t, s) { if (super.set(t, s), this.maxSize && this.size > this.maxSize) { const n = this.keys().next().value; n && this.delete(n); } return this; } } const R = /* @__PURE__ */ BigInt(2 ** 32 - 1), Ae = /* @__PURE__ */ BigInt(32); function us(e, t = !1) { return t ? { h: Number(e & R), l: Number(e >> Ae & R) } : { h: Number(e >> Ae & R) | 0, l: Number(e & R) | 0 }; } function ls(e, t = !1) { let s = new Uint32Array(e.length), n = new Uint32Array(e.length); for (let i = 0; i < e.length; i++) { const { h: r, l: o } = us(e[i], t); [s[i], n[i]] = [r, o]; } return [s, n]; } const fs = (e, t, s) => e << s | t >>> 32 - s, ds = (e, t, s) => t << s | e >>> 32 - s, hs = (e, t, s) => t << s - 32 | e >>> 64 - s, ps = (e, t, s) => e << s - 32 | t >>> 64 - s, rt = [], ot = [], at = [], bs = /* @__PURE__ */ BigInt(0), O = /* @__PURE__ */ BigInt(1), xs = /* @__PURE__ */ BigInt(2), ms = /* @__PURE__ */ BigInt(7), gs = /* @__PURE__ */ BigInt(256), ys = /* @__PURE__ */ BigInt(113); for (let e = 0, t = O, s = 1, n = 0; e < 24; e++) { [s, n] = [n, (2 * s + 3 * n) % 5], rt.push(2 * (5 * n + s)), ot.push((e + 1) * (e + 2) / 2 % 64); let i = bs; for (let r = 0; r < 7; r++) t = (t << O ^ (t >> ms) * ys) % gs, t & xs && (i ^= O << (O << /* @__PURE__ */ BigInt(r)) - O); at.push(i); } const [ws, Bs] = /* @__PURE__ */ ls(at, !0), Te = (e, t, s) => s > 32 ? hs(e, t, s) : fs(e, t, s), Se = (e, t, s) => s > 32 ? ps(e, t, s) : ds(e, t, s); function Ps(e, t = 24) { const s = new Uint32Array(10); for (let n = 24 - t; n < 24; n++) { for (let o = 0; o < 10; o++) s[o] = e[o] ^ e[o + 10] ^ e[o + 20] ^ e[o + 30] ^ e[o + 40]; for (let o = 0; o < 10; o += 2) { const a = (o + 8) % 10, c = (o + 2) % 10, u = s[c], d = s[c + 1], l = Te(u, d, 1) ^ s[a], b = Se(u, d, 1) ^ s[a + 1]; for (let p = 0; p < 50; p += 10) e[o + p] ^= l, e[o + p + 1] ^= b; } let i = e[2], r = e[3]; for (let o = 0; o < 24; o++) { const a = ot[o], c = Te(i, r, a), u = Se(i, r, a), d = rt[o]; i = e[d], r = e[d + 1], e[d] = c, e[d + 1] = u; } for (let o = 0; o < 50; o += 10) { for (let a = 0; a < 10; a++) s[a] = e[o + a]; for (let a = 0; a < 10; a++) e[o + a] ^= ~s[(a + 2) % 10] & s[(a + 4) % 10]; } e[0] ^= ws[n], e[1] ^= Bs[n]; } s.fill(0); } class xe extends Ze { // NOTE: we accept arguments in bytes instead of bits here. constructor(t, s, n, i = !1, r = 24) { if (super(), this.pos = 0, this.posOut = 0, this.finished = !1, this.destroyed = !1, this.enableXOF = !1, this.blockLen = t, this.suffix = s, this.outputLen = n, this.enableXOF = i, this.rounds = r, ve(n), 0 >= this.blockLen || this.blockLen >= 200) throw new Error("Sha3 supports only keccak-f1600 function"); this.state = new Uint8Array(200), this.state32 = Rt(this.state); } keccak() { Ee || Ie(this.state32), Ps(this.state32, this.rounds), Ee || Ie(this.state32), this.posOut = 0, this.pos = 0; } update(t) { Z(this); const { blockLen: s, state: n } = this; t = pe(t); const i = t.length; for (let r = 0; r < i; ) { const o = Math.min(s - this.pos, i - r); for (let a = 0; a < o; a++) n[this.pos++] ^= t[r++]; this.pos === s && this.keccak(); } return this; } finish() { if (this.finished) return; this.finished = !0; const { state: t, suffix: s, pos: n, blockLen: i } = this; t[n] ^= s, (s & 128) !== 0 && n === i - 1 && this.keccak(), t[i - 1] ^= 128, this.keccak(); } writeInto(t) { Z(this, !1), he(t), this.finish(); const s = this.state, { blockLen: n } = this; for (let i = 0, r = t.length; i < r; ) { this.posOut >= n && this.keccak(); const o = Math.min(n - this.posOut, r - i); t.set(s.subarray(this.posOut, this.posOut + o), i), this.posOut += o, i += o; } return t; } xofInto(t) { if (!this.enableXOF) throw new Error("XOF is not possible for this instance"); return this.writeInto(t); } xof(t) { return ve(t), this.xofInto(new Uint8Array(t)); } digestInto(t) { if (Ye(t, this), this.finished) throw new Error("digest() was already called"); return this.writeInto(t), this.destroy(), t; } digest() { return this.digestInto(new Uint8Array(this.outputLen)); } destroy() { this.destroyed = !0, this.state.fill(0); } _cloneInto(t) { const { blockLen: s, suffix: n, outputLen: i, rounds: r, enableXOF: o } = this; return t || (t = new xe(s, n, i, o, r)), t.state32.set(this.state32), t.pos = this.pos, t.posOut = this.posOut, t.finished = this.finished, t.rounds = r, t.suffix = n, t.outputLen = i, t.enableXOF = o, t.destroyed = this.destroyed, t; } } const vs = (e, t, s) => Je(() => new xe(t, e, s)), Es = /* @__PURE__ */ vs(1, 136, 256 / 8); function Is(e, t) { return Es(N(e, { strict: !1 }) ? Ve(e) : e); } const ie = /* @__PURE__ */ new it(8192); function Us(e, t) { if (ie.has(`${e}.${t}`)) return ie.get(`${e}.${t}`); const s = e.substring(2).toLowerCase(), n = Is(Me(s)), i = s.split(""); for (let o = 0; o < 40; o += 2) n[o >> 1] >> 4 >= 8 && i[o] && (i[o] = i[o].toUpperCase()), (n[o >> 1] & 15) >= 8 && i[o + 1] && (i[o + 1] = i[o + 1].toUpperCase()); const r = `0x${i.join("")}`; return ie.set(`${e}.${t}`, r), r; } const zs = /^0x[a-fA-F0-9]{40}$/, re = /* @__PURE__ */ new it(8192); function z(e, t) { const { strict: s = !0 } = t ?? {}, n = `${e}.${s}`; if (re.has(n)) return re.get(n); const i = zs.test(e) ? e.toLowerCase() === e ? !0 : s ? Us(e) === e : !0 : !1; return re.set(n, i), i; } function As(e, t, s, { strict: n } = {}) { return N(e, { strict: !1 }) ? Ss(e, t, s, { strict: n }) : Ts(e, t, s, { strict: n }); } function ct(e, t, s) { if (S(e) !== s - t) throw new pt({ offset: s, position: "end", size: S(e) }); } function Ts(e, t, s, { strict: n } = {}) { const i = e.slice(t, s); return n && ct(i, t, s), i; } function Ss(e, t, s, { strict: n } = {}) { const i = `0x${e.replace("0x", "").slice(t * 2, s * 2)}`; return n && ct(i, t, s), i; } function Ls(e) { const { authorizationList: t } = e; if (t) for (const s of t) { const { chainId: n } = s, i = s.address; if (!z(i)) throw new U({ address: i }); if (n < 0) throw new ee({ chainId: n }); } me(e); } function ks(e) { const { blobVersionedHashes: t } = e; if (t) { if (t.length === 0) throw new st(); for (const s of t) { const n = S(s), i = Y(As(s, 0, 1)); if (n !== 32) throw new rs({ hash: s, size: n }); if (i !== tt) throw new os({ hash: s, version: i }); } } me(e); } function me(e) { const { chainId: t, maxPriorityFeePerGas: s, maxFeePerGas: n, to: i } = e; if (t <= 0) throw new ee({ chainId: t }); if (i && !z(i)) throw new U({ address: i }); if (n && n > de) throw new te({ maxFeePerGas: n }); if (s && n && s > n) throw new nt({ maxFeePerGas: n, maxPriorityFeePerGas: s }); } function $s(e) { const { chainId: t, maxPriorityFeePerGas: s, gasPrice: n, maxFeePerGas: i, to: r } = e; if (t <= 0) throw new ee({ chainId: t }); if (r && !z(r)) throw new U({ address: r }); if (s || i) throw new h("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute."); if (n && n > de) throw new te({ maxFeePerGas: n }); } function Fs(e) { const { chainId: t, maxPriorityFeePerGas: s, gasPrice: n, maxFeePerGas: i, to: r } = e; if (r && !z(r)) throw new U({ address: r }); if (typeof t < "u" && t <= 0) throw new ee({ chainId: t }); if (s || i) throw new h("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute."); if (n && n > de) throw new te({ maxFeePerGas: n }); } function Gs(e) { if (e.type) return e.type; if (typeof e.authorizationList < "u") return "eip7702"; if (typeof e.blobs < "u" || typeof e.blobVersionedHashes < "u" || typeof e.maxFeePerBlobGas < "u" || typeof e.sidecars < "u") return "eip4844"; if (typeof e.maxFeePerGas < "u" || typeof e.maxPriorityFeePerGas < "u") return "eip1559"; if (typeof e.gasPrice < "u") return typeof e.accessList < "u" ? "eip2930" : "legacy"; throw new Nt({ transaction: e }); } function se(e) { if (!e || e.length === 0) return []; const t = []; for (let s = 0; s < e.length; s++) { const { address: n, storageKeys: i } = e[s]; for (let r = 0; r < i.length; r++) if (i[r].length - 2 !== 64) throw new Vt({ storageKey: i[r] }); if (!z(n, { strict: !1 })) throw new U({ address: n }); t.push([n, i]); } return t; } function Hs(e, t) { const s = Gs(e); return s === "eip1559" ? _s(e, t) : s === "eip2930" ? Ds(e, t) : s === "eip4844" ? Cs(e, t) : s === "eip7702" ? Os(e, t) : Ns(e, t); } function Os(e, t) { const { authorizationList: s, chainId: n, gas: i, nonce: r, to: o, value: a, maxFeePerGas: c, maxPriorityFeePerGas: u, accessList: d, data: l } = e; Ls(e); const b = se(d), p = Mt(s); return V([ "0x04", I([ f(n), r ? f(r) : "0x", u ? f(u) : "0x", c ? f(c) : "0x", i ? f(i) : "0x", o ?? "0x", a ? f(a) : "0x", l ?? "0x", b, p, ...M(e, t) ]) ]); } function Cs(e, t) { const { chainId: s, gas: n, nonce: i, to: r, value: o, maxFeePerBlobGas: a, maxFeePerGas: c, maxPriorityFeePerGas: u, accessList: d, data: l } = e; ks(e); let b = e.blobVersionedHashes, p = e.sidecars; if (e.blobs && (typeof b > "u" || typeof p > "u")) { const v = typeof e.blobs[0] == "string" ? e.blobs : e.blobs.map((G) => P(G)), j = e.kzg, F = We({ blobs: v, kzg: j }); if (typeof b > "u" && (b = ns({ commitments: F })), typeof p > "u") { const G = qe({ blobs: v, commitments: F, kzg: j }); p = cs({ blobs: v, commitments: F, proofs: G }); } } const $ = se(d), A = [ f(s), i ? f(i) : "0x", u ? f(u) : "0x", c ? f(c) : "0x", n ? f(n) : "0x", r ?? "0x", o ? f(o) : "0x", l ?? "0x", $, a ? f(a) : "0x", b ?? [], ...M(e, t) ], ge = [], ye = [], we = []; if (p) for (let v = 0; v < p.length; v++) { const { blob: j, commitment: F, proof: G } = p[v]; ge.push(j), ye.push(F), we.push(G); } return V([ "0x03", // If sidecars are enabled, envelope turns into a "wrapper": I(p ? [A, ge, ye, we] : A) ]); } function _s(e, t) { const { chainId: s, gas: n, nonce: i, to: r, value: o, maxFeePerGas: a, maxPriorityFeePerGas: c, accessList: u, data: d } = e; me(e); const l = se(u), b = [ f(s), i ? f(i) : "0x", c ? f(c) : "0x", a ? f(a) : "0x", n ? f(n) : "0x", r ?? "0x", o ? f(o) : "0x", d ?? "0x", l, ...M(e, t) ]; return V([ "0x02", I(b) ]); } function Ds(e, t) { const { chainId: s, gas: n, data: i, nonce: r, to: o, value: a, accessList: c, gasPrice: u } = e; $s(e); const d = se(c), l = [ f(s), r ? f(r) : "0x", u ? f(u) : "0x", n ? f(n) : "0x", o ?? "0x", a ? f(a) : "0x", i ?? "0x", d, ...M(e, t) ]; return V([ "0x01", I(l) ]); } function Ns(e, t) { const { chainId: s = 0, gas: n, data: i, nonce: r, to: o, value: a, gasPrice: c } = e; Fs(e); let u = [ r ? f(r) : "0x", c ? f(c) : "0x", n ? f(n) : "0x", o ?? "0x", a ? f(a) : "0x", i ?? "0x" ]; if (t) { const d = (() => { if (t.v >= 35n) return (t.v - 35n) / 2n > 0 ? t.v : 27n + (t.v === 35n ? 0n : 1n); if (s > 0) return BigInt(s * 2) + BigInt(35n + t.v - 27n); const p = 27n + (t.v === 27n ? 0n : 1n); if (t.v !== p) throw new Dt({ v: t.v }); return p; })(), l = q(t.r), b = q(t.s); u = [ ...u, f(d), l === "0x00" ? "0x" : l, b === "0x00" ? "0x" : b ]; } else s > 0 && (u = [ ...u, f(s), "0x", "0x" ]); return I(u); } function M(e, t) { const s = t ?? e, { v: n, yParity: i } = s; if (typeof s.r > "u") return []; if (typeof s.s > "u") return []; if (typeof n > "u" && typeof i > "u") return []; const r = q(s.r), o = q(s.s); return [typeof i == "number" ? i ? f(1) : "0x" : n === 0n ? "0x" : n === 1n ? f(1) : n === 27n ? "0x" : f(1), r === "0x00" ? "0x" : r, o === "0x00" ? "0x" : o]; } const Vs = { gasPriceOracle: { address: "0x420000000000000000000000000000000000000F" }, l1Block: { address: "0x4200000000000000000000000000000000000015" }, l2CrossDomainMessenger: { address: "0x4200000000000000000000000000000000000007" }, l2Erc721Bridge: { address: "0x4200000000000000000000000000000000000014" }, l2StandardBridge: { address: "0x4200000000000000000000000000000000000010" }, l2ToL1MessagePasser: { address: "0x4200000000000000000000000000000000000016" } }, Ms = { block: /* @__PURE__ */ zt({ format(e) { var s; return { transactions: (s = e.transactions) == null ? void 0 : s.map((n) => { if (typeof n == "string") return n; const i = fe(n); return i.typeHex === "0x7e" && (i.isSystemTx = n.isSystemTx, i.mint = n.mint ? T(n.mint) : void 0, i.sourceHash = n.sourceHash, i.type = "deposit"), i; }), stateRoot: e.stateRoot }; } }), transaction: /* @__PURE__ */ Et({ format(e) { const t = {}; return e.type === "0x7e" && (t.isSystemTx = e.isSystemTx, t.mint = e.mint ? T(e.mint) : void 0, t.sourceHash = e.sourceHash, t.type = "deposit"), t; } }), transactionReceipt: /* @__PURE__ */ Lt({ format(e) { return { l1GasPrice: e.l1GasPrice ? T(e.l1GasPrice) : null, l1GasUsed: e.l1GasUsed ? T(e.l1GasUsed) : null, l1Fee: e.l1Fee ? T(e.l1Fee) : null, l1FeeScalar: e.l1FeeScalar ? Number(e.l1FeeScalar) : null }; } }) }; function js(e, t) { return Xs(e) ? Ks(e) : Hs(e, t); } const Rs = { transaction: js }; function Ks(e) { Ws(e); const { sourceHash: t, data: s, from: n, gas: i, isSystemTx: r, mint: o, to: a, value: c } = e, u = [ t, n, a ?? "0x", o ? f(o) : "0x", c ? f(c) : "0x", i ? f(i) : "0x", r ? "0x1" : "0x", s ?? "0x" ]; return V([ "0x7e", I(u) ]); } function Xs(e) { return e.type === "deposit" || typeof e.sourceHash < "u"; } function Ws(e) { const { from: t, to: s } = e; if (t && !z(t)) throw new U({ address: t }); if (s && !z(s)) throw new U({ address: s }); } const J = { contracts: Vs, formatters: Ms, serializers: Rs }, C = 1, oe = /* @__PURE__ */ D({ ...J, id: 8453, name: "Base", nativeCurrency: { name: "Ether", symbol: "ETH", decimals: 18 }, rpcUrls: { default: { http: ["https://mainnet.base.org"] } }, blockExplorers: { default: { name: "Basescan", url: "https://basescan.org", apiUrl: "https://api.basescan.org/api" } }, contracts: { ...J.contracts, disputeGameFactory: { [C]: { address: "0x43edB88C4B80fDD2AdFF2412A7BebF9dF42cB40e" } }, l2OutputOracle: { [C]: { address: "0x56315b90c40730925ec5485cf004d835058518A0" } }, multicall3: { address: "0xca11bde05977b3631167028862be2a173976ca11", blockCreated: 5022 }, portal: { [C]: { address: "0x49048044D57e1C92A77f79988d21Fa8fAF74E97e", blockCreated: 17482143 } }, l1StandardBridge: { [C]: { address: "0x3154Cf16ccdb4C6d922629664174b904d80F2C35", blockCreated: 17482143 } } }, sourceId: C }), K = /* @__PURE__ */ D({ id: 56, name: "BNB Smart Chain", nativeCurrency: { decimals: 18, name: "BNB", symbol: "BNB" }, rpcUrls: { default: { http: ["https://56.rpc.thirdweb.com"] } }, blockExplorers: { default: { name: "BscScan", url: "https://bscscan.com", apiUrl: "https://api.bscscan.com/api" } }, contracts: { multicall3: { address: "0xca11bde05977b3631167028862be2a173976ca11", blockCreated: 15921452 } } }), X = /* @__PURE__ */ D({ id: 97, name: "Binance Smart Chain Testnet", nativeCurrency: { decimals: 18, name: "BNB", symbol: "tBNB" }, rpcUrls: { default: { http: ["https://data-seed-prebsc-1-s1.bnbchain.org:8545"] } }, blockExplorers: { default: { name: "BscScan", url: "https://testnet.bscscan.com", apiUrl: "https://api-testnet.bscscan.com/api" } }, contracts: { multicall3: { address: "0xca11bde05977b3631167028862be2a173976ca11", blockCreated: 17422483 } }, testnet: !0 }), ae = /* @__PURE__ */ D({ id: 1, name: "Ethereum", nativeCurrency: { name: "Ether", symbol: "ETH", decimals: 18 }, rpcUrls: { default: { http: ["https://eth.merkle.io"] } }, blockExplorers: { default: { name: "Etherscan", url: "https://etherscan.io", apiUrl: "https://api.etherscan.io/api" } }, contracts: { ensRegistry: { address: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e" }, ensUniversalResolver: { address: "0xce01f8eee7E479C928F8919abD53E553a36CeF67", blockCreated: 19258213 }, multicall3: { address: "0xca11bde05977b3631167028862be2a173976ca11", blockCreated: 14353601 } } }), W = 11155111, ce = /* @__PURE__ */ D({ ...J, id: 1301, name: "Unichain Sepolia", nativeCurrency: { name: "Ether", symbol: "ETH", decimals: 18 }