{"version":3,"file":"static/chunks/8508.ff3a48090b0831dd.js","mappings":"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","sources":["webpack://_N_E/./node_modules/@noble/hashes/_assert.js","webpack://_N_E/./node_modules/@noble/hashes/_u64.js","webpack://_N_E/./node_modules/@noble/hashes/crypto.js","webpack://_N_E/./node_modules/@noble/hashes/sha3.js","webpack://_N_E/./node_modules/@noble/hashes/utils.js","webpack://_N_E/./node_modules/preact/dist/preact.module.js","webpack://_N_E/./node_modules/preact/hooks/dist/hooks.module.js","webpack://_N_E/./node_modules/@coinbase/wallet-sdk/dist/vendor-js/eth-eip712-util/abi.cjs","webpack://_N_E/./node_modules/@coinbase/wallet-sdk/dist/vendor-js/eth-eip712-util/index.cjs","webpack://_N_E/./node_modules/@coinbase/wallet-sdk/dist/vendor-js/eth-eip712-util/util.cjs","webpack://_N_E/./node_modules/@coinbase/wallet-sdk/dist/core/storage/ScopedLocalStorage.js","webpack://_N_E/./node_modules/@coinbase/wallet-sdk/dist/core/error/constants.js","webpack://_N_E/./node_modules/@coinbase/wallet-sdk/dist/core/error/utils.js","webpack://_N_E/./node_modules/@coinbase/wallet-sdk/dist/core/error/errors.js","webpack://_N_E/./node_modules/@coinbase/wallet-sdk/dist/core/type/index.js","webpack://_N_E/./node_modules/@coinbase/wallet-sdk/dist/core/type/util.js","webpack://_N_E/./node_modules/@coinbase/wallet-sdk/dist/util/cipher.js","webpack://_N_E/./node_modules/@coinbase/wallet-sdk/dist/sign/scw/SCWKeyManager.js","webpack://_N_E/./node_modules/@coinbase/wallet-sdk/dist/sdk-info.js","webpack://_N_E/./node_modules/@coinbase/wallet-sdk/dist/util/provider.js","webpack://_N_E/./node_modules/@coinbase/wallet-sdk/dist/sign/scw/SCWSigner.js","webpack://_N_E/./node_modules/@coinbase/wallet-sdk/dist/sign/walletlink/relay/constants.js","webpack://_N_E/./node_modules/@coinbase/wallet-sdk/dist/sign/walletlink/relay/type/Web3Response.js","webpack://_N_E/./node_modules/@coinbase/wallet-sdk/dist/sign/walletlink/relay/connection/WalletLinkCipher.js","webpack://_N_E/./node_modules/@coinbase/wallet-sdk/dist/sign/walletlink/relay/connection/WalletLinkHTTP.js","webpack://_N_E/./node_modules/@coinbase/wallet-sdk/dist/sign/walletlink/relay/connection/WalletLinkWebSocket.js","webpack://_N_E/./node_modules/@coinbase/wallet-sdk/dist/sign/walletlink/relay/connection/WalletLinkConnection.js","webpack://_N_E/./node_modules/@coinbase/wallet-sdk/dist/sign/walletlink/relay/RelayEventManager.js","webpack://_N_E/./node_modules/@coinbase/wallet-sdk/dist/sign/walletlink/relay/type/WalletLinkSession.js","webpack://_N_E/./node_modules/@coinbase/wallet-sdk/dist/sign/walletlink/relay/ui/components/util.js","webpack://_N_E/./node_modules/@coinbase/wallet-sdk/dist/sign/walletlink/relay/ui/components/cssReset/cssReset-css.js","webpack://_N_E/./node_modules/@coinbase/wallet-sdk/dist/sign/walletlink/relay/ui/components/cssReset/cssReset.js","webpack://_N_E/./node_modules/@coinbase/wallet-sdk/dist/sign/walletlink/relay/ui/components/Snackbar/Snackbar-css.js","webpack://_N_E/./node_modules/@coinbase/wallet-sdk/dist/sign/walletlink/relay/ui/components/Snackbar/Snackbar.js","webpack://_N_E/./node_modules/@coinbase/wallet-sdk/dist/sign/walletlink/relay/ui/WalletLinkRelayUI.js","webpack://_N_E/./node_modules/@coinbase/wallet-sdk/dist/sign/walletlink/relay/ui/components/RedirectDialog/RedirectDialog-css.js","webpack://_N_E/./node_modules/@coinbase/wallet-sdk/dist/sign/walletlink/relay/ui/components/RedirectDialog/RedirectDialog.js","webpack://_N_E/./node_modules/@coinbase/wallet-sdk/dist/core/constants.js","webpack://_N_E/./node_modules/@coinbase/wallet-sdk/dist/sign/walletlink/relay/ui/WLMobileRelayUI.js","webpack://_N_E/./node_modules/@coinbase/wallet-sdk/dist/sign/walletlink/relay/WalletLinkRelay.js","webpack://_N_E/./node_modules/@coinbase/wallet-sdk/dist/sign/walletlink/WalletLinkSigner.js","webpack://_N_E/./node_modules/@coinbase/wallet-sdk/dist/sign/util.js","webpack://_N_E/./node_modules/@coinbase/wallet-sdk/dist/util/checkCrossOriginOpenerPolicy.js","webpack://_N_E/./node_modules/@coinbase/wallet-sdk/dist/util/web.js","webpack://_N_E/./node_modules/@coinbase/wallet-sdk/dist/core/communicator/Communicator.js","webpack://_N_E/./node_modules/@coinbase/wallet-sdk/dist/core/error/serialize.js","webpack://_N_E/./node_modules/@coinbase/wallet-sdk/dist/core/provider/interface.js","webpack://_N_E/./node_modules/@coinbase/wallet-sdk/dist/CoinbaseWalletProvider.js","webpack://_N_E/./node_modules/@coinbase/wallet-sdk/dist/createCoinbaseWalletProvider.js","webpack://_N_E/./node_modules/@coinbase/wallet-sdk/dist/util/validatePreferences.js","webpack://_N_E/./node_modules/@coinbase/wallet-sdk/dist/createCoinbaseWalletSDK.js","webpack://_N_E/./node_modules/@coinbase/wallet-sdk/dist/index.js"],"sourcesContent":["\"use strict\";\n/**\n * Internal assertion helpers.\n * @module\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.anumber = anumber;\nexports.abytes = abytes;\nexports.ahash = ahash;\nexports.aexists = aexists;\nexports.aoutput = aoutput;\n/** Asserts something is positive integer. */\nfunction anumber(n) {\n if (!Number.isSafeInteger(n) || n < 0)\n throw new Error('positive integer expected, got ' + n);\n}\n/** Is number an Uint8Array? Copied from utils for perf. */\nfunction isBytes(a) {\n return a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array');\n}\n/** Asserts something is Uint8Array. */\nfunction abytes(b, ...lengths) {\n if (!isBytes(b))\n throw new Error('Uint8Array expected');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new Error('Uint8Array expected of length ' + lengths + ', got length=' + b.length);\n}\n/** Asserts something is hash */\nfunction ahash(h) {\n if (typeof h !== 'function' || typeof h.create !== 'function')\n throw new Error('Hash should be wrapped by utils.wrapConstructor');\n anumber(h.outputLen);\n anumber(h.blockLen);\n}\n/** Asserts a hash instance has not been destroyed / finished */\nfunction aexists(instance, checkFinished = true) {\n if (instance.destroyed)\n throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished)\n throw new Error('Hash#digest() has already been called');\n}\n/** Asserts output is properly-sized byte array */\nfunction aoutput(out, instance) {\n abytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error('digestInto() expects output buffer of length at least ' + min);\n }\n}\n//# sourceMappingURL=_assert.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.add5L = exports.add5H = exports.add4H = exports.add4L = exports.add3H = exports.add3L = exports.rotlBL = exports.rotlBH = exports.rotlSL = exports.rotlSH = exports.rotr32L = exports.rotr32H = exports.rotrBL = exports.rotrBH = exports.rotrSL = exports.rotrSH = exports.shrSL = exports.shrSH = exports.toBig = void 0;\nexports.fromBig = fromBig;\nexports.split = split;\nexports.add = add;\n/**\n * Internal helpers for u64. BigUint64Array is too slow as per 2025, so we implement it using Uint32Array.\n * @todo re-check https://issues.chromium.org/issues/42212588\n * @module\n */\nconst U32_MASK64 = /* @__PURE__ */ BigInt(2 ** 32 - 1);\nconst _32n = /* @__PURE__ */ BigInt(32);\nfunction fromBig(n, le = false) {\n if (le)\n return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) };\n return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };\n}\nfunction split(lst, le = false) {\n let Ah = new Uint32Array(lst.length);\n let Al = new Uint32Array(lst.length);\n for (let i = 0; i < lst.length; i++) {\n const { h, l } = fromBig(lst[i], le);\n [Ah[i], Al[i]] = [h, l];\n }\n return [Ah, Al];\n}\nconst toBig = (h, l) => (BigInt(h >>> 0) << _32n) | BigInt(l >>> 0);\nexports.toBig = toBig;\n// for Shift in [0, 32)\nconst shrSH = (h, _l, s) => h >>> s;\nexports.shrSH = shrSH;\nconst shrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\nexports.shrSL = shrSL;\n// Right rotate for Shift in [1, 32)\nconst rotrSH = (h, l, s) => (h >>> s) | (l << (32 - s));\nexports.rotrSH = rotrSH;\nconst rotrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\nexports.rotrSL = rotrSL;\n// Right rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotrBH = (h, l, s) => (h << (64 - s)) | (l >>> (s - 32));\nexports.rotrBH = rotrBH;\nconst rotrBL = (h, l, s) => (h >>> (s - 32)) | (l << (64 - s));\nexports.rotrBL = rotrBL;\n// Right rotate for shift===32 (just swaps l&h)\nconst rotr32H = (_h, l) => l;\nexports.rotr32H = rotr32H;\nconst rotr32L = (h, _l) => h;\nexports.rotr32L = rotr32L;\n// Left rotate for Shift in [1, 32)\nconst rotlSH = (h, l, s) => (h << s) | (l >>> (32 - s));\nexports.rotlSH = rotlSH;\nconst rotlSL = (h, l, s) => (l << s) | (h >>> (32 - s));\nexports.rotlSL = rotlSL;\n// Left rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotlBH = (h, l, s) => (l << (s - 32)) | (h >>> (64 - s));\nexports.rotlBH = rotlBH;\nconst rotlBL = (h, l, s) => (h << (s - 32)) | (l >>> (64 - s));\nexports.rotlBL = rotlBL;\n// JS uses 32-bit signed integers for bitwise operations which means we cannot\n// simple take carry out of low bit sum by shift, we need to use division.\nfunction add(Ah, Al, Bh, Bl) {\n const l = (Al >>> 0) + (Bl >>> 0);\n return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 };\n}\n// Addition with more than 2 elements\nconst add3L = (Al, Bl, Cl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);\nexports.add3L = add3L;\nconst add3H = (low, Ah, Bh, Ch) => (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0;\nexports.add3H = add3H;\nconst add4L = (Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);\nexports.add4L = add4L;\nconst add4H = (low, Ah, Bh, Ch, Dh) => (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0;\nexports.add4H = add4H;\nconst add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);\nexports.add5L = add5L;\nconst add5H = (low, Ah, Bh, Ch, Dh, Eh) => (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;\nexports.add5H = add5H;\n// prettier-ignore\nconst u64 = {\n fromBig, split, toBig,\n shrSH, shrSL,\n rotrSH, rotrSL, rotrBH, rotrBL,\n rotr32H, rotr32L,\n rotlSH, rotlSL, rotlBH, rotlBL,\n add, add3L, add3H, add4L, add4H, add5H, add5L,\n};\nexports.default = u64;\n//# sourceMappingURL=_u64.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.crypto = void 0;\nexports.crypto = typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined;\n//# sourceMappingURL=crypto.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.shake256 = exports.shake128 = exports.keccak_512 = exports.keccak_384 = exports.keccak_256 = exports.keccak_224 = exports.sha3_512 = exports.sha3_384 = exports.sha3_256 = exports.sha3_224 = exports.Keccak = void 0;\nexports.keccakP = keccakP;\n/**\n * SHA3 (keccak) hash function, based on a new \"Sponge function\" design.\n * Different from older hashes, the internal state is bigger than output size.\n *\n * Check out [FIPS-202](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf),\n * [Website](https://keccak.team/keccak.html),\n * [the differences between SHA-3 and Keccak](https://crypto.stackexchange.com/questions/15727/what-are-the-key-differences-between-the-draft-sha-3-standard-and-the-keccak-sub).\n *\n * Check out `sha3-addons` module for cSHAKE, k12, and others.\n * @module\n */\nconst _assert_js_1 = require(\"./_assert.js\");\nconst _u64_js_1 = require(\"./_u64.js\");\nconst utils_js_1 = require(\"./utils.js\");\n// Various per round constants calculations\nconst SHA3_PI = [];\nconst SHA3_ROTL = [];\nconst _SHA3_IOTA = [];\nconst _0n = /* @__PURE__ */ BigInt(0);\nconst _1n = /* @__PURE__ */ BigInt(1);\nconst _2n = /* @__PURE__ */ BigInt(2);\nconst _7n = /* @__PURE__ */ BigInt(7);\nconst _256n = /* @__PURE__ */ BigInt(256);\nconst _0x71n = /* @__PURE__ */ BigInt(0x71);\nfor (let round = 0, R = _1n, x = 1, y = 0; round < 24; round++) {\n // Pi\n [x, y] = [y, (2 * x + 3 * y) % 5];\n SHA3_PI.push(2 * (5 * y + x));\n // Rotational\n SHA3_ROTL.push((((round + 1) * (round + 2)) / 2) % 64);\n // Iota\n let t = _0n;\n for (let j = 0; j < 7; j++) {\n R = ((R << _1n) ^ ((R >> _7n) * _0x71n)) % _256n;\n if (R & _2n)\n t ^= _1n << ((_1n << /* @__PURE__ */ BigInt(j)) - _1n);\n }\n _SHA3_IOTA.push(t);\n}\nconst [SHA3_IOTA_H, SHA3_IOTA_L] = /* @__PURE__ */ (0, _u64_js_1.split)(_SHA3_IOTA, true);\n// Left rotation (without 0, 32, 64)\nconst rotlH = (h, l, s) => (s > 32 ? (0, _u64_js_1.rotlBH)(h, l, s) : (0, _u64_js_1.rotlSH)(h, l, s));\nconst rotlL = (h, l, s) => (s > 32 ? (0, _u64_js_1.rotlBL)(h, l, s) : (0, _u64_js_1.rotlSL)(h, l, s));\n/** `keccakf1600` internal function, additionally allows to adjust round count. */\nfunction keccakP(s, rounds = 24) {\n const B = new Uint32Array(5 * 2);\n // NOTE: all indices are x2 since we store state as u32 instead of u64 (bigints to slow in js)\n for (let round = 24 - rounds; round < 24; round++) {\n // Theta θ\n for (let x = 0; x < 10; x++)\n B[x] = s[x] ^ s[x + 10] ^ s[x + 20] ^ s[x + 30] ^ s[x + 40];\n for (let x = 0; x < 10; x += 2) {\n const idx1 = (x + 8) % 10;\n const idx0 = (x + 2) % 10;\n const B0 = B[idx0];\n const B1 = B[idx0 + 1];\n const Th = rotlH(B0, B1, 1) ^ B[idx1];\n const Tl = rotlL(B0, B1, 1) ^ B[idx1 + 1];\n for (let y = 0; y < 50; y += 10) {\n s[x + y] ^= Th;\n s[x + y + 1] ^= Tl;\n }\n }\n // Rho (ρ) and Pi (π)\n let curH = s[2];\n let curL = s[3];\n for (let t = 0; t < 24; t++) {\n const shift = SHA3_ROTL[t];\n const Th = rotlH(curH, curL, shift);\n const Tl = rotlL(curH, curL, shift);\n const PI = SHA3_PI[t];\n curH = s[PI];\n curL = s[PI + 1];\n s[PI] = Th;\n s[PI + 1] = Tl;\n }\n // Chi (χ)\n for (let y = 0; y < 50; y += 10) {\n for (let x = 0; x < 10; x++)\n B[x] = s[y + x];\n for (let x = 0; x < 10; x++)\n s[y + x] ^= ~B[(x + 2) % 10] & B[(x + 4) % 10];\n }\n // Iota (ι)\n s[0] ^= SHA3_IOTA_H[round];\n s[1] ^= SHA3_IOTA_L[round];\n }\n B.fill(0);\n}\n/** Keccak sponge function. */\nclass Keccak extends utils_js_1.Hash {\n // NOTE: we accept arguments in bytes instead of bits here.\n constructor(blockLen, suffix, outputLen, enableXOF = false, rounds = 24) {\n super();\n this.blockLen = blockLen;\n this.suffix = suffix;\n this.outputLen = outputLen;\n this.enableXOF = enableXOF;\n this.rounds = rounds;\n this.pos = 0;\n this.posOut = 0;\n this.finished = false;\n this.destroyed = false;\n // Can be passed from user as dkLen\n (0, _assert_js_1.anumber)(outputLen);\n // 1600 = 5x5 matrix of 64bit. 1600 bits === 200 bytes\n // 0 < blockLen < 200\n if (0 >= this.blockLen || this.blockLen >= 200)\n throw new Error('Sha3 supports only keccak-f1600 function');\n this.state = new Uint8Array(200);\n this.state32 = (0, utils_js_1.u32)(this.state);\n }\n keccak() {\n if (!utils_js_1.isLE)\n (0, utils_js_1.byteSwap32)(this.state32);\n keccakP(this.state32, this.rounds);\n if (!utils_js_1.isLE)\n (0, utils_js_1.byteSwap32)(this.state32);\n this.posOut = 0;\n this.pos = 0;\n }\n update(data) {\n (0, _assert_js_1.aexists)(this);\n const { blockLen, state } = this;\n data = (0, utils_js_1.toBytes)(data);\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n for (let i = 0; i < take; i++)\n state[this.pos++] ^= data[pos++];\n if (this.pos === blockLen)\n this.keccak();\n }\n return this;\n }\n finish() {\n if (this.finished)\n return;\n this.finished = true;\n const { state, suffix, pos, blockLen } = this;\n // Do the padding\n state[pos] ^= suffix;\n if ((suffix & 0x80) !== 0 && pos === blockLen - 1)\n this.keccak();\n state[blockLen - 1] ^= 0x80;\n this.keccak();\n }\n writeInto(out) {\n (0, _assert_js_1.aexists)(this, false);\n (0, _assert_js_1.abytes)(out);\n this.finish();\n const bufferOut = this.state;\n const { blockLen } = this;\n for (let pos = 0, len = out.length; pos < len;) {\n if (this.posOut >= blockLen)\n this.keccak();\n const take = Math.min(blockLen - this.posOut, len - pos);\n out.set(bufferOut.subarray(this.posOut, this.posOut + take), pos);\n this.posOut += take;\n pos += take;\n }\n return out;\n }\n xofInto(out) {\n // Sha3/Keccak usage with XOF is probably mistake, only SHAKE instances can do XOF\n if (!this.enableXOF)\n throw new Error('XOF is not possible for this instance');\n return this.writeInto(out);\n }\n xof(bytes) {\n (0, _assert_js_1.anumber)(bytes);\n return this.xofInto(new Uint8Array(bytes));\n }\n digestInto(out) {\n (0, _assert_js_1.aoutput)(out, this);\n if (this.finished)\n throw new Error('digest() was already called');\n this.writeInto(out);\n this.destroy();\n return out;\n }\n digest() {\n return this.digestInto(new Uint8Array(this.outputLen));\n }\n destroy() {\n this.destroyed = true;\n this.state.fill(0);\n }\n _cloneInto(to) {\n const { blockLen, suffix, outputLen, rounds, enableXOF } = this;\n to || (to = new Keccak(blockLen, suffix, outputLen, enableXOF, rounds));\n to.state32.set(this.state32);\n to.pos = this.pos;\n to.posOut = this.posOut;\n to.finished = this.finished;\n to.rounds = rounds;\n // Suffix can change in cSHAKE\n to.suffix = suffix;\n to.outputLen = outputLen;\n to.enableXOF = enableXOF;\n to.destroyed = this.destroyed;\n return to;\n }\n}\nexports.Keccak = Keccak;\nconst gen = (suffix, blockLen, outputLen) => (0, utils_js_1.wrapConstructor)(() => new Keccak(blockLen, suffix, outputLen));\n/** SHA3-224 hash function. */\nexports.sha3_224 = gen(0x06, 144, 224 / 8);\n/** SHA3-256 hash function. Different from keccak-256. */\nexports.sha3_256 = gen(0x06, 136, 256 / 8);\n/** SHA3-384 hash function. */\nexports.sha3_384 = gen(0x06, 104, 384 / 8);\n/** SHA3-512 hash function. */\nexports.sha3_512 = gen(0x06, 72, 512 / 8);\n/** keccak-224 hash function. */\nexports.keccak_224 = gen(0x01, 144, 224 / 8);\n/** keccak-256 hash function. Different from SHA3-256. */\nexports.keccak_256 = gen(0x01, 136, 256 / 8);\n/** keccak-384 hash function. */\nexports.keccak_384 = gen(0x01, 104, 384 / 8);\n/** keccak-512 hash function. */\nexports.keccak_512 = gen(0x01, 72, 512 / 8);\nconst genShake = (suffix, blockLen, outputLen) => (0, utils_js_1.wrapXOFConstructorWithOpts)((opts = {}) => new Keccak(blockLen, suffix, opts.dkLen === undefined ? outputLen : opts.dkLen, true));\n/** SHAKE128 XOF with 128-bit security. */\nexports.shake128 = genShake(0x1f, 168, 128 / 8);\n/** SHAKE256 XOF with 256-bit security. */\nexports.shake256 = genShake(0x1f, 136, 256 / 8);\n//# sourceMappingURL=sha3.js.map","\"use strict\";\n/**\n * Utilities for hex, bytes, CSPRNG.\n * @module\n */\n/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Hash = exports.nextTick = exports.byteSwapIfBE = exports.isLE = void 0;\nexports.isBytes = isBytes;\nexports.u8 = u8;\nexports.u32 = u32;\nexports.createView = createView;\nexports.rotr = rotr;\nexports.rotl = rotl;\nexports.byteSwap = byteSwap;\nexports.byteSwap32 = byteSwap32;\nexports.bytesToHex = bytesToHex;\nexports.hexToBytes = hexToBytes;\nexports.asyncLoop = asyncLoop;\nexports.utf8ToBytes = utf8ToBytes;\nexports.toBytes = toBytes;\nexports.concatBytes = concatBytes;\nexports.checkOpts = checkOpts;\nexports.wrapConstructor = wrapConstructor;\nexports.wrapConstructorWithOpts = wrapConstructorWithOpts;\nexports.wrapXOFConstructorWithOpts = wrapXOFConstructorWithOpts;\nexports.randomBytes = randomBytes;\n// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// node.js versions earlier than v19 don't declare it in global scope.\n// For node.js, package.json#exports field mapping rewrites import\n// from `crypto` to `cryptoNode`, which imports native module.\n// Makes the utils un-importable in browsers without a bundler.\n// Once node.js 18 is deprecated (2025-04-30), we can just drop the import.\nconst crypto_1 = require(\"@noble/hashes/crypto\");\nconst _assert_js_1 = require(\"./_assert.js\");\n// export { isBytes } from './_assert.js';\n// We can't reuse isBytes from _assert, because somehow this causes huge perf issues\nfunction isBytes(a) {\n return a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array');\n}\n// Cast array to different type\nfunction u8(arr) {\n return new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\n}\nfunction u32(arr) {\n return new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n}\n// Cast array to view\nfunction createView(arr) {\n return new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n}\n/** The rotate right (circular right shift) operation for uint32 */\nfunction rotr(word, shift) {\n return (word << (32 - shift)) | (word >>> shift);\n}\n/** The rotate left (circular left shift) operation for uint32 */\nfunction rotl(word, shift) {\n return (word << shift) | ((word >>> (32 - shift)) >>> 0);\n}\n/** Is current platform little-endian? Most are. Big-Endian platform: IBM */\nexports.isLE = (() => new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44)();\n// The byte swap operation for uint32\nfunction byteSwap(word) {\n return (((word << 24) & 0xff000000) |\n ((word << 8) & 0xff0000) |\n ((word >>> 8) & 0xff00) |\n ((word >>> 24) & 0xff));\n}\n/** Conditionally byte swap if on a big-endian platform */\nexports.byteSwapIfBE = exports.isLE\n ? (n) => n\n : (n) => byteSwap(n);\n/** In place byte swap for Uint32Array */\nfunction byteSwap32(arr) {\n for (let i = 0; i < arr.length; i++) {\n arr[i] = byteSwap(arr[i]);\n }\n}\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n/**\n * Convert byte array to hex string.\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nfunction bytesToHex(bytes) {\n (0, _assert_js_1.abytes)(bytes);\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, A: 65, F: 70, a: 97, f: 102 };\nfunction asciiToBase16(ch) {\n if (ch >= asciis._0 && ch <= asciis._9)\n return ch - asciis._0; // '2' => 50-48\n if (ch >= asciis.A && ch <= asciis.F)\n return ch - (asciis.A - 10); // 'B' => 66-(65-10)\n if (ch >= asciis.a && ch <= asciis.f)\n return ch - (asciis.a - 10); // 'b' => 98-(97-10)\n return;\n}\n/**\n * Convert hex string to byte array.\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nfunction hexToBytes(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2)\n throw new Error('hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi));\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2; // multiply first octet, e.g. 'a3' => 10*16+3 => 160 + 3 => 163\n }\n return array;\n}\n/**\n * There is no setImmediate in browser and setTimeout is slow.\n * Call of async fn will return Promise, which will be fullfiled only on\n * next scheduler queue processing step and this is exactly what we need.\n */\nconst nextTick = async () => { };\nexports.nextTick = nextTick;\n/** Returns control to thread each 'tick' ms to avoid blocking. */\nasync function asyncLoop(iters, tick, cb) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick)\n continue;\n await (0, exports.nextTick)();\n ts += diff;\n }\n}\n/**\n * Convert JS string to byte array.\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nfunction utf8ToBytes(str) {\n if (typeof str !== 'string')\n throw new Error('utf8ToBytes expected string, got ' + typeof str);\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n/**\n * Normalizes (non-hex) string or Uint8Array to Uint8Array.\n * Warning: when Uint8Array is passed, it would NOT get copied.\n * Keep in mind for future mutable operations.\n */\nfunction toBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n (0, _assert_js_1.abytes)(data);\n return data;\n}\n/**\n * Copies several Uint8Arrays into one.\n */\nfunction concatBytes(...arrays) {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n (0, _assert_js_1.abytes)(a);\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\n/** For runtime check if class implements interface */\nclass Hash {\n // Safe version that clones internal state\n clone() {\n return this._cloneInto();\n }\n}\nexports.Hash = Hash;\nfunction checkOpts(defaults, opts) {\n if (opts !== undefined && {}.toString.call(opts) !== '[object Object]')\n throw new Error('Options should be object or undefined');\n const merged = Object.assign(defaults, opts);\n return merged;\n}\n/** Wraps hash function, creating an interface on top of it */\nfunction wrapConstructor(hashCons) {\n const hashC = (msg) => hashCons().update(toBytes(msg)).digest();\n const tmp = hashCons();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashCons();\n return hashC;\n}\nfunction wrapConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\nfunction wrapXOFConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\n/** Cryptographically secure PRNG. Uses internal OS-level `crypto.getRandomValues`. */\nfunction randomBytes(bytesLength = 32) {\n if (crypto_1.crypto && typeof crypto_1.crypto.getRandomValues === 'function') {\n return crypto_1.crypto.getRandomValues(new Uint8Array(bytesLength));\n }\n // Legacy Node.js compatibility\n if (crypto_1.crypto && typeof crypto_1.crypto.randomBytes === 'function') {\n return crypto_1.crypto.randomBytes(bytesLength);\n }\n throw new Error('crypto.getRandomValues must be defined');\n}\n//# sourceMappingURL=utils.js.map","var n,l,t,u,i,r,o,e,f,c,s,a,h,p={},v=[],y=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,d=Array.isArray;function w(n,l){for(var t in l)n[t]=l[t];return n}function g(n){n&&n.parentNode&&n.parentNode.removeChild(n)}function _(l,t,u){var i,r,o,e={};for(o in t)\"key\"==o?i=t[o]:\"ref\"==o?r=t[o]:e[o]=t[o];if(arguments.length>2&&(e.children=arguments.length>3?n.call(arguments,2):u),\"function\"==typeof l&&null!=l.defaultProps)for(o in l.defaultProps)void 0===e[o]&&(e[o]=l.defaultProps[o]);return m(l,e,i,r,null)}function m(n,u,i,r,o){var e={type:n,props:u,key:i,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:null==o?++t:o,__i:-1,__u:0};return null==o&&null!=l.vnode&&l.vnode(e),e}function b(){return{current:null}}function k(n){return n.children}function x(n,l){this.props=n,this.context=l}function S(n,l){if(null==l)return n.__?S(n.__,n.__i+1):null;for(var t;ls&&i.sort(e),n=i.shift(),s=i.length,n.__d&&(u=void 0,o=(r=(t=n).__v).__e,f=[],c=[],t.__P&&((u=w({},r)).__v=r.__v+1,l.vnode&&l.vnode(u),O(t.__P,u,r,t.__n,t.__P.namespaceURI,32&r.__u?[o]:null,f,null==o?S(r):o,!!(32&r.__u),c),u.__v=r.__v,u.__.__k[u.__i]=u,z(f,u,c),u.__e!=o&&C(u)));$.__r=0}function I(n,l,t,u,i,r,o,e,f,c,s){var a,h,y,d,w,g,_=u&&u.__k||v,m=l.length;for(f=P(t,l,_,f,m),a=0;a0?m(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):o).__=n,o.__b=n.__b+1,e=null,-1!==(c=o.__i=L(o,t,f,a))&&(a--,(e=t[c])&&(e.__u|=2)),null==e||null===e.__v?(-1==c&&(i>s?h--:if?h--:h++,o.__u|=4))):n.__k[r]=null;if(a)for(r=0;r(null!=f&&0==(2&f.__u)?1:0))for(i=t-1,r=t+1;i>=0||r=0){if((f=l[i])&&0==(2&f.__u)&&o==f.key&&e===f.type)return i;i--}if(r2&&(f.children=arguments.length>3?n.call(arguments,2):u),m(l.type,f,i||l.key,r||l.ref,null)}function K(n){function l(n){var t,u;return this.getChildContext||(t=new Set,(u={})[l.__c]=this,this.getChildContext=function(){return u},this.componentWillUnmount=function(){t=null},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&t.forEach(function(n){n.__e=!0,M(n)})},this.sub=function(n){t.add(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){t&&t.delete(n),l&&l.call(n)}}),n.children}return l.__c=\"__cC\"+h++,l.__=n,l.Provider=l.__l=(l.Consumer=function(n,l){return n.children(l)}).contextType=l,l}n=v.slice,l={__e:function(n,l,t,u){for(var i,r,o;l=l.__;)if((i=l.__c)&&!i.__)try{if((r=i.constructor)&&null!=r.getDerivedStateFromError&&(i.setState(r.getDerivedStateFromError(n)),o=i.__d),null!=i.componentDidCatch&&(i.componentDidCatch(n,u||{}),o=i.__d),o)return i.__E=i}catch(l){n=l}throw n}},t=0,u=function(n){return null!=n&&null==n.constructor},x.prototype.setState=function(n,l){var t;t=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=w({},this.state),\"function\"==typeof n&&(n=n(w({},t),this.props)),n&&w(t,n),null!=n&&this.__v&&(l&&this._sb.push(l),M(this))},x.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),M(this))},x.prototype.render=k,i=[],o=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,e=function(n,l){return n.__v.__b-l.__v.__b},$.__r=0,f=/(PointerCapture)$|Capture$/i,c=0,s=F(!1),a=F(!0),h=0;export{x as Component,k as Fragment,J as cloneElement,K as createContext,_ as createElement,b as createRef,_ as h,G as hydrate,u as isValidElement,l as options,E as render,H as toChildArray};\n//# sourceMappingURL=preact.module.js.map\n","import{options as n}from\"preact\";var t,r,u,i,o=0,f=[],c=n,e=c.__b,a=c.__r,v=c.diffed,l=c.__c,m=c.unmount,s=c.__;function p(n,t){c.__h&&c.__h(r,n,o||t),o=0;var u=r.__H||(r.__H={__:[],__h:[]});return n>=u.__.length&&u.__.push({}),u.__[n]}function d(n){return o=1,h(D,n)}function h(n,u,i){var o=p(t++,2);if(o.t=n,!o.__c&&(o.__=[i?i(u):D(void 0,u),function(n){var t=o.__N?o.__N[0]:o.__[0],r=o.t(t,n);t!==r&&(o.__N=[r,o.__[1]],o.__c.setState({}))}],o.__c=r,!r.__f)){var f=function(n,t,r){if(!o.__c.__H)return!0;var u=o.__c.__H.__.filter(function(n){return!!n.__c});if(u.every(function(n){return!n.__N}))return!c||c.call(this,n,t,r);var i=o.__c.props!==n;return u.forEach(function(n){if(n.__N){var t=n.__[0];n.__=n.__N,n.__N=void 0,t!==n.__[0]&&(i=!0)}}),c&&c.call(this,n,t,r)||i};r.__f=!0;var c=r.shouldComponentUpdate,e=r.componentWillUpdate;r.componentWillUpdate=function(n,t,r){if(this.__e){var u=c;c=void 0,f(n,t,r),c=u}e&&e.call(this,n,t,r)},r.shouldComponentUpdate=f}return o.__N||o.__}function y(n,u){var i=p(t++,3);!c.__s&&C(i.__H,u)&&(i.__=n,i.u=u,r.__H.__h.push(i))}function _(n,u){var i=p(t++,4);!c.__s&&C(i.__H,u)&&(i.__=n,i.u=u,r.__h.push(i))}function A(n){return o=5,T(function(){return{current:n}},[])}function F(n,t,r){o=6,_(function(){if(\"function\"==typeof n){var r=n(t());return function(){n(null),r&&\"function\"==typeof r&&r()}}if(n)return n.current=t(),function(){return n.current=null}},null==r?r:r.concat(n))}function T(n,r){var u=p(t++,7);return C(u.__H,r)&&(u.__=n(),u.__H=r,u.__h=n),u.__}function q(n,t){return o=8,T(function(){return n},t)}function x(n){var u=r.context[n.__c],i=p(t++,9);return i.c=n,u?(null==i.__&&(i.__=!0,u.sub(r)),u.props.value):n.__}function P(n,t){c.useDebugValue&&c.useDebugValue(t?t(n):n)}function b(n){var u=p(t++,10),i=d();return u.__=n,r.componentDidCatch||(r.componentDidCatch=function(n,t){u.__&&u.__(n,t),i[1](n)}),[i[0],function(){i[1](void 0)}]}function g(){var n=p(t++,11);if(!n.__){for(var u=r.__v;null!==u&&!u.__m&&null!==u.__;)u=u.__;var i=u.__m||(u.__m=[0,0]);n.__=\"P\"+i[0]+\"-\"+i[1]++}return n.__}function j(){for(var n;n=f.shift();)if(n.__P&&n.__H)try{n.__H.__h.forEach(z),n.__H.__h.forEach(B),n.__H.__h=[]}catch(t){n.__H.__h=[],c.__e(t,n.__v)}}c.__b=function(n){r=null,e&&e(n)},c.__=function(n,t){n&&t.__k&&t.__k.__m&&(n.__m=t.__k.__m),s&&s(n,t)},c.__r=function(n){a&&a(n),t=0;var i=(r=n.__c).__H;i&&(u===r?(i.__h=[],r.__h=[],i.__.forEach(function(n){n.__N&&(n.__=n.__N),n.u=n.__N=void 0})):(i.__h.forEach(z),i.__h.forEach(B),i.__h=[],t=0)),u=r},c.diffed=function(n){v&&v(n);var t=n.__c;t&&t.__H&&(t.__H.__h.length&&(1!==f.push(t)&&i===c.requestAnimationFrame||((i=c.requestAnimationFrame)||w)(j)),t.__H.__.forEach(function(n){n.u&&(n.__H=n.u),n.u=void 0})),u=r=null},c.__c=function(n,t){t.some(function(n){try{n.__h.forEach(z),n.__h=n.__h.filter(function(n){return!n.__||B(n)})}catch(r){t.some(function(n){n.__h&&(n.__h=[])}),t=[],c.__e(r,n.__v)}}),l&&l(n,t)},c.unmount=function(n){m&&m(n);var t,r=n.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{z(n)}catch(n){t=n}}),r.__H=void 0,t&&c.__e(t,r.__v))};var k=\"function\"==typeof requestAnimationFrame;function w(n){var t,r=function(){clearTimeout(u),k&&cancelAnimationFrame(t),setTimeout(n)},u=setTimeout(r,100);k&&(t=requestAnimationFrame(r))}function z(n){var t=r,u=n.__c;\"function\"==typeof u&&(n.__c=void 0,u()),r=t}function B(n){var t=r;n.__c=n.__(),r=t}function C(n,t){return!n||n.length!==t.length||t.some(function(t,r){return t!==n[r]})}function D(n,t){return\"function\"==typeof t?t(n):t}export{q as useCallback,x as useContext,P as useDebugValue,y as useEffect,b as useErrorBoundary,g as useId,F as useImperativeHandle,_ as useLayoutEffect,T as useMemo,h as useReducer,A as useRef,d as useState};\n//# sourceMappingURL=hooks.module.js.map\n","// Extracted from https://github.com/ethereumjs/ethereumjs-abi and stripped out irrelevant code\n// Original code licensed under the MIT License - Copyright (c) 2015 Alex Beregszaszi\n\n/* eslint-disable */\n//prettier-ignore\nconst util = require('./util.cjs')\n\n// Convert from short to canonical names\n// FIXME: optimise or make this nicer?\nfunction elementaryName (name) {\n if (name.startsWith('int[')) {\n return 'int256' + name.slice(3)\n } else if (name === 'int') {\n return 'int256'\n } else if (name.startsWith('uint[')) {\n return 'uint256' + name.slice(4)\n } else if (name === 'uint') {\n return 'uint256'\n } else if (name.startsWith('fixed[')) {\n return 'fixed128x128' + name.slice(5)\n } else if (name === 'fixed') {\n return 'fixed128x128'\n } else if (name.startsWith('ufixed[')) {\n return 'ufixed128x128' + name.slice(6)\n } else if (name === 'ufixed') {\n return 'ufixed128x128'\n }\n return name\n}\n\n// Parse N from type\nfunction parseTypeN (type) {\n return Number.parseInt(/^\\D+(\\d+)$/.exec(type)[1], 10)\n}\n\n// Parse N,M from typex\nfunction parseTypeNxM (type) {\n var tmp = /^\\D+(\\d+)x(\\d+)$/.exec(type)\n return [ Number.parseInt(tmp[1], 10), Number.parseInt(tmp[2], 10) ]\n}\n\n// Parse N in type[] where \"type\" can itself be an array type.\nfunction parseTypeArray (type) {\n var tmp = type.match(/(.*)\\[(.*?)\\]$/)\n if (tmp) {\n return tmp[2] === '' ? 'dynamic' : Number.parseInt(tmp[2], 10)\n }\n return null\n}\n\nfunction parseNumber (arg) {\n var type = typeof arg\n if (type === 'string' || type === 'number') {\n return BigInt(arg)\n } else if (type === 'bigint') {\n return arg\n } else {\n throw new Error('Argument is not a number')\n }\n}\n\n// Encodes a single item (can be dynamic array)\n// @returns: Buffer\nfunction encodeSingle (type, arg) {\n var size, num, ret, i\n\n if (type === 'address') {\n return encodeSingle('uint160', parseNumber(arg))\n } else if (type === 'bool') {\n return encodeSingle('uint8', arg ? 1 : 0)\n } else if (type === 'string') {\n return encodeSingle('bytes', new Buffer(arg, 'utf8'))\n } else if (isArray(type)) {\n // this part handles fixed-length ([2]) and variable length ([]) arrays\n // NOTE: we catch here all calls to arrays, that simplifies the rest\n if (typeof arg.length === 'undefined') {\n throw new Error('Not an array?')\n }\n size = parseTypeArray(type)\n if (size !== 'dynamic' && size !== 0 && arg.length > size) {\n throw new Error('Elements exceed array size: ' + size)\n }\n ret = []\n type = type.slice(0, type.lastIndexOf('['))\n if (typeof arg === 'string') {\n arg = JSON.parse(arg)\n }\n for (i in arg) {\n ret.push(encodeSingle(type, arg[i]))\n }\n if (size === 'dynamic') {\n var length = encodeSingle('uint256', arg.length)\n ret.unshift(length)\n }\n return Buffer.concat(ret)\n } else if (type === 'bytes') {\n arg = new Buffer(arg)\n\n ret = Buffer.concat([ encodeSingle('uint256', arg.length), arg ])\n\n if ((arg.length % 32) !== 0) {\n ret = Buffer.concat([ ret, util.zeros(32 - (arg.length % 32)) ])\n }\n\n return ret\n } else if (type.startsWith('bytes')) {\n size = parseTypeN(type)\n if (size < 1 || size > 32) {\n throw new Error('Invalid bytes width: ' + size)\n }\n\n return util.setLengthRight(arg, 32)\n } else if (type.startsWith('uint')) {\n size = parseTypeN(type)\n if ((size % 8) || (size < 8) || (size > 256)) {\n throw new Error('Invalid uint width: ' + size)\n }\n\n num = parseNumber(arg)\n const bitLength = util.bitLengthFromBigInt(num)\n if (bitLength > size) {\n throw new Error('Supplied uint exceeds width: ' + size + ' vs ' + bitLength)\n }\n\n if (num < 0) {\n throw new Error('Supplied uint is negative')\n }\n\n return util.bufferBEFromBigInt(num, 32);\n } else if (type.startsWith('int')) {\n size = parseTypeN(type)\n if ((size % 8) || (size < 8) || (size > 256)) {\n throw new Error('Invalid int width: ' + size)\n }\n\n num = parseNumber(arg)\n const bitLength = util.bitLengthFromBigInt(num)\n if (bitLength > size) {\n throw new Error('Supplied int exceeds width: ' + size + ' vs ' + bitLength)\n }\n\n const twos = util.twosFromBigInt(num, 256);\n\n return util.bufferBEFromBigInt(twos, 32);\n } else if (type.startsWith('ufixed')) {\n size = parseTypeNxM(type)\n\n num = parseNumber(arg)\n\n if (num < 0) {\n throw new Error('Supplied ufixed is negative')\n }\n\n return encodeSingle('uint256', num * BigInt(2) ** BigInt(size[1]))\n } else if (type.startsWith('fixed')) {\n size = parseTypeNxM(type)\n\n return encodeSingle('int256', parseNumber(arg) * BigInt(2) ** BigInt(size[1]))\n }\n\n throw new Error('Unsupported or invalid type: ' + type)\n}\n\n// Is a type dynamic?\nfunction isDynamic (type) {\n // FIXME: handle all types? I don't think anything is missing now\n return (type === 'string') || (type === 'bytes') || (parseTypeArray(type) === 'dynamic')\n}\n\n// Is a type an array?\nfunction isArray (type) {\n return type.lastIndexOf(']') === type.length - 1\n}\n\n// Encode a method/event with arguments\n// @types an array of string type names\n// @args an array of the appropriate values\nfunction rawEncode (types, values) {\n var output = []\n var data = []\n\n var headLength = 32 * types.length\n\n for (var i in types) {\n var type = elementaryName(types[i])\n var value = values[i]\n var cur = encodeSingle(type, value)\n\n // Use the head/tail method for storing dynamic data\n if (isDynamic(type)) {\n output.push(encodeSingle('uint256', headLength))\n data.push(cur)\n headLength += cur.length\n } else {\n output.push(cur)\n }\n }\n\n return Buffer.concat(output.concat(data))\n}\n\nfunction solidityPack (types, values) {\n if (types.length !== values.length) {\n throw new Error('Number of types are not matching the values')\n }\n\n var size, num\n var ret = []\n\n for (var i = 0; i < types.length; i++) {\n var type = elementaryName(types[i])\n var value = values[i]\n\n if (type === 'bytes') {\n ret.push(value)\n } else if (type === 'string') {\n ret.push(new Buffer(value, 'utf8'))\n } else if (type === 'bool') {\n ret.push(new Buffer(value ? '01' : '00', 'hex'))\n } else if (type === 'address') {\n ret.push(util.setLength(value, 20))\n } else if (type.startsWith('bytes')) {\n size = parseTypeN(type)\n if (size < 1 || size > 32) {\n throw new Error('Invalid bytes width: ' + size)\n }\n\n ret.push(util.setLengthRight(value, size))\n } else if (type.startsWith('uint')) {\n size = parseTypeN(type)\n if ((size % 8) || (size < 8) || (size > 256)) {\n throw new Error('Invalid uint width: ' + size)\n }\n\n num = parseNumber(value)\n const bitLength = util.bitLengthFromBigInt(num)\n if (bitLength > size) {\n throw new Error('Supplied uint exceeds width: ' + size + ' vs ' + bitLength)\n }\n\n ret.push(util.bufferBEFromBigInt(num, size / 8))\n } else if (type.startsWith('int')) {\n size = parseTypeN(type)\n if ((size % 8) || (size < 8) || (size > 256)) {\n throw new Error('Invalid int width: ' + size)\n }\n\n num = parseNumber(value)\n const bitLength = util.bitLengthFromBigInt(num)\n if (bitLength > size) {\n throw new Error('Supplied int exceeds width: ' + size + ' vs ' + bitLength)\n }\n\n const twos = util.twosFromBigInt(num, size);\n ret.push(util.bufferBEFromBigInt(twos, size / 8))\n } else {\n // FIXME: support all other types\n throw new Error('Unsupported or invalid type: ' + type)\n }\n }\n\n return Buffer.concat(ret)\n}\n\nfunction soliditySHA3 (types, values) {\n return util.keccak(solidityPack(types, values))\n}\n\nmodule.exports = {\n rawEncode,\n solidityPack,\n soliditySHA3\n}\n","/* eslint-disable */\n//prettier-ignore\n\nconst util = require('./util.cjs')\nconst abi = require('./abi.cjs')\n\nconst TYPED_MESSAGE_SCHEMA = {\n type: 'object',\n properties: {\n types: {\n type: 'object',\n additionalProperties: {\n type: 'array',\n items: {\n type: 'object',\n properties: {\n name: {type: 'string'},\n type: {type: 'string'},\n },\n required: ['name', 'type'],\n },\n },\n },\n primaryType: {type: 'string'},\n domain: {type: 'object'},\n message: {type: 'object'},\n },\n required: ['types', 'primaryType', 'domain', 'message'],\n}\n\n/**\n * A collection of utility functions used for signing typed data\n */\nconst TypedDataUtils = {\n /**\n * Encodes an object by encoding and concatenating each of its members\n *\n * @param {string} primaryType - Root type\n * @param {Object} data - Object to encode\n * @param {Object} types - Type definitions\n * @returns {string} - Encoded representation of an object\n */\n encodeData (primaryType, data, types, useV4 = true) {\n const encodedTypes = ['bytes32']\n const encodedValues = [this.hashType(primaryType, types)]\n\n if(useV4) {\n const encodeField = (name, type, value) => {\n if (types[type] !== undefined) {\n return ['bytes32', value == null ?\n '0x0000000000000000000000000000000000000000000000000000000000000000' :\n util.keccak(this.encodeData(type, value, types, useV4))]\n }\n\n if(value === undefined)\n throw new Error(`missing value for field ${name} of type ${type}`)\n\n if (type === 'bytes') {\n return ['bytes32', util.keccak(value)]\n }\n\n if (type === 'string') {\n // convert string to buffer - prevents ethUtil from interpreting strings like '0xabcd' as hex\n if (typeof value === 'string') {\n value = Buffer.from(value, 'utf8')\n }\n return ['bytes32', util.keccak(value)]\n }\n\n if (type.lastIndexOf(']') === type.length - 1) {\n const parsedType = type.slice(0, type.lastIndexOf('['))\n const typeValuePairs = value.map(item =>\n encodeField(name, parsedType, item))\n return ['bytes32', util.keccak(abi.rawEncode(\n typeValuePairs.map(([type]) => type),\n typeValuePairs.map(([, value]) => value),\n ))]\n }\n\n return [type, value]\n }\n\n for (const field of types[primaryType]) {\n const [type, value] = encodeField(field.name, field.type, data[field.name])\n encodedTypes.push(type)\n encodedValues.push(value)\n }\n } else {\n for (const field of types[primaryType]) {\n let value = data[field.name]\n if (value !== undefined) {\n if (field.type === 'bytes') {\n encodedTypes.push('bytes32')\n value = util.keccak(value)\n encodedValues.push(value)\n } else if (field.type === 'string') {\n encodedTypes.push('bytes32')\n // convert string to buffer - prevents ethUtil from interpreting strings like '0xabcd' as hex\n if (typeof value === 'string') {\n value = Buffer.from(value, 'utf8')\n }\n value = util.keccak(value)\n encodedValues.push(value)\n } else if (types[field.type] !== undefined) {\n encodedTypes.push('bytes32')\n value = util.keccak(this.encodeData(field.type, value, types, useV4))\n encodedValues.push(value)\n } else if (field.type.lastIndexOf(']') === field.type.length - 1) {\n throw new Error('Arrays currently unimplemented in encodeData')\n } else {\n encodedTypes.push(field.type)\n encodedValues.push(value)\n }\n }\n }\n }\n\n return abi.rawEncode(encodedTypes, encodedValues)\n },\n\n /**\n * Encodes the type of an object by encoding a comma delimited list of its members\n *\n * @param {string} primaryType - Root type to encode\n * @param {Object} types - Type definitions\n * @returns {string} - Encoded representation of the type of an object\n */\n encodeType (primaryType, types) {\n let result = ''\n let deps = this.findTypeDependencies(primaryType, types).filter(dep => dep !== primaryType)\n deps = [primaryType].concat(deps.sort())\n for (const type of deps) {\n const children = types[type]\n if (!children) {\n throw new Error('No type definition specified: ' + type)\n }\n result += type + '(' + types[type].map(({ name, type }) => type + ' ' + name).join(',') + ')'\n }\n return result\n },\n\n /**\n * Finds all types within a type definition object\n *\n * @param {string} primaryType - Root type\n * @param {Object} types - Type definitions\n * @param {Array} results - current set of accumulated types\n * @returns {Array} - Set of all types found in the type definition\n */\n findTypeDependencies (primaryType, types, results = []) {\n primaryType = primaryType.match(/^\\w*/)[0]\n if (results.includes(primaryType) || types[primaryType] === undefined) { return results }\n results.push(primaryType)\n for (const field of types[primaryType]) {\n for (const dep of this.findTypeDependencies(field.type, types, results)) {\n !results.includes(dep) && results.push(dep)\n }\n }\n return results\n },\n\n /**\n * Hashes an object\n *\n * @param {string} primaryType - Root type\n * @param {Object} data - Object to hash\n * @param {Object} types - Type definitions\n * @returns {Buffer} - Hash of an object\n */\n hashStruct (primaryType, data, types, useV4 = true) {\n return util.keccak(this.encodeData(primaryType, data, types, useV4))\n },\n\n /**\n * Hashes the type of an object\n *\n * @param {string} primaryType - Root type to hash\n * @param {Object} types - Type definitions\n * @returns {string} - Hash of an object\n */\n hashType (primaryType, types) {\n return util.keccak(this.encodeType(primaryType, types))\n },\n\n /**\n * Removes properties from a message object that are not defined per EIP-712\n *\n * @param {Object} data - typed message object\n * @returns {Object} - typed message object with only allowed fields\n */\n sanitizeData (data) {\n const sanitizedData = {}\n for (const key in TYPED_MESSAGE_SCHEMA.properties) {\n data[key] && (sanitizedData[key] = data[key])\n }\n if (sanitizedData.types) {\n sanitizedData.types = Object.assign({ EIP712Domain: [] }, sanitizedData.types)\n }\n return sanitizedData\n },\n\n /**\n * Returns the hash of a typed message as per EIP-712 for signing\n *\n * @param {Object} typedData - Types message data to sign\n * @returns {string} - sha3 hash for signing\n */\n hash (typedData, useV4 = true) {\n const sanitizedData = this.sanitizeData(typedData)\n const parts = [Buffer.from('1901', 'hex')]\n parts.push(this.hashStruct('EIP712Domain', sanitizedData.domain, sanitizedData.types, useV4))\n if (sanitizedData.primaryType !== 'EIP712Domain') {\n parts.push(this.hashStruct(sanitizedData.primaryType, sanitizedData.message, sanitizedData.types, useV4))\n }\n return util.keccak(Buffer.concat(parts))\n },\n}\n\nmodule.exports = {\n TYPED_MESSAGE_SCHEMA,\n TypedDataUtils,\n\n hashForSignTypedDataLegacy: function (msgParams) {\n return typedSignatureHashLegacy(msgParams.data)\n },\n\n hashForSignTypedData_v3: function (msgParams) {\n return TypedDataUtils.hash(msgParams.data, false)\n },\n\n hashForSignTypedData_v4: function (msgParams) {\n return TypedDataUtils.hash(msgParams.data)\n },\n}\n\n/**\n * @param typedData - Array of data along with types, as per EIP712.\n * @returns Buffer\n */\nfunction typedSignatureHashLegacy(typedData) {\n const error = new Error('Expect argument to be non-empty array')\n if (typeof typedData !== 'object' || !typedData.length) throw error\n\n const data = typedData.map(function (e) {\n return e.type === 'bytes' ? util.toBuffer(e.value) : e.value\n })\n const types = typedData.map(function (e) { return e.type })\n const schema = typedData.map(function (e) {\n if (!e.name) throw error\n return e.type + ' ' + e.name\n })\n\n return abi.soliditySHA3(\n ['bytes32', 'bytes32'],\n [\n abi.soliditySHA3(new Array(typedData.length).fill('string'), schema),\n abi.soliditySHA3(types, data)\n ]\n )\n}","// Extracted from https://github.com/ethereumjs/ethereumjs-util and stripped out irrelevant code\n// Original code licensed under the Mozilla Public License Version 2.0\n\n/* eslint-disable */\n//prettier-ignore\nconst { keccak_256 } = require('@noble/hashes/sha3')\n\n/**\n * Returns a buffer filled with 0s\n * @method zeros\n * @param {Number} bytes the number of bytes the buffer should be\n * @return {Buffer}\n */\nfunction zeros (bytes) {\n return Buffer.allocUnsafe(bytes).fill(0)\n}\n\nfunction bitLengthFromBigInt (num) {\n return num.toString(2).length\n}\n\nfunction bufferBEFromBigInt(num, length) {\n let hex = num.toString(16);\n // Ensure the hex string length is even\n if (hex.length % 2 !== 0) hex = '0' + hex;\n // Convert hex string to a byte array\n const byteArray = hex.match(/.{1,2}/g).map(byte => parseInt(byte, 16));\n // Ensure the byte array is of the specified length\n while (byteArray.length < length) {\n byteArray.unshift(0); // Prepend with zeroes if shorter than required length\n }\n\n return Buffer.from(byteArray);\n}\n\nfunction twosFromBigInt(value, width) {\n const isNegative = value < 0n;\n let result;\n if (isNegative) {\n // Prepare a mask for the specified width to perform NOT operation\n const mask = (1n << BigInt(width)) - 1n;\n // Invert bits (using NOT) and add one\n result = (~value & mask) + 1n;\n } else {\n result = value;\n }\n // Ensure the result fits in the specified width\n result &= (1n << BigInt(width)) - 1n;\n\n return result;\n}\n\n/**\n * Left Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.\n * Or it truncates the beginning if it exceeds.\n * @method setLength\n * @param {Buffer|Array} msg the value to pad\n * @param {Number} length the number of bytes the output should be\n * @param {Boolean} [right=false] whether to start padding form the left or right\n * @return {Buffer|Array}\n */\nfunction setLength (msg, length, right) {\n const buf = zeros(length)\n msg = toBuffer(msg)\n if (right) {\n if (msg.length < length) {\n msg.copy(buf)\n return buf\n }\n return msg.slice(0, length)\n } else {\n if (msg.length < length) {\n msg.copy(buf, length - msg.length)\n return buf\n }\n return msg.slice(-length)\n }\n}\n\n/**\n * Right Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.\n * Or it truncates the beginning if it exceeds.\n * @param {Buffer|Array} msg the value to pad\n * @param {Number} length the number of bytes the output should be\n * @return {Buffer|Array}\n */\nfunction setLengthRight (msg, length) {\n return setLength(msg, length, true)\n}\n\n/**\n * Attempts to turn a value into a `Buffer`. As input it supports `Buffer`, `String`, `Number`, null/undefined, `BIgInt` and other objects with a `toArray()` method.\n * @param {*} v the value\n */\nfunction toBuffer (v) {\n if (!Buffer.isBuffer(v)) {\n if (Array.isArray(v)) {\n v = Buffer.from(v)\n } else if (typeof v === 'string') {\n if (isHexString(v)) {\n v = Buffer.from(padToEven(stripHexPrefix(v)), 'hex')\n } else {\n v = Buffer.from(v)\n }\n } else if (typeof v === 'number') {\n v = intToBuffer(v)\n } else if (v === null || v === undefined) {\n v = Buffer.allocUnsafe(0)\n } else if (typeof v === 'bigint') {\n v = bufferBEFromBigInt(v)\n } else if (v.toArray) {\n // TODO: bigint should be handled above, may remove this duplicate\n // converts a BigInt to a Buffer\n v = Buffer.from(v.toArray())\n } else {\n throw new Error('invalid type')\n }\n }\n return v\n}\n\n/**\n * Converts a `Buffer` into a hex `String`\n * @param {Buffer} buf\n * @return {String}\n */\nfunction bufferToHex (buf) {\n buf = toBuffer(buf)\n return '0x' + buf.toString('hex')\n}\n\n/**\n * Creates Keccak hash of the input\n * @param {Buffer|Array|String|Number} a the input data\n * @param {Number} [bits=256] the Keccak width\n * @return {Buffer}\n */\nfunction keccak (a, bits) {\n a = toBuffer(a)\n if (!bits) bits = 256\n if (bits !== 256) {\n throw new Error('unsupported')\n }\n return Buffer.from(keccak_256(new Uint8Array(a)))\n}\n\nfunction padToEven (str) {\n return str.length % 2 ? '0' + str : str\n}\n\nfunction isHexString (str) {\n return typeof str === 'string' && str.match(/^0x[0-9A-Fa-f]*$/)\n}\n\nfunction stripHexPrefix (str) {\n if (typeof str === 'string' && str.startsWith('0x')) {\n return str.slice(2)\n }\n return str\n}\n\nmodule.exports = {\n zeros,\n setLength,\n setLengthRight,\n isHexString,\n stripHexPrefix,\n toBuffer,\n bufferToHex,\n keccak,\n bitLengthFromBigInt,\n bufferBEFromBigInt,\n twosFromBigInt\n}\n","// Copyright (c) 2018-2024 Coinbase, Inc. \n// TODO: clean up, or possibly deprecate Storage class\nexport class ScopedLocalStorage {\n constructor(scope, module) {\n this.scope = scope;\n this.module = module;\n }\n storeObject(key, item) {\n this.setItem(key, JSON.stringify(item));\n }\n loadObject(key) {\n const item = this.getItem(key);\n return item ? JSON.parse(item) : undefined;\n }\n setItem(key, value) {\n localStorage.setItem(this.scopedKey(key), value);\n }\n getItem(key) {\n return localStorage.getItem(this.scopedKey(key));\n }\n removeItem(key) {\n localStorage.removeItem(this.scopedKey(key));\n }\n clear() {\n const prefix = this.scopedKey('');\n const keysToRemove = [];\n for (let i = 0; i < localStorage.length; i++) {\n const key = localStorage.key(i);\n if (typeof key === 'string' && key.startsWith(prefix)) {\n keysToRemove.push(key);\n }\n }\n keysToRemove.forEach((key) => localStorage.removeItem(key));\n }\n scopedKey(key) {\n return `-${this.scope}${this.module ? `:${this.module}` : ''}:${key}`;\n }\n static clearAll() {\n new ScopedLocalStorage('CBWSDK').clear();\n new ScopedLocalStorage('walletlink').clear();\n }\n}\n//# sourceMappingURL=ScopedLocalStorage.js.map","export const standardErrorCodes = {\n rpc: {\n invalidInput: -32000,\n resourceNotFound: -32001,\n resourceUnavailable: -32002,\n transactionRejected: -32003,\n methodNotSupported: -32004,\n limitExceeded: -32005,\n parse: -32700,\n invalidRequest: -32600,\n methodNotFound: -32601,\n invalidParams: -32602,\n internal: -32603,\n },\n provider: {\n userRejectedRequest: 4001,\n unauthorized: 4100,\n unsupportedMethod: 4200,\n disconnected: 4900,\n chainDisconnected: 4901,\n unsupportedChain: 4902,\n },\n};\nexport const errorValues = {\n '-32700': {\n standard: 'JSON RPC 2.0',\n message: 'Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text.',\n },\n '-32600': {\n standard: 'JSON RPC 2.0',\n message: 'The JSON sent is not a valid Request object.',\n },\n '-32601': {\n standard: 'JSON RPC 2.0',\n message: 'The method does not exist / is not available.',\n },\n '-32602': {\n standard: 'JSON RPC 2.0',\n message: 'Invalid method parameter(s).',\n },\n '-32603': {\n standard: 'JSON RPC 2.0',\n message: 'Internal JSON-RPC error.',\n },\n '-32000': {\n standard: 'EIP-1474',\n message: 'Invalid input.',\n },\n '-32001': {\n standard: 'EIP-1474',\n message: 'Resource not found.',\n },\n '-32002': {\n standard: 'EIP-1474',\n message: 'Resource unavailable.',\n },\n '-32003': {\n standard: 'EIP-1474',\n message: 'Transaction rejected.',\n },\n '-32004': {\n standard: 'EIP-1474',\n message: 'Method not supported.',\n },\n '-32005': {\n standard: 'EIP-1474',\n message: 'Request limit exceeded.',\n },\n '4001': {\n standard: 'EIP-1193',\n message: 'User rejected the request.',\n },\n '4100': {\n standard: 'EIP-1193',\n message: 'The requested account and/or method has not been authorized by the user.',\n },\n '4200': {\n standard: 'EIP-1193',\n message: 'The requested method is not supported by this Ethereum provider.',\n },\n '4900': {\n standard: 'EIP-1193',\n message: 'The provider is disconnected from all chains.',\n },\n '4901': {\n standard: 'EIP-1193',\n message: 'The provider is disconnected from the specified chain.',\n },\n '4902': {\n standard: 'EIP-3085',\n message: 'Unrecognized chain ID.',\n },\n};\n//# sourceMappingURL=constants.js.map","import { errorValues, standardErrorCodes } from './constants.js';\nconst FALLBACK_MESSAGE = 'Unspecified error message.';\nexport const JSON_RPC_SERVER_ERROR_MESSAGE = 'Unspecified server error.';\n/**\n * Gets the message for a given code, or a fallback message if the code has\n * no corresponding message.\n */\nexport function getMessageFromCode(code, fallbackMessage = FALLBACK_MESSAGE) {\n if (code && Number.isInteger(code)) {\n const codeString = code.toString();\n if (hasKey(errorValues, codeString)) {\n return errorValues[codeString].message;\n }\n if (isJsonRpcServerError(code)) {\n return JSON_RPC_SERVER_ERROR_MESSAGE;\n }\n }\n return fallbackMessage;\n}\n/**\n * Returns whether the given code is valid.\n * A code is only valid if it has a message.\n */\nexport function isValidCode(code) {\n if (!Number.isInteger(code)) {\n return false;\n }\n const codeString = code.toString();\n if (errorValues[codeString]) {\n return true;\n }\n if (isJsonRpcServerError(code)) {\n return true;\n }\n return false;\n}\n/**\n * Returns the error code from an error object.\n */\nexport function getErrorCode(error) {\n var _a;\n if (typeof error === 'number') {\n return error;\n }\n else if (isErrorWithCode(error)) {\n return (_a = error.code) !== null && _a !== void 0 ? _a : error.errorCode;\n }\n return undefined;\n}\nfunction isErrorWithCode(error) {\n return (typeof error === 'object' &&\n error !== null &&\n (typeof error.code === 'number' ||\n typeof error.errorCode === 'number'));\n}\nexport function serialize(error, { shouldIncludeStack = false } = {}) {\n const serialized = {};\n if (error &&\n typeof error === 'object' &&\n !Array.isArray(error) &&\n hasKey(error, 'code') &&\n isValidCode(error.code)) {\n const _error = error;\n serialized.code = _error.code;\n if (_error.message && typeof _error.message === 'string') {\n serialized.message = _error.message;\n if (hasKey(_error, 'data')) {\n serialized.data = _error.data;\n }\n }\n else {\n serialized.message = getMessageFromCode(serialized.code);\n serialized.data = { originalError: assignOriginalError(error) };\n }\n }\n else {\n serialized.code = standardErrorCodes.rpc.internal;\n serialized.message = hasStringProperty(error, 'message') ? error.message : FALLBACK_MESSAGE;\n serialized.data = { originalError: assignOriginalError(error) };\n }\n if (shouldIncludeStack) {\n serialized.stack = hasStringProperty(error, 'stack') ? error.stack : undefined;\n }\n return serialized;\n}\n// Internal\nfunction isJsonRpcServerError(code) {\n return code >= -32099 && code <= -32000;\n}\nfunction assignOriginalError(error) {\n if (error && typeof error === 'object' && !Array.isArray(error)) {\n return Object.assign({}, error);\n }\n return error;\n}\nfunction hasKey(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\nfunction hasStringProperty(obj, prop) {\n return (typeof obj === 'object' && obj !== null && prop in obj && typeof obj[prop] === 'string');\n}\n//# sourceMappingURL=utils.js.map","import { standardErrorCodes } from './constants.js';\nimport { getMessageFromCode } from './utils.js';\nexport const standardErrors = {\n rpc: {\n parse: (arg) => getEthJsonRpcError(standardErrorCodes.rpc.parse, arg),\n invalidRequest: (arg) => getEthJsonRpcError(standardErrorCodes.rpc.invalidRequest, arg),\n invalidParams: (arg) => getEthJsonRpcError(standardErrorCodes.rpc.invalidParams, arg),\n methodNotFound: (arg) => getEthJsonRpcError(standardErrorCodes.rpc.methodNotFound, arg),\n internal: (arg) => getEthJsonRpcError(standardErrorCodes.rpc.internal, arg),\n server: (opts) => {\n if (!opts || typeof opts !== 'object' || Array.isArray(opts)) {\n throw new Error('Ethereum RPC Server errors must provide single object argument.');\n }\n const { code } = opts;\n if (!Number.isInteger(code) || code > -32005 || code < -32099) {\n throw new Error('\"code\" must be an integer such that: -32099 <= code <= -32005');\n }\n return getEthJsonRpcError(code, opts);\n },\n invalidInput: (arg) => getEthJsonRpcError(standardErrorCodes.rpc.invalidInput, arg),\n resourceNotFound: (arg) => getEthJsonRpcError(standardErrorCodes.rpc.resourceNotFound, arg),\n resourceUnavailable: (arg) => getEthJsonRpcError(standardErrorCodes.rpc.resourceUnavailable, arg),\n transactionRejected: (arg) => getEthJsonRpcError(standardErrorCodes.rpc.transactionRejected, arg),\n methodNotSupported: (arg) => getEthJsonRpcError(standardErrorCodes.rpc.methodNotSupported, arg),\n limitExceeded: (arg) => getEthJsonRpcError(standardErrorCodes.rpc.limitExceeded, arg),\n },\n provider: {\n userRejectedRequest: (arg) => {\n return getEthProviderError(standardErrorCodes.provider.userRejectedRequest, arg);\n },\n unauthorized: (arg) => {\n return getEthProviderError(standardErrorCodes.provider.unauthorized, arg);\n },\n unsupportedMethod: (arg) => {\n return getEthProviderError(standardErrorCodes.provider.unsupportedMethod, arg);\n },\n disconnected: (arg) => {\n return getEthProviderError(standardErrorCodes.provider.disconnected, arg);\n },\n chainDisconnected: (arg) => {\n return getEthProviderError(standardErrorCodes.provider.chainDisconnected, arg);\n },\n unsupportedChain: (arg) => {\n return getEthProviderError(standardErrorCodes.provider.unsupportedChain, arg);\n },\n custom: (opts) => {\n if (!opts || typeof opts !== 'object' || Array.isArray(opts)) {\n throw new Error('Ethereum Provider custom errors must provide single object argument.');\n }\n const { code, message, data } = opts;\n if (!message || typeof message !== 'string') {\n throw new Error('\"message\" must be a nonempty string');\n }\n return new EthereumProviderError(code, message, data);\n },\n },\n};\n// Internal\nfunction getEthJsonRpcError(code, arg) {\n const [message, data] = parseOpts(arg);\n return new EthereumRpcError(code, message || getMessageFromCode(code), data);\n}\nfunction getEthProviderError(code, arg) {\n const [message, data] = parseOpts(arg);\n return new EthereumProviderError(code, message || getMessageFromCode(code), data);\n}\nfunction parseOpts(arg) {\n if (arg) {\n if (typeof arg === 'string') {\n return [arg];\n }\n else if (typeof arg === 'object' && !Array.isArray(arg)) {\n const { message, data } = arg;\n if (message && typeof message !== 'string') {\n throw new Error('Must specify string message.');\n }\n return [message || undefined, data];\n }\n }\n return [];\n}\nclass EthereumRpcError extends Error {\n constructor(code, message, data) {\n if (!Number.isInteger(code)) {\n throw new Error('\"code\" must be an integer.');\n }\n if (!message || typeof message !== 'string') {\n throw new Error('\"message\" must be a nonempty string.');\n }\n super(message);\n this.code = code;\n if (data !== undefined) {\n this.data = data;\n }\n }\n}\nclass EthereumProviderError extends EthereumRpcError {\n /**\n * Create an Ethereum Provider JSON-RPC error.\n * `code` must be an integer in the 1000 <= 4999 range.\n */\n constructor(code, message, data) {\n if (!isValidEthProviderCode(code)) {\n throw new Error('\"code\" must be an integer such that: 1000 <= code <= 4999');\n }\n super(code, message, data);\n }\n}\nfunction isValidEthProviderCode(code) {\n return Number.isInteger(code) && code >= 1000 && code <= 4999;\n}\n//# sourceMappingURL=errors.js.map","export function OpaqueType() {\n return (value) => value;\n}\nexport const HexString = OpaqueType();\nexport const AddressString = OpaqueType();\nexport const BigIntString = OpaqueType();\nexport function IntNumber(num) {\n return Math.floor(num);\n}\nexport const RegExpString = OpaqueType();\n//# sourceMappingURL=index.js.map","/* eslint-disable @typescript-eslint/no-explicit-any */\n// Copyright (c) 2018-2023 Coinbase, Inc. \nimport { standardErrors } from '../error/errors.js';\nimport { AddressString, BigIntString, HexString, IntNumber, RegExpString } from './index.js';\nconst INT_STRING_REGEX = /^[0-9]*$/;\nconst HEXADECIMAL_STRING_REGEX = /^[a-f0-9]*$/;\n/**\n * @param length number of bytes\n */\nexport function randomBytesHex(length) {\n return uint8ArrayToHex(crypto.getRandomValues(new Uint8Array(length)));\n}\nexport function uint8ArrayToHex(value) {\n return [...value].map((b) => b.toString(16).padStart(2, '0')).join('');\n}\nexport function hexStringToUint8Array(hexString) {\n return new Uint8Array(hexString.match(/.{1,2}/g).map((byte) => Number.parseInt(byte, 16)));\n}\nexport function hexStringFromBuffer(buf, includePrefix = false) {\n const hex = buf.toString('hex');\n return HexString(includePrefix ? `0x${hex}` : hex);\n}\nexport function encodeToHexString(str) {\n return hexStringFromBuffer(ensureBuffer(str), true);\n}\nexport function bigIntStringFromBigInt(bi) {\n return BigIntString(bi.toString(10));\n}\nexport function intNumberFromHexString(hex) {\n return IntNumber(Number(BigInt(ensureEvenLengthHexString(hex, true))));\n}\nexport function hexStringFromNumber(num) {\n return HexString(`0x${BigInt(num).toString(16)}`);\n}\nexport function has0xPrefix(str) {\n return str.startsWith('0x') || str.startsWith('0X');\n}\nexport function strip0x(hex) {\n if (has0xPrefix(hex)) {\n return hex.slice(2);\n }\n return hex;\n}\nexport function prepend0x(hex) {\n if (has0xPrefix(hex)) {\n return `0x${hex.slice(2)}`;\n }\n return `0x${hex}`;\n}\nexport function isHexString(hex) {\n if (typeof hex !== 'string') {\n return false;\n }\n const s = strip0x(hex).toLowerCase();\n return HEXADECIMAL_STRING_REGEX.test(s);\n}\nexport function ensureHexString(hex, includePrefix = false) {\n if (typeof hex === 'string') {\n const s = strip0x(hex).toLowerCase();\n if (HEXADECIMAL_STRING_REGEX.test(s)) {\n return HexString(includePrefix ? `0x${s}` : s);\n }\n }\n throw standardErrors.rpc.invalidParams(`\"${String(hex)}\" is not a hexadecimal string`);\n}\nexport function ensureEvenLengthHexString(hex, includePrefix = false) {\n let h = ensureHexString(hex, false);\n if (h.length % 2 === 1) {\n h = HexString(`0${h}`);\n }\n return includePrefix ? HexString(`0x${h}`) : h;\n}\nexport function ensureAddressString(str) {\n if (typeof str === 'string') {\n const s = strip0x(str).toLowerCase();\n if (isHexString(s) && s.length === 40) {\n return AddressString(prepend0x(s));\n }\n }\n throw standardErrors.rpc.invalidParams(`Invalid Ethereum address: ${String(str)}`);\n}\nexport function ensureBuffer(str) {\n if (Buffer.isBuffer(str)) {\n return str;\n }\n if (typeof str === 'string') {\n if (isHexString(str)) {\n const s = ensureEvenLengthHexString(str, false);\n return Buffer.from(s, 'hex');\n }\n return Buffer.from(str, 'utf8');\n }\n throw standardErrors.rpc.invalidParams(`Not binary data: ${String(str)}`);\n}\nexport function ensureIntNumber(num) {\n if (typeof num === 'number' && Number.isInteger(num)) {\n return IntNumber(num);\n }\n if (typeof num === 'string') {\n if (INT_STRING_REGEX.test(num)) {\n return IntNumber(Number(num));\n }\n if (isHexString(num)) {\n return IntNumber(Number(BigInt(ensureEvenLengthHexString(num, true))));\n }\n }\n throw standardErrors.rpc.invalidParams(`Not an integer: ${String(num)}`);\n}\nexport function ensureRegExpString(regExp) {\n if (regExp instanceof RegExp) {\n return RegExpString(regExp.toString());\n }\n throw standardErrors.rpc.invalidParams(`Not a RegExp: ${String(regExp)}`);\n}\nexport function ensureBigInt(val) {\n if (val !== null && (typeof val === 'bigint' || isBigNumber(val))) {\n return BigInt(val.toString(10));\n }\n if (typeof val === 'number') {\n return BigInt(ensureIntNumber(val));\n }\n if (typeof val === 'string') {\n if (INT_STRING_REGEX.test(val)) {\n return BigInt(val);\n }\n if (isHexString(val)) {\n return BigInt(ensureEvenLengthHexString(val, true));\n }\n }\n throw standardErrors.rpc.invalidParams(`Not an integer: ${String(val)}`);\n}\nexport function ensureParsedJSONObject(val) {\n if (typeof val === 'string') {\n return JSON.parse(val);\n }\n if (typeof val === 'object') {\n return val;\n }\n throw standardErrors.rpc.invalidParams(`Not a JSON string or an object: ${String(val)}`);\n}\nexport function isBigNumber(val) {\n if (val == null || typeof val.constructor !== 'function') {\n return false;\n }\n const { constructor } = val;\n return typeof constructor.config === 'function' && typeof constructor.EUCLID === 'number';\n}\nexport function range(start, stop) {\n return Array.from({ length: stop - start }, (_, i) => start + i);\n}\nexport function getFavicon() {\n const el = document.querySelector('link[sizes=\"192x192\"]') ||\n document.querySelector('link[sizes=\"180x180\"]') ||\n document.querySelector('link[rel=\"icon\"]') ||\n document.querySelector('link[rel=\"shortcut icon\"]');\n const { protocol, host } = document.location;\n const href = el ? el.getAttribute('href') : null;\n if (!href || href.startsWith('javascript:') || href.startsWith('vbscript:')) {\n return `${protocol}//${host}/favicon.ico`; // fallback\n }\n if (href.startsWith('http://') || href.startsWith('https://') || href.startsWith('data:')) {\n return href;\n }\n if (href.startsWith('//')) {\n return protocol + href;\n }\n return `${protocol}//${host}${href}`;\n}\nexport function areAddressArraysEqual(arr1, arr2) {\n return arr1.length === arr2.length && arr1.every((value, index) => value === arr2[index]);\n}\n//# sourceMappingURL=util.js.map","import { hexStringToUint8Array, uint8ArrayToHex } from '../core/type/util.js';\nexport async function generateKeyPair() {\n return crypto.subtle.generateKey({\n name: 'ECDH',\n namedCurve: 'P-256',\n }, true, ['deriveKey']);\n}\nexport async function deriveSharedSecret(ownPrivateKey, peerPublicKey) {\n return crypto.subtle.deriveKey({\n name: 'ECDH',\n public: peerPublicKey,\n }, ownPrivateKey, {\n name: 'AES-GCM',\n length: 256,\n }, false, ['encrypt', 'decrypt']);\n}\nexport async function encrypt(sharedSecret, plainText) {\n const iv = crypto.getRandomValues(new Uint8Array(12));\n const cipherText = await crypto.subtle.encrypt({\n name: 'AES-GCM',\n iv,\n }, sharedSecret, new TextEncoder().encode(plainText));\n return { iv, cipherText };\n}\nexport async function decrypt(sharedSecret, { iv, cipherText }) {\n const plainText = await crypto.subtle.decrypt({\n name: 'AES-GCM',\n iv,\n }, sharedSecret, cipherText);\n return new TextDecoder().decode(plainText);\n}\nfunction getFormat(keyType) {\n switch (keyType) {\n case 'public':\n return 'spki';\n case 'private':\n return 'pkcs8';\n }\n}\nexport async function exportKeyToHexString(type, key) {\n const format = getFormat(type);\n const exported = await crypto.subtle.exportKey(format, key);\n return uint8ArrayToHex(new Uint8Array(exported));\n}\nexport async function importKeyFromHexString(type, hexString) {\n const format = getFormat(type);\n const arrayBuffer = hexStringToUint8Array(hexString).buffer;\n return await crypto.subtle.importKey(format, new Uint8Array(arrayBuffer), {\n name: 'ECDH',\n namedCurve: 'P-256',\n }, true, type === 'private' ? ['deriveKey'] : []);\n}\nexport async function encryptContent(content, sharedSecret) {\n const serialized = JSON.stringify(content, (_, value) => {\n if (!(value instanceof Error))\n return value;\n const error = value;\n return Object.assign(Object.assign({}, (error.code ? { code: error.code } : {})), { message: error.message });\n });\n return encrypt(sharedSecret, serialized);\n}\nexport async function decryptContent(encryptedData, sharedSecret) {\n return JSON.parse(await decrypt(sharedSecret, encryptedData));\n}\n//# sourceMappingURL=cipher.js.map","import { ScopedLocalStorage } from '../../core/storage/ScopedLocalStorage.js';\nimport { deriveSharedSecret, exportKeyToHexString, generateKeyPair, importKeyFromHexString, } from '../../util/cipher.js';\nconst OWN_PRIVATE_KEY = {\n storageKey: 'ownPrivateKey',\n keyType: 'private',\n};\nconst OWN_PUBLIC_KEY = {\n storageKey: 'ownPublicKey',\n keyType: 'public',\n};\nconst PEER_PUBLIC_KEY = {\n storageKey: 'peerPublicKey',\n keyType: 'public',\n};\nexport class SCWKeyManager {\n constructor() {\n this.storage = new ScopedLocalStorage('CBWSDK', 'SCWKeyManager');\n this.ownPrivateKey = null;\n this.ownPublicKey = null;\n this.peerPublicKey = null;\n this.sharedSecret = null;\n }\n async getOwnPublicKey() {\n await this.loadKeysIfNeeded();\n return this.ownPublicKey;\n }\n // returns null if the shared secret is not yet derived\n async getSharedSecret() {\n await this.loadKeysIfNeeded();\n return this.sharedSecret;\n }\n async setPeerPublicKey(key) {\n this.sharedSecret = null;\n this.peerPublicKey = key;\n await this.storeKey(PEER_PUBLIC_KEY, key);\n await this.loadKeysIfNeeded();\n }\n async clear() {\n this.ownPrivateKey = null;\n this.ownPublicKey = null;\n this.peerPublicKey = null;\n this.sharedSecret = null;\n this.storage.removeItem(OWN_PUBLIC_KEY.storageKey);\n this.storage.removeItem(OWN_PRIVATE_KEY.storageKey);\n this.storage.removeItem(PEER_PUBLIC_KEY.storageKey);\n }\n async generateKeyPair() {\n const newKeyPair = await generateKeyPair();\n this.ownPrivateKey = newKeyPair.privateKey;\n this.ownPublicKey = newKeyPair.publicKey;\n await this.storeKey(OWN_PRIVATE_KEY, newKeyPair.privateKey);\n await this.storeKey(OWN_PUBLIC_KEY, newKeyPair.publicKey);\n }\n async loadKeysIfNeeded() {\n if (this.ownPrivateKey === null) {\n this.ownPrivateKey = await this.loadKey(OWN_PRIVATE_KEY);\n }\n if (this.ownPublicKey === null) {\n this.ownPublicKey = await this.loadKey(OWN_PUBLIC_KEY);\n }\n if (this.ownPrivateKey === null || this.ownPublicKey === null) {\n await this.generateKeyPair();\n }\n if (this.peerPublicKey === null) {\n this.peerPublicKey = await this.loadKey(PEER_PUBLIC_KEY);\n }\n if (this.sharedSecret === null) {\n if (this.ownPrivateKey === null || this.peerPublicKey === null)\n return;\n this.sharedSecret = await deriveSharedSecret(this.ownPrivateKey, this.peerPublicKey);\n }\n }\n // storage methods\n async loadKey(item) {\n const key = this.storage.getItem(item.storageKey);\n if (!key)\n return null;\n return importKeyFromHexString(item.keyType, key);\n }\n async storeKey(item, key) {\n const hexString = await exportKeyToHexString(item.keyType, key);\n this.storage.setItem(item.storageKey, hexString);\n }\n}\n//# sourceMappingURL=SCWKeyManager.js.map","export const VERSION = '4.3.0';\nexport const NAME = '@coinbase/wallet-sdk';\n//# sourceMappingURL=sdk-info.js.map","import { NAME, VERSION } from '../sdk-info.js';\nimport { standardErrors } from '../core/error/errors.js';\nexport async function fetchRPCRequest(request, rpcUrl) {\n const requestBody = Object.assign(Object.assign({}, request), { jsonrpc: '2.0', id: crypto.randomUUID() });\n const res = await window.fetch(rpcUrl, {\n method: 'POST',\n body: JSON.stringify(requestBody),\n mode: 'cors',\n headers: {\n 'Content-Type': 'application/json',\n 'X-Cbw-Sdk-Version': VERSION,\n 'X-Cbw-Sdk-Platform': NAME,\n },\n });\n const { result, error } = await res.json();\n if (error)\n throw error;\n return result;\n}\nfunction getCoinbaseInjectedLegacyProvider() {\n const window = globalThis;\n return window.coinbaseWalletExtension;\n}\nfunction getInjectedEthereum() {\n var _a, _b;\n try {\n const window = globalThis;\n return (_a = window.ethereum) !== null && _a !== void 0 ? _a : (_b = window.top) === null || _b === void 0 ? void 0 : _b.ethereum;\n }\n catch (_c) {\n return undefined;\n }\n}\nexport function getCoinbaseInjectedProvider({ metadata, preference, }) {\n var _a, _b;\n const { appName, appLogoUrl, appChainIds } = metadata;\n if (preference.options !== 'smartWalletOnly') {\n const extension = getCoinbaseInjectedLegacyProvider();\n if (extension) {\n (_a = extension.setAppInfo) === null || _a === void 0 ? void 0 : _a.call(extension, appName, appLogoUrl, appChainIds, preference);\n return extension;\n }\n }\n const ethereum = getInjectedEthereum();\n if (ethereum === null || ethereum === void 0 ? void 0 : ethereum.isCoinbaseBrowser) {\n (_b = ethereum.setAppInfo) === null || _b === void 0 ? void 0 : _b.call(ethereum, appName, appLogoUrl, appChainIds, preference);\n return ethereum;\n }\n return undefined;\n}\n/**\n * Validates the arguments for an invalid request and returns an error if any validation fails.\n * Valid request args are defined here: https://eips.ethereum.org/EIPS/eip-1193#request\n * @param args The request arguments to validate.\n * @returns An error object if the arguments are invalid, otherwise undefined.\n */\nexport function checkErrorForInvalidRequestArgs(args) {\n if (!args || typeof args !== 'object' || Array.isArray(args)) {\n throw standardErrors.rpc.invalidParams({\n message: 'Expected a single, non-array, object argument.',\n data: args,\n });\n }\n const { method, params } = args;\n if (typeof method !== 'string' || method.length === 0) {\n throw standardErrors.rpc.invalidParams({\n message: \"'args.method' must be a non-empty string.\",\n data: args,\n });\n }\n if (params !== undefined &&\n !Array.isArray(params) &&\n (typeof params !== 'object' || params === null)) {\n throw standardErrors.rpc.invalidParams({\n message: \"'args.params' must be an object or array if provided.\",\n data: args,\n });\n }\n switch (method) {\n case 'eth_sign':\n case 'eth_signTypedData_v2':\n case 'eth_subscribe':\n case 'eth_unsubscribe':\n throw standardErrors.provider.unsupportedMethod();\n }\n}\n//# sourceMappingURL=provider.js.map","import { SCWKeyManager } from './SCWKeyManager.js';\nimport { standardErrors } from '../../core/error/errors.js';\nimport { ScopedLocalStorage } from '../../core/storage/ScopedLocalStorage.js';\nimport { ensureIntNumber, hexStringFromNumber } from '../../core/type/util.js';\nimport { decryptContent, encryptContent, exportKeyToHexString, importKeyFromHexString, } from '../../util/cipher.js';\nimport { fetchRPCRequest } from '../../util/provider.js';\nconst ACCOUNTS_KEY = 'accounts';\nconst ACTIVE_CHAIN_STORAGE_KEY = 'activeChain';\nconst AVAILABLE_CHAINS_STORAGE_KEY = 'availableChains';\nconst WALLET_CAPABILITIES_STORAGE_KEY = 'walletCapabilities';\nexport class SCWSigner {\n constructor(params) {\n var _a, _b, _c;\n this.metadata = params.metadata;\n this.communicator = params.communicator;\n this.callback = params.callback;\n this.keyManager = new SCWKeyManager();\n this.storage = new ScopedLocalStorage('CBWSDK', 'SCWStateManager');\n this.accounts = (_a = this.storage.loadObject(ACCOUNTS_KEY)) !== null && _a !== void 0 ? _a : [];\n this.chain = this.storage.loadObject(ACTIVE_CHAIN_STORAGE_KEY) || {\n id: (_c = (_b = params.metadata.appChainIds) === null || _b === void 0 ? void 0 : _b[0]) !== null && _c !== void 0 ? _c : 1,\n };\n this.handshake = this.handshake.bind(this);\n this.request = this.request.bind(this);\n this.createRequestMessage = this.createRequestMessage.bind(this);\n this.decryptResponseMessage = this.decryptResponseMessage.bind(this);\n }\n async handshake(args) {\n var _a, _b, _c, _d;\n // Open the popup before constructing the request message.\n // This is to ensure that the popup is not blocked by some browsers (i.e. Safari)\n await ((_b = (_a = this.communicator).waitForPopupLoaded) === null || _b === void 0 ? void 0 : _b.call(_a));\n const handshakeMessage = await this.createRequestMessage({\n handshake: {\n method: args.method,\n params: Object.assign({}, this.metadata, (_c = args.params) !== null && _c !== void 0 ? _c : {}),\n },\n });\n const response = await this.communicator.postRequestAndWaitForResponse(handshakeMessage);\n // store peer's public key\n if ('failure' in response.content)\n throw response.content.failure;\n const peerPublicKey = await importKeyFromHexString('public', response.sender);\n await this.keyManager.setPeerPublicKey(peerPublicKey);\n const decrypted = await this.decryptResponseMessage(response);\n const result = decrypted.result;\n if ('error' in result)\n throw result.error;\n switch (args.method) {\n case 'eth_requestAccounts': {\n const accounts = result.value;\n this.accounts = accounts;\n this.storage.storeObject(ACCOUNTS_KEY, accounts);\n (_d = this.callback) === null || _d === void 0 ? void 0 : _d.call(this, 'accountsChanged', accounts);\n break;\n }\n }\n }\n async request(request) {\n var _a;\n if (this.accounts.length === 0) {\n switch (request.method) {\n case 'wallet_sendCalls':\n return this.sendRequestToPopup(request);\n default:\n throw standardErrors.provider.unauthorized();\n }\n }\n switch (request.method) {\n case 'eth_requestAccounts':\n (_a = this.callback) === null || _a === void 0 ? void 0 : _a.call(this, 'connect', { chainId: hexStringFromNumber(this.chain.id) });\n return this.accounts;\n case 'eth_accounts':\n return this.accounts;\n case 'eth_coinbase':\n return this.accounts[0];\n case 'net_version':\n return this.chain.id;\n case 'eth_chainId':\n return hexStringFromNumber(this.chain.id);\n case 'wallet_getCapabilities':\n return this.storage.loadObject(WALLET_CAPABILITIES_STORAGE_KEY);\n case 'wallet_switchEthereumChain':\n return this.handleSwitchChainRequest(request);\n case 'eth_ecRecover':\n case 'personal_sign':\n case 'wallet_sign':\n case 'personal_ecRecover':\n case 'eth_signTransaction':\n case 'eth_sendTransaction':\n case 'eth_signTypedData_v1':\n case 'eth_signTypedData_v3':\n case 'eth_signTypedData_v4':\n case 'eth_signTypedData':\n case 'wallet_addEthereumChain':\n case 'wallet_watchAsset':\n case 'wallet_sendCalls':\n case 'wallet_showCallsStatus':\n case 'wallet_grantPermissions':\n return this.sendRequestToPopup(request);\n default:\n if (!this.chain.rpcUrl)\n throw standardErrors.rpc.internal('No RPC URL set for chain');\n return fetchRPCRequest(request, this.chain.rpcUrl);\n }\n }\n async sendRequestToPopup(request) {\n var _a, _b;\n // Open the popup before constructing the request message.\n // This is to ensure that the popup is not blocked by some browsers (i.e. Safari)\n await ((_b = (_a = this.communicator).waitForPopupLoaded) === null || _b === void 0 ? void 0 : _b.call(_a));\n const response = await this.sendEncryptedRequest(request);\n const decrypted = await this.decryptResponseMessage(response);\n const result = decrypted.result;\n if ('error' in result)\n throw result.error;\n return result.value;\n }\n async cleanup() {\n var _a, _b;\n this.storage.clear();\n await this.keyManager.clear();\n this.accounts = [];\n this.chain = {\n id: (_b = (_a = this.metadata.appChainIds) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : 1,\n };\n }\n /**\n * @returns `null` if the request was successful.\n * https://eips.ethereum.org/EIPS/eip-3326#wallet_switchethereumchain\n */\n async handleSwitchChainRequest(request) {\n var _a;\n const params = request.params;\n if (!params || !((_a = params[0]) === null || _a === void 0 ? void 0 : _a.chainId)) {\n throw standardErrors.rpc.invalidParams();\n }\n const chainId = ensureIntNumber(params[0].chainId);\n const localResult = this.updateChain(chainId);\n if (localResult)\n return null;\n const popupResult = await this.sendRequestToPopup(request);\n if (popupResult === null) {\n this.updateChain(chainId);\n }\n return popupResult;\n }\n async sendEncryptedRequest(request) {\n const sharedSecret = await this.keyManager.getSharedSecret();\n if (!sharedSecret) {\n throw standardErrors.provider.unauthorized('No valid session found, try requestAccounts before other methods');\n }\n const encrypted = await encryptContent({\n action: request,\n chainId: this.chain.id,\n }, sharedSecret);\n const message = await this.createRequestMessage({ encrypted });\n return this.communicator.postRequestAndWaitForResponse(message);\n }\n async createRequestMessage(content) {\n const publicKey = await exportKeyToHexString('public', await this.keyManager.getOwnPublicKey());\n return {\n id: crypto.randomUUID(),\n sender: publicKey,\n content,\n timestamp: new Date(),\n };\n }\n async decryptResponseMessage(message) {\n var _a, _b;\n const content = message.content;\n // throw protocol level error\n if ('failure' in content) {\n throw content.failure;\n }\n const sharedSecret = await this.keyManager.getSharedSecret();\n if (!sharedSecret) {\n throw standardErrors.provider.unauthorized('Invalid session');\n }\n const response = await decryptContent(content.encrypted, sharedSecret);\n const availableChains = (_a = response.data) === null || _a === void 0 ? void 0 : _a.chains;\n if (availableChains) {\n const chains = Object.entries(availableChains).map(([id, rpcUrl]) => ({\n id: Number(id),\n rpcUrl,\n }));\n this.storage.storeObject(AVAILABLE_CHAINS_STORAGE_KEY, chains);\n this.updateChain(this.chain.id, chains);\n }\n const walletCapabilities = (_b = response.data) === null || _b === void 0 ? void 0 : _b.capabilities;\n if (walletCapabilities) {\n this.storage.storeObject(WALLET_CAPABILITIES_STORAGE_KEY, walletCapabilities);\n }\n return response;\n }\n updateChain(chainId, newAvailableChains) {\n var _a;\n const chains = newAvailableChains !== null && newAvailableChains !== void 0 ? newAvailableChains : this.storage.loadObject(AVAILABLE_CHAINS_STORAGE_KEY);\n const chain = chains === null || chains === void 0 ? void 0 : chains.find((chain) => chain.id === chainId);\n if (!chain)\n return false;\n if (chain !== this.chain) {\n this.chain = chain;\n this.storage.storeObject(ACTIVE_CHAIN_STORAGE_KEY, chain);\n (_a = this.callback) === null || _a === void 0 ? void 0 : _a.call(this, 'chainChanged', hexStringFromNumber(chain.id));\n }\n return true;\n }\n}\n//# sourceMappingURL=SCWSigner.js.map","export const WALLET_USER_NAME_KEY = 'walletUsername';\nexport const LOCAL_STORAGE_ADDRESSES_KEY = 'Addresses';\nexport const APP_VERSION_KEY = 'AppVersion';\n//# sourceMappingURL=constants.js.map","// Copyright (c) 2018-2023 Coinbase, Inc. \nexport function isErrorResponse(response) {\n return response.errorMessage !== undefined;\n}\n//# sourceMappingURL=Web3Response.js.map","// Copyright (c) 2018-2023 Coinbase, Inc. \nimport { hexStringToUint8Array, uint8ArrayToHex } from '../../../../core/type/util.js';\nexport class WalletLinkCipher {\n // @param secret hex representation of 32-byte secret\n constructor(secret) {\n this.secret = secret;\n }\n /**\n *\n * @param plainText string to be encrypted\n * returns hex string representation of bytes in the order: initialization vector (iv),\n * auth tag, encrypted plaintext. IV is 12 bytes. Auth tag is 16 bytes. Remaining bytes are the\n * encrypted plainText.\n */\n async encrypt(plainText) {\n const secret = this.secret;\n if (secret.length !== 64)\n throw Error(`secret must be 256 bits`);\n const ivBytes = crypto.getRandomValues(new Uint8Array(12));\n const secretKey = await crypto.subtle.importKey('raw', hexStringToUint8Array(secret), { name: 'aes-gcm' }, false, ['encrypt', 'decrypt']);\n const enc = new TextEncoder();\n // Will return encrypted plainText with auth tag (ie MAC or checksum) appended at the end\n const encryptedResult = await window.crypto.subtle.encrypt({\n name: 'AES-GCM',\n iv: ivBytes,\n }, secretKey, enc.encode(plainText));\n const tagLength = 16;\n const authTag = encryptedResult.slice(encryptedResult.byteLength - tagLength);\n const encryptedPlaintext = encryptedResult.slice(0, encryptedResult.byteLength - tagLength);\n const authTagBytes = new Uint8Array(authTag);\n const encryptedPlaintextBytes = new Uint8Array(encryptedPlaintext);\n const concatted = new Uint8Array([...ivBytes, ...authTagBytes, ...encryptedPlaintextBytes]);\n return uint8ArrayToHex(concatted);\n }\n /**\n *\n * @param cipherText hex string representation of bytes in the order: initialization vector (iv),\n * auth tag, encrypted plaintext. IV is 12 bytes. Auth tag is 16 bytes.\n */\n async decrypt(cipherText) {\n const secret = this.secret;\n if (secret.length !== 64)\n throw Error(`secret must be 256 bits`);\n return new Promise((resolve, reject) => {\n void (async function () {\n const secretKey = await crypto.subtle.importKey('raw', hexStringToUint8Array(secret), { name: 'aes-gcm' }, false, ['encrypt', 'decrypt']);\n const encrypted = hexStringToUint8Array(cipherText);\n const ivBytes = encrypted.slice(0, 12);\n const authTagBytes = encrypted.slice(12, 28);\n const encryptedPlaintextBytes = encrypted.slice(28);\n const concattedBytes = new Uint8Array([...encryptedPlaintextBytes, ...authTagBytes]);\n const algo = {\n name: 'AES-GCM',\n iv: new Uint8Array(ivBytes),\n };\n try {\n const decrypted = await window.crypto.subtle.decrypt(algo, secretKey, concattedBytes);\n const decoder = new TextDecoder();\n resolve(decoder.decode(decrypted));\n }\n catch (err) {\n reject(err);\n }\n })();\n });\n }\n}\n//# sourceMappingURL=WalletLinkCipher.js.map","export class WalletLinkHTTP {\n constructor(linkAPIUrl, sessionId, sessionKey) {\n this.linkAPIUrl = linkAPIUrl;\n this.sessionId = sessionId;\n const credentials = `${sessionId}:${sessionKey}`;\n this.auth = `Basic ${btoa(credentials)}`;\n }\n // mark unseen events as seen\n async markUnseenEventsAsSeen(events) {\n return Promise.all(events.map((e) => fetch(`${this.linkAPIUrl}/events/${e.eventId}/seen`, {\n method: 'POST',\n headers: {\n Authorization: this.auth,\n },\n }))).catch((error) => console.error('Unabled to mark event as failed:', error));\n }\n async fetchUnseenEvents() {\n var _a;\n const response = await fetch(`${this.linkAPIUrl}/events?unseen=true`, {\n headers: {\n Authorization: this.auth,\n },\n });\n if (response.ok) {\n const { events, error } = (await response.json());\n if (error) {\n throw new Error(`Check unseen events failed: ${error}`);\n }\n const responseEvents = (_a = events === null || events === void 0 ? void 0 : events.filter((e) => e.event === 'Web3Response').map((e) => ({\n type: 'Event',\n sessionId: this.sessionId,\n eventId: e.id,\n event: e.event,\n data: e.data,\n }))) !== null && _a !== void 0 ? _a : [];\n this.markUnseenEventsAsSeen(responseEvents);\n return responseEvents;\n }\n throw new Error(`Check unseen events failed: ${response.status}`);\n }\n}\n//# sourceMappingURL=WalletLinkHTTP.js.map","// Copyright (c) 2018-2023 Coinbase, Inc. \nexport var ConnectionState;\n(function (ConnectionState) {\n ConnectionState[ConnectionState[\"DISCONNECTED\"] = 0] = \"DISCONNECTED\";\n ConnectionState[ConnectionState[\"CONNECTING\"] = 1] = \"CONNECTING\";\n ConnectionState[ConnectionState[\"CONNECTED\"] = 2] = \"CONNECTED\";\n})(ConnectionState || (ConnectionState = {}));\nexport class WalletLinkWebSocket {\n setConnectionStateListener(listener) {\n this.connectionStateListener = listener;\n }\n setIncomingDataListener(listener) {\n this.incomingDataListener = listener;\n }\n /**\n * Constructor\n * @param url WebSocket server URL\n * @param [WebSocketClass] Custom WebSocket implementation\n */\n constructor(url, WebSocketClass = WebSocket) {\n this.WebSocketClass = WebSocketClass;\n this.webSocket = null;\n this.pendingData = [];\n this.url = url.replace(/^http/, 'ws');\n }\n /**\n * Make a websocket connection\n * @returns a Promise that resolves when connected\n */\n async connect() {\n if (this.webSocket) {\n throw new Error('webSocket object is not null');\n }\n return new Promise((resolve, reject) => {\n var _a;\n let webSocket;\n try {\n this.webSocket = webSocket = new this.WebSocketClass(this.url);\n }\n catch (err) {\n reject(err);\n return;\n }\n (_a = this.connectionStateListener) === null || _a === void 0 ? void 0 : _a.call(this, ConnectionState.CONNECTING);\n webSocket.onclose = (evt) => {\n var _a;\n this.clearWebSocket();\n reject(new Error(`websocket error ${evt.code}: ${evt.reason}`));\n (_a = this.connectionStateListener) === null || _a === void 0 ? void 0 : _a.call(this, ConnectionState.DISCONNECTED);\n };\n webSocket.onopen = (_) => {\n var _a;\n resolve();\n (_a = this.connectionStateListener) === null || _a === void 0 ? void 0 : _a.call(this, ConnectionState.CONNECTED);\n if (this.pendingData.length > 0) {\n const pending = [...this.pendingData];\n pending.forEach((data) => this.sendData(data));\n this.pendingData = [];\n }\n };\n webSocket.onmessage = (evt) => {\n var _a, _b;\n if (evt.data === 'h') {\n (_a = this.incomingDataListener) === null || _a === void 0 ? void 0 : _a.call(this, {\n type: 'Heartbeat',\n });\n }\n else {\n try {\n const message = JSON.parse(evt.data);\n (_b = this.incomingDataListener) === null || _b === void 0 ? void 0 : _b.call(this, message);\n }\n catch (_c) {\n /* empty */\n }\n }\n };\n });\n }\n /**\n * Disconnect from server\n */\n disconnect() {\n var _a;\n const { webSocket } = this;\n if (!webSocket) {\n return;\n }\n this.clearWebSocket();\n (_a = this.connectionStateListener) === null || _a === void 0 ? void 0 : _a.call(this, ConnectionState.DISCONNECTED);\n this.connectionStateListener = undefined;\n this.incomingDataListener = undefined;\n try {\n webSocket.close();\n }\n catch (_b) {\n // noop\n }\n }\n /**\n * Send data to server\n * @param data text to send\n */\n sendData(data) {\n const { webSocket } = this;\n if (!webSocket) {\n this.pendingData.push(data);\n this.connect();\n return;\n }\n webSocket.send(data);\n }\n clearWebSocket() {\n const { webSocket } = this;\n if (!webSocket) {\n return;\n }\n this.webSocket = null;\n webSocket.onclose = null;\n webSocket.onerror = null;\n webSocket.onmessage = null;\n webSocket.onopen = null;\n }\n}\n//# sourceMappingURL=WalletLinkWebSocket.js.map","// Copyright (c) 2018-2023 Coinbase, Inc. \nimport { APP_VERSION_KEY, WALLET_USER_NAME_KEY } from '../constants.js';\nimport { WalletLinkCipher } from './WalletLinkCipher.js';\nimport { WalletLinkHTTP } from './WalletLinkHTTP.js';\nimport { ConnectionState, WalletLinkWebSocket } from './WalletLinkWebSocket.js';\nimport { IntNumber } from '../../../../core/type/index.js';\nconst HEARTBEAT_INTERVAL = 10000;\nconst REQUEST_TIMEOUT = 60000;\n/**\n * Coinbase Wallet Connection\n */\nexport class WalletLinkConnection {\n /**\n * Constructor\n * @param session Session\n * @param linkAPIUrl Coinbase Wallet link server URL\n * @param listener WalletLinkConnectionUpdateListener\n * @param [WebSocketClass] Custom WebSocket implementation\n */\n constructor({ session, linkAPIUrl, listener }) {\n this.destroyed = false;\n this.lastHeartbeatResponse = 0;\n this.nextReqId = IntNumber(1);\n /**\n * true if connected and authenticated, else false\n * runs listener when connected status changes\n */\n this._connected = false;\n /**\n * true if linked (a guest has joined before)\n * runs listener when linked status changes\n */\n this._linked = false;\n this.shouldFetchUnseenEventsOnConnect = false;\n this.requestResolutions = new Map();\n this.handleSessionMetadataUpdated = (metadata) => {\n if (!metadata)\n return;\n // Map of metadata key to handler function\n const handlers = new Map([\n ['__destroyed', this.handleDestroyed],\n ['EthereumAddress', this.handleAccountUpdated],\n ['WalletUsername', this.handleWalletUsernameUpdated],\n ['AppVersion', this.handleAppVersionUpdated],\n [\n 'ChainId', // ChainId and JsonRpcUrl are always updated together\n (v) => metadata.JsonRpcUrl && this.handleChainUpdated(v, metadata.JsonRpcUrl),\n ],\n ]);\n // call handler for each metadata key if value is defined\n handlers.forEach((handler, key) => {\n const value = metadata[key];\n if (value === undefined)\n return;\n handler(value);\n });\n };\n this.handleDestroyed = (__destroyed) => {\n var _a;\n if (__destroyed !== '1')\n return;\n (_a = this.listener) === null || _a === void 0 ? void 0 : _a.resetAndReload();\n };\n this.handleAccountUpdated = async (encryptedEthereumAddress) => {\n var _a;\n const address = await this.cipher.decrypt(encryptedEthereumAddress);\n (_a = this.listener) === null || _a === void 0 ? void 0 : _a.accountUpdated(address);\n };\n this.handleMetadataUpdated = async (key, encryptedMetadataValue) => {\n var _a;\n const decryptedValue = await this.cipher.decrypt(encryptedMetadataValue);\n (_a = this.listener) === null || _a === void 0 ? void 0 : _a.metadataUpdated(key, decryptedValue);\n };\n this.handleWalletUsernameUpdated = async (walletUsername) => {\n this.handleMetadataUpdated(WALLET_USER_NAME_KEY, walletUsername);\n };\n this.handleAppVersionUpdated = async (appVersion) => {\n this.handleMetadataUpdated(APP_VERSION_KEY, appVersion);\n };\n this.handleChainUpdated = async (encryptedChainId, encryptedJsonRpcUrl) => {\n var _a;\n const chainId = await this.cipher.decrypt(encryptedChainId);\n const jsonRpcUrl = await this.cipher.decrypt(encryptedJsonRpcUrl);\n (_a = this.listener) === null || _a === void 0 ? void 0 : _a.chainUpdated(chainId, jsonRpcUrl);\n };\n this.session = session;\n this.cipher = new WalletLinkCipher(session.secret);\n this.listener = listener;\n const ws = new WalletLinkWebSocket(`${linkAPIUrl}/rpc`, WebSocket);\n ws.setConnectionStateListener(async (state) => {\n // attempt to reconnect every 5 seconds when disconnected\n let connected = false;\n switch (state) {\n case ConnectionState.DISCONNECTED:\n // if DISCONNECTED and not destroyed\n if (!this.destroyed) {\n const connect = async () => {\n // wait 5 seconds\n await new Promise((resolve) => setTimeout(resolve, 5000));\n // check whether it's destroyed again\n if (!this.destroyed) {\n // reconnect\n ws.connect().catch(() => {\n connect();\n });\n }\n };\n connect();\n }\n break;\n case ConnectionState.CONNECTED:\n // perform authentication upon connection\n // if CONNECTED, authenticate, and then check link status\n connected = await this.handleConnected();\n // send heartbeat every n seconds while connected\n // if CONNECTED, start the heartbeat timer\n // first timer event updates lastHeartbeat timestamp\n // subsequent calls send heartbeat message\n this.updateLastHeartbeat();\n setInterval(() => {\n this.heartbeat();\n }, HEARTBEAT_INTERVAL);\n // check for unseen events\n if (this.shouldFetchUnseenEventsOnConnect) {\n this.fetchUnseenEventsAPI();\n }\n break;\n case ConnectionState.CONNECTING:\n break;\n }\n // distinctUntilChanged\n if (this.connected !== connected) {\n this.connected = connected;\n }\n });\n ws.setIncomingDataListener((m) => {\n var _a;\n switch (m.type) {\n // handle server's heartbeat responses\n case 'Heartbeat':\n this.updateLastHeartbeat();\n return;\n // handle link status updates\n case 'IsLinkedOK':\n case 'Linked': {\n const linked = m.type === 'IsLinkedOK' ? m.linked : undefined;\n this.linked = linked || m.onlineGuests > 0;\n break;\n }\n // handle session config updates\n case 'GetSessionConfigOK':\n case 'SessionConfigUpdated': {\n this.handleSessionMetadataUpdated(m.metadata);\n break;\n }\n case 'Event': {\n this.handleIncomingEvent(m);\n break;\n }\n }\n // resolve request promises\n if (m.id !== undefined) {\n (_a = this.requestResolutions.get(m.id)) === null || _a === void 0 ? void 0 : _a(m);\n }\n });\n this.ws = ws;\n this.http = new WalletLinkHTTP(linkAPIUrl, session.id, session.key);\n }\n /**\n * Make a connection to the server\n */\n connect() {\n if (this.destroyed) {\n throw new Error('instance is destroyed');\n }\n this.ws.connect();\n }\n /**\n * Terminate connection, and mark as destroyed. To reconnect, create a new\n * instance of WalletSDKConnection\n */\n async destroy() {\n if (this.destroyed)\n return;\n await this.makeRequest({\n type: 'SetSessionConfig',\n id: IntNumber(this.nextReqId++),\n sessionId: this.session.id,\n metadata: { __destroyed: '1' },\n }, { timeout: 1000 });\n this.destroyed = true;\n this.ws.disconnect();\n this.listener = undefined;\n }\n get connected() {\n return this._connected;\n }\n set connected(connected) {\n this._connected = connected;\n }\n get linked() {\n return this._linked;\n }\n set linked(linked) {\n var _a, _b;\n this._linked = linked;\n if (linked)\n (_a = this.onceLinked) === null || _a === void 0 ? void 0 : _a.call(this);\n (_b = this.listener) === null || _b === void 0 ? void 0 : _b.linkedUpdated(linked);\n }\n setOnceLinked(callback) {\n return new Promise((resolve) => {\n if (this.linked) {\n callback().then(resolve);\n }\n else {\n this.onceLinked = () => {\n callback().then(resolve);\n this.onceLinked = undefined;\n };\n }\n });\n }\n async handleIncomingEvent(m) {\n var _a;\n if (m.type !== 'Event' || m.event !== 'Web3Response') {\n return;\n }\n const decryptedData = await this.cipher.decrypt(m.data);\n const message = JSON.parse(decryptedData);\n if (message.type !== 'WEB3_RESPONSE')\n return;\n const { id, response } = message;\n (_a = this.listener) === null || _a === void 0 ? void 0 : _a.handleWeb3ResponseMessage(id, response);\n }\n async checkUnseenEvents() {\n if (!this.connected) {\n this.shouldFetchUnseenEventsOnConnect = true;\n return;\n }\n await new Promise((resolve) => setTimeout(resolve, 250));\n try {\n await this.fetchUnseenEventsAPI();\n }\n catch (e) {\n console.error('Unable to check for unseen events', e);\n }\n }\n async fetchUnseenEventsAPI() {\n this.shouldFetchUnseenEventsOnConnect = false;\n const responseEvents = await this.http.fetchUnseenEvents();\n responseEvents.forEach((e) => this.handleIncomingEvent(e));\n }\n /**\n * Publish an event and emit event ID when successful\n * @param event event name\n * @param unencryptedData unencrypted event data\n * @param callWebhook whether the webhook should be invoked\n * @returns a Promise that emits event ID when successful\n */\n async publishEvent(event, unencryptedData, callWebhook = false) {\n const data = await this.cipher.encrypt(JSON.stringify(Object.assign(Object.assign({}, unencryptedData), { origin: location.origin, location: location.href, relaySource: 'coinbaseWalletExtension' in window && window.coinbaseWalletExtension\n ? 'injected_sdk'\n : 'sdk' })));\n const message = {\n type: 'PublishEvent',\n id: IntNumber(this.nextReqId++),\n sessionId: this.session.id,\n event,\n data,\n callWebhook,\n };\n return this.setOnceLinked(async () => {\n const res = await this.makeRequest(message);\n if (res.type === 'Fail') {\n throw new Error(res.error || 'failed to publish event');\n }\n return res.eventId;\n });\n }\n sendData(message) {\n this.ws.sendData(JSON.stringify(message));\n }\n updateLastHeartbeat() {\n this.lastHeartbeatResponse = Date.now();\n }\n heartbeat() {\n if (Date.now() - this.lastHeartbeatResponse > HEARTBEAT_INTERVAL * 2) {\n this.ws.disconnect();\n return;\n }\n try {\n this.ws.sendData('h');\n }\n catch (_a) {\n // noop\n }\n }\n async makeRequest(message, options = { timeout: REQUEST_TIMEOUT }) {\n const reqId = message.id;\n this.sendData(message);\n // await server message with corresponding id\n let timeoutId;\n return Promise.race([\n new Promise((_, reject) => {\n timeoutId = window.setTimeout(() => {\n reject(new Error(`request ${reqId} timed out`));\n }, options.timeout);\n }),\n new Promise((resolve) => {\n this.requestResolutions.set(reqId, (m) => {\n clearTimeout(timeoutId); // clear the timeout\n resolve(m);\n this.requestResolutions.delete(reqId);\n });\n }),\n ]);\n }\n async handleConnected() {\n const res = await this.makeRequest({\n type: 'HostSession',\n id: IntNumber(this.nextReqId++),\n sessionId: this.session.id,\n sessionKey: this.session.key,\n });\n if (res.type === 'Fail')\n return false;\n this.sendData({\n type: 'IsLinked',\n id: IntNumber(this.nextReqId++),\n sessionId: this.session.id,\n });\n this.sendData({\n type: 'GetSessionConfig',\n id: IntNumber(this.nextReqId++),\n sessionId: this.session.id,\n });\n return true;\n }\n}\n//# sourceMappingURL=WalletLinkConnection.js.map","import { prepend0x } from '../../../core/type/util.js';\nexport class RelayEventManager {\n constructor() {\n this._nextRequestId = 0;\n this.callbacks = new Map();\n }\n makeRequestId() {\n // max nextId == max int32 for compatibility with mobile\n this._nextRequestId = (this._nextRequestId + 1) % 0x7fffffff;\n const id = this._nextRequestId;\n const idStr = prepend0x(id.toString(16));\n // unlikely that this will ever be an issue, but just to be safe\n const callback = this.callbacks.get(idStr);\n if (callback) {\n this.callbacks.delete(idStr);\n }\n return id;\n }\n}\n//# sourceMappingURL=RelayEventManager.js.map","// Copyright (c) 2018-2023 Coinbase, Inc. \nimport { sha256 } from '@noble/hashes/sha256';\nimport { bytesToHex } from '@noble/hashes/utils';\nimport { randomBytesHex } from '../../../../core/type/util.js';\nconst STORAGE_KEY_SESSION_ID = 'session:id';\nconst STORAGE_KEY_SESSION_SECRET = 'session:secret';\nconst STORAGE_KEY_SESSION_LINKED = 'session:linked';\nexport class WalletLinkSession {\n constructor(storage, id, secret, linked = false) {\n this.storage = storage;\n this.id = id;\n this.secret = secret;\n this.key = bytesToHex(sha256(`${id}, ${secret} WalletLink`));\n this._linked = !!linked;\n }\n static create(storage) {\n const id = randomBytesHex(16);\n const secret = randomBytesHex(32);\n return new WalletLinkSession(storage, id, secret).save();\n }\n static load(storage) {\n const id = storage.getItem(STORAGE_KEY_SESSION_ID);\n const linked = storage.getItem(STORAGE_KEY_SESSION_LINKED);\n const secret = storage.getItem(STORAGE_KEY_SESSION_SECRET);\n if (id && secret) {\n return new WalletLinkSession(storage, id, secret, linked === '1');\n }\n return null;\n }\n get linked() {\n return this._linked;\n }\n set linked(val) {\n this._linked = val;\n this.persistLinked();\n }\n save() {\n this.storage.setItem(STORAGE_KEY_SESSION_ID, this.id);\n this.storage.setItem(STORAGE_KEY_SESSION_SECRET, this.secret);\n this.persistLinked();\n return this;\n }\n persistLinked() {\n this.storage.setItem(STORAGE_KEY_SESSION_LINKED, this._linked ? '1' : '0');\n }\n}\n//# sourceMappingURL=WalletLinkSession.js.map","export function createQrUrl(sessionId, sessionSecret, serverUrl, isParentConnection, version, chainId) {\n const sessionIdKey = isParentConnection ? 'parent-id' : 'id';\n const query = new URLSearchParams({\n [sessionIdKey]: sessionId,\n secret: sessionSecret,\n server: serverUrl,\n v: version,\n chainId: chainId.toString(),\n }).toString();\n const qrUrl = `${serverUrl}/#/link?${query}`;\n return qrUrl;\n}\nfunction isInIFrame() {\n try {\n return window.frameElement !== null;\n }\n catch (e) {\n return false;\n }\n}\nexport function getLocation() {\n try {\n if (isInIFrame() && window.top) {\n return window.top.location;\n }\n return window.location;\n }\n catch (e) {\n return window.location;\n }\n}\nexport function isMobileWeb() {\n var _a;\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test((_a = window === null || window === void 0 ? void 0 : window.navigator) === null || _a === void 0 ? void 0 : _a.userAgent);\n}\nexport function isDarkMode() {\n var _a, _b;\n return (_b = (_a = window === null || window === void 0 ? void 0 : window.matchMedia) === null || _a === void 0 ? void 0 : _a.call(window, '(prefers-color-scheme: dark)').matches) !== null && _b !== void 0 ? _b : false;\n}\n//# sourceMappingURL=util.js.map","export default (() => `@namespace svg \"http://www.w3.org/2000/svg\";.-cbwsdk-css-reset,.-cbwsdk-css-reset *{animation:none;animation-delay:0;animation-direction:normal;animation-duration:0;animation-fill-mode:none;animation-iteration-count:1;animation-name:none;animation-play-state:running;animation-timing-function:ease;backface-visibility:visible;background:0;background-attachment:scroll;background-clip:border-box;background-color:rgba(0,0,0,0);background-image:none;background-origin:padding-box;background-position:0 0;background-position-x:0;background-position-y:0;background-repeat:repeat;background-size:auto auto;border:0;border-style:none;border-width:medium;border-color:inherit;border-bottom:0;border-bottom-color:inherit;border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-style:none;border-bottom-width:medium;border-collapse:separate;border-image:none;border-left:0;border-left-color:inherit;border-left-style:none;border-left-width:medium;border-radius:0;border-right:0;border-right-color:inherit;border-right-style:none;border-right-width:medium;border-spacing:0;border-top:0;border-top-color:inherit;border-top-left-radius:0;border-top-right-radius:0;border-top-style:none;border-top-width:medium;box-shadow:none;box-sizing:border-box;caption-side:top;clear:none;clip:auto;color:inherit;columns:auto;column-count:auto;column-fill:balance;column-gap:normal;column-rule:medium none currentColor;column-rule-color:currentColor;column-rule-style:none;column-rule-width:none;column-span:1;column-width:auto;counter-increment:none;counter-reset:none;direction:ltr;empty-cells:show;float:none;font:normal;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",\"Helvetica Neue\",Arial,sans-serif;font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;height:auto;hyphens:none;letter-spacing:normal;line-height:normal;list-style:none;list-style-image:none;list-style-position:outside;list-style-type:disc;margin:0;margin-bottom:0;margin-left:0;margin-right:0;margin-top:0;opacity:1;orphans:0;outline:0;outline-color:invert;outline-style:none;outline-width:medium;overflow:visible;overflow-x:visible;overflow-y:visible;padding:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;page-break-after:auto;page-break-before:auto;page-break-inside:auto;perspective:none;perspective-origin:50% 50%;pointer-events:auto;position:static;quotes:\"\\\\201C\" \"\\\\201D\" \"\\\\2018\" \"\\\\2019\";tab-size:8;table-layout:auto;text-align:inherit;text-align-last:auto;text-decoration:none;text-decoration-color:inherit;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-shadow:none;text-transform:none;transform:none;transform-style:flat;transition:none;transition-delay:0s;transition-duration:0s;transition-property:none;transition-timing-function:ease;unicode-bidi:normal;vertical-align:baseline;visibility:visible;white-space:normal;widows:0;word-spacing:normal;z-index:auto}.-cbwsdk-css-reset strong{font-weight:bold}.-cbwsdk-css-reset *{box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",\"Helvetica Neue\",Arial,sans-serif;line-height:1}.-cbwsdk-css-reset [class*=container]{margin:0;padding:0}.-cbwsdk-css-reset style{display:none}`)();\n//# sourceMappingURL=cssReset-css.js.map","// Copyright (c) 2018-2023 Coinbase, Inc. \nimport css from './cssReset-css.js';\nexport function injectCssReset() {\n const styleEl = document.createElement('style');\n styleEl.type = 'text/css';\n styleEl.appendChild(document.createTextNode(css));\n document.documentElement.appendChild(styleEl);\n}\n//# sourceMappingURL=cssReset.js.map","export default (() => `.-cbwsdk-css-reset .-gear-container{margin-left:16px !important;margin-right:9px !important;display:flex;align-items:center;justify-content:center;width:24px;height:24px;transition:opacity .25s}.-cbwsdk-css-reset .-gear-container *{user-select:none}.-cbwsdk-css-reset .-gear-container svg{opacity:0;position:absolute}.-cbwsdk-css-reset .-gear-icon{height:12px;width:12px;z-index:10000}.-cbwsdk-css-reset .-cbwsdk-snackbar{align-items:flex-end;display:flex;flex-direction:column;position:fixed;right:0;top:0;z-index:2147483647}.-cbwsdk-css-reset .-cbwsdk-snackbar *{user-select:none}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance{display:flex;flex-direction:column;margin:8px 16px 0 16px;overflow:visible;text-align:left;transform:translateX(0);transition:opacity .25s,transform .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-header:hover .-gear-container svg{opacity:1}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-header{display:flex;align-items:center;background:#fff;overflow:hidden;border:1px solid #e7ebee;box-sizing:border-box;border-radius:8px;cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-header-cblogo{margin:8px 8px 8px 8px}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-header *{cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-header-message{color:#000;font-size:13px;line-height:1.5;user-select:none}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu{background:#fff;transition:opacity .25s ease-in-out,transform .25s linear,visibility 0s;visibility:hidden;border:1px solid #e7ebee;box-sizing:border-box;border-radius:8px;opacity:0;flex-direction:column;padding-left:8px;padding-right:8px}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item:last-child{margin-bottom:8px !important}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item:hover{background:#f5f7f8;border-radius:6px;transition:background .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item:hover span{color:#050f19;transition:color .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item:hover svg path{fill:#000;transition:fill .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item{visibility:inherit;height:35px;margin-top:8px;margin-bottom:0;display:flex;flex-direction:row;align-items:center;padding:8px;cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item *{visibility:inherit;cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item-is-red:hover{background:rgba(223,95,103,.2);transition:background .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item-is-red:hover *{cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item-is-red:hover svg path{fill:#df5f67;transition:fill .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item-is-red:hover span{color:#df5f67;transition:color .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item-info{color:#aaa;font-size:13px;margin:0 8px 0 32px;position:absolute}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-hidden{opacity:0;text-align:left;transform:translateX(25%);transition:opacity .5s linear}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-expanded .-cbwsdk-snackbar-instance-menu{opacity:1;display:flex;transform:translateY(8px);visibility:visible}`)();\n//# sourceMappingURL=Snackbar-css.js.map","// Copyright (c) 2018-2023 Coinbase, Inc. \nimport { clsx } from 'clsx';\nimport { h, render } from 'preact';\nimport { useEffect, useState } from 'preact/hooks';\nimport { isDarkMode } from '../util.js';\nimport css from './Snackbar-css.js';\nconst cblogo = `data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEuNDkyIDEwLjQxOWE4LjkzIDguOTMgMCAwMTguOTMtOC45M2gxMS4xNjNhOC45MyA4LjkzIDAgMDE4LjkzIDguOTN2MTEuMTYzYTguOTMgOC45MyAwIDAxLTguOTMgOC45M0gxMC40MjJhOC45MyA4LjkzIDAgMDEtOC45My04LjkzVjEwLjQxOXoiIGZpbGw9IiMxNjUyRjAiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTEwLjQxOSAwSDIxLjU4QzI3LjMzNSAwIDMyIDQuNjY1IDMyIDEwLjQxOVYyMS41OEMzMiAyNy4zMzUgMjcuMzM1IDMyIDIxLjU4MSAzMkgxMC40MkM0LjY2NSAzMiAwIDI3LjMzNSAwIDIxLjU4MVYxMC40MkMwIDQuNjY1IDQuNjY1IDAgMTAuNDE5IDB6bTAgMS40ODhhOC45MyA4LjkzIDAgMDAtOC45MyA4LjkzdjExLjE2M2E4LjkzIDguOTMgMCAwMDguOTMgOC45M0gyMS41OGE4LjkzIDguOTMgMCAwMDguOTMtOC45M1YxMC40MmE4LjkzIDguOTMgMCAwMC04LjkzLTguOTNIMTAuNDJ6IiBmaWxsPSIjZmZmIi8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNS45OTggMjYuMDQ5Yy01LjU0OSAwLTEwLjA0Ny00LjQ5OC0xMC4wNDctMTAuMDQ3IDAtNS41NDggNC40OTgtMTAuMDQ2IDEwLjA0Ny0xMC4wNDYgNS41NDggMCAxMC4wNDYgNC40OTggMTAuMDQ2IDEwLjA0NiAwIDUuNTQ5LTQuNDk4IDEwLjA0Ny0xMC4wNDYgMTAuMDQ3eiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik0xMi43NjIgMTQuMjU0YzAtLjgyMi42NjctMS40ODkgMS40ODktMS40ODloMy40OTdjLjgyMiAwIDEuNDg4LjY2NiAxLjQ4OCAxLjQ4OXYzLjQ5N2MwIC44MjItLjY2NiAxLjQ4OC0xLjQ4OCAxLjQ4OGgtMy40OTdhMS40ODggMS40ODggMCAwMS0xLjQ4OS0xLjQ4OHYtMy40OTh6IiBmaWxsPSIjMTY1MkYwIi8+PC9zdmc+`;\nconst gearIcon = `data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEyIDYuNzV2LTEuNWwtMS43Mi0uNTdjLS4wOC0uMjctLjE5LS41Mi0uMzItLjc3bC44MS0xLjYyLTEuMDYtMS4wNi0xLjYyLjgxYy0uMjQtLjEzLS41LS4yNC0uNzctLjMyTDYuNzUgMGgtMS41bC0uNTcgMS43MmMtLjI3LjA4LS41My4xOS0uNzcuMzJsLTEuNjItLjgxLTEuMDYgMS4wNi44MSAxLjYyYy0uMTMuMjQtLjI0LjUtLjMyLjc3TDAgNS4yNXYxLjVsMS43Mi41N2MuMDguMjcuMTkuNTMuMzIuNzdsLS44MSAxLjYyIDEuMDYgMS4wNiAxLjYyLS44MWMuMjQuMTMuNS4yMy43Ny4zMkw1LjI1IDEyaDEuNWwuNTctMS43MmMuMjctLjA4LjUyLS4xOS43Ny0uMzJsMS42Mi44MSAxLjA2LTEuMDYtLjgxLTEuNjJjLjEzLS4yNC4yMy0uNS4zMi0uNzdMMTIgNi43NXpNNiA4LjVhMi41IDIuNSAwIDAxMC01IDIuNSAyLjUgMCAwMTAgNXoiIGZpbGw9IiMwNTBGMTkiLz48L3N2Zz4=`;\nexport class Snackbar {\n constructor() {\n this.items = new Map();\n this.nextItemKey = 0;\n this.root = null;\n this.darkMode = isDarkMode();\n }\n attach(el) {\n this.root = document.createElement('div');\n this.root.className = '-cbwsdk-snackbar-root';\n el.appendChild(this.root);\n this.render();\n }\n presentItem(itemProps) {\n const key = this.nextItemKey++;\n this.items.set(key, itemProps);\n this.render();\n return () => {\n this.items.delete(key);\n this.render();\n };\n }\n clear() {\n this.items.clear();\n this.render();\n }\n render() {\n if (!this.root) {\n return;\n }\n render(h(\"div\", null,\n h(SnackbarContainer, { darkMode: this.darkMode }, Array.from(this.items.entries()).map(([key, itemProps]) => (h(SnackbarInstance, Object.assign({}, itemProps, { key: key })))))), this.root);\n }\n}\nexport const SnackbarContainer = (props) => (h(\"div\", { class: clsx('-cbwsdk-snackbar-container') },\n h(\"style\", null, css),\n h(\"div\", { class: \"-cbwsdk-snackbar\" }, props.children)));\nexport const SnackbarInstance = ({ autoExpand, message, menuItems, }) => {\n const [hidden, setHidden] = useState(true);\n const [expanded, setExpanded] = useState(autoExpand !== null && autoExpand !== void 0 ? autoExpand : false);\n useEffect(() => {\n const timers = [\n window.setTimeout(() => {\n setHidden(false);\n }, 1),\n window.setTimeout(() => {\n setExpanded(true);\n }, 10000),\n ];\n return () => {\n timers.forEach(window.clearTimeout);\n };\n });\n const toggleExpanded = () => {\n setExpanded(!expanded);\n };\n return (h(\"div\", { class: clsx('-cbwsdk-snackbar-instance', hidden && '-cbwsdk-snackbar-instance-hidden', expanded && '-cbwsdk-snackbar-instance-expanded') },\n h(\"div\", { class: \"-cbwsdk-snackbar-instance-header\", onClick: toggleExpanded },\n h(\"img\", { src: cblogo, class: \"-cbwsdk-snackbar-instance-header-cblogo\" }),\n ' ',\n h(\"div\", { class: \"-cbwsdk-snackbar-instance-header-message\" }, message),\n h(\"div\", { class: \"-gear-container\" },\n !expanded && (h(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n h(\"circle\", { cx: \"12\", cy: \"12\", r: \"12\", fill: \"#F5F7F8\" }))),\n h(\"img\", { src: gearIcon, class: \"-gear-icon\", title: \"Expand\" }))),\n menuItems && menuItems.length > 0 && (h(\"div\", { class: \"-cbwsdk-snackbar-instance-menu\" }, menuItems.map((action, i) => (h(\"div\", { class: clsx('-cbwsdk-snackbar-instance-menu-item', action.isRed && '-cbwsdk-snackbar-instance-menu-item-is-red'), onClick: action.onClick, key: i },\n h(\"svg\", { width: action.svgWidth, height: action.svgHeight, viewBox: \"0 0 10 11\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n h(\"path\", { \"fill-rule\": action.defaultFillRule, \"clip-rule\": action.defaultClipRule, d: action.path, fill: \"#AAAAAA\" })),\n h(\"span\", { class: clsx('-cbwsdk-snackbar-instance-menu-item-info', action.isRed && '-cbwsdk-snackbar-instance-menu-item-info-is-red') }, action.info))))))));\n};\n//# sourceMappingURL=Snackbar.js.map","import { injectCssReset } from './components/cssReset/cssReset.js';\nimport { Snackbar } from './components/Snackbar/Snackbar.js';\nexport class WalletLinkRelayUI {\n constructor() {\n this.attached = false;\n this.snackbar = new Snackbar();\n }\n attach() {\n if (this.attached) {\n throw new Error('Coinbase Wallet SDK UI is already attached');\n }\n const el = document.documentElement;\n const container = document.createElement('div');\n container.className = '-cbwsdk-css-reset';\n el.appendChild(container);\n this.snackbar.attach(container);\n this.attached = true;\n injectCssReset();\n }\n showConnecting(options) {\n let snackbarProps;\n if (options.isUnlinkedErrorState) {\n snackbarProps = {\n autoExpand: true,\n message: 'Connection lost',\n menuItems: [\n {\n isRed: false,\n info: 'Reset connection',\n svgWidth: '10',\n svgHeight: '11',\n path: 'M5.00008 0.96875C6.73133 0.96875 8.23758 1.94375 9.00008 3.375L10.0001 2.375V5.5H9.53133H7.96883H6.87508L7.80633 4.56875C7.41258 3.3875 6.31258 2.53125 5.00008 2.53125C3.76258 2.53125 2.70633 3.2875 2.25633 4.36875L0.812576 3.76875C1.50008 2.125 3.11258 0.96875 5.00008 0.96875ZM2.19375 6.43125C2.5875 7.6125 3.6875 8.46875 5 8.46875C6.2375 8.46875 7.29375 7.7125 7.74375 6.63125L9.1875 7.23125C8.5 8.875 6.8875 10.0312 5 10.0312C3.26875 10.0312 1.7625 9.05625 1 7.625L0 8.625V5.5H0.46875H2.03125H3.125L2.19375 6.43125Z',\n defaultFillRule: 'evenodd',\n defaultClipRule: 'evenodd',\n onClick: options.onResetConnection,\n },\n ],\n };\n }\n else {\n snackbarProps = {\n message: 'Confirm on phone',\n menuItems: [\n {\n isRed: true,\n info: 'Cancel transaction',\n svgWidth: '11',\n svgHeight: '11',\n path: 'M10.3711 1.52346L9.21775 0.370117L5.37109 4.21022L1.52444 0.370117L0.371094 1.52346L4.2112 5.37012L0.371094 9.21677L1.52444 10.3701L5.37109 6.53001L9.21775 10.3701L10.3711 9.21677L6.53099 5.37012L10.3711 1.52346Z',\n defaultFillRule: 'inherit',\n defaultClipRule: 'inherit',\n onClick: options.onCancel,\n },\n {\n isRed: false,\n info: 'Reset connection',\n svgWidth: '10',\n svgHeight: '11',\n path: 'M5.00008 0.96875C6.73133 0.96875 8.23758 1.94375 9.00008 3.375L10.0001 2.375V5.5H9.53133H7.96883H6.87508L7.80633 4.56875C7.41258 3.3875 6.31258 2.53125 5.00008 2.53125C3.76258 2.53125 2.70633 3.2875 2.25633 4.36875L0.812576 3.76875C1.50008 2.125 3.11258 0.96875 5.00008 0.96875ZM2.19375 6.43125C2.5875 7.6125 3.6875 8.46875 5 8.46875C6.2375 8.46875 7.29375 7.7125 7.74375 6.63125L9.1875 7.23125C8.5 8.875 6.8875 10.0312 5 10.0312C3.26875 10.0312 1.7625 9.05625 1 7.625L0 8.625V5.5H0.46875H2.03125H3.125L2.19375 6.43125Z',\n defaultFillRule: 'evenodd',\n defaultClipRule: 'evenodd',\n onClick: options.onResetConnection,\n },\n ],\n };\n }\n return this.snackbar.presentItem(snackbarProps);\n }\n}\n//# sourceMappingURL=WalletLinkRelayUI.js.map","export default (() => `.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;transition:opacity .25s;background-color:rgba(10,11,13,.5)}.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-backdrop-hidden{opacity:0}.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-box{display:block;position:fixed;top:50%;left:50%;transform:translate(-50%, -50%);padding:20px;border-radius:8px;background-color:#fff;color:#0a0b0d}.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-box p{display:block;font-weight:400;font-size:14px;line-height:20px;padding-bottom:12px;color:#5b636e}.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-box button{appearance:none;border:none;background:none;color:#0052ff;padding:0;text-decoration:none;display:block;font-weight:600;font-size:16px;line-height:24px}.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-box.dark{background-color:#0a0b0d;color:#fff}.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-box.dark button{color:#0052ff}.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-box.light{background-color:#fff;color:#0a0b0d}.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-box.light button{color:#0052ff}`)();\n//# sourceMappingURL=RedirectDialog-css.js.map","import { clsx } from 'clsx';\nimport { h, render } from 'preact';\nimport { injectCssReset } from '../cssReset/cssReset.js';\nimport { SnackbarContainer } from '../Snackbar/Snackbar.js';\nimport { isDarkMode } from '../util.js';\nimport css from './RedirectDialog-css.js';\nexport class RedirectDialog {\n constructor() {\n this.root = null;\n this.darkMode = isDarkMode();\n }\n attach() {\n const el = document.documentElement;\n this.root = document.createElement('div');\n this.root.className = '-cbwsdk-css-reset';\n el.appendChild(this.root);\n injectCssReset();\n }\n present(props) {\n this.render(props);\n }\n clear() {\n this.render(null);\n }\n render(props) {\n if (!this.root)\n return;\n render(null, this.root);\n if (!props)\n return;\n render(h(RedirectDialogContent, Object.assign({}, props, { onDismiss: () => {\n this.clear();\n }, darkMode: this.darkMode })), this.root);\n }\n}\nconst RedirectDialogContent = ({ title, buttonText, darkMode, onButtonClick, onDismiss }) => {\n const theme = darkMode ? 'dark' : 'light';\n return (h(SnackbarContainer, { darkMode: darkMode },\n h(\"div\", { class: \"-cbwsdk-redirect-dialog\" },\n h(\"style\", null, css),\n h(\"div\", { class: \"-cbwsdk-redirect-dialog-backdrop\", onClick: onDismiss }),\n h(\"div\", { class: clsx('-cbwsdk-redirect-dialog-box', theme) },\n h(\"p\", null, title),\n h(\"button\", { onClick: onButtonClick }, buttonText)))));\n};\n//# sourceMappingURL=RedirectDialog.js.map","export const CB_KEYS_URL = 'https://keys.coinbase.com/connect';\nexport const CB_WALLET_RPC_URL = 'http://rpc.wallet.coinbase.com';\nexport const WALLETLINK_URL = 'https://www.walletlink.org';\nexport const CBW_MOBILE_DEEPLINK_URL = 'https://go.cb-w.com/walletlink';\n//# sourceMappingURL=constants.js.map","import { RedirectDialog } from './components/RedirectDialog/RedirectDialog.js';\nimport { getLocation } from './components/util.js';\nimport { CBW_MOBILE_DEEPLINK_URL } from '../../../../core/constants.js';\nexport class WLMobileRelayUI {\n constructor() {\n this.attached = false;\n this.redirectDialog = new RedirectDialog();\n }\n attach() {\n if (this.attached) {\n throw new Error('Coinbase Wallet SDK UI is already attached');\n }\n this.redirectDialog.attach();\n this.attached = true;\n }\n redirectToCoinbaseWallet(walletLinkUrl) {\n const url = new URL(CBW_MOBILE_DEEPLINK_URL);\n url.searchParams.append('redirect_url', getLocation().href);\n if (walletLinkUrl) {\n url.searchParams.append('wl_url', walletLinkUrl);\n }\n const anchorTag = document.createElement('a');\n anchorTag.target = 'cbw-opener';\n anchorTag.href = url.href;\n anchorTag.rel = 'noreferrer noopener';\n anchorTag.click();\n }\n openCoinbaseWalletDeeplink(walletLinkUrl) {\n this.redirectDialog.present({\n title: 'Redirecting to Coinbase Wallet...',\n buttonText: 'Open',\n onButtonClick: () => {\n this.redirectToCoinbaseWallet(walletLinkUrl);\n },\n });\n setTimeout(() => {\n this.redirectToCoinbaseWallet(walletLinkUrl);\n }, 99);\n }\n showConnecting(_options) {\n // it uses the return callback to clear the dialog\n return () => {\n this.redirectDialog.clear();\n };\n }\n}\n//# sourceMappingURL=WLMobileRelayUI.js.map","// Copyright (c) 2018-2023 Coinbase, Inc. \nimport { WalletLinkConnection, } from './connection/WalletLinkConnection.js';\nimport { LOCAL_STORAGE_ADDRESSES_KEY } from './constants.js';\nimport { RelayEventManager } from './RelayEventManager.js';\nimport { WalletLinkSession } from './type/WalletLinkSession.js';\nimport { isErrorResponse } from './type/Web3Response.js';\nimport { isMobileWeb } from './ui/components/util.js';\nimport { WalletLinkRelayUI } from './ui/WalletLinkRelayUI.js';\nimport { WLMobileRelayUI } from './ui/WLMobileRelayUI.js';\nimport { standardErrors } from '../../../core/error/errors.js';\nimport { ScopedLocalStorage } from '../../../core/storage/ScopedLocalStorage.js';\nimport { bigIntStringFromBigInt, hexStringFromBuffer, randomBytesHex } from '../../../core/type/util.js';\nexport class WalletLinkRelay {\n constructor(options) {\n this.chainCallbackParams = { chainId: '', jsonRpcUrl: '' }; // to implement distinctUntilChanged\n this.isMobileWeb = isMobileWeb();\n this.linkedUpdated = (linked) => {\n this.isLinked = linked;\n const cachedAddresses = this.storage.getItem(LOCAL_STORAGE_ADDRESSES_KEY);\n if (linked) {\n // Only set linked session variable one way\n this._session.linked = linked;\n }\n this.isUnlinkedErrorState = false;\n if (cachedAddresses) {\n const addresses = cachedAddresses.split(' ');\n const wasConnectedViaStandalone = this.storage.getItem('IsStandaloneSigning') === 'true';\n if (addresses[0] !== '' && !linked && this._session.linked && !wasConnectedViaStandalone) {\n this.isUnlinkedErrorState = true;\n }\n }\n };\n this.metadataUpdated = (key, value) => {\n this.storage.setItem(key, value);\n };\n this.chainUpdated = (chainId, jsonRpcUrl) => {\n if (this.chainCallbackParams.chainId === chainId &&\n this.chainCallbackParams.jsonRpcUrl === jsonRpcUrl) {\n return;\n }\n this.chainCallbackParams = {\n chainId,\n jsonRpcUrl,\n };\n if (this.chainCallback) {\n this.chainCallback(jsonRpcUrl, Number.parseInt(chainId, 10));\n }\n };\n this.accountUpdated = (selectedAddress) => {\n if (this.accountsCallback) {\n this.accountsCallback([selectedAddress]);\n }\n if (WalletLinkRelay.accountRequestCallbackIds.size > 0) {\n // We get the ethereum address from the metadata. If for whatever\n // reason we don't get a response via an explicit web3 message\n // we can still fulfill the eip1102 request.\n Array.from(WalletLinkRelay.accountRequestCallbackIds.values()).forEach((id) => {\n this.invokeCallback(id, {\n method: 'requestEthereumAccounts',\n result: [selectedAddress],\n });\n });\n WalletLinkRelay.accountRequestCallbackIds.clear();\n }\n };\n this.resetAndReload = this.resetAndReload.bind(this);\n this.linkAPIUrl = options.linkAPIUrl;\n this.storage = options.storage;\n this.metadata = options.metadata;\n this.accountsCallback = options.accountsCallback;\n this.chainCallback = options.chainCallback;\n const { session, ui, connection } = this.subscribe();\n this._session = session;\n this.connection = connection;\n this.relayEventManager = new RelayEventManager();\n this.ui = ui;\n this.ui.attach();\n }\n subscribe() {\n const session = WalletLinkSession.load(this.storage) || WalletLinkSession.create(this.storage);\n const { linkAPIUrl } = this;\n const connection = new WalletLinkConnection({\n session,\n linkAPIUrl,\n listener: this,\n });\n const ui = this.isMobileWeb ? new WLMobileRelayUI() : new WalletLinkRelayUI();\n connection.connect();\n return { session, ui, connection };\n }\n resetAndReload() {\n this.connection\n .destroy()\n .then(() => {\n /**\n * Only clear storage if the session id we have in memory matches the one on disk\n * Otherwise, in the case where we have 2 tabs, another tab might have cleared\n * storage already. In that case if we clear storage again, the user will be in\n * a state where the first tab allows the user to connect but the session that\n * was used isn't persisted. This leaves the user in a state where they aren't\n * connected to the mobile app.\n */\n const storedSession = WalletLinkSession.load(this.storage);\n if ((storedSession === null || storedSession === void 0 ? void 0 : storedSession.id) === this._session.id) {\n ScopedLocalStorage.clearAll();\n }\n document.location.reload();\n })\n .catch((_) => { });\n }\n signEthereumTransaction(params) {\n return this.sendRequest({\n method: 'signEthereumTransaction',\n params: {\n fromAddress: params.fromAddress,\n toAddress: params.toAddress,\n weiValue: bigIntStringFromBigInt(params.weiValue),\n data: hexStringFromBuffer(params.data, true),\n nonce: params.nonce,\n gasPriceInWei: params.gasPriceInWei ? bigIntStringFromBigInt(params.gasPriceInWei) : null,\n maxFeePerGas: params.gasPriceInWei ? bigIntStringFromBigInt(params.gasPriceInWei) : null,\n maxPriorityFeePerGas: params.gasPriceInWei\n ? bigIntStringFromBigInt(params.gasPriceInWei)\n : null,\n gasLimit: params.gasLimit ? bigIntStringFromBigInt(params.gasLimit) : null,\n chainId: params.chainId,\n shouldSubmit: false,\n },\n });\n }\n signAndSubmitEthereumTransaction(params) {\n return this.sendRequest({\n method: 'signEthereumTransaction',\n params: {\n fromAddress: params.fromAddress,\n toAddress: params.toAddress,\n weiValue: bigIntStringFromBigInt(params.weiValue),\n data: hexStringFromBuffer(params.data, true),\n nonce: params.nonce,\n gasPriceInWei: params.gasPriceInWei ? bigIntStringFromBigInt(params.gasPriceInWei) : null,\n maxFeePerGas: params.maxFeePerGas ? bigIntStringFromBigInt(params.maxFeePerGas) : null,\n maxPriorityFeePerGas: params.maxPriorityFeePerGas\n ? bigIntStringFromBigInt(params.maxPriorityFeePerGas)\n : null,\n gasLimit: params.gasLimit ? bigIntStringFromBigInt(params.gasLimit) : null,\n chainId: params.chainId,\n shouldSubmit: true,\n },\n });\n }\n submitEthereumTransaction(signedTransaction, chainId) {\n return this.sendRequest({\n method: 'submitEthereumTransaction',\n params: {\n signedTransaction: hexStringFromBuffer(signedTransaction, true),\n chainId,\n },\n });\n }\n getWalletLinkSession() {\n return this._session;\n }\n sendRequest(request) {\n let hideSnackbarItem = null;\n const id = randomBytesHex(8);\n const cancel = (error) => {\n this.publishWeb3RequestCanceledEvent(id);\n this.handleErrorResponse(id, request.method, error);\n hideSnackbarItem === null || hideSnackbarItem === void 0 ? void 0 : hideSnackbarItem();\n };\n return new Promise((resolve, reject) => {\n {\n hideSnackbarItem = this.ui.showConnecting({\n isUnlinkedErrorState: this.isUnlinkedErrorState,\n onCancel: cancel,\n onResetConnection: this.resetAndReload, // eslint-disable-line @typescript-eslint/unbound-method\n });\n }\n this.relayEventManager.callbacks.set(id, (response) => {\n hideSnackbarItem === null || hideSnackbarItem === void 0 ? void 0 : hideSnackbarItem();\n if (isErrorResponse(response)) {\n return reject(new Error(response.errorMessage));\n }\n resolve(response);\n });\n this.publishWeb3RequestEvent(id, request);\n });\n }\n publishWeb3RequestEvent(id, request) {\n const message = { type: 'WEB3_REQUEST', id, request };\n this.publishEvent('Web3Request', message, true)\n .then((_) => { })\n .catch((err) => {\n this.handleWeb3ResponseMessage(message.id, {\n method: request.method,\n errorMessage: err.message,\n });\n });\n if (this.isMobileWeb) {\n this.openCoinbaseWalletDeeplink(request.method);\n }\n }\n // copied from MobileRelay\n openCoinbaseWalletDeeplink(method) {\n if (!(this.ui instanceof WLMobileRelayUI))\n return;\n // For mobile relay requests, open the Coinbase Wallet app\n switch (method) {\n case 'requestEthereumAccounts': // requestEthereumAccounts is handled via popup\n case 'switchEthereumChain': // switchEthereumChain doesn't need to open the app\n return;\n default:\n window.addEventListener('blur', () => {\n window.addEventListener('focus', () => {\n this.connection.checkUnseenEvents();\n }, { once: true });\n }, { once: true });\n this.ui.openCoinbaseWalletDeeplink();\n break;\n }\n }\n publishWeb3RequestCanceledEvent(id) {\n const message = {\n type: 'WEB3_REQUEST_CANCELED',\n id,\n };\n this.publishEvent('Web3RequestCanceled', message, false).then();\n }\n publishEvent(event, message, callWebhook) {\n return this.connection.publishEvent(event, message, callWebhook);\n }\n handleWeb3ResponseMessage(id, response) {\n if (response.method === 'requestEthereumAccounts') {\n WalletLinkRelay.accountRequestCallbackIds.forEach((id) => this.invokeCallback(id, response));\n WalletLinkRelay.accountRequestCallbackIds.clear();\n return;\n }\n this.invokeCallback(id, response);\n }\n handleErrorResponse(id, method, error) {\n var _a;\n const errorMessage = (_a = error === null || error === void 0 ? void 0 : error.message) !== null && _a !== void 0 ? _a : 'Unspecified error message.';\n this.handleWeb3ResponseMessage(id, {\n method,\n errorMessage,\n });\n }\n invokeCallback(id, response) {\n const callback = this.relayEventManager.callbacks.get(id);\n if (callback) {\n callback(response);\n this.relayEventManager.callbacks.delete(id);\n }\n }\n requestEthereumAccounts() {\n const { appName, appLogoUrl } = this.metadata;\n const request = {\n method: 'requestEthereumAccounts',\n params: {\n appName,\n appLogoUrl,\n },\n };\n const hideSnackbarItem = null;\n const id = randomBytesHex(8);\n return new Promise((resolve, reject) => {\n this.relayEventManager.callbacks.set(id, (response) => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n hideSnackbarItem === null || hideSnackbarItem === void 0 ? void 0 : hideSnackbarItem();\n if (isErrorResponse(response)) {\n return reject(new Error(response.errorMessage));\n }\n resolve(response);\n });\n WalletLinkRelay.accountRequestCallbackIds.add(id);\n this.publishWeb3RequestEvent(id, request);\n });\n }\n watchAsset(type, address, symbol, decimals, image, chainId) {\n const request = {\n method: 'watchAsset',\n params: {\n type,\n options: {\n address,\n symbol,\n decimals,\n image,\n },\n chainId,\n },\n };\n let hideSnackbarItem = null;\n const id = randomBytesHex(8);\n const cancel = (error) => {\n this.publishWeb3RequestCanceledEvent(id);\n this.handleErrorResponse(id, request.method, error);\n hideSnackbarItem === null || hideSnackbarItem === void 0 ? void 0 : hideSnackbarItem();\n };\n {\n hideSnackbarItem = this.ui.showConnecting({\n isUnlinkedErrorState: this.isUnlinkedErrorState,\n onCancel: cancel,\n onResetConnection: this.resetAndReload, // eslint-disable-line @typescript-eslint/unbound-method\n });\n }\n return new Promise((resolve, reject) => {\n this.relayEventManager.callbacks.set(id, (response) => {\n hideSnackbarItem === null || hideSnackbarItem === void 0 ? void 0 : hideSnackbarItem();\n if (isErrorResponse(response)) {\n return reject(new Error(response.errorMessage));\n }\n resolve(response);\n });\n this.publishWeb3RequestEvent(id, request);\n });\n }\n addEthereumChain(chainId, rpcUrls, iconUrls, blockExplorerUrls, chainName, nativeCurrency) {\n const request = {\n method: 'addEthereumChain',\n params: {\n chainId,\n rpcUrls,\n blockExplorerUrls,\n chainName,\n iconUrls,\n nativeCurrency,\n },\n };\n let hideSnackbarItem = null;\n const id = randomBytesHex(8);\n const cancel = (error) => {\n this.publishWeb3RequestCanceledEvent(id);\n this.handleErrorResponse(id, request.method, error);\n hideSnackbarItem === null || hideSnackbarItem === void 0 ? void 0 : hideSnackbarItem();\n };\n {\n hideSnackbarItem = this.ui.showConnecting({\n isUnlinkedErrorState: this.isUnlinkedErrorState,\n onCancel: cancel,\n onResetConnection: this.resetAndReload, // eslint-disable-line @typescript-eslint/unbound-method\n });\n }\n return new Promise((resolve, reject) => {\n this.relayEventManager.callbacks.set(id, (response) => {\n hideSnackbarItem === null || hideSnackbarItem === void 0 ? void 0 : hideSnackbarItem();\n if (isErrorResponse(response)) {\n return reject(new Error(response.errorMessage));\n }\n resolve(response);\n });\n this.publishWeb3RequestEvent(id, request);\n });\n }\n switchEthereumChain(chainId, address) {\n const request = {\n method: 'switchEthereumChain',\n params: Object.assign({ chainId }, { address }),\n };\n let hideSnackbarItem = null;\n const id = randomBytesHex(8);\n const cancel = (error) => {\n this.publishWeb3RequestCanceledEvent(id);\n this.handleErrorResponse(id, request.method, error);\n hideSnackbarItem === null || hideSnackbarItem === void 0 ? void 0 : hideSnackbarItem();\n };\n {\n hideSnackbarItem = this.ui.showConnecting({\n isUnlinkedErrorState: this.isUnlinkedErrorState,\n onCancel: cancel,\n onResetConnection: this.resetAndReload, // eslint-disable-line @typescript-eslint/unbound-method\n });\n }\n return new Promise((resolve, reject) => {\n this.relayEventManager.callbacks.set(id, (response) => {\n hideSnackbarItem === null || hideSnackbarItem === void 0 ? void 0 : hideSnackbarItem();\n if (isErrorResponse(response) && response.errorCode) {\n return reject(standardErrors.provider.custom({\n code: response.errorCode,\n message: `Unrecognized chain ID. Try adding the chain using addEthereumChain first.`,\n }));\n }\n else if (isErrorResponse(response)) {\n return reject(new Error(response.errorMessage));\n }\n resolve(response);\n });\n this.publishWeb3RequestEvent(id, request);\n });\n }\n}\nWalletLinkRelay.accountRequestCallbackIds = new Set();\n//# sourceMappingURL=WalletLinkRelay.js.map","// Copyright (c) 2018-2024 Coinbase, Inc. \n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\nimport eip712 from '../../vendor-js/eth-eip712-util/index.cjs';\nimport { LOCAL_STORAGE_ADDRESSES_KEY } from './relay/constants.js';\nimport { isErrorResponse } from './relay/type/Web3Response.js';\nimport { WalletLinkRelay } from './relay/WalletLinkRelay.js';\nimport { WALLETLINK_URL } from '../../core/constants.js';\nimport { standardErrors } from '../../core/error/errors.js';\nimport { ScopedLocalStorage } from '../../core/storage/ScopedLocalStorage.js';\nimport { encodeToHexString, ensureAddressString, ensureBigInt, ensureBuffer, ensureIntNumber, ensureParsedJSONObject, hexStringFromBuffer, hexStringFromNumber, } from '../../core/type/util.js';\nimport { fetchRPCRequest } from '../../util/provider.js';\nconst DEFAULT_CHAIN_ID_KEY = 'DefaultChainId';\nconst DEFAULT_JSON_RPC_URL = 'DefaultJsonRpcUrl';\n// original source: https://github.com/coinbase/coinbase-wallet-sdk/blob/v3.7.1/packages/wallet-sdk/src/provider/CoinbaseWalletProvider.ts\nexport class WalletLinkSigner {\n constructor(options) {\n this._relay = null;\n this._addresses = [];\n this.metadata = options.metadata;\n this._storage = new ScopedLocalStorage('walletlink', WALLETLINK_URL);\n this.callback = options.callback || null;\n const cachedAddresses = this._storage.getItem(LOCAL_STORAGE_ADDRESSES_KEY);\n if (cachedAddresses) {\n const addresses = cachedAddresses.split(' ');\n if (addresses[0] !== '') {\n this._addresses = addresses.map((address) => ensureAddressString(address));\n }\n }\n this.initializeRelay();\n }\n getSession() {\n const relay = this.initializeRelay();\n const { id, secret } = relay.getWalletLinkSession();\n return { id, secret };\n }\n async handshake() {\n await this._eth_requestAccounts();\n }\n get selectedAddress() {\n return this._addresses[0] || undefined;\n }\n get jsonRpcUrl() {\n var _a;\n return (_a = this._storage.getItem(DEFAULT_JSON_RPC_URL)) !== null && _a !== void 0 ? _a : undefined;\n }\n set jsonRpcUrl(value) {\n this._storage.setItem(DEFAULT_JSON_RPC_URL, value);\n }\n updateProviderInfo(jsonRpcUrl, chainId) {\n var _a;\n this.jsonRpcUrl = jsonRpcUrl;\n // emit chainChanged event if necessary\n const originalChainId = this.getChainId();\n this._storage.setItem(DEFAULT_CHAIN_ID_KEY, chainId.toString(10));\n const chainChanged = ensureIntNumber(chainId) !== originalChainId;\n if (chainChanged) {\n (_a = this.callback) === null || _a === void 0 ? void 0 : _a.call(this, 'chainChanged', hexStringFromNumber(chainId));\n }\n }\n async watchAsset(params) {\n const request = (Array.isArray(params) ? params[0] : params);\n if (!request.type) {\n throw standardErrors.rpc.invalidParams('Type is required');\n }\n if ((request === null || request === void 0 ? void 0 : request.type) !== 'ERC20') {\n throw standardErrors.rpc.invalidParams(`Asset of type '${request.type}' is not supported`);\n }\n if (!(request === null || request === void 0 ? void 0 : request.options)) {\n throw standardErrors.rpc.invalidParams('Options are required');\n }\n if (!(request === null || request === void 0 ? void 0 : request.options.address)) {\n throw standardErrors.rpc.invalidParams('Address is required');\n }\n const chainId = this.getChainId();\n const { address, symbol, image, decimals } = request.options;\n const relay = this.initializeRelay();\n const result = await relay.watchAsset(request.type, address, symbol, decimals, image, chainId === null || chainId === void 0 ? void 0 : chainId.toString());\n if (isErrorResponse(result))\n return false;\n return !!result.result;\n }\n async addEthereumChain(params) {\n var _a, _b;\n const request = params[0];\n if (((_a = request.rpcUrls) === null || _a === void 0 ? void 0 : _a.length) === 0) {\n throw standardErrors.rpc.invalidParams('please pass in at least 1 rpcUrl');\n }\n if (!request.chainName || request.chainName.trim() === '') {\n throw standardErrors.rpc.invalidParams('chainName is a required field');\n }\n if (!request.nativeCurrency) {\n throw standardErrors.rpc.invalidParams('nativeCurrency is a required field');\n }\n const chainIdNumber = Number.parseInt(request.chainId, 16);\n if (chainIdNumber === this.getChainId()) {\n return false;\n }\n const relay = this.initializeRelay();\n const { rpcUrls = [], blockExplorerUrls = [], chainName, iconUrls = [], nativeCurrency, } = request;\n const res = await relay.addEthereumChain(chainIdNumber.toString(), rpcUrls, iconUrls, blockExplorerUrls, chainName, nativeCurrency);\n if (isErrorResponse(res))\n return false;\n if (((_b = res.result) === null || _b === void 0 ? void 0 : _b.isApproved) === true) {\n this.updateProviderInfo(rpcUrls[0], chainIdNumber);\n return null;\n }\n throw standardErrors.rpc.internal('unable to add ethereum chain');\n }\n async switchEthereumChain(params) {\n const request = params[0];\n const chainId = Number.parseInt(request.chainId, 16);\n const relay = this.initializeRelay();\n const res = await relay.switchEthereumChain(chainId.toString(10), this.selectedAddress || undefined);\n if (isErrorResponse(res))\n throw res;\n const switchResponse = res.result;\n if (switchResponse.isApproved && switchResponse.rpcUrl.length > 0) {\n this.updateProviderInfo(switchResponse.rpcUrl, chainId);\n }\n return null;\n }\n async cleanup() {\n this.callback = null;\n if (this._relay) {\n this._relay.resetAndReload();\n }\n this._storage.clear();\n }\n _setAddresses(addresses, _) {\n var _a;\n if (!Array.isArray(addresses)) {\n throw new Error('addresses is not an array');\n }\n const newAddresses = addresses.map((address) => ensureAddressString(address));\n if (JSON.stringify(newAddresses) === JSON.stringify(this._addresses)) {\n return;\n }\n this._addresses = newAddresses;\n (_a = this.callback) === null || _a === void 0 ? void 0 : _a.call(this, 'accountsChanged', newAddresses);\n this._storage.setItem(LOCAL_STORAGE_ADDRESSES_KEY, newAddresses.join(' '));\n }\n async request(request) {\n const params = request.params || [];\n switch (request.method) {\n case 'eth_accounts':\n return [...this._addresses];\n case 'eth_coinbase':\n return this.selectedAddress || null;\n case 'net_version':\n return this.getChainId().toString(10);\n case 'eth_chainId':\n return hexStringFromNumber(this.getChainId());\n case 'eth_requestAccounts':\n return this._eth_requestAccounts();\n case 'eth_ecRecover':\n case 'personal_ecRecover':\n return this.ecRecover(request);\n case 'personal_sign':\n return this.personalSign(request);\n case 'eth_signTransaction':\n return this._eth_signTransaction(params);\n case 'eth_sendRawTransaction':\n return this._eth_sendRawTransaction(params);\n case 'eth_sendTransaction':\n return this._eth_sendTransaction(params);\n case 'eth_signTypedData_v1':\n case 'eth_signTypedData_v3':\n case 'eth_signTypedData_v4':\n case 'eth_signTypedData':\n return this.signTypedData(request);\n case 'wallet_addEthereumChain':\n return this.addEthereumChain(params);\n case 'wallet_switchEthereumChain':\n return this.switchEthereumChain(params);\n case 'wallet_watchAsset':\n return this.watchAsset(params);\n default:\n if (!this.jsonRpcUrl)\n throw standardErrors.rpc.internal('No RPC URL set for chain');\n return fetchRPCRequest(request, this.jsonRpcUrl);\n }\n }\n _ensureKnownAddress(addressString) {\n const addressStr = ensureAddressString(addressString);\n const lowercaseAddresses = this._addresses.map((address) => ensureAddressString(address));\n if (!lowercaseAddresses.includes(addressStr)) {\n throw new Error('Unknown Ethereum address');\n }\n }\n _prepareTransactionParams(tx) {\n const fromAddress = tx.from ? ensureAddressString(tx.from) : this.selectedAddress;\n if (!fromAddress) {\n throw new Error('Ethereum address is unavailable');\n }\n this._ensureKnownAddress(fromAddress);\n const toAddress = tx.to ? ensureAddressString(tx.to) : null;\n const weiValue = tx.value != null ? ensureBigInt(tx.value) : BigInt(0);\n const data = tx.data ? ensureBuffer(tx.data) : Buffer.alloc(0);\n const nonce = tx.nonce != null ? ensureIntNumber(tx.nonce) : null;\n const gasPriceInWei = tx.gasPrice != null ? ensureBigInt(tx.gasPrice) : null;\n const maxFeePerGas = tx.maxFeePerGas != null ? ensureBigInt(tx.maxFeePerGas) : null;\n const maxPriorityFeePerGas = tx.maxPriorityFeePerGas != null ? ensureBigInt(tx.maxPriorityFeePerGas) : null;\n const gasLimit = tx.gas != null ? ensureBigInt(tx.gas) : null;\n const chainId = tx.chainId ? ensureIntNumber(tx.chainId) : this.getChainId();\n return {\n fromAddress,\n toAddress,\n weiValue,\n data,\n nonce,\n gasPriceInWei,\n maxFeePerGas,\n maxPriorityFeePerGas,\n gasLimit,\n chainId,\n };\n }\n async ecRecover(request) {\n const { method, params } = request;\n if (!Array.isArray(params))\n throw standardErrors.rpc.invalidParams();\n const relay = this.initializeRelay();\n const res = await relay.sendRequest({\n method: 'ethereumAddressFromSignedMessage',\n params: {\n message: encodeToHexString(params[0]),\n signature: encodeToHexString(params[1]),\n addPrefix: method === 'personal_ecRecover',\n },\n });\n if (isErrorResponse(res))\n throw res;\n return res.result;\n }\n getChainId() {\n var _a;\n return Number.parseInt((_a = this._storage.getItem(DEFAULT_CHAIN_ID_KEY)) !== null && _a !== void 0 ? _a : '1', 10);\n }\n async _eth_requestAccounts() {\n var _a, _b;\n if (this._addresses.length > 0) {\n (_a = this.callback) === null || _a === void 0 ? void 0 : _a.call(this, 'connect', { chainId: hexStringFromNumber(this.getChainId()) });\n return this._addresses;\n }\n const relay = this.initializeRelay();\n const res = await relay.requestEthereumAccounts();\n if (isErrorResponse(res))\n throw res;\n if (!res.result) {\n throw new Error('accounts received is empty');\n }\n this._setAddresses(res.result);\n (_b = this.callback) === null || _b === void 0 ? void 0 : _b.call(this, 'connect', { chainId: hexStringFromNumber(this.getChainId()) });\n return this._addresses;\n }\n async personalSign({ params }) {\n if (!Array.isArray(params))\n throw standardErrors.rpc.invalidParams();\n const address = params[1];\n const rawData = params[0];\n this._ensureKnownAddress(address);\n const relay = this.initializeRelay();\n const res = await relay.sendRequest({\n method: 'signEthereumMessage',\n params: {\n address: ensureAddressString(address),\n message: encodeToHexString(rawData),\n addPrefix: true,\n typedDataJson: null,\n },\n });\n if (isErrorResponse(res))\n throw res;\n return res.result;\n }\n async _eth_signTransaction(params) {\n const tx = this._prepareTransactionParams(params[0] || {});\n const relay = this.initializeRelay();\n const res = await relay.signEthereumTransaction(tx);\n if (isErrorResponse(res))\n throw res;\n return res.result;\n }\n async _eth_sendRawTransaction(params) {\n const signedTransaction = ensureBuffer(params[0]);\n const relay = this.initializeRelay();\n const res = await relay.submitEthereumTransaction(signedTransaction, this.getChainId());\n if (isErrorResponse(res))\n throw res;\n return res.result;\n }\n async _eth_sendTransaction(params) {\n const tx = this._prepareTransactionParams(params[0] || {});\n const relay = this.initializeRelay();\n const res = await relay.signAndSubmitEthereumTransaction(tx);\n if (isErrorResponse(res))\n throw res;\n return res.result;\n }\n async signTypedData(request) {\n const { method, params } = request;\n if (!Array.isArray(params))\n throw standardErrors.rpc.invalidParams();\n const encode = (input) => {\n const hashFuncMap = {\n eth_signTypedData_v1: eip712.hashForSignTypedDataLegacy,\n eth_signTypedData_v3: eip712.hashForSignTypedData_v3,\n eth_signTypedData_v4: eip712.hashForSignTypedData_v4,\n eth_signTypedData: eip712.hashForSignTypedData_v4,\n };\n return hexStringFromBuffer(hashFuncMap[method]({\n data: ensureParsedJSONObject(input),\n }), true);\n };\n const address = params[method === 'eth_signTypedData_v1' ? 1 : 0];\n const rawData = params[method === 'eth_signTypedData_v1' ? 0 : 1];\n this._ensureKnownAddress(address);\n const relay = this.initializeRelay();\n const res = await relay.sendRequest({\n method: 'signEthereumMessage',\n params: {\n address: ensureAddressString(address),\n message: encode(rawData),\n typedDataJson: JSON.stringify(rawData, null, 2),\n addPrefix: false,\n },\n });\n if (isErrorResponse(res))\n throw res;\n return res.result;\n }\n initializeRelay() {\n if (!this._relay) {\n this._relay = new WalletLinkRelay({\n linkAPIUrl: WALLETLINK_URL,\n storage: this._storage,\n metadata: this.metadata,\n accountsCallback: this._setAddresses.bind(this),\n chainCallback: this.updateProviderInfo.bind(this),\n });\n }\n return this._relay;\n }\n}\n//# sourceMappingURL=WalletLinkSigner.js.map","import { SCWSigner } from './scw/SCWSigner.js';\nimport { WalletLinkSigner } from './walletlink/WalletLinkSigner.js';\nimport { ScopedLocalStorage } from '../core/storage/ScopedLocalStorage.js';\nconst SIGNER_TYPE_KEY = 'SignerType';\nconst storage = new ScopedLocalStorage('CBWSDK', 'SignerConfigurator');\nexport function loadSignerType() {\n return storage.getItem(SIGNER_TYPE_KEY);\n}\nexport function storeSignerType(signerType) {\n storage.setItem(SIGNER_TYPE_KEY, signerType);\n}\nexport async function fetchSignerType(params) {\n const { communicator, metadata, handshakeRequest, callback } = params;\n listenForWalletLinkSessionRequest(communicator, metadata, callback).catch(() => { });\n const request = {\n id: crypto.randomUUID(),\n event: 'selectSignerType',\n data: Object.assign(Object.assign({}, params.preference), { handshakeRequest }),\n };\n const { data } = await communicator.postRequestAndWaitForResponse(request);\n return data;\n}\nexport function createSigner(params) {\n const { signerType, metadata, communicator, callback } = params;\n switch (signerType) {\n case 'scw': {\n return new SCWSigner({\n metadata,\n callback,\n communicator,\n });\n }\n case 'walletlink': {\n return new WalletLinkSigner({\n metadata,\n callback,\n });\n }\n }\n}\nasync function listenForWalletLinkSessionRequest(communicator, metadata, callback) {\n await communicator.onMessage(({ event }) => event === 'WalletLinkSessionRequest');\n // temporary walletlink signer instance to handle WalletLinkSessionRequest\n // will revisit this when refactoring the walletlink signer\n const walletlink = new WalletLinkSigner({\n metadata,\n callback,\n });\n // send wallet link session to popup\n communicator.postMessage({\n event: 'WalletLinkUpdate',\n data: { session: walletlink.getSession() },\n });\n // wait for handshake to complete\n await walletlink.handshake();\n // send connected status to popup\n communicator.postMessage({\n event: 'WalletLinkUpdate',\n data: { connected: true },\n });\n}\n//# sourceMappingURL=util.js.map","const COOP_ERROR_MESSAGE = `Coinbase Wallet SDK requires the Cross-Origin-Opener-Policy header to not be set to 'same-origin'. This is to ensure that the SDK can communicate with the Coinbase Smart Wallet app.\n\nPlease see https://www.smartwallet.dev/guides/tips/popup-tips#cross-origin-opener-policy for more information.`;\n/**\n * Creates a checker for the Cross-Origin-Opener-Policy (COOP).\n *\n * @returns An object with methods to get and check the Cross-Origin-Opener-Policy.\n *\n * @method getCrossOriginOpenerPolicy\n * Retrieves current Cross-Origin-Opener-Policy.\n * @throws Will throw an error if the policy has not been checked yet.\n *\n * @method checkCrossOriginOpenerPolicy\n * Checks the Cross-Origin-Opener-Policy of the current environment.\n * If in a non-browser environment, sets the policy to 'non-browser-env'.\n * If in a browser environment, fetches the policy from the current origin.\n * Logs an error if the policy is 'same-origin'.\n */\nconst createCoopChecker = () => {\n let crossOriginOpenerPolicy;\n return {\n getCrossOriginOpenerPolicy: () => {\n if (crossOriginOpenerPolicy === undefined) {\n return 'undefined';\n }\n return crossOriginOpenerPolicy;\n },\n checkCrossOriginOpenerPolicy: async () => {\n if (typeof window === 'undefined') {\n // Non-browser environment\n crossOriginOpenerPolicy = 'non-browser-env';\n return;\n }\n try {\n const url = `${window.location.origin}${window.location.pathname}`;\n const response = await fetch(url, {\n method: 'HEAD',\n });\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n const result = response.headers.get('Cross-Origin-Opener-Policy');\n crossOriginOpenerPolicy = result !== null && result !== void 0 ? result : 'null';\n if (crossOriginOpenerPolicy === 'same-origin') {\n console.error(COOP_ERROR_MESSAGE);\n }\n }\n catch (error) {\n console.error('Error checking Cross-Origin-Opener-Policy:', error.message);\n crossOriginOpenerPolicy = 'error';\n }\n },\n };\n};\nexport const { checkCrossOriginOpenerPolicy, getCrossOriginOpenerPolicy } = createCoopChecker();\n//# sourceMappingURL=checkCrossOriginOpenerPolicy.js.map","import { NAME, VERSION } from '../sdk-info.js';\nimport { getCrossOriginOpenerPolicy } from './checkCrossOriginOpenerPolicy.js';\nimport { standardErrors } from '../core/error/errors.js';\nconst POPUP_WIDTH = 420;\nconst POPUP_HEIGHT = 540;\n// Window Management\nexport function openPopup(url) {\n const left = (window.innerWidth - POPUP_WIDTH) / 2 + window.screenX;\n const top = (window.innerHeight - POPUP_HEIGHT) / 2 + window.screenY;\n appendAppInfoQueryParams(url);\n const popupId = `wallet_${crypto.randomUUID()}`;\n const popup = window.open(url, popupId, `width=${POPUP_WIDTH}, height=${POPUP_HEIGHT}, left=${left}, top=${top}`);\n popup === null || popup === void 0 ? void 0 : popup.focus();\n if (!popup) {\n throw standardErrors.rpc.internal('Pop up window failed to open');\n }\n return popup;\n}\nexport function closePopup(popup) {\n if (popup && !popup.closed) {\n popup.close();\n }\n}\nfunction appendAppInfoQueryParams(url) {\n const params = {\n sdkName: NAME,\n sdkVersion: VERSION,\n origin: window.location.origin,\n coop: getCrossOriginOpenerPolicy(),\n };\n for (const [key, value] of Object.entries(params)) {\n url.searchParams.append(key, value.toString());\n }\n}\n//# sourceMappingURL=web.js.map","import { VERSION } from '../../sdk-info.js';\nimport { CB_KEYS_URL } from '../constants.js';\nimport { standardErrors } from '../error/errors.js';\nimport { closePopup, openPopup } from '../../util/web.js';\n/**\n * Communicates with a popup window for Coinbase keys.coinbase.com (or another url)\n * to send and receive messages.\n *\n * This class is responsible for opening a popup window, posting messages to it,\n * and listening for responses.\n *\n * It also handles cleanup of event listeners and the popup window itself when necessary.\n */\nexport class Communicator {\n constructor({ url = CB_KEYS_URL, metadata, preference }) {\n this.popup = null;\n this.listeners = new Map();\n /**\n * Posts a message to the popup window\n */\n this.postMessage = async (message) => {\n const popup = await this.waitForPopupLoaded();\n popup.postMessage(message, this.url.origin);\n };\n /**\n * Posts a request to the popup window and waits for a response\n */\n this.postRequestAndWaitForResponse = async (request) => {\n const responsePromise = this.onMessage(({ requestId }) => requestId === request.id);\n this.postMessage(request);\n return await responsePromise;\n };\n /**\n * Listens for messages from the popup window that match a given predicate.\n */\n this.onMessage = async (predicate) => {\n return new Promise((resolve, reject) => {\n const listener = (event) => {\n if (event.origin !== this.url.origin)\n return; // origin validation\n const message = event.data;\n if (predicate(message)) {\n resolve(message);\n window.removeEventListener('message', listener);\n this.listeners.delete(listener);\n }\n };\n window.addEventListener('message', listener);\n this.listeners.set(listener, { reject });\n });\n };\n /**\n * Closes the popup, rejects all requests and clears the listeners\n */\n this.disconnect = () => {\n // Note: keys popup handles closing itself. this is a fallback.\n closePopup(this.popup);\n this.popup = null;\n this.listeners.forEach(({ reject }, listener) => {\n reject(standardErrors.provider.userRejectedRequest('Request rejected'));\n window.removeEventListener('message', listener);\n });\n this.listeners.clear();\n };\n /**\n * Waits for the popup window to fully load and then sends a version message.\n */\n this.waitForPopupLoaded = async () => {\n if (this.popup && !this.popup.closed) {\n // In case the user un-focused the popup between requests, focus it again\n this.popup.focus();\n return this.popup;\n }\n this.popup = openPopup(this.url);\n this.onMessage(({ event }) => event === 'PopupUnload')\n .then(this.disconnect)\n .catch(() => { });\n return this.onMessage(({ event }) => event === 'PopupLoaded')\n .then((message) => {\n this.postMessage({\n requestId: message.id,\n data: {\n version: VERSION,\n metadata: this.metadata,\n preference: this.preference,\n location: window.location.toString(),\n },\n });\n })\n .then(() => {\n if (!this.popup)\n throw standardErrors.rpc.internal();\n return this.popup;\n });\n };\n this.url = new URL(url);\n this.metadata = metadata;\n this.preference = preference;\n }\n}\n//# sourceMappingURL=Communicator.js.map","// TODO: error should not depend on walletlink. revisit this.\nimport { VERSION } from '../../sdk-info.js';\nimport { isErrorResponse } from '../../sign/walletlink/relay/type/Web3Response.js';\nimport { standardErrorCodes } from './constants.js';\nimport { serialize } from './utils.js';\n/**\n * Serializes an error to a format that is compatible with the Ethereum JSON RPC error format.\n * See https://docs.cloud.coinbase.com/wallet-sdk/docs/errors\n * for more information.\n */\nexport function serializeError(error) {\n const serialized = serialize(getErrorObject(error), {\n shouldIncludeStack: true,\n });\n const docUrl = new URL('https://docs.cloud.coinbase.com/wallet-sdk/docs/errors');\n docUrl.searchParams.set('version', VERSION);\n docUrl.searchParams.set('code', serialized.code.toString());\n docUrl.searchParams.set('message', serialized.message);\n return Object.assign(Object.assign({}, serialized), { docUrl: docUrl.href });\n}\n/**\n * Converts an error to a serializable object.\n */\nfunction getErrorObject(error) {\n var _a;\n if (typeof error === 'string') {\n return {\n message: error,\n code: standardErrorCodes.rpc.internal,\n };\n }\n else if (isErrorResponse(error)) {\n const message = error.errorMessage;\n const code = (_a = error.errorCode) !== null && _a !== void 0 ? _a : (message.match(/(denied|rejected)/i)\n ? standardErrorCodes.provider.userRejectedRequest\n : undefined);\n return Object.assign(Object.assign({}, error), { message,\n code, data: { method: error.method } });\n }\n return error;\n}\n//# sourceMappingURL=serialize.js.map","import { EventEmitter } from 'eventemitter3';\nexport class ProviderEventEmitter extends EventEmitter {\n}\n//# sourceMappingURL=interface.js.map","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { createSigner, fetchSignerType, loadSignerType, storeSignerType } from './sign/util.js';\nimport { Communicator } from './core/communicator/Communicator.js';\nimport { CB_WALLET_RPC_URL } from './core/constants.js';\nimport { standardErrorCodes } from './core/error/constants.js';\nimport { standardErrors } from './core/error/errors.js';\nimport { serializeError } from './core/error/serialize.js';\nimport { ProviderEventEmitter, } from './core/provider/interface.js';\nimport { ScopedLocalStorage } from './core/storage/ScopedLocalStorage.js';\nimport { hexStringFromNumber } from './core/type/util.js';\nimport { checkErrorForInvalidRequestArgs, fetchRPCRequest } from './util/provider.js';\nexport class CoinbaseWalletProvider extends ProviderEventEmitter {\n constructor(_a) {\n var { metadata } = _a, _b = _a.preference, { keysUrl } = _b, preference = __rest(_b, [\"keysUrl\"]);\n super();\n this.signer = null;\n this.isCoinbaseWallet = true;\n this.metadata = metadata;\n this.preference = preference;\n this.communicator = new Communicator({\n url: keysUrl,\n metadata,\n preference,\n });\n const signerType = loadSignerType();\n if (signerType) {\n this.signer = this.initSigner(signerType);\n }\n }\n async request(args) {\n try {\n checkErrorForInvalidRequestArgs(args);\n if (!this.signer) {\n switch (args.method) {\n case 'eth_requestAccounts': {\n const signerType = await this.requestSignerSelection(args);\n const signer = this.initSigner(signerType);\n await signer.handshake(args);\n this.signer = signer;\n storeSignerType(signerType);\n break;\n }\n case 'wallet_sendCalls': {\n const ephemeralSigner = this.initSigner('scw');\n await ephemeralSigner.handshake({ method: 'handshake' }); // exchange session keys\n const result = await ephemeralSigner.request(args); // send diffie-hellman encrypted request\n await ephemeralSigner.cleanup(); // clean up (rotate) the ephemeral session keys\n return result;\n }\n case 'wallet_getCallsStatus':\n return fetchRPCRequest(args, CB_WALLET_RPC_URL);\n case 'net_version':\n return 1; // default value\n case 'eth_chainId':\n return hexStringFromNumber(1); // default value\n default: {\n throw standardErrors.provider.unauthorized(\"Must call 'eth_requestAccounts' before other methods\");\n }\n }\n }\n return await this.signer.request(args);\n }\n catch (error) {\n const { code } = error;\n if (code === standardErrorCodes.provider.unauthorized)\n this.disconnect();\n return Promise.reject(serializeError(error));\n }\n }\n /** @deprecated Use `.request({ method: 'eth_requestAccounts' })` instead. */\n async enable() {\n console.warn(`.enable() has been deprecated. Please use .request({ method: \"eth_requestAccounts\" }) instead.`);\n return await this.request({\n method: 'eth_requestAccounts',\n });\n }\n async disconnect() {\n var _a;\n await ((_a = this.signer) === null || _a === void 0 ? void 0 : _a.cleanup());\n this.signer = null;\n ScopedLocalStorage.clearAll();\n this.emit('disconnect', standardErrors.provider.disconnected('User initiated disconnection'));\n }\n requestSignerSelection(handshakeRequest) {\n return fetchSignerType({\n communicator: this.communicator,\n preference: this.preference,\n metadata: this.metadata,\n handshakeRequest,\n callback: this.emit.bind(this),\n });\n }\n initSigner(signerType) {\n return createSigner({\n signerType,\n metadata: this.metadata,\n communicator: this.communicator,\n callback: this.emit.bind(this),\n });\n }\n}\n//# sourceMappingURL=CoinbaseWalletProvider.js.map","import { CoinbaseWalletProvider } from './CoinbaseWalletProvider.js';\nimport { getCoinbaseInjectedProvider } from './util/provider.js';\nexport function createCoinbaseWalletProvider(options) {\n var _a;\n const params = {\n metadata: options.metadata,\n preference: options.preference,\n };\n return (_a = getCoinbaseInjectedProvider(params)) !== null && _a !== void 0 ? _a : new CoinbaseWalletProvider(params);\n}\n//# sourceMappingURL=createCoinbaseWalletProvider.js.map","/**\n * Validates user supplied preferences. Throws if keys are not valid.\n * @param preference\n */\nexport function validatePreferences(preference) {\n if (!preference) {\n return;\n }\n if (!['all', 'smartWalletOnly', 'eoaOnly'].includes(preference.options)) {\n throw new Error(`Invalid options: ${preference.options}`);\n }\n if (preference.attribution) {\n if (preference.attribution.auto !== undefined &&\n preference.attribution.dataSuffix !== undefined) {\n throw new Error(`Attribution cannot contain both auto and dataSuffix properties`);\n }\n }\n}\n//# sourceMappingURL=validatePreferences.js.map","import { createCoinbaseWalletProvider } from './createCoinbaseWalletProvider.js';\nimport { VERSION } from './sdk-info.js';\nimport { ScopedLocalStorage } from './core/storage/ScopedLocalStorage.js';\nimport { checkCrossOriginOpenerPolicy } from './util/checkCrossOriginOpenerPolicy.js';\nimport { validatePreferences } from './util/validatePreferences.js';\nconst DEFAULT_PREFERENCE = {\n options: 'all',\n};\n/**\n * Create a Coinbase Wallet SDK instance.\n * @param params - Options to create a Coinbase Wallet SDK instance.\n * @returns A Coinbase Wallet SDK object.\n */\nexport function createCoinbaseWalletSDK(params) {\n var _a;\n const versionStorage = new ScopedLocalStorage('CBWSDK');\n versionStorage.setItem('VERSION', VERSION);\n void checkCrossOriginOpenerPolicy();\n const options = {\n metadata: {\n appName: params.appName || 'Dapp',\n appLogoUrl: params.appLogoUrl || '',\n appChainIds: params.appChainIds || [],\n },\n preference: Object.assign(DEFAULT_PREFERENCE, (_a = params.preference) !== null && _a !== void 0 ? _a : {}),\n };\n /**\n * Validate user supplied preferences. Throws if key/values are not valid.\n */\n validatePreferences(options.preference);\n let provider = null;\n return {\n getProvider: () => {\n if (!provider) {\n provider = createCoinbaseWalletProvider(options);\n }\n return provider;\n },\n };\n}\n//# sourceMappingURL=createCoinbaseWalletSDK.js.map","// Copyright (c) 2018-2024 Coinbase, Inc. \nimport { CoinbaseWalletSDK } from './CoinbaseWalletSDK.js';\nexport default CoinbaseWalletSDK;\nexport { CoinbaseWalletSDK } from './CoinbaseWalletSDK.js';\nexport { createCoinbaseWalletSDK } from './createCoinbaseWalletSDK.js';\n//# sourceMappingURL=index.js.map"],"names":["anumber","n","Number","isSafeInteger","abytes","b","lengths","a","Uint8Array","ArrayBuffer","isView","constructor","name","length","includes","Object","defineProperty","exports","value","ahash","h","create","outputLen","blockLen","aexists","instance","checkFinished","destroyed","finished","aoutput","out","min","add5L","add5H","add4H","add4L","add3H","add3L","rotlBL","rotlBH","rotlSL","rotlSH","rotr32L","rotr32H","rotrBL","rotrBH","rotrSL","rotrSH","shrSL","shrSH","toBig","fromBig","split","add","U32_MASK64","BigInt","_32n","le","l","lst","Ah","Uint32Array","Al","i","_l","s","_h","Bh","Bl","Cl","low","Ch","Dl","Dh","El","Eh","crypto","globalThis","undefined","shake256","shake128","keccak_512","keccak_384","keccak_256","keccak_224","sha3_512","sha3_384","sha3_256","sha3_224","Keccak","keccakP","_assert_js_1","__webpack_require__","_u64_js_1","utils_js_1","SHA3_PI","SHA3_ROTL","_SHA3_IOTA","_0n","_1n","_2n","_7n","_256n","_0x71n","round","R","x","y","push","t","j","SHA3_IOTA_H","SHA3_IOTA_L","rotlH","rotlL","rounds","B","idx1","idx0","B0","B1","Th","Tl","curH","curL","shift","PI","fill","Hash","suffix","enableXOF","pos","posOut","state","state32","u32","keccak","isLE","byteSwap32","update","data","len","toBytes","take","Math","finish","writeInto","bufferOut","set","subarray","xofInto","xof","bytes","digestInto","destroy","digest","_cloneInto","to","gen","wrapConstructor","genShake","wrapXOFConstructorWithOpts","opts","dkLen","nextTick","byteSwapIfBE","isBytes","u8","arr","buffer","byteOffset","byteLength","floor","createView","DataView","rotr","word","rotl","byteSwap","bytesToHex","hex","hexes","hexToBytes","hl","al","array","ai","hi","n1","asciiToBase16","charCodeAt","n2","asyncLoop","utf8ToBytes","concatBytes","arrays","sum","res","pad","checkOpts","defaults","toString","call","assign","hashCons","hashC","msg","tmp","wrapConstructorWithOpts","randomBytes","bytesLength","crypto_1","getRandomValues","Array","from","_","padStart","asciis","_0","_9","A","F","f","ch","iters","tick","cb","ts","Date","now","diff","str","TextEncoder","encode","clone","H","d","some","u","r","o","e","c","p","v","isArray","w","g","parentNode","removeChild","arguments","children","defaultProps","m","type","props","key","ref","__k","__","__b","__e","__c","__v","__i","__u","vnode","current","k","context","S","M","__d","$","__r","debounceRendering","sort","__P","O","__n","namespaceURI","z","C","base","I","P","String","L","unmount","q","componentWillUnmount","contains","insertBefore","nextSibling","nodeType","T","setProperty","test","style","cssText","replace","toLowerCase","slice","addEventListener","removeEventListener","removeAttribute","setAttribute","event","prototype","render","contextType","__E","D","sub","__h","_sb","__s","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","shouldComponentUpdate","componentWillUpdate","componentDidUpdate","getChildContext","getSnapshotBeforeUpdate","N","map","then","indexOf","V","localName","document","createTextNode","createElementNS","is","__m","childNodes","attributes","__html","innerHTML","content","diffed","E","documentElement","firstChild","G","J","K","Set","forEach","delete","Provider","__l","Consumer","getDerivedStateFromError","setState","componentDidCatch","forceUpdate","Promise","bind","resolve","setTimeout","preact__WEBPACK_IMPORTED_MODULE_0__","options","__H","__N","__f","filter","every","concat","useDebugValue","requestAnimationFrame","clearTimeout","cancelAnimationFrame","util","elementaryName","startsWith","parseTypeN","parseInt","exec","parseTypeNxM","parseTypeArray","match","parseNumber","arg","encodeSingle","Buffer","lastIndexOf","size","ret","JSON","parse","num","unshift","zeros","setLengthRight","bitLength","bitLengthFromBigInt","bufferBEFromBigInt","twos","twosFromBigInt","solidityPack","types","values","setLength","module","rawEncode","output","headLength","cur","soliditySHA3","abi","TYPED_MESSAGE_SCHEMA","properties","additionalProperties","items","required","primaryType","domain","message","TypedDataUtils","encodeData","useV4","encodedTypes","encodedValues","hashType","encodeField","parsedType","typeValuePairs","item","field","encodeType","result","deps","findTypeDependencies","dep","join","results","hashStruct","sanitizeData","sanitizedData","EIP712Domain","hash","typedData","parts","hashForSignTypedDataLegacy","msgParams","typedSignatureHashLegacy","error","toBuffer","schema","hashForSignTypedData_v3","hashForSignTypedData_v4","allocUnsafe","byteArray","byte","right","buf","copy","isBuffer","isHexString","stripHexPrefix","intToBuffer","toArray","bufferToHex","bits","width","crossOriginOpenerPolicy","ScopedLocalStorage","scope","storeObject","setItem","stringify","loadObject","getItem","localStorage","scopedKey","removeItem","clear","prefix","keysToRemove","clearAll","standardErrorCodes","rpc","invalidInput","resourceNotFound","resourceUnavailable","transactionRejected","methodNotSupported","limitExceeded","invalidRequest","methodNotFound","invalidParams","internal","provider","userRejectedRequest","unauthorized","unsupportedMethod","disconnected","chainDisconnected","unsupportedChain","errorValues","standard","FALLBACK_MESSAGE","getMessageFromCode","code","fallbackMessage","isInteger","codeString","hasKey","assignOriginalError","obj","hasOwnProperty","hasStringProperty","prop","errors_standardErrors","getEthJsonRpcError","server","getEthProviderError","custom","EthereumProviderError","parseOpts","EthereumRpcError","Error","HexString","AddressString","BigIntString","type_IntNumber","ConnectionState","INT_STRING_REGEX","HEXADECIMAL_STRING_REGEX","randomBytesHex","uint8ArrayToHex","hexStringToUint8Array","hexString","hexStringFromBuffer","includePrefix","encodeToHexString","ensureBuffer","bigIntStringFromBigInt","bi","hexStringFromNumber","has0xPrefix","strip0x","prepend0x","ensureEvenLengthHexString","ensureHexString","ensureAddressString","ensureIntNumber","ensureBigInt","val","isBigNumber","config","EUCLID","generateKeyPair","subtle","generateKey","namedCurve","deriveSharedSecret","ownPrivateKey","peerPublicKey","deriveKey","public","encrypt","sharedSecret","plainText","iv","cipherText","decrypt","TextDecoder","decode","getFormat","keyType","exportKeyToHexString","format","exportKey","importKeyFromHexString","arrayBuffer","importKey","encryptContent","decryptContent","encryptedData","OWN_PRIVATE_KEY","storageKey","OWN_PUBLIC_KEY","PEER_PUBLIC_KEY","SCWKeyManager","storage","ownPublicKey","getOwnPublicKey","loadKeysIfNeeded","getSharedSecret","setPeerPublicKey","storeKey","newKeyPair","privateKey","publicKey","loadKey","VERSION","NAME","fetchRPCRequest","request","rpcUrl","requestBody","jsonrpc","id","randomUUID","window","fetch","method","body","mode","headers","json","ACCOUNTS_KEY","ACTIVE_CHAIN_STORAGE_KEY","AVAILABLE_CHAINS_STORAGE_KEY","WALLET_CAPABILITIES_STORAGE_KEY","SCWSigner","params","_a","_b","_c","metadata","communicator","callback","keyManager","accounts","chain","appChainIds","handshake","createRequestMessage","decryptResponseMessage","args","_d","waitForPopupLoaded","handshakeMessage","response","postRequestAndWaitForResponse","failure","sender","decrypted","sendRequestToPopup","chainId","handleSwitchChainRequest","sendEncryptedRequest","cleanup","updateChain","popupResult","encrypted","action","timestamp","availableChains","chains","entries","walletCapabilities","capabilities","newAvailableChains","find","LOCAL_STORAGE_ADDRESSES_KEY","isErrorResponse","errorMessage","WalletLinkCipher","secret","ivBytes","secretKey","enc","encryptedResult","authTag","encryptedPlaintext","authTagBytes","encryptedPlaintextBytes","reject","concattedBytes","algo","decoder","err","WalletLinkHTTP","linkAPIUrl","sessionId","sessionKey","credentials","auth","btoa","markUnseenEventsAsSeen","events","all","eventId","Authorization","catch","console","fetchUnseenEvents","ok","responseEvents","status","WalletLinkWebSocket","setConnectionStateListener","listener","connectionStateListener","setIncomingDataListener","incomingDataListener","url","WebSocketClass","WebSocket","webSocket","pendingData","connect","CONNECTING","onclose","clearWebSocket","evt","reason","DISCONNECTED","onopen","CONNECTED","pending","sendData","onmessage","disconnect","close","send","onerror","WalletLinkConnection","session","lastHeartbeatResponse","nextReqId","_connected","_linked","shouldFetchUnseenEventsOnConnect","requestResolutions","Map","handleSessionMetadataUpdated","handlers","handleDestroyed","handleAccountUpdated","handleWalletUsernameUpdated","handleAppVersionUpdated","JsonRpcUrl","handleChainUpdated","handler","__destroyed","resetAndReload","encryptedEthereumAddress","address","cipher","accountUpdated","handleMetadataUpdated","encryptedMetadataValue","decryptedValue","metadataUpdated","walletUsername","appVersion","encryptedChainId","encryptedJsonRpcUrl","jsonRpcUrl","chainUpdated","ws","connected","handleConnected","updateLastHeartbeat","setInterval","heartbeat","fetchUnseenEventsAPI","linked","onlineGuests","handleIncomingEvent","get","http","makeRequest","timeout","onceLinked","linkedUpdated","setOnceLinked","handleWeb3ResponseMessage","checkUnseenEvents","publishEvent","unencryptedData","callWebhook","origin","location","href","relaySource","coinbaseWalletExtension","HEARTBEAT_INTERVAL","timeoutId","reqId","race","RelayEventManager","_nextRequestId","callbacks","makeRequestId","idStr","STORAGE_KEY_SESSION_ID","STORAGE_KEY_SESSION_SECRET","STORAGE_KEY_SESSION_LINKED","WalletLinkSession","utils","ci","sha256","JQ","save","load","persistLinked","isDarkMode","matchMedia","matches","injectCssReset","styleEl","createElement","appendChild","Snackbar","nextItemKey","root","darkMode","attach","el","className","presentItem","itemProps","preact_module","SnackbarContainer","SnackbarInstance","class","clsx_m","clsx","autoExpand","menuItems","hidden","setHidden","hooks_module","useState","expanded","setExpanded","useEffect","timers","onClick","src","height","viewBox","xmlns","cx","cy","title","isRed","svgWidth","svgHeight","defaultFillRule","defaultClipRule","path","info","WalletLinkRelayUI","attached","snackbar","container","showConnecting","snackbarProps","isUnlinkedErrorState","onResetConnection","onCancel","RedirectDialog","present","RedirectDialogContent","onDismiss","buttonText","onButtonClick","WALLETLINK_URL","WLMobileRelayUI","redirectDialog","redirectToCoinbaseWallet","walletLinkUrl","URL","searchParams","append","getLocation","isInIFrame","frameElement","top","anchorTag","target","rel","click","openCoinbaseWalletDeeplink","_options","WalletLinkRelay","chainCallbackParams","isMobileWeb","navigator","userAgent","isLinked","cachedAddresses","_session","addresses","wasConnectedViaStandalone","chainCallback","accountsCallback","selectedAddress","accountRequestCallbackIds","invokeCallback","ui","connection","subscribe","relayEventManager","storedSession","reload","signEthereumTransaction","sendRequest","fromAddress","toAddress","weiValue","nonce","gasPriceInWei","maxFeePerGas","maxPriorityFeePerGas","gasLimit","shouldSubmit","signAndSubmitEthereumTransaction","submitEthereumTransaction","signedTransaction","getWalletLinkSession","hideSnackbarItem","cancel","publishWeb3RequestCanceledEvent","handleErrorResponse","publishWeb3RequestEvent","once","requestEthereumAccounts","appName","appLogoUrl","watchAsset","symbol","decimals","image","addEthereumChain","rpcUrls","iconUrls","blockExplorerUrls","chainName","nativeCurrency","switchEthereumChain","errorCode","DEFAULT_CHAIN_ID_KEY","DEFAULT_JSON_RPC_URL","WalletLinkSigner","_relay","_addresses","_storage","initializeRelay","getSession","relay","_eth_requestAccounts","updateProviderInfo","originalChainId","getChainId","trim","chainIdNumber","isApproved","switchResponse","_setAddresses","newAddresses","ecRecover","personalSign","_eth_signTransaction","_eth_sendRawTransaction","_eth_sendTransaction","signTypedData","_ensureKnownAddress","addressString","addressStr","lowercaseAddresses","_prepareTransactionParams","tx","WalletLinkSigner_Buffer","alloc","gasPrice","gas","signature","addPrefix","rawData","typedDataJson","hashFuncMap","eth_signTypedData_v1","eth_eip712_util","eth_signTypedData_v3","eth_signTypedData_v4","eth_signTypedData","ensureParsedJSONObject","SIGNER_TYPE_KEY","fetchSignerType","handshakeRequest","listenForWalletLinkSessionRequest","preference","onMessage","walletlink","postMessage","COOP_ERROR_MESSAGE","checkCrossOriginOpenerPolicy","getCrossOriginOpenerPolicy","pathname","Communicator","popup","listeners","responsePromise","requestId","predicate","closed","focus","openPopup","left","innerWidth","screenX","innerHeight","screenY","appendAppInfoQueryParams","sdkName","sdkVersion","coop","popupId","open","version","ProviderEventEmitter","eventemitter3","__rest","getOwnPropertySymbols","propertyIsEnumerable","CoinbaseWalletProvider","keysUrl","signer","isCoinbaseWallet","signerType","initSigner","checkErrorForInvalidRequestArgs","requestSignerSelection","ephemeralSigner","serializeError","serialized","serialize","shouldIncludeStack","_error","originalError","stack","getErrorObject","docUrl","enable","warn","emit","createSigner","DEFAULT_PREFERENCE","createCoinbaseWalletSDK","versionStorage","validatePreferences","attribution","auto","dataSuffix","getProvider","createCoinbaseWalletProvider","getCoinbaseInjectedProvider","extension","setAppInfo","ethereum","getInjectedEthereum","isCoinbaseBrowser"],"sourceRoot":""}