@deloraprotocol/widget 1.0.11 → 1.0.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/README.md +66 -12
  2. package/dist/PhArrowCircleDown-lsK25DCk.js +74 -0
  3. package/dist/PhArrowCircleDown-lsK25DCk.js.map +1 -0
  4. package/dist/PhArrowClockwise-NeKHZ1co.js +74 -0
  5. package/dist/PhArrowClockwise-NeKHZ1co.js.map +1 -0
  6. package/dist/PhArrowDown-C9AkNvLs.js +74 -0
  7. package/dist/PhArrowDown-C9AkNvLs.js.map +1 -0
  8. package/dist/PhArrowLeft-RNfIQP1X.js +74 -0
  9. package/dist/PhArrowLeft-RNfIQP1X.js.map +1 -0
  10. package/dist/PhArrowRight-DM1tna0G.js +74 -0
  11. package/dist/PhArrowRight-DM1tna0G.js.map +1 -0
  12. package/dist/PhArrowSquareOut-S5XYbAZj.js +74 -0
  13. package/dist/PhArrowSquareOut-S5XYbAZj.js.map +1 -0
  14. package/dist/PhArrowUp-DmktzOWy.js +74 -0
  15. package/dist/PhArrowUp-DmktzOWy.js.map +1 -0
  16. package/dist/PhArrowUpRight-BkNeW_5i.js +74 -0
  17. package/dist/PhArrowUpRight-BkNeW_5i.js.map +1 -0
  18. package/dist/PhArrowsClockwise-CQ4pG76b.js +74 -0
  19. package/dist/PhArrowsClockwise-CQ4pG76b.js.map +1 -0
  20. package/dist/PhArrowsDownUp-H6gxaNM6.js +74 -0
  21. package/dist/PhArrowsDownUp-H6gxaNM6.js.map +1 -0
  22. package/dist/PhArrowsLeftRight-DZSsfMR6.js +74 -0
  23. package/dist/PhArrowsLeftRight-DZSsfMR6.js.map +1 -0
  24. package/dist/PhBank-4_9QzqIB.js +74 -0
  25. package/dist/PhBank-4_9QzqIB.js.map +1 -0
  26. package/dist/PhBrowser-B-JSznId.js +74 -0
  27. package/dist/PhBrowser-B-JSznId.js.map +1 -0
  28. package/dist/PhCaretDown-vV5oHMNi.js +74 -0
  29. package/dist/PhCaretDown-vV5oHMNi.js.map +1 -0
  30. package/dist/PhCaretLeft-BLo6Y_f4.js +74 -0
  31. package/dist/PhCaretLeft-BLo6Y_f4.js.map +1 -0
  32. package/dist/PhCaretRight-CqQN4TT3.js +74 -0
  33. package/dist/PhCaretRight-CqQN4TT3.js.map +1 -0
  34. package/dist/PhCaretUp-Df7UCAHy.js +74 -0
  35. package/dist/PhCaretUp-Df7UCAHy.js.map +1 -0
  36. package/dist/PhCheck-gtpfK4ed.js +74 -0
  37. package/dist/PhCheck-gtpfK4ed.js.map +1 -0
  38. package/dist/PhCircleHalf-Uq7dwDYw.js +74 -0
  39. package/dist/PhCircleHalf-Uq7dwDYw.js.map +1 -0
  40. package/dist/PhClock-SDCW-NmF.js +74 -0
  41. package/dist/PhClock-SDCW-NmF.js.map +1 -0
  42. package/dist/PhCompass-B7hgtdx-.js +74 -0
  43. package/dist/PhCompass-B7hgtdx-.js.map +1 -0
  44. package/dist/PhCopy-BcnhyXCy.js +74 -0
  45. package/dist/PhCopy-BcnhyXCy.js.map +1 -0
  46. package/dist/PhCreditCard-BJjByVgu.js +74 -0
  47. package/dist/PhCreditCard-BJjByVgu.js.map +1 -0
  48. package/dist/PhCurrencyDollar-B7ZXqXBy.js +74 -0
  49. package/dist/PhCurrencyDollar-B7ZXqXBy.js.map +1 -0
  50. package/dist/PhDesktop-B3VKPuJx.js +74 -0
  51. package/dist/PhDesktop-B3VKPuJx.js.map +1 -0
  52. package/dist/PhDeviceMobile-Bnd0TYEH.js +74 -0
  53. package/dist/PhDeviceMobile-Bnd0TYEH.js.map +1 -0
  54. package/dist/PhDotsThree-yyMWyZ-R.js +74 -0
  55. package/dist/PhDotsThree-yyMWyZ-R.js.map +1 -0
  56. package/dist/PhEnvelope-67uzHbI9.js +74 -0
  57. package/dist/PhEnvelope-67uzHbI9.js.map +1 -0
  58. package/dist/PhFunnelSimple-B-DCsloI.js +74 -0
  59. package/dist/PhFunnelSimple-B-DCsloI.js.map +1 -0
  60. package/dist/PhGlobe-TMm_6qGk.js +74 -0
  61. package/dist/PhGlobe-TMm_6qGk.js.map +1 -0
  62. package/dist/PhIdentificationCard-CePPD2xc.js +74 -0
  63. package/dist/PhIdentificationCard-CePPD2xc.js.map +1 -0
  64. package/dist/PhImage-gY96WtHR.js +74 -0
  65. package/dist/PhImage-gY96WtHR.js.map +1 -0
  66. package/dist/PhInfo-DRQM_ZDP.js +74 -0
  67. package/dist/PhInfo-DRQM_ZDP.js.map +1 -0
  68. package/dist/PhLightbulb-B0TxPfZ1.js +74 -0
  69. package/dist/PhLightbulb-B0TxPfZ1.js.map +1 -0
  70. package/dist/PhMagnifyingGlass-B8si5_6W.js +74 -0
  71. package/dist/PhMagnifyingGlass-B8si5_6W.js.map +1 -0
  72. package/dist/PhPaperPlaneRight-DVu5PLYd.js +74 -0
  73. package/dist/PhPaperPlaneRight-DVu5PLYd.js.map +1 -0
  74. package/dist/PhPlus-BfTsQnUz.js +74 -0
  75. package/dist/PhPlus-BfTsQnUz.js.map +1 -0
  76. package/dist/PhPower-CxYUGOWn.js +74 -0
  77. package/dist/PhPower-CxYUGOWn.js.map +1 -0
  78. package/dist/PhPuzzlePiece-CQ4wh0gV.js +74 -0
  79. package/dist/PhPuzzlePiece-CQ4wh0gV.js.map +1 -0
  80. package/dist/PhQrCode-BuJ97NYJ.js +74 -0
  81. package/dist/PhQrCode-BuJ97NYJ.js.map +1 -0
  82. package/dist/PhQuestion-kJoP8Mja.js +74 -0
  83. package/dist/PhQuestion-kJoP8Mja.js.map +1 -0
  84. package/dist/PhQuestionMark-C46ZkFpu.js +74 -0
  85. package/dist/PhQuestionMark-C46ZkFpu.js.map +1 -0
  86. package/dist/PhSealCheck-Eh8jVqSN.js +74 -0
  87. package/dist/PhSealCheck-Eh8jVqSN.js.map +1 -0
  88. package/dist/PhSignOut-jk97OSVt.js +74 -0
  89. package/dist/PhSignOut-jk97OSVt.js.map +1 -0
  90. package/dist/PhSpinner-CiYOhwMg.js +74 -0
  91. package/dist/PhSpinner-CiYOhwMg.js.map +1 -0
  92. package/dist/PhTrash-pxerMqzd.js +74 -0
  93. package/dist/PhTrash-pxerMqzd.js.map +1 -0
  94. package/dist/PhUser-BMg0VV4A.js +74 -0
  95. package/dist/PhUser-BMg0VV4A.js.map +1 -0
  96. package/dist/PhVault-DYQvx5A-.js +74 -0
  97. package/dist/PhVault-DYQvx5A-.js.map +1 -0
  98. package/dist/PhWallet-uTRV6YNK.js +74 -0
  99. package/dist/PhWallet-uTRV6YNK.js.map +1 -0
  100. package/dist/PhWarning-NLC5Mj87.js +74 -0
  101. package/dist/PhWarning-NLC5Mj87.js.map +1 -0
  102. package/dist/PhWarningCircle-Ch2jU9fA.js +74 -0
  103. package/dist/PhWarningCircle-Ch2jU9fA.js.map +1 -0
  104. package/dist/PhX-Bx4wpwm3.js +74 -0
  105. package/dist/PhX-Bx4wpwm3.js.map +1 -0
  106. package/dist/basic-zhUNun3W.js +4454 -0
  107. package/dist/basic-zhUNun3W.js.map +1 -0
  108. package/dist/core-C44uv2wG.js +23617 -0
  109. package/dist/core-C44uv2wG.js.map +1 -0
  110. package/dist/features-Ce9zwIoM.js +275 -0
  111. package/dist/features-Ce9zwIoM.js.map +1 -0
  112. package/dist/index-BOFglHij.js +15873 -0
  113. package/dist/index-BOFglHij.js.map +1 -0
  114. package/dist/index-DDv68VV1.js +9670 -0
  115. package/dist/index-DDv68VV1.js.map +1 -0
  116. package/dist/index-DIwEE7rK.js +32554 -0
  117. package/dist/index-DIwEE7rK.js.map +1 -0
  118. package/dist/index-GLlNTp_B.js +2540 -0
  119. package/dist/index-GLlNTp_B.js.map +1 -0
  120. package/dist/index.d.ts +210 -9
  121. package/dist/index.js +5 -28886
  122. package/dist/index.js.map +1 -1
  123. package/dist/property-Bd8U3_QP.js +619 -0
  124. package/dist/property-Bd8U3_QP.js.map +1 -0
  125. package/dist/styles.css +1 -1
  126. package/dist/w3m-modal-DCBge9gk.js +6015 -0
  127. package/dist/w3m-modal-DCBge9gk.js.map +1 -0
  128. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-BOFglHij.js","sources":["../node_modules/events/events.js","../node_modules/detect-browser/es/index.js","../node_modules/@walletconnect/time/node_modules/tslib/tslib.es6.js","../node_modules/@walletconnect/time/dist/cjs/utils/delay.js","../node_modules/@walletconnect/time/dist/cjs/constants/misc.js","../node_modules/@walletconnect/time/dist/cjs/constants/time.js","../node_modules/@walletconnect/time/dist/cjs/constants/index.js","../node_modules/@walletconnect/time/dist/cjs/utils/convert.js","../node_modules/@walletconnect/time/dist/cjs/utils/index.js","../node_modules/@walletconnect/time/dist/cjs/watch.js","../node_modules/@walletconnect/time/dist/cjs/types/watch.js","../node_modules/@walletconnect/time/dist/cjs/types/index.js","../node_modules/@walletconnect/time/dist/cjs/index.js","../node_modules/@walletconnect/window-getters/dist/cjs/index.js","../node_modules/@walletconnect/window-metadata/dist/cjs/index.js","../node_modules/@walletconnect/utils/node_modules/ox/_esm/core/version.js","../node_modules/@walletconnect/utils/node_modules/ox/_esm/core/internal/errors.js","../node_modules/@walletconnect/utils/node_modules/ox/_esm/core/Errors.js","../node_modules/@walletconnect/utils/node_modules/@noble/hashes/esm/crypto.js","../node_modules/@walletconnect/utils/node_modules/@noble/hashes/esm/utils.js","../node_modules/@walletconnect/utils/node_modules/@noble/hashes/esm/_md.js","../node_modules/@walletconnect/utils/node_modules/@noble/hashes/esm/_u64.js","../node_modules/@walletconnect/utils/node_modules/@noble/hashes/esm/sha3.js","../node_modules/@walletconnect/utils/node_modules/@noble/hashes/esm/sha2.js","../node_modules/@walletconnect/utils/node_modules/ox/node_modules/@noble/curves/esm/abstract/utils.js","../node_modules/@walletconnect/utils/node_modules/ox/_esm/core/internal/bytes.js","../node_modules/@walletconnect/utils/node_modules/ox/_esm/core/internal/hex.js","../node_modules/@walletconnect/utils/node_modules/ox/_esm/core/Json.js","../node_modules/@walletconnect/utils/node_modules/ox/_esm/core/Hex.js","../node_modules/@walletconnect/utils/node_modules/ox/_esm/core/Bytes.js","../node_modules/@walletconnect/utils/node_modules/ox/_esm/core/Hash.js","../node_modules/@walletconnect/utils/node_modules/ox/_esm/core/internal/lru.js","../node_modules/@walletconnect/utils/node_modules/ox/_esm/core/Caches.js","../node_modules/@walletconnect/utils/node_modules/ox/_esm/core/PublicKey.js","../node_modules/@walletconnect/utils/node_modules/ox/_esm/core/Address.js","../node_modules/@walletconnect/utils/node_modules/@noble/hashes/esm/hmac.js","../node_modules/@walletconnect/utils/node_modules/ox/node_modules/@noble/curves/esm/abstract/modular.js","../node_modules/@walletconnect/utils/node_modules/ox/node_modules/@noble/curves/esm/abstract/curve.js","../node_modules/@walletconnect/utils/node_modules/ox/node_modules/@noble/curves/esm/abstract/weierstrass.js","../node_modules/@walletconnect/utils/node_modules/ox/node_modules/@noble/curves/esm/_shortw_utils.js","../node_modules/@walletconnect/utils/node_modules/ox/node_modules/@noble/curves/esm/secp256k1.js","../node_modules/@walletconnect/utils/node_modules/ox/_esm/core/Signature.js","../node_modules/@scure/base/lib/esm/index.js","../node_modules/@walletconnect/utils/node_modules/ox/_esm/core/Secp256k1.js","../node_modules/@msgpack/msgpack/dist.esm/utils/utf8.mjs","../node_modules/@msgpack/msgpack/dist.esm/ExtData.mjs","../node_modules/@msgpack/msgpack/dist.esm/DecodeError.mjs","../node_modules/@msgpack/msgpack/dist.esm/utils/int.mjs","../node_modules/@msgpack/msgpack/dist.esm/timestamp.mjs","../node_modules/@msgpack/msgpack/dist.esm/ExtensionCodec.mjs","../node_modules/@msgpack/msgpack/dist.esm/utils/typedArrays.mjs","../node_modules/@msgpack/msgpack/dist.esm/Encoder.mjs","../node_modules/@msgpack/msgpack/dist.esm/encode.mjs","../node_modules/@msgpack/msgpack/dist.esm/utils/prettyByte.mjs","../node_modules/@msgpack/msgpack/dist.esm/CachedKeyDecoder.mjs","../node_modules/@msgpack/msgpack/dist.esm/Decoder.mjs","../node_modules/@msgpack/msgpack/dist.esm/decode.mjs","../node_modules/@walletconnect/safe-json/dist/esm/index.js","../node_modules/@walletconnect/relay-auth/dist/index.es.js","../node_modules/uint8arrays/esm/src/util/as-uint8array.js","../node_modules/uint8arrays/esm/src/alloc.js","../node_modules/uint8arrays/esm/src/concat.js","../node_modules/multiformats/esm/vendor/base-x.js","../node_modules/multiformats/esm/src/bytes.js","../node_modules/multiformats/esm/src/bases/base.js","../node_modules/multiformats/esm/src/bases/identity.js","../node_modules/multiformats/esm/src/bases/base2.js","../node_modules/multiformats/esm/src/bases/base8.js","../node_modules/multiformats/esm/src/bases/base10.js","../node_modules/multiformats/esm/src/bases/base16.js","../node_modules/multiformats/esm/src/bases/base32.js","../node_modules/multiformats/esm/src/bases/base36.js","../node_modules/multiformats/esm/src/bases/base58.js","../node_modules/multiformats/esm/src/bases/base64.js","../node_modules/multiformats/esm/src/bases/base256emoji.js","../node_modules/multiformats/esm/src/codecs/json.js","../node_modules/multiformats/esm/src/basics.js","../node_modules/uint8arrays/esm/src/util/bases.js","../node_modules/uint8arrays/esm/src/from-string.js","../node_modules/uint8arrays/esm/src/to-string.js","../node_modules/@walletconnect/relay-api/dist/index.es.js","../node_modules/blakejs/util.js","../node_modules/blakejs/blake2b.js","../node_modules/blakejs/blake2s.js","../node_modules/blakejs/index.js","../node_modules/@walletconnect/logger/dist/index.es.js","../node_modules/@walletconnect/utils/dist/index.js","../node_modules/@walletconnect/events/dist/esm/events.js","../node_modules/@walletconnect/heartbeat/dist/index.es.js","../node_modules/destr/dist/index.mjs","../node_modules/@walletconnect/core/node_modules/unstorage/dist/shared/unstorage.zVDD2mZo.mjs","../node_modules/@walletconnect/core/node_modules/unstorage/dist/index.mjs","../node_modules/idb-keyval/dist/index.js","../node_modules/@walletconnect/core/node_modules/@walletconnect/keyvaluestorage/dist/index.es.js","../node_modules/@walletconnect/types/dist/index.js","../node_modules/@walletconnect/jsonrpc-utils/dist/esm/constants.js","../node_modules/@walletconnect/jsonrpc-utils/dist/esm/error.js","../node_modules/@walletconnect/environment/node_modules/tslib/tslib.es6.js","../node_modules/@walletconnect/environment/dist/cjs/crypto.js","../node_modules/@walletconnect/environment/dist/cjs/env.js","../node_modules/@walletconnect/environment/dist/cjs/index.js","../node_modules/@walletconnect/jsonrpc-utils/dist/esm/format.js","../node_modules/@walletconnect/jsonrpc-types/dist/index.es.js","../node_modules/@walletconnect/jsonrpc-utils/dist/esm/url.js","../node_modules/@walletconnect/jsonrpc-utils/dist/esm/validators.js","../node_modules/@walletconnect/jsonrpc-provider/dist/index.es.js","../node_modules/@walletconnect/jsonrpc-ws-connection/dist/index.es.js","../node_modules/@walletconnect/core/dist/index.js","../node_modules/@walletconnect/sign-client/dist/index.js","../node_modules/cross-fetch/dist/browser-ponyfill.js","../node_modules/@walletconnect/jsonrpc-http-connection/dist/index.es.js","../node_modules/@walletconnect/universal-provider/dist/index.js","../node_modules/@walletconnect/ethereum-provider/dist/index.js"],"sourcesContent":["// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar BrowserInfo = /** @class */ (function () {\n function BrowserInfo(name, version, os) {\n this.name = name;\n this.version = version;\n this.os = os;\n this.type = 'browser';\n }\n return BrowserInfo;\n}());\nexport { BrowserInfo };\nvar NodeInfo = /** @class */ (function () {\n function NodeInfo(version) {\n this.version = version;\n this.type = 'node';\n this.name = 'node';\n this.os = process.platform;\n }\n return NodeInfo;\n}());\nexport { NodeInfo };\nvar SearchBotDeviceInfo = /** @class */ (function () {\n function SearchBotDeviceInfo(name, version, os, bot) {\n this.name = name;\n this.version = version;\n this.os = os;\n this.bot = bot;\n this.type = 'bot-device';\n }\n return SearchBotDeviceInfo;\n}());\nexport { SearchBotDeviceInfo };\nvar BotInfo = /** @class */ (function () {\n function BotInfo() {\n this.type = 'bot';\n this.bot = true; // NOTE: deprecated test name instead\n this.name = 'bot';\n this.version = null;\n this.os = null;\n }\n return BotInfo;\n}());\nexport { BotInfo };\nvar ReactNativeInfo = /** @class */ (function () {\n function ReactNativeInfo() {\n this.type = 'react-native';\n this.name = 'react-native';\n this.version = null;\n this.os = null;\n }\n return ReactNativeInfo;\n}());\nexport { ReactNativeInfo };\n// tslint:disable-next-line:max-line-length\nvar SEARCHBOX_UA_REGEX = /alexa|bot|crawl(er|ing)|facebookexternalhit|feedburner|google web preview|nagios|postrank|pingdom|slurp|spider|yahoo!|yandex/;\nvar SEARCHBOT_OS_REGEX = /(nuhk|curl|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask\\ Jeeves\\/Teoma|ia_archiver)/;\nvar REQUIRED_VERSION_PARTS = 3;\nvar userAgentRules = [\n ['aol', /AOLShield\\/([0-9\\._]+)/],\n ['edge', /Edge\\/([0-9\\._]+)/],\n ['edge-ios', /EdgiOS\\/([0-9\\._]+)/],\n ['yandexbrowser', /YaBrowser\\/([0-9\\._]+)/],\n ['kakaotalk', /KAKAOTALK\\s([0-9\\.]+)/],\n ['samsung', /SamsungBrowser\\/([0-9\\.]+)/],\n ['silk', /\\bSilk\\/([0-9._-]+)\\b/],\n ['miui', /MiuiBrowser\\/([0-9\\.]+)$/],\n ['beaker', /BeakerBrowser\\/([0-9\\.]+)/],\n ['edge-chromium', /EdgA?\\/([0-9\\.]+)/],\n [\n 'chromium-webview',\n /(?!Chrom.*OPR)wv\\).*Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/,\n ],\n ['chrome', /(?!Chrom.*OPR)Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/],\n ['phantomjs', /PhantomJS\\/([0-9\\.]+)(:?\\s|$)/],\n ['crios', /CriOS\\/([0-9\\.]+)(:?\\s|$)/],\n ['firefox', /Firefox\\/([0-9\\.]+)(?:\\s|$)/],\n ['fxios', /FxiOS\\/([0-9\\.]+)/],\n ['opera-mini', /Opera Mini.*Version\\/([0-9\\.]+)/],\n ['opera', /Opera\\/([0-9\\.]+)(?:\\s|$)/],\n ['opera', /OPR\\/([0-9\\.]+)(:?\\s|$)/],\n ['pie', /^Microsoft Pocket Internet Explorer\\/(\\d+\\.\\d+)$/],\n ['pie', /^Mozilla\\/\\d\\.\\d+\\s\\(compatible;\\s(?:MSP?IE|MSInternet Explorer) (\\d+\\.\\d+);.*Windows CE.*\\)$/],\n ['netfront', /^Mozilla\\/\\d\\.\\d+.*NetFront\\/(\\d.\\d)/],\n ['ie', /Trident\\/7\\.0.*rv\\:([0-9\\.]+).*\\).*Gecko$/],\n ['ie', /MSIE\\s([0-9\\.]+);.*Trident\\/[4-7].0/],\n ['ie', /MSIE\\s(7\\.0)/],\n ['bb10', /BB10;\\sTouch.*Version\\/([0-9\\.]+)/],\n ['android', /Android\\s([0-9\\.]+)/],\n ['ios', /Version\\/([0-9\\._]+).*Mobile.*Safari.*/],\n ['safari', /Version\\/([0-9\\._]+).*Safari/],\n ['facebook', /FB[AS]V\\/([0-9\\.]+)/],\n ['instagram', /Instagram\\s([0-9\\.]+)/],\n ['ios-webview', /AppleWebKit\\/([0-9\\.]+).*Mobile/],\n ['ios-webview', /AppleWebKit\\/([0-9\\.]+).*Gecko\\)$/],\n ['curl', /^curl\\/([0-9\\.]+)$/],\n ['searchbot', SEARCHBOX_UA_REGEX],\n];\nvar operatingSystemRules = [\n ['iOS', /iP(hone|od|ad)/],\n ['Android OS', /Android/],\n ['BlackBerry OS', /BlackBerry|BB10/],\n ['Windows Mobile', /IEMobile/],\n ['Amazon OS', /Kindle/],\n ['Windows 3.11', /Win16/],\n ['Windows 95', /(Windows 95)|(Win95)|(Windows_95)/],\n ['Windows 98', /(Windows 98)|(Win98)/],\n ['Windows 2000', /(Windows NT 5.0)|(Windows 2000)/],\n ['Windows XP', /(Windows NT 5.1)|(Windows XP)/],\n ['Windows Server 2003', /(Windows NT 5.2)/],\n ['Windows Vista', /(Windows NT 6.0)/],\n ['Windows 7', /(Windows NT 6.1)/],\n ['Windows 8', /(Windows NT 6.2)/],\n ['Windows 8.1', /(Windows NT 6.3)/],\n ['Windows 10', /(Windows NT 10.0)/],\n ['Windows ME', /Windows ME/],\n ['Windows CE', /Windows CE|WinCE|Microsoft Pocket Internet Explorer/],\n ['Open BSD', /OpenBSD/],\n ['Sun OS', /SunOS/],\n ['Chrome OS', /CrOS/],\n ['Linux', /(Linux)|(X11)/],\n ['Mac OS', /(Mac_PowerPC)|(Macintosh)/],\n ['QNX', /QNX/],\n ['BeOS', /BeOS/],\n ['OS/2', /OS\\/2/],\n];\nexport function detect(userAgent) {\n if (!!userAgent) {\n return parseUserAgent(userAgent);\n }\n if (typeof document === 'undefined' &&\n typeof navigator !== 'undefined' &&\n navigator.product === 'ReactNative') {\n return new ReactNativeInfo();\n }\n if (typeof navigator !== 'undefined') {\n return parseUserAgent(navigator.userAgent);\n }\n return getNodeVersion();\n}\nfunction matchUserAgent(ua) {\n // opted for using reduce here rather than Array#first with a regex.test call\n // this is primarily because using the reduce we only perform the regex\n // execution once rather than once for the test and for the exec again below\n // probably something that needs to be benchmarked though\n return (ua !== '' &&\n userAgentRules.reduce(function (matched, _a) {\n var browser = _a[0], regex = _a[1];\n if (matched) {\n return matched;\n }\n var uaMatch = regex.exec(ua);\n return !!uaMatch && [browser, uaMatch];\n }, false));\n}\nexport function browserName(ua) {\n var data = matchUserAgent(ua);\n return data ? data[0] : null;\n}\nexport function parseUserAgent(ua) {\n var matchedRule = matchUserAgent(ua);\n if (!matchedRule) {\n return null;\n }\n var name = matchedRule[0], match = matchedRule[1];\n if (name === 'searchbot') {\n return new BotInfo();\n }\n // Do not use RegExp for split operation as some browser do not support it (See: http://blog.stevenlevithan.com/archives/cross-browser-split)\n var versionParts = match[1] && match[1].split('.').join('_').split('_').slice(0, 3);\n if (versionParts) {\n if (versionParts.length < REQUIRED_VERSION_PARTS) {\n versionParts = __spreadArray(__spreadArray([], versionParts, true), createVersionParts(REQUIRED_VERSION_PARTS - versionParts.length), true);\n }\n }\n else {\n versionParts = [];\n }\n var version = versionParts.join('.');\n var os = detectOS(ua);\n var searchBotMatch = SEARCHBOT_OS_REGEX.exec(ua);\n if (searchBotMatch && searchBotMatch[1]) {\n return new SearchBotDeviceInfo(name, version, os, searchBotMatch[1]);\n }\n return new BrowserInfo(name, version, os);\n}\nexport function detectOS(ua) {\n for (var ii = 0, count = operatingSystemRules.length; ii < count; ii++) {\n var _a = operatingSystemRules[ii], os = _a[0], regex = _a[1];\n var match = regex.exec(ua);\n if (match) {\n return os;\n }\n }\n return null;\n}\nexport function getNodeVersion() {\n var isNode = typeof process !== 'undefined' && process.version;\n return isNode ? new NodeInfo(process.version.slice(1)) : null;\n}\nfunction createVersionParts(count) {\n var output = [];\n for (var ii = 0; ii < count; ii++) {\n output.push('0');\n }\n return output;\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.delay = void 0;\nfunction delay(timeout) {\n return new Promise(resolve => {\n setTimeout(() => {\n resolve(true);\n }, timeout);\n });\n}\nexports.delay = delay;\n//# sourceMappingURL=delay.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ONE_THOUSAND = exports.ONE_HUNDRED = void 0;\nexports.ONE_HUNDRED = 100;\nexports.ONE_THOUSAND = 1000;\n//# sourceMappingURL=misc.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ONE_YEAR = exports.FOUR_WEEKS = exports.THREE_WEEKS = exports.TWO_WEEKS = exports.ONE_WEEK = exports.THIRTY_DAYS = exports.SEVEN_DAYS = exports.FIVE_DAYS = exports.THREE_DAYS = exports.ONE_DAY = exports.TWENTY_FOUR_HOURS = exports.TWELVE_HOURS = exports.SIX_HOURS = exports.THREE_HOURS = exports.ONE_HOUR = exports.SIXTY_MINUTES = exports.THIRTY_MINUTES = exports.TEN_MINUTES = exports.FIVE_MINUTES = exports.ONE_MINUTE = exports.SIXTY_SECONDS = exports.THIRTY_SECONDS = exports.TEN_SECONDS = exports.FIVE_SECONDS = exports.ONE_SECOND = void 0;\nexports.ONE_SECOND = 1;\nexports.FIVE_SECONDS = 5;\nexports.TEN_SECONDS = 10;\nexports.THIRTY_SECONDS = 30;\nexports.SIXTY_SECONDS = 60;\nexports.ONE_MINUTE = exports.SIXTY_SECONDS;\nexports.FIVE_MINUTES = exports.ONE_MINUTE * 5;\nexports.TEN_MINUTES = exports.ONE_MINUTE * 10;\nexports.THIRTY_MINUTES = exports.ONE_MINUTE * 30;\nexports.SIXTY_MINUTES = exports.ONE_MINUTE * 60;\nexports.ONE_HOUR = exports.SIXTY_MINUTES;\nexports.THREE_HOURS = exports.ONE_HOUR * 3;\nexports.SIX_HOURS = exports.ONE_HOUR * 6;\nexports.TWELVE_HOURS = exports.ONE_HOUR * 12;\nexports.TWENTY_FOUR_HOURS = exports.ONE_HOUR * 24;\nexports.ONE_DAY = exports.TWENTY_FOUR_HOURS;\nexports.THREE_DAYS = exports.ONE_DAY * 3;\nexports.FIVE_DAYS = exports.ONE_DAY * 5;\nexports.SEVEN_DAYS = exports.ONE_DAY * 7;\nexports.THIRTY_DAYS = exports.ONE_DAY * 30;\nexports.ONE_WEEK = exports.SEVEN_DAYS;\nexports.TWO_WEEKS = exports.ONE_WEEK * 2;\nexports.THREE_WEEKS = exports.ONE_WEEK * 3;\nexports.FOUR_WEEKS = exports.ONE_WEEK * 4;\nexports.ONE_YEAR = exports.ONE_DAY * 365;\n//# sourceMappingURL=time.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./misc\"), exports);\ntslib_1.__exportStar(require(\"./time\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromMiliseconds = exports.toMiliseconds = void 0;\nconst constants_1 = require(\"../constants\");\nfunction toMiliseconds(seconds) {\n return seconds * constants_1.ONE_THOUSAND;\n}\nexports.toMiliseconds = toMiliseconds;\nfunction fromMiliseconds(miliseconds) {\n return Math.floor(miliseconds / constants_1.ONE_THOUSAND);\n}\nexports.fromMiliseconds = fromMiliseconds;\n//# sourceMappingURL=convert.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./delay\"), exports);\ntslib_1.__exportStar(require(\"./convert\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Watch = void 0;\nclass Watch {\n constructor() {\n this.timestamps = new Map();\n }\n start(label) {\n if (this.timestamps.has(label)) {\n throw new Error(`Watch already started for label: ${label}`);\n }\n this.timestamps.set(label, { started: Date.now() });\n }\n stop(label) {\n const timestamp = this.get(label);\n if (typeof timestamp.elapsed !== \"undefined\") {\n throw new Error(`Watch already stopped for label: ${label}`);\n }\n const elapsed = Date.now() - timestamp.started;\n this.timestamps.set(label, { started: timestamp.started, elapsed });\n }\n get(label) {\n const timestamp = this.timestamps.get(label);\n if (typeof timestamp === \"undefined\") {\n throw new Error(`No timestamp found for label: ${label}`);\n }\n return timestamp;\n }\n elapsed(label) {\n const timestamp = this.get(label);\n const elapsed = timestamp.elapsed || Date.now() - timestamp.started;\n return elapsed;\n }\n}\nexports.Watch = Watch;\nexports.default = Watch;\n//# sourceMappingURL=watch.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IWatch = void 0;\nclass IWatch {\n}\nexports.IWatch = IWatch;\n//# sourceMappingURL=watch.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./watch\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./utils\"), exports);\ntslib_1.__exportStar(require(\"./watch\"), exports);\ntslib_1.__exportStar(require(\"./types\"), exports);\ntslib_1.__exportStar(require(\"./constants\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getLocalStorage = exports.getLocalStorageOrThrow = exports.getCrypto = exports.getCryptoOrThrow = exports.getLocation = exports.getLocationOrThrow = exports.getNavigator = exports.getNavigatorOrThrow = exports.getDocument = exports.getDocumentOrThrow = exports.getFromWindowOrThrow = exports.getFromWindow = void 0;\nfunction getFromWindow(name) {\n let res = undefined;\n if (typeof window !== \"undefined\" && typeof window[name] !== \"undefined\") {\n res = window[name];\n }\n return res;\n}\nexports.getFromWindow = getFromWindow;\nfunction getFromWindowOrThrow(name) {\n const res = getFromWindow(name);\n if (!res) {\n throw new Error(`${name} is not defined in Window`);\n }\n return res;\n}\nexports.getFromWindowOrThrow = getFromWindowOrThrow;\nfunction getDocumentOrThrow() {\n return getFromWindowOrThrow(\"document\");\n}\nexports.getDocumentOrThrow = getDocumentOrThrow;\nfunction getDocument() {\n return getFromWindow(\"document\");\n}\nexports.getDocument = getDocument;\nfunction getNavigatorOrThrow() {\n return getFromWindowOrThrow(\"navigator\");\n}\nexports.getNavigatorOrThrow = getNavigatorOrThrow;\nfunction getNavigator() {\n return getFromWindow(\"navigator\");\n}\nexports.getNavigator = getNavigator;\nfunction getLocationOrThrow() {\n return getFromWindowOrThrow(\"location\");\n}\nexports.getLocationOrThrow = getLocationOrThrow;\nfunction getLocation() {\n return getFromWindow(\"location\");\n}\nexports.getLocation = getLocation;\nfunction getCryptoOrThrow() {\n return getFromWindowOrThrow(\"crypto\");\n}\nexports.getCryptoOrThrow = getCryptoOrThrow;\nfunction getCrypto() {\n return getFromWindow(\"crypto\");\n}\nexports.getCrypto = getCrypto;\nfunction getLocalStorageOrThrow() {\n return getFromWindowOrThrow(\"localStorage\");\n}\nexports.getLocalStorageOrThrow = getLocalStorageOrThrow;\nfunction getLocalStorage() {\n return getFromWindow(\"localStorage\");\n}\nexports.getLocalStorage = getLocalStorage;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getWindowMetadata = void 0;\nconst window_getters_1 = require(\"@walletconnect/window-getters\");\nfunction getWindowMetadata() {\n let doc;\n let loc;\n try {\n doc = window_getters_1.getDocumentOrThrow();\n loc = window_getters_1.getLocationOrThrow();\n }\n catch (e) {\n return null;\n }\n function getIcons() {\n const links = doc.getElementsByTagName(\"link\");\n const icons = [];\n for (let i = 0; i < links.length; i++) {\n const link = links[i];\n const rel = link.getAttribute(\"rel\");\n if (rel) {\n if (rel.toLowerCase().indexOf(\"icon\") > -1) {\n const href = link.getAttribute(\"href\");\n if (href) {\n if (href.toLowerCase().indexOf(\"https:\") === -1 &&\n href.toLowerCase().indexOf(\"http:\") === -1 &&\n href.indexOf(\"//\") !== 0) {\n let absoluteHref = loc.protocol + \"//\" + loc.host;\n if (href.indexOf(\"/\") === 0) {\n absoluteHref += href;\n }\n else {\n const path = loc.pathname.split(\"/\");\n path.pop();\n const finalPath = path.join(\"/\");\n absoluteHref += finalPath + \"/\" + href;\n }\n icons.push(absoluteHref);\n }\n else if (href.indexOf(\"//\") === 0) {\n const absoluteUrl = loc.protocol + href;\n icons.push(absoluteUrl);\n }\n else {\n icons.push(href);\n }\n }\n }\n }\n }\n return icons;\n }\n function getWindowMetadataOfAny(...args) {\n const metaTags = doc.getElementsByTagName(\"meta\");\n for (let i = 0; i < metaTags.length; i++) {\n const tag = metaTags[i];\n const attributes = [\"itemprop\", \"property\", \"name\"]\n .map((target) => tag.getAttribute(target))\n .filter((attr) => {\n if (attr) {\n return args.includes(attr);\n }\n return false;\n });\n if (attributes.length && attributes) {\n const content = tag.getAttribute(\"content\");\n if (content) {\n return content;\n }\n }\n }\n return \"\";\n }\n function getName() {\n let name = getWindowMetadataOfAny(\"name\", \"og:site_name\", \"og:title\", \"twitter:title\");\n if (!name) {\n name = doc.title;\n }\n return name;\n }\n function getDescription() {\n const description = getWindowMetadataOfAny(\"description\", \"og:description\", \"twitter:description\", \"keywords\");\n return description;\n }\n const name = getName();\n const description = getDescription();\n const url = loc.origin;\n const icons = getIcons();\n const meta = {\n description,\n url,\n icons,\n name,\n };\n return meta;\n}\nexports.getWindowMetadata = getWindowMetadata;\n//# sourceMappingURL=index.js.map","/** @internal */\nexport const version = '0.1.1';\n//# sourceMappingURL=version.js.map","import { version } from '../version.js';\n/** @internal */\nexport function getUrl(url) {\n return url;\n}\n/** @internal */\nexport function getVersion() {\n return version;\n}\n/** @internal */\nexport function prettyPrint(args) {\n if (!args)\n return '';\n const entries = Object.entries(args)\n .map(([key, value]) => {\n if (value === undefined || value === false)\n return null;\n return [key, value];\n })\n .filter(Boolean);\n const maxLength = entries.reduce((acc, [key]) => Math.max(acc, key.length), 0);\n return entries\n .map(([key, value]) => ` ${`${key}:`.padEnd(maxLength + 1)} ${value}`)\n .join('\\n');\n}\n//# sourceMappingURL=errors.js.map","import { getVersion } from './internal/errors.js';\n/**\n * Base error class inherited by all errors thrown by ox.\n *\n * @example\n * ```ts\n * import { Errors } from 'ox'\n * throw new Errors.BaseError('An error occurred')\n * ```\n */\nexport class BaseError extends Error {\n constructor(shortMessage, options = {}) {\n const details = (() => {\n if (options.cause instanceof BaseError) {\n if (options.cause.details)\n return options.cause.details;\n if (options.cause.shortMessage)\n return options.cause.shortMessage;\n }\n if (options.cause &&\n 'details' in options.cause &&\n typeof options.cause.details === 'string')\n return options.cause.details;\n if (options.cause?.message)\n return options.cause.message;\n return options.details;\n })();\n const docsPath = (() => {\n if (options.cause instanceof BaseError)\n return options.cause.docsPath || options.docsPath;\n return options.docsPath;\n })();\n const docsBaseUrl = 'https://oxlib.sh';\n const docs = `${docsBaseUrl}${docsPath ?? ''}`;\n const message = [\n shortMessage || 'An error occurred.',\n ...(options.metaMessages ? ['', ...options.metaMessages] : []),\n ...(details || docsPath\n ? [\n '',\n details ? `Details: ${details}` : undefined,\n docsPath ? `See: ${docs}` : undefined,\n ]\n : []),\n ]\n .filter((x) => typeof x === 'string')\n .join('\\n');\n super(message, options.cause ? { cause: options.cause } : undefined);\n Object.defineProperty(this, \"details\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"docs\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"docsPath\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"shortMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"cause\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'BaseError'\n });\n Object.defineProperty(this, \"version\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: `ox@${getVersion()}`\n });\n this.cause = options.cause;\n this.details = details;\n this.docs = docs;\n this.docsPath = docsPath;\n this.shortMessage = shortMessage;\n }\n walk(fn) {\n return walk(this, fn);\n }\n}\n/** @internal */\nfunction walk(err, fn) {\n if (fn?.(err))\n return err;\n if (err && typeof err === 'object' && 'cause' in err && err.cause)\n return walk(err.cause, fn);\n return fn ? null : err;\n}\n//# sourceMappingURL=Errors.js.map","export const crypto = typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined;\n//# sourceMappingURL=crypto.js.map","/**\n * Utilities for hex, bytes, CSPRNG.\n * @module\n */\n/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\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.\nimport { crypto } from '@noble/hashes/crypto';\n/** Checks if something is Uint8Array. Be careful: nodejs Buffer will return true. */\nexport function isBytes(a) {\n return a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array');\n}\n/** Asserts something is positive integer. */\nexport function anumber(n) {\n if (!Number.isSafeInteger(n) || n < 0)\n throw new Error('positive integer expected, got ' + n);\n}\n/** Asserts something is Uint8Array. */\nexport function 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 */\nexport function ahash(h) {\n if (typeof h !== 'function' || typeof h.create !== 'function')\n throw new Error('Hash should be wrapped by utils.createHasher');\n anumber(h.outputLen);\n anumber(h.blockLen);\n}\n/** Asserts a hash instance has not been destroyed / finished */\nexport function 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 */\nexport function 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/** Cast u8 / u16 / u32 to u8. */\nexport function u8(arr) {\n return new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\n}\n/** Cast u8 / u16 / u32 to u32. */\nexport function u32(arr) {\n return new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n}\n/** Zeroize a byte array. Warning: JS provides no guarantees. */\nexport function clean(...arrays) {\n for (let i = 0; i < arrays.length; i++) {\n arrays[i].fill(0);\n }\n}\n/** Create DataView of an array for easy byte-level manipulation. */\nexport function createView(arr) {\n return new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n}\n/** The rotate right (circular right shift) operation for uint32 */\nexport function rotr(word, shift) {\n return (word << (32 - shift)) | (word >>> shift);\n}\n/** The rotate left (circular left shift) operation for uint32 */\nexport function rotl(word, shift) {\n return (word << shift) | ((word >>> (32 - shift)) >>> 0);\n}\n/** Is current platform little-endian? Most are. Big-Endian platform: IBM */\nexport const isLE = /* @__PURE__ */ (() => new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44)();\n/** The byte swap operation for uint32 */\nexport function 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 */\nexport const swap8IfBE = isLE\n ? (n) => n\n : (n) => byteSwap(n);\n/** @deprecated */\nexport const byteSwapIfBE = swap8IfBE;\n/** In place byte swap for Uint32Array */\nexport function byteSwap32(arr) {\n for (let i = 0; i < arr.length; i++) {\n arr[i] = byteSwap(arr[i]);\n }\n return arr;\n}\nexport const swap32IfBE = isLE\n ? (u) => u\n : byteSwap32;\n// Built-in hex conversion https://caniuse.com/mdn-javascript_builtins_uint8array_fromhex\nconst hasHexBuiltin = /* @__PURE__ */ (() => \n// @ts-ignore\ntypeof Uint8Array.from([]).toHex === 'function' && typeof Uint8Array.fromHex === 'function')();\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. Uses built-in function, when available.\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes) {\n abytes(bytes);\n // @ts-ignore\n if (hasHexBuiltin)\n return bytes.toHex();\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. Uses built-in function, when available.\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nexport function hexToBytes(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n // @ts-ignore\n if (hasHexBuiltin)\n return Uint8Array.fromHex(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 */\nexport const nextTick = async () => { };\n/** Returns control to thread each 'tick' ms to avoid blocking. */\nexport async 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 nextTick();\n ts += diff;\n }\n}\n/**\n * Converts string to bytes using UTF8 encoding.\n * @example utf8ToBytes('abc') // Uint8Array.from([97, 98, 99])\n */\nexport function utf8ToBytes(str) {\n if (typeof str !== 'string')\n throw new Error('string expected');\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n/**\n * Converts bytes to string using UTF8 encoding.\n * @example bytesToUtf8(Uint8Array.from([97, 98, 99])) // 'abc'\n */\nexport function bytesToUtf8(bytes) {\n return new TextDecoder().decode(bytes);\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 */\nexport function toBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n abytes(data);\n return data;\n}\n/**\n * Helper for KDFs: consumes uint8array or string.\n * When string is passed, does utf8 decoding, using TextDecoder.\n */\nexport function kdfInputToBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n abytes(data);\n return data;\n}\n/** Copies several Uint8Arrays into one. */\nexport function concatBytes(...arrays) {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n 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}\nexport function 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/** For runtime check if class implements interface */\nexport class Hash {\n}\n/** Wraps hash function, creating an interface on top of it */\nexport function createHasher(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}\nexport function createOptHasher(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}\nexport function createXOFer(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}\nexport const wrapConstructor = createHasher;\nexport const wrapConstructorWithOpts = createOptHasher;\nexport const wrapXOFConstructorWithOpts = createXOFer;\n/** Cryptographically secure PRNG. Uses internal OS-level `crypto.getRandomValues`. */\nexport function randomBytes(bytesLength = 32) {\n if (crypto && typeof crypto.getRandomValues === 'function') {\n return crypto.getRandomValues(new Uint8Array(bytesLength));\n }\n // Legacy Node.js compatibility\n if (crypto && typeof crypto.randomBytes === 'function') {\n return Uint8Array.from(crypto.randomBytes(bytesLength));\n }\n throw new Error('crypto.getRandomValues must be defined');\n}\n//# sourceMappingURL=utils.js.map","/**\n * Internal Merkle-Damgard hash utils.\n * @module\n */\nimport { Hash, abytes, aexists, aoutput, clean, createView, toBytes } from \"./utils.js\";\n/** Polyfill for Safari 14. https://caniuse.com/mdn-javascript_builtins_dataview_setbiguint64 */\nexport function setBigUint64(view, byteOffset, value, isLE) {\n if (typeof view.setBigUint64 === 'function')\n return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\n/** Choice: a ? b : c */\nexport function Chi(a, b, c) {\n return (a & b) ^ (~a & c);\n}\n/** Majority function, true if any two inputs is true. */\nexport function Maj(a, b, c) {\n return (a & b) ^ (a & c) ^ (b & c);\n}\n/**\n * Merkle-Damgard hash construction base class.\n * Could be used to create MD5, RIPEMD, SHA1, SHA2.\n */\nexport class HashMD extends Hash {\n constructor(blockLen, outputLen, padOffset, isLE) {\n super();\n this.finished = false;\n this.length = 0;\n this.pos = 0;\n this.destroyed = false;\n this.blockLen = blockLen;\n this.outputLen = outputLen;\n this.padOffset = padOffset;\n this.isLE = isLE;\n this.buffer = new Uint8Array(blockLen);\n this.view = createView(this.buffer);\n }\n update(data) {\n aexists(this);\n data = toBytes(data);\n abytes(data);\n const { view, buffer, blockLen } = this;\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path: we have at least one block in input, cast it to view and process\n if (take === blockLen) {\n const dataView = createView(data);\n for (; blockLen <= len - pos; pos += blockLen)\n this.process(dataView, pos);\n continue;\n }\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n pos += take;\n if (this.pos === blockLen) {\n this.process(view, 0);\n this.pos = 0;\n }\n }\n this.length += data.length;\n this.roundClean();\n return this;\n }\n digestInto(out) {\n aexists(this);\n aoutput(out, this);\n this.finished = true;\n // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n const { buffer, view, blockLen, isLE } = this;\n let { pos } = this;\n // append the bit '1' to the message\n buffer[pos++] = 0b10000000;\n clean(this.buffer.subarray(pos));\n // we have less than padOffset left in buffer, so we cannot put length in\n // current block, need process it and pad again\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n pos = 0;\n }\n // Pad until full block byte with zeros\n for (let i = pos; i < blockLen; i++)\n buffer[i] = 0;\n // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n // So we just write lowest 64 bits of that value.\n setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n this.process(view, 0);\n const oview = createView(out);\n const len = this.outputLen;\n // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT\n if (len % 4)\n throw new Error('_sha2: outputLen should be aligned to 32bit');\n const outLen = len / 4;\n const state = this.get();\n if (outLen > state.length)\n throw new Error('_sha2: outputLen bigger than state');\n for (let i = 0; i < outLen; i++)\n oview.setUint32(4 * i, state[i], isLE);\n }\n digest() {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneInto(to) {\n to || (to = new this.constructor());\n to.set(...this.get());\n const { blockLen, buffer, length, finished, destroyed, pos } = this;\n to.destroyed = destroyed;\n to.finished = finished;\n to.length = length;\n to.pos = pos;\n if (length % blockLen)\n to.buffer.set(buffer);\n return to;\n }\n clone() {\n return this._cloneInto();\n }\n}\n/**\n * Initial SHA-2 state: fractional parts of square roots of first 16 primes 2..53.\n * Check out `test/misc/sha2-gen-iv.js` for recomputation guide.\n */\n/** Initial SHA256 state. Bits 0..32 of frac part of sqrt of primes 2..19 */\nexport const SHA256_IV = /* @__PURE__ */ Uint32Array.from([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19,\n]);\n/** Initial SHA224 state. Bits 32..64 of frac part of sqrt of primes 23..53 */\nexport const SHA224_IV = /* @__PURE__ */ Uint32Array.from([\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939, 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4,\n]);\n/** Initial SHA384 state. Bits 0..64 of frac part of sqrt of primes 23..53 */\nexport const SHA384_IV = /* @__PURE__ */ Uint32Array.from([\n 0xcbbb9d5d, 0xc1059ed8, 0x629a292a, 0x367cd507, 0x9159015a, 0x3070dd17, 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31, 0x8eb44a87, 0x68581511, 0xdb0c2e0d, 0x64f98fa7, 0x47b5481d, 0xbefa4fa4,\n]);\n/** Initial SHA512 state. Bits 0..64 of frac part of sqrt of primes 2..19 */\nexport const SHA512_IV = /* @__PURE__ */ Uint32Array.from([\n 0x6a09e667, 0xf3bcc908, 0xbb67ae85, 0x84caa73b, 0x3c6ef372, 0xfe94f82b, 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1, 0x9b05688c, 0x2b3e6c1f, 0x1f83d9ab, 0xfb41bd6b, 0x5be0cd19, 0x137e2179,\n]);\n//# sourceMappingURL=_md.js.map","/**\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 const len = lst.length;\n let Ah = new Uint32Array(len);\n let Al = new Uint32Array(len);\n for (let i = 0; i < len; 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);\n// for Shift in [0, 32)\nconst shrSH = (h, _l, s) => h >>> s;\nconst shrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in [1, 32)\nconst rotrSH = (h, l, s) => (h >>> s) | (l << (32 - s));\nconst rotrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotrBH = (h, l, s) => (h << (64 - s)) | (l >>> (s - 32));\nconst rotrBL = (h, l, s) => (h >>> (s - 32)) | (l << (64 - s));\n// Right rotate for shift===32 (just swaps l&h)\nconst rotr32H = (_h, l) => l;\nconst rotr32L = (h, _l) => h;\n// Left rotate for Shift in [1, 32)\nconst rotlSH = (h, l, s) => (h << s) | (l >>> (32 - s));\nconst rotlSL = (h, l, s) => (l << s) | (h >>> (32 - s));\n// Left rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotlBH = (h, l, s) => (l << (s - 32)) | (h >>> (64 - s));\nconst rotlBL = (h, l, s) => (h << (s - 32)) | (l >>> (64 - s));\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);\nconst add3H = (low, Ah, Bh, Ch) => (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0;\nconst add4L = (Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);\nconst add4H = (low, Ah, Bh, Ch, Dh) => (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0;\nconst add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);\nconst add5H = (low, Ah, Bh, Ch, Dh, Eh) => (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;\n// prettier-ignore\nexport { add, add3H, add3L, add4H, add4L, add5H, add5L, fromBig, rotlBH, rotlBL, rotlSH, rotlSL, rotr32H, rotr32L, rotrBH, rotrBL, rotrSH, rotrSL, shrSH, shrSL, split, toBig };\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};\nexport default u64;\n//# sourceMappingURL=_u64.js.map","/**\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 */\nimport { rotlBH, rotlBL, rotlSH, rotlSL, split } from \"./_u64.js\";\n// prettier-ignore\nimport { abytes, aexists, anumber, aoutput, clean, createHasher, createXOFer, Hash, swap32IfBE, toBytes, u32 } from \"./utils.js\";\n// No __PURE__ annotations in sha3 header:\n// EVERYTHING is in fact used on every export.\n// Various per round constants calculations\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst _7n = BigInt(7);\nconst _256n = BigInt(256);\nconst _0x71n = BigInt(0x71);\nconst SHA3_PI = [];\nconst SHA3_ROTL = [];\nconst _SHA3_IOTA = [];\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 IOTAS = split(_SHA3_IOTA, true);\nconst SHA3_IOTA_H = IOTAS[0];\nconst SHA3_IOTA_L = IOTAS[1];\n// Left rotation (without 0, 32, 64)\nconst rotlH = (h, l, s) => (s > 32 ? rotlBH(h, l, s) : rotlSH(h, l, s));\nconst rotlL = (h, l, s) => (s > 32 ? rotlBL(h, l, s) : rotlSL(h, l, s));\n/** `keccakf1600` internal function, additionally allows to adjust round count. */\nexport function 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 clean(B);\n}\n/** Keccak sponge function. */\nexport class Keccak extends 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.pos = 0;\n this.posOut = 0;\n this.finished = false;\n this.destroyed = false;\n this.enableXOF = false;\n this.blockLen = blockLen;\n this.suffix = suffix;\n this.outputLen = outputLen;\n this.enableXOF = enableXOF;\n this.rounds = rounds;\n // Can be passed from user as dkLen\n anumber(outputLen);\n // 1600 = 5x5 matrix of 64bit. 1600 bits === 200 bytes\n // 0 < blockLen < 200\n if (!(0 < blockLen && blockLen < 200))\n throw new Error('only keccak-f1600 function is supported');\n this.state = new Uint8Array(200);\n this.state32 = u32(this.state);\n }\n clone() {\n return this._cloneInto();\n }\n keccak() {\n swap32IfBE(this.state32);\n keccakP(this.state32, this.rounds);\n swap32IfBE(this.state32);\n this.posOut = 0;\n this.pos = 0;\n }\n update(data) {\n aexists(this);\n data = toBytes(data);\n abytes(data);\n const { blockLen, state } = this;\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 aexists(this, false);\n 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 anumber(bytes);\n return this.xofInto(new Uint8Array(bytes));\n }\n digestInto(out) {\n 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 clean(this.state);\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}\nconst gen = (suffix, blockLen, outputLen) => createHasher(() => new Keccak(blockLen, suffix, outputLen));\n/** SHA3-224 hash function. */\nexport const sha3_224 = /* @__PURE__ */ (() => gen(0x06, 144, 224 / 8))();\n/** SHA3-256 hash function. Different from keccak-256. */\nexport const sha3_256 = /* @__PURE__ */ (() => gen(0x06, 136, 256 / 8))();\n/** SHA3-384 hash function. */\nexport const sha3_384 = /* @__PURE__ */ (() => gen(0x06, 104, 384 / 8))();\n/** SHA3-512 hash function. */\nexport const sha3_512 = /* @__PURE__ */ (() => gen(0x06, 72, 512 / 8))();\n/** keccak-224 hash function. */\nexport const keccak_224 = /* @__PURE__ */ (() => gen(0x01, 144, 224 / 8))();\n/** keccak-256 hash function. Different from SHA3-256. */\nexport const keccak_256 = /* @__PURE__ */ (() => gen(0x01, 136, 256 / 8))();\n/** keccak-384 hash function. */\nexport const keccak_384 = /* @__PURE__ */ (() => gen(0x01, 104, 384 / 8))();\n/** keccak-512 hash function. */\nexport const keccak_512 = /* @__PURE__ */ (() => gen(0x01, 72, 512 / 8))();\nconst genShake = (suffix, blockLen, outputLen) => createXOFer((opts = {}) => new Keccak(blockLen, suffix, opts.dkLen === undefined ? outputLen : opts.dkLen, true));\n/** SHAKE128 XOF with 128-bit security. */\nexport const shake128 = /* @__PURE__ */ (() => genShake(0x1f, 168, 128 / 8))();\n/** SHAKE256 XOF with 256-bit security. */\nexport const shake256 = /* @__PURE__ */ (() => genShake(0x1f, 136, 256 / 8))();\n//# sourceMappingURL=sha3.js.map","/**\n * SHA2 hash function. A.k.a. sha256, sha384, sha512, sha512_224, sha512_256.\n * SHA256 is the fastest hash implementable in JS, even faster than Blake3.\n * Check out [RFC 4634](https://datatracker.ietf.org/doc/html/rfc4634) and\n * [FIPS 180-4](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf).\n * @module\n */\nimport { Chi, HashMD, Maj, SHA224_IV, SHA256_IV, SHA384_IV, SHA512_IV } from \"./_md.js\";\nimport * as u64 from \"./_u64.js\";\nimport { clean, createHasher, rotr } from \"./utils.js\";\n/**\n * Round constants:\n * First 32 bits of fractional parts of the cube roots of the first 64 primes 2..311)\n */\n// prettier-ignore\nconst SHA256_K = /* @__PURE__ */ Uint32Array.from([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n/** Reusable temporary buffer. \"W\" comes straight from spec. */\nconst SHA256_W = /* @__PURE__ */ new Uint32Array(64);\nexport class SHA256 extends HashMD {\n constructor(outputLen = 32) {\n super(64, outputLen, 8, false);\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n this.A = SHA256_IV[0] | 0;\n this.B = SHA256_IV[1] | 0;\n this.C = SHA256_IV[2] | 0;\n this.D = SHA256_IV[3] | 0;\n this.E = SHA256_IV[4] | 0;\n this.F = SHA256_IV[5] | 0;\n this.G = SHA256_IV[6] | 0;\n this.H = SHA256_IV[7] | 0;\n }\n get() {\n const { A, B, C, D, E, F, G, H } = this;\n return [A, B, C, D, E, F, G, H];\n }\n // prettier-ignore\n set(A, B, C, D, E, F, G, H) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n this.F = F | 0;\n this.G = G | 0;\n this.H = H | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4)\n SHA256_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 64; i++) {\n const W15 = SHA256_W[i - 15];\n const W2 = SHA256_W[i - 2];\n const s0 = rotr(W15, 7) ^ rotr(W15, 18) ^ (W15 >>> 3);\n const s1 = rotr(W2, 17) ^ rotr(W2, 19) ^ (W2 >>> 10);\n SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n }\n // Compression function main loop, 64 rounds\n let { A, B, C, D, E, F, G, H } = this;\n for (let i = 0; i < 64; i++) {\n const sigma1 = rotr(E, 6) ^ rotr(E, 11) ^ rotr(E, 25);\n const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const sigma0 = rotr(A, 2) ^ rotr(A, 13) ^ rotr(A, 22);\n const T2 = (sigma0 + Maj(A, B, C)) | 0;\n H = G;\n G = F;\n F = E;\n E = (D + T1) | 0;\n D = C;\n C = B;\n B = A;\n A = (T1 + T2) | 0;\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n F = (F + this.F) | 0;\n G = (G + this.G) | 0;\n H = (H + this.H) | 0;\n this.set(A, B, C, D, E, F, G, H);\n }\n roundClean() {\n clean(SHA256_W);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n clean(this.buffer);\n }\n}\nexport class SHA224 extends SHA256 {\n constructor() {\n super(28);\n this.A = SHA224_IV[0] | 0;\n this.B = SHA224_IV[1] | 0;\n this.C = SHA224_IV[2] | 0;\n this.D = SHA224_IV[3] | 0;\n this.E = SHA224_IV[4] | 0;\n this.F = SHA224_IV[5] | 0;\n this.G = SHA224_IV[6] | 0;\n this.H = SHA224_IV[7] | 0;\n }\n}\n// SHA2-512 is slower than sha256 in js because u64 operations are slow.\n// Round contants\n// First 32 bits of the fractional parts of the cube roots of the first 80 primes 2..409\n// prettier-ignore\nconst K512 = /* @__PURE__ */ (() => u64.split([\n '0x428a2f98d728ae22', '0x7137449123ef65cd', '0xb5c0fbcfec4d3b2f', '0xe9b5dba58189dbbc',\n '0x3956c25bf348b538', '0x59f111f1b605d019', '0x923f82a4af194f9b', '0xab1c5ed5da6d8118',\n '0xd807aa98a3030242', '0x12835b0145706fbe', '0x243185be4ee4b28c', '0x550c7dc3d5ffb4e2',\n '0x72be5d74f27b896f', '0x80deb1fe3b1696b1', '0x9bdc06a725c71235', '0xc19bf174cf692694',\n '0xe49b69c19ef14ad2', '0xefbe4786384f25e3', '0x0fc19dc68b8cd5b5', '0x240ca1cc77ac9c65',\n '0x2de92c6f592b0275', '0x4a7484aa6ea6e483', '0x5cb0a9dcbd41fbd4', '0x76f988da831153b5',\n '0x983e5152ee66dfab', '0xa831c66d2db43210', '0xb00327c898fb213f', '0xbf597fc7beef0ee4',\n '0xc6e00bf33da88fc2', '0xd5a79147930aa725', '0x06ca6351e003826f', '0x142929670a0e6e70',\n '0x27b70a8546d22ffc', '0x2e1b21385c26c926', '0x4d2c6dfc5ac42aed', '0x53380d139d95b3df',\n '0x650a73548baf63de', '0x766a0abb3c77b2a8', '0x81c2c92e47edaee6', '0x92722c851482353b',\n '0xa2bfe8a14cf10364', '0xa81a664bbc423001', '0xc24b8b70d0f89791', '0xc76c51a30654be30',\n '0xd192e819d6ef5218', '0xd69906245565a910', '0xf40e35855771202a', '0x106aa07032bbd1b8',\n '0x19a4c116b8d2d0c8', '0x1e376c085141ab53', '0x2748774cdf8eeb99', '0x34b0bcb5e19b48a8',\n '0x391c0cb3c5c95a63', '0x4ed8aa4ae3418acb', '0x5b9cca4f7763e373', '0x682e6ff3d6b2b8a3',\n '0x748f82ee5defb2fc', '0x78a5636f43172f60', '0x84c87814a1f0ab72', '0x8cc702081a6439ec',\n '0x90befffa23631e28', '0xa4506cebde82bde9', '0xbef9a3f7b2c67915', '0xc67178f2e372532b',\n '0xca273eceea26619c', '0xd186b8c721c0c207', '0xeada7dd6cde0eb1e', '0xf57d4f7fee6ed178',\n '0x06f067aa72176fba', '0x0a637dc5a2c898a6', '0x113f9804bef90dae', '0x1b710b35131c471b',\n '0x28db77f523047d84', '0x32caab7b40c72493', '0x3c9ebe0a15c9bebc', '0x431d67c49c100d4c',\n '0x4cc5d4becb3e42b6', '0x597f299cfc657e2a', '0x5fcb6fab3ad6faec', '0x6c44198c4a475817'\n].map(n => BigInt(n))))();\nconst SHA512_Kh = /* @__PURE__ */ (() => K512[0])();\nconst SHA512_Kl = /* @__PURE__ */ (() => K512[1])();\n// Reusable temporary buffers\nconst SHA512_W_H = /* @__PURE__ */ new Uint32Array(80);\nconst SHA512_W_L = /* @__PURE__ */ new Uint32Array(80);\nexport class SHA512 extends HashMD {\n constructor(outputLen = 64) {\n super(128, outputLen, 16, false);\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = SHA512_IV[0] | 0;\n this.Al = SHA512_IV[1] | 0;\n this.Bh = SHA512_IV[2] | 0;\n this.Bl = SHA512_IV[3] | 0;\n this.Ch = SHA512_IV[4] | 0;\n this.Cl = SHA512_IV[5] | 0;\n this.Dh = SHA512_IV[6] | 0;\n this.Dl = SHA512_IV[7] | 0;\n this.Eh = SHA512_IV[8] | 0;\n this.El = SHA512_IV[9] | 0;\n this.Fh = SHA512_IV[10] | 0;\n this.Fl = SHA512_IV[11] | 0;\n this.Gh = SHA512_IV[12] | 0;\n this.Gl = SHA512_IV[13] | 0;\n this.Hh = SHA512_IV[14] | 0;\n this.Hl = SHA512_IV[15] | 0;\n }\n // prettier-ignore\n get() {\n const { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n return [Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl];\n }\n // prettier-ignore\n set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl) {\n this.Ah = Ah | 0;\n this.Al = Al | 0;\n this.Bh = Bh | 0;\n this.Bl = Bl | 0;\n this.Ch = Ch | 0;\n this.Cl = Cl | 0;\n this.Dh = Dh | 0;\n this.Dl = Dl | 0;\n this.Eh = Eh | 0;\n this.El = El | 0;\n this.Fh = Fh | 0;\n this.Fl = Fl | 0;\n this.Gh = Gh | 0;\n this.Gl = Gl | 0;\n this.Hh = Hh | 0;\n this.Hl = Hl | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 64 words w[16..79] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4) {\n SHA512_W_H[i] = view.getUint32(offset);\n SHA512_W_L[i] = view.getUint32((offset += 4));\n }\n for (let i = 16; i < 80; i++) {\n // s0 := (w[i-15] rightrotate 1) xor (w[i-15] rightrotate 8) xor (w[i-15] rightshift 7)\n const W15h = SHA512_W_H[i - 15] | 0;\n const W15l = SHA512_W_L[i - 15] | 0;\n const s0h = u64.rotrSH(W15h, W15l, 1) ^ u64.rotrSH(W15h, W15l, 8) ^ u64.shrSH(W15h, W15l, 7);\n const s0l = u64.rotrSL(W15h, W15l, 1) ^ u64.rotrSL(W15h, W15l, 8) ^ u64.shrSL(W15h, W15l, 7);\n // s1 := (w[i-2] rightrotate 19) xor (w[i-2] rightrotate 61) xor (w[i-2] rightshift 6)\n const W2h = SHA512_W_H[i - 2] | 0;\n const W2l = SHA512_W_L[i - 2] | 0;\n const s1h = u64.rotrSH(W2h, W2l, 19) ^ u64.rotrBH(W2h, W2l, 61) ^ u64.shrSH(W2h, W2l, 6);\n const s1l = u64.rotrSL(W2h, W2l, 19) ^ u64.rotrBL(W2h, W2l, 61) ^ u64.shrSL(W2h, W2l, 6);\n // SHA256_W[i] = s0 + s1 + SHA256_W[i - 7] + SHA256_W[i - 16];\n const SUMl = u64.add4L(s0l, s1l, SHA512_W_L[i - 7], SHA512_W_L[i - 16]);\n const SUMh = u64.add4H(SUMl, s0h, s1h, SHA512_W_H[i - 7], SHA512_W_H[i - 16]);\n SHA512_W_H[i] = SUMh | 0;\n SHA512_W_L[i] = SUMl | 0;\n }\n let { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n // Compression function main loop, 80 rounds\n for (let i = 0; i < 80; i++) {\n // S1 := (e rightrotate 14) xor (e rightrotate 18) xor (e rightrotate 41)\n const sigma1h = u64.rotrSH(Eh, El, 14) ^ u64.rotrSH(Eh, El, 18) ^ u64.rotrBH(Eh, El, 41);\n const sigma1l = u64.rotrSL(Eh, El, 14) ^ u64.rotrSL(Eh, El, 18) ^ u64.rotrBL(Eh, El, 41);\n //const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const CHIh = (Eh & Fh) ^ (~Eh & Gh);\n const CHIl = (El & Fl) ^ (~El & Gl);\n // T1 = H + sigma1 + Chi(E, F, G) + SHA512_K[i] + SHA512_W[i]\n // prettier-ignore\n const T1ll = u64.add5L(Hl, sigma1l, CHIl, SHA512_Kl[i], SHA512_W_L[i]);\n const T1h = u64.add5H(T1ll, Hh, sigma1h, CHIh, SHA512_Kh[i], SHA512_W_H[i]);\n const T1l = T1ll | 0;\n // S0 := (a rightrotate 28) xor (a rightrotate 34) xor (a rightrotate 39)\n const sigma0h = u64.rotrSH(Ah, Al, 28) ^ u64.rotrBH(Ah, Al, 34) ^ u64.rotrBH(Ah, Al, 39);\n const sigma0l = u64.rotrSL(Ah, Al, 28) ^ u64.rotrBL(Ah, Al, 34) ^ u64.rotrBL(Ah, Al, 39);\n const MAJh = (Ah & Bh) ^ (Ah & Ch) ^ (Bh & Ch);\n const MAJl = (Al & Bl) ^ (Al & Cl) ^ (Bl & Cl);\n Hh = Gh | 0;\n Hl = Gl | 0;\n Gh = Fh | 0;\n Gl = Fl | 0;\n Fh = Eh | 0;\n Fl = El | 0;\n ({ h: Eh, l: El } = u64.add(Dh | 0, Dl | 0, T1h | 0, T1l | 0));\n Dh = Ch | 0;\n Dl = Cl | 0;\n Ch = Bh | 0;\n Cl = Bl | 0;\n Bh = Ah | 0;\n Bl = Al | 0;\n const All = u64.add3L(T1l, sigma0l, MAJl);\n Ah = u64.add3H(All, T1h, sigma0h, MAJh);\n Al = All | 0;\n }\n // Add the compressed chunk to the current hash value\n ({ h: Ah, l: Al } = u64.add(this.Ah | 0, this.Al | 0, Ah | 0, Al | 0));\n ({ h: Bh, l: Bl } = u64.add(this.Bh | 0, this.Bl | 0, Bh | 0, Bl | 0));\n ({ h: Ch, l: Cl } = u64.add(this.Ch | 0, this.Cl | 0, Ch | 0, Cl | 0));\n ({ h: Dh, l: Dl } = u64.add(this.Dh | 0, this.Dl | 0, Dh | 0, Dl | 0));\n ({ h: Eh, l: El } = u64.add(this.Eh | 0, this.El | 0, Eh | 0, El | 0));\n ({ h: Fh, l: Fl } = u64.add(this.Fh | 0, this.Fl | 0, Fh | 0, Fl | 0));\n ({ h: Gh, l: Gl } = u64.add(this.Gh | 0, this.Gl | 0, Gh | 0, Gl | 0));\n ({ h: Hh, l: Hl } = u64.add(this.Hh | 0, this.Hl | 0, Hh | 0, Hl | 0));\n this.set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl);\n }\n roundClean() {\n clean(SHA512_W_H, SHA512_W_L);\n }\n destroy() {\n clean(this.buffer);\n this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n }\n}\nexport class SHA384 extends SHA512 {\n constructor() {\n super(48);\n this.Ah = SHA384_IV[0] | 0;\n this.Al = SHA384_IV[1] | 0;\n this.Bh = SHA384_IV[2] | 0;\n this.Bl = SHA384_IV[3] | 0;\n this.Ch = SHA384_IV[4] | 0;\n this.Cl = SHA384_IV[5] | 0;\n this.Dh = SHA384_IV[6] | 0;\n this.Dl = SHA384_IV[7] | 0;\n this.Eh = SHA384_IV[8] | 0;\n this.El = SHA384_IV[9] | 0;\n this.Fh = SHA384_IV[10] | 0;\n this.Fl = SHA384_IV[11] | 0;\n this.Gh = SHA384_IV[12] | 0;\n this.Gl = SHA384_IV[13] | 0;\n this.Hh = SHA384_IV[14] | 0;\n this.Hl = SHA384_IV[15] | 0;\n }\n}\n/**\n * Truncated SHA512/256 and SHA512/224.\n * SHA512_IV is XORed with 0xa5a5a5a5a5a5a5a5, then used as \"intermediary\" IV of SHA512/t.\n * Then t hashes string to produce result IV.\n * See `test/misc/sha2-gen-iv.js`.\n */\n/** SHA512/224 IV */\nconst T224_IV = /* @__PURE__ */ Uint32Array.from([\n 0x8c3d37c8, 0x19544da2, 0x73e19966, 0x89dcd4d6, 0x1dfab7ae, 0x32ff9c82, 0x679dd514, 0x582f9fcf,\n 0x0f6d2b69, 0x7bd44da8, 0x77e36f73, 0x04c48942, 0x3f9d85a8, 0x6a1d36c8, 0x1112e6ad, 0x91d692a1,\n]);\n/** SHA512/256 IV */\nconst T256_IV = /* @__PURE__ */ Uint32Array.from([\n 0x22312194, 0xfc2bf72c, 0x9f555fa3, 0xc84c64c2, 0x2393b86b, 0x6f53b151, 0x96387719, 0x5940eabd,\n 0x96283ee2, 0xa88effe3, 0xbe5e1e25, 0x53863992, 0x2b0199fc, 0x2c85b8aa, 0x0eb72ddc, 0x81c52ca2,\n]);\nexport class SHA512_224 extends SHA512 {\n constructor() {\n super(28);\n this.Ah = T224_IV[0] | 0;\n this.Al = T224_IV[1] | 0;\n this.Bh = T224_IV[2] | 0;\n this.Bl = T224_IV[3] | 0;\n this.Ch = T224_IV[4] | 0;\n this.Cl = T224_IV[5] | 0;\n this.Dh = T224_IV[6] | 0;\n this.Dl = T224_IV[7] | 0;\n this.Eh = T224_IV[8] | 0;\n this.El = T224_IV[9] | 0;\n this.Fh = T224_IV[10] | 0;\n this.Fl = T224_IV[11] | 0;\n this.Gh = T224_IV[12] | 0;\n this.Gl = T224_IV[13] | 0;\n this.Hh = T224_IV[14] | 0;\n this.Hl = T224_IV[15] | 0;\n }\n}\nexport class SHA512_256 extends SHA512 {\n constructor() {\n super(32);\n this.Ah = T256_IV[0] | 0;\n this.Al = T256_IV[1] | 0;\n this.Bh = T256_IV[2] | 0;\n this.Bl = T256_IV[3] | 0;\n this.Ch = T256_IV[4] | 0;\n this.Cl = T256_IV[5] | 0;\n this.Dh = T256_IV[6] | 0;\n this.Dl = T256_IV[7] | 0;\n this.Eh = T256_IV[8] | 0;\n this.El = T256_IV[9] | 0;\n this.Fh = T256_IV[10] | 0;\n this.Fl = T256_IV[11] | 0;\n this.Gh = T256_IV[12] | 0;\n this.Gl = T256_IV[13] | 0;\n this.Hh = T256_IV[14] | 0;\n this.Hl = T256_IV[15] | 0;\n }\n}\n/**\n * SHA2-256 hash function from RFC 4634.\n *\n * It is the fastest JS hash, even faster than Blake3.\n * To break sha256 using birthday attack, attackers need to try 2^128 hashes.\n * BTC network is doing 2^70 hashes/sec (2^95 hashes/year) as per 2025.\n */\nexport const sha256 = /* @__PURE__ */ createHasher(() => new SHA256());\n/** SHA2-224 hash function from RFC 4634 */\nexport const sha224 = /* @__PURE__ */ createHasher(() => new SHA224());\n/** SHA2-512 hash function from RFC 4634. */\nexport const sha512 = /* @__PURE__ */ createHasher(() => new SHA512());\n/** SHA2-384 hash function from RFC 4634. */\nexport const sha384 = /* @__PURE__ */ createHasher(() => new SHA384());\n/**\n * SHA2-512/256 \"truncated\" hash function, with improved resistance to length extension attacks.\n * See the paper on [truncated SHA512](https://eprint.iacr.org/2010/548.pdf).\n */\nexport const sha512_256 = /* @__PURE__ */ createHasher(() => new SHA512_256());\n/**\n * SHA2-512/224 \"truncated\" hash function, with improved resistance to length extension attacks.\n * See the paper on [truncated SHA512](https://eprint.iacr.org/2010/548.pdf).\n */\nexport const sha512_224 = /* @__PURE__ */ createHasher(() => new SHA512_224());\n//# sourceMappingURL=sha2.js.map","/**\n * Hex, bytes and number utilities.\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// 100 lines of code in the file are duplicated from noble-hashes (utils).\n// This is OK: `abstract` directory does not use noble-hashes.\n// User may opt-in into using different hashing library. This way, noble-hashes\n// won't be included into their bundle.\nconst _0n = /* @__PURE__ */ BigInt(0);\nconst _1n = /* @__PURE__ */ BigInt(1);\nexport function isBytes(a) {\n return a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array');\n}\nexport function abytes(item) {\n if (!isBytes(item))\n throw new Error('Uint8Array expected');\n}\nexport function abool(title, value) {\n if (typeof value !== 'boolean')\n throw new Error(title + ' boolean expected, got ' + value);\n}\n// Used in weierstrass, der\nexport function numberToHexUnpadded(num) {\n const hex = num.toString(16);\n return hex.length & 1 ? '0' + hex : hex;\n}\nexport function hexToNumber(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n return hex === '' ? _0n : BigInt('0x' + hex); // Big Endian\n}\n// Built-in hex conversion https://caniuse.com/mdn-javascript_builtins_uint8array_fromhex\nconst hasHexBuiltin = \n// @ts-ignore\ntypeof Uint8Array.from([]).toHex === 'function' && typeof Uint8Array.fromHex === 'function';\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. Uses built-in function, when available.\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes) {\n abytes(bytes);\n // @ts-ignore\n if (hasHexBuiltin)\n return bytes.toHex();\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. Uses built-in function, when available.\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nexport function hexToBytes(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n // @ts-ignore\n if (hasHexBuiltin)\n return Uint8Array.fromHex(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// BE: Big Endian, LE: Little Endian\nexport function bytesToNumberBE(bytes) {\n return hexToNumber(bytesToHex(bytes));\n}\nexport function bytesToNumberLE(bytes) {\n abytes(bytes);\n return hexToNumber(bytesToHex(Uint8Array.from(bytes).reverse()));\n}\nexport function numberToBytesBE(n, len) {\n return hexToBytes(n.toString(16).padStart(len * 2, '0'));\n}\nexport function numberToBytesLE(n, len) {\n return numberToBytesBE(n, len).reverse();\n}\n// Unpadded, rarely used\nexport function numberToVarBytesBE(n) {\n return hexToBytes(numberToHexUnpadded(n));\n}\n/**\n * Takes hex string or Uint8Array, converts to Uint8Array.\n * Validates output length.\n * Will throw error for other types.\n * @param title descriptive title for an error e.g. 'private key'\n * @param hex hex string or Uint8Array\n * @param expectedLength optional, will compare to result array's length\n * @returns\n */\nexport function ensureBytes(title, hex, expectedLength) {\n let res;\n if (typeof hex === 'string') {\n try {\n res = hexToBytes(hex);\n }\n catch (e) {\n throw new Error(title + ' must be hex string or Uint8Array, cause: ' + e);\n }\n }\n else if (isBytes(hex)) {\n // Uint8Array.from() instead of hash.slice() because node.js Buffer\n // is instance of Uint8Array, and its slice() creates **mutable** copy\n res = Uint8Array.from(hex);\n }\n else {\n throw new Error(title + ' must be hex string or Uint8Array');\n }\n const len = res.length;\n if (typeof expectedLength === 'number' && len !== expectedLength)\n throw new Error(title + ' of length ' + expectedLength + ' expected, got ' + len);\n return res;\n}\n/**\n * Copies several Uint8Arrays into one.\n */\nexport function concatBytes(...arrays) {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n 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// Compares 2 u8a-s in kinda constant time\nexport function equalBytes(a, b) {\n if (a.length !== b.length)\n return false;\n let diff = 0;\n for (let i = 0; i < a.length; i++)\n diff |= a[i] ^ b[i];\n return diff === 0;\n}\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nexport function utf8ToBytes(str) {\n if (typeof str !== 'string')\n throw new Error('string expected');\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n// Is positive bigint\nconst isPosBig = (n) => typeof n === 'bigint' && _0n <= n;\nexport function inRange(n, min, max) {\n return isPosBig(n) && isPosBig(min) && isPosBig(max) && min <= n && n < max;\n}\n/**\n * Asserts min <= n < max. NOTE: It's < max and not <= max.\n * @example\n * aInRange('x', x, 1n, 256n); // would assume x is in (1n..255n)\n */\nexport function aInRange(title, n, min, max) {\n // Why min <= n < max and not a (min < n < max) OR b (min <= n <= max)?\n // consider P=256n, min=0n, max=P\n // - a for min=0 would require -1: `inRange('x', x, -1n, P)`\n // - b would commonly require subtraction: `inRange('x', x, 0n, P - 1n)`\n // - our way is the cleanest: `inRange('x', x, 0n, P)\n if (!inRange(n, min, max))\n throw new Error('expected valid ' + title + ': ' + min + ' <= n < ' + max + ', got ' + n);\n}\n// Bit operations\n/**\n * Calculates amount of bits in a bigint.\n * Same as `n.toString(2).length`\n * TODO: merge with nLength in modular\n */\nexport function bitLen(n) {\n let len;\n for (len = 0; n > _0n; n >>= _1n, len += 1)\n ;\n return len;\n}\n/**\n * Gets single bit at position.\n * NOTE: first bit position is 0 (same as arrays)\n * Same as `!!+Array.from(n.toString(2)).reverse()[pos]`\n */\nexport function bitGet(n, pos) {\n return (n >> BigInt(pos)) & _1n;\n}\n/**\n * Sets single bit at position.\n */\nexport function bitSet(n, pos, value) {\n return n | ((value ? _1n : _0n) << BigInt(pos));\n}\n/**\n * Calculate mask for N bits. Not using ** operator with bigints because of old engines.\n * Same as BigInt(`0b${Array(i).fill('1').join('')}`)\n */\nexport const bitMask = (n) => (_1n << BigInt(n)) - _1n;\n// DRBG\nconst u8n = (len) => new Uint8Array(len); // creates Uint8Array\nconst u8fr = (arr) => Uint8Array.from(arr); // another shortcut\n/**\n * Minimal HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n * @returns function that will call DRBG until 2nd arg returns something meaningful\n * @example\n * const drbg = createHmacDRBG<Key>(32, 32, hmac);\n * drbg(seed, bytesToKey); // bytesToKey must return Key or undefined\n */\nexport function createHmacDrbg(hashLen, qByteLen, hmacFn) {\n if (typeof hashLen !== 'number' || hashLen < 2)\n throw new Error('hashLen must be a number');\n if (typeof qByteLen !== 'number' || qByteLen < 2)\n throw new Error('qByteLen must be a number');\n if (typeof hmacFn !== 'function')\n throw new Error('hmacFn must be a function');\n // Step B, Step C: set hashLen to 8*ceil(hlen/8)\n let v = u8n(hashLen); // Minimal non-full-spec HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n let k = u8n(hashLen); // Steps B and C of RFC6979 3.2: set hashLen, in our case always same\n let i = 0; // Iterations counter, will throw when over 1000\n const reset = () => {\n v.fill(1);\n k.fill(0);\n i = 0;\n };\n const h = (...b) => hmacFn(k, v, ...b); // hmac(k)(v, ...values)\n const reseed = (seed = u8n(0)) => {\n // HMAC-DRBG reseed() function. Steps D-G\n k = h(u8fr([0x00]), seed); // k = hmac(k || v || 0x00 || seed)\n v = h(); // v = hmac(k || v)\n if (seed.length === 0)\n return;\n k = h(u8fr([0x01]), seed); // k = hmac(k || v || 0x01 || seed)\n v = h(); // v = hmac(k || v)\n };\n const gen = () => {\n // HMAC-DRBG generate() function\n if (i++ >= 1000)\n throw new Error('drbg: tried 1000 values');\n let len = 0;\n const out = [];\n while (len < qByteLen) {\n v = h();\n const sl = v.slice();\n out.push(sl);\n len += v.length;\n }\n return concatBytes(...out);\n };\n const genUntil = (seed, pred) => {\n reset();\n reseed(seed); // Steps D-G\n let res = undefined; // Step H: grind until k is in [1..n-1]\n while (!(res = pred(gen())))\n reseed();\n reset();\n return res;\n };\n return genUntil;\n}\n// Validating curves and fields\nconst validatorFns = {\n bigint: (val) => typeof val === 'bigint',\n function: (val) => typeof val === 'function',\n boolean: (val) => typeof val === 'boolean',\n string: (val) => typeof val === 'string',\n stringOrUint8Array: (val) => typeof val === 'string' || isBytes(val),\n isSafeInteger: (val) => Number.isSafeInteger(val),\n array: (val) => Array.isArray(val),\n field: (val, object) => object.Fp.isValid(val),\n hash: (val) => typeof val === 'function' && Number.isSafeInteger(val.outputLen),\n};\n// type Record<K extends string | number | symbol, T> = { [P in K]: T; }\nexport function validateObject(object, validators, optValidators = {}) {\n const checkField = (fieldName, type, isOptional) => {\n const checkVal = validatorFns[type];\n if (typeof checkVal !== 'function')\n throw new Error('invalid validator function');\n const val = object[fieldName];\n if (isOptional && val === undefined)\n return;\n if (!checkVal(val, object)) {\n throw new Error('param ' + String(fieldName) + ' is invalid. Expected ' + type + ', got ' + val);\n }\n };\n for (const [fieldName, type] of Object.entries(validators))\n checkField(fieldName, type, false);\n for (const [fieldName, type] of Object.entries(optValidators))\n checkField(fieldName, type, true);\n return object;\n}\n// validate type tests\n// const o: { a: number; b: number; c: number } = { a: 1, b: 5, c: 6 };\n// const z0 = validateObject(o, { a: 'isSafeInteger' }, { c: 'bigint' }); // Ok!\n// // Should fail type-check\n// const z1 = validateObject(o, { a: 'tmp' }, { c: 'zz' });\n// const z2 = validateObject(o, { a: 'isSafeInteger' }, { c: 'zz' });\n// const z3 = validateObject(o, { test: 'boolean', z: 'bug' });\n// const z4 = validateObject(o, { a: 'boolean', z: 'bug' });\n/**\n * throws not implemented error\n */\nexport const notImplemented = () => {\n throw new Error('not implemented');\n};\n/**\n * Memoizes (caches) computation result.\n * Uses WeakMap: the value is going auto-cleaned by GC after last reference is removed.\n */\nexport function memoized(fn) {\n const map = new WeakMap();\n return (arg, ...args) => {\n const val = map.get(arg);\n if (val !== undefined)\n return val;\n const computed = fn(arg, ...args);\n map.set(arg, computed);\n return computed;\n };\n}\n//# sourceMappingURL=utils.js.map","import * as Bytes from '../Bytes.js';\n/** @internal */\nexport function assertSize(bytes, size_) {\n if (Bytes.size(bytes) > size_)\n throw new Bytes.SizeOverflowError({\n givenSize: Bytes.size(bytes),\n maxSize: size_,\n });\n}\n/** @internal */\nexport function assertStartOffset(value, start) {\n if (typeof start === 'number' && start > 0 && start > Bytes.size(value) - 1)\n throw new Bytes.SliceOffsetOutOfBoundsError({\n offset: start,\n position: 'start',\n size: Bytes.size(value),\n });\n}\n/** @internal */\nexport function assertEndOffset(value, start, end) {\n if (typeof start === 'number' &&\n typeof end === 'number' &&\n Bytes.size(value) !== end - start) {\n throw new Bytes.SliceOffsetOutOfBoundsError({\n offset: end,\n position: 'end',\n size: Bytes.size(value),\n });\n }\n}\n/** @internal */\nexport const charCodeMap = {\n zero: 48,\n nine: 57,\n A: 65,\n F: 70,\n a: 97,\n f: 102,\n};\n/** @internal */\nexport function charCodeToBase16(char) {\n if (char >= charCodeMap.zero && char <= charCodeMap.nine)\n return char - charCodeMap.zero;\n if (char >= charCodeMap.A && char <= charCodeMap.F)\n return char - (charCodeMap.A - 10);\n if (char >= charCodeMap.a && char <= charCodeMap.f)\n return char - (charCodeMap.a - 10);\n return undefined;\n}\n/** @internal */\nexport function pad(bytes, options = {}) {\n const { dir, size = 32 } = options;\n if (size === 0)\n return bytes;\n if (bytes.length > size)\n throw new Bytes.SizeExceedsPaddingSizeError({\n size: bytes.length,\n targetSize: size,\n type: 'Bytes',\n });\n const paddedBytes = new Uint8Array(size);\n for (let i = 0; i < size; i++) {\n const padEnd = dir === 'right';\n paddedBytes[padEnd ? i : size - i - 1] =\n bytes[padEnd ? i : bytes.length - i - 1];\n }\n return paddedBytes;\n}\n/** @internal */\nexport function trim(value, options = {}) {\n const { dir = 'left' } = options;\n let data = value;\n let sliceLength = 0;\n for (let i = 0; i < data.length - 1; i++) {\n if (data[dir === 'left' ? i : data.length - i - 1].toString() === '0')\n sliceLength++;\n else\n break;\n }\n data =\n dir === 'left'\n ? data.slice(sliceLength)\n : data.slice(0, data.length - sliceLength);\n return data;\n}\n//# sourceMappingURL=bytes.js.map","import * as Hex from '../Hex.js';\n/** @internal */\nexport function assertSize(hex, size_) {\n if (Hex.size(hex) > size_)\n throw new Hex.SizeOverflowError({\n givenSize: Hex.size(hex),\n maxSize: size_,\n });\n}\n/** @internal */\nexport function assertStartOffset(value, start) {\n if (typeof start === 'number' && start > 0 && start > Hex.size(value) - 1)\n throw new Hex.SliceOffsetOutOfBoundsError({\n offset: start,\n position: 'start',\n size: Hex.size(value),\n });\n}\n/** @internal */\nexport function assertEndOffset(value, start, end) {\n if (typeof start === 'number' &&\n typeof end === 'number' &&\n Hex.size(value) !== end - start) {\n throw new Hex.SliceOffsetOutOfBoundsError({\n offset: end,\n position: 'end',\n size: Hex.size(value),\n });\n }\n}\n/** @internal */\nexport function pad(hex_, options = {}) {\n const { dir, size = 32 } = options;\n if (size === 0)\n return hex_;\n const hex = hex_.replace('0x', '');\n if (hex.length > size * 2)\n throw new Hex.SizeExceedsPaddingSizeError({\n size: Math.ceil(hex.length / 2),\n targetSize: size,\n type: 'Hex',\n });\n return `0x${hex[dir === 'right' ? 'padEnd' : 'padStart'](size * 2, '0')}`;\n}\n/** @internal */\nexport function trim(value, options = {}) {\n const { dir = 'left' } = options;\n let data = value.replace('0x', '');\n let sliceLength = 0;\n for (let i = 0; i < data.length - 1; i++) {\n if (data[dir === 'left' ? i : data.length - i - 1].toString() === '0')\n sliceLength++;\n else\n break;\n }\n data =\n dir === 'left'\n ? data.slice(sliceLength)\n : data.slice(0, data.length - sliceLength);\n if (data === '0')\n return '0x';\n if (dir === 'right' && data.length % 2 === 1)\n return `0x${data}0`;\n return `0x${data}`;\n}\n//# sourceMappingURL=hex.js.map","const bigIntSuffix = '#__bigint';\n/**\n * Parses a JSON string, with support for `bigint`.\n *\n * @example\n * ```ts twoslash\n * import { Json } from 'ox'\n *\n * const json = Json.parse('{\"foo\":\"bar\",\"baz\":\"69420694206942069420694206942069420694206942069420#__bigint\"}')\n * // @log: {\n * // @log: foo: 'bar',\n * // @log: baz: 69420694206942069420694206942069420694206942069420n\n * // @log: }\n * ```\n *\n * @param string - The value to parse.\n * @param reviver - A function that transforms the results.\n * @returns The parsed value.\n */\nexport function parse(string, reviver) {\n return JSON.parse(string, (key, value_) => {\n const value = value_;\n if (typeof value === 'string' && value.endsWith(bigIntSuffix))\n return BigInt(value.slice(0, -bigIntSuffix.length));\n return typeof reviver === 'function' ? reviver(key, value) : value;\n });\n}\n/**\n * Stringifies a value to its JSON representation, with support for `bigint`.\n *\n * @example\n * ```ts twoslash\n * import { Json } from 'ox'\n *\n * const json = Json.stringify({\n * foo: 'bar',\n * baz: 69420694206942069420694206942069420694206942069420n,\n * })\n * // @log: '{\"foo\":\"bar\",\"baz\":\"69420694206942069420694206942069420694206942069420#__bigint\"}'\n * ```\n *\n * @param value - The value to stringify.\n * @param replacer - A function that transforms the results. It is passed the key and value of the property, and must return the value to be used in the JSON string. If this function returns `undefined`, the property is not included in the resulting JSON string.\n * @param space - A string or number that determines the indentation of the JSON string. If it is a number, it indicates the number of spaces to use as indentation; if it is a string (e.g. `'\\t'`), it uses the string as the indentation character.\n * @returns The JSON string.\n */\nexport function stringify(value, replacer, space) {\n return JSON.stringify(value, (key, value) => {\n if (typeof replacer === 'function')\n return replacer(key, value);\n if (typeof value === 'bigint')\n return value.toString() + bigIntSuffix;\n return value;\n }, space);\n}\n//# sourceMappingURL=Json.js.map","import { equalBytes } from '@noble/curves/abstract/utils';\nimport * as Bytes from './Bytes.js';\nimport * as Errors from './Errors.js';\nimport * as internal_bytes from './internal/bytes.js';\nimport * as internal from './internal/hex.js';\nimport * as Json from './Json.js';\nconst encoder = /*#__PURE__*/ new TextEncoder();\nconst hexes = /*#__PURE__*/ Array.from({ length: 256 }, (_v, i) => i.toString(16).padStart(2, '0'));\n/**\n * Asserts if the given value is {@link ox#Hex.Hex}.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.assert('abc')\n * // @error: InvalidHexValueTypeError:\n * // @error: Value `\"abc\"` of type `string` is an invalid hex type.\n * // @error: Hex types must be represented as `\"0x\\${string}\"`.\n * ```\n *\n * @param value - The value to assert.\n * @param options - Options.\n */\nexport function assert(value, options = {}) {\n const { strict = false } = options;\n if (!value)\n throw new InvalidHexTypeError(value);\n if (typeof value !== 'string')\n throw new InvalidHexTypeError(value);\n if (strict) {\n if (!/^0x[0-9a-fA-F]*$/.test(value))\n throw new InvalidHexValueError(value);\n }\n if (!value.startsWith('0x'))\n throw new InvalidHexValueError(value);\n}\n/**\n * Concatenates two or more {@link ox#Hex.Hex}.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.concat('0x123', '0x456')\n * // @log: '0x123456'\n * ```\n *\n * @param values - The {@link ox#Hex.Hex} values to concatenate.\n * @returns The concatenated {@link ox#Hex.Hex} value.\n */\nexport function concat(...values) {\n return `0x${values.reduce((acc, x) => acc + x.replace('0x', ''), '')}`;\n}\n/**\n * Instantiates a {@link ox#Hex.Hex} value from a hex string or {@link ox#Bytes.Bytes} value.\n *\n * :::tip\n *\n * To instantiate from a **Boolean**, **String**, or **Number**, use one of the following:\n *\n * - `Hex.fromBoolean`\n *\n * - `Hex.fromString`\n *\n * - `Hex.fromNumber`\n *\n * :::\n *\n * @example\n * ```ts twoslash\n * import { Bytes, Hex } from 'ox'\n *\n * Hex.from('0x48656c6c6f20576f726c6421')\n * // @log: '0x48656c6c6f20576f726c6421'\n *\n * Hex.from(Bytes.from([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]))\n * // @log: '0x48656c6c6f20576f726c6421'\n * ```\n *\n * @param value - The {@link ox#Bytes.Bytes} value to encode.\n * @returns The encoded {@link ox#Hex.Hex} value.\n */\nexport function from(value) {\n if (value instanceof Uint8Array)\n return fromBytes(value);\n if (Array.isArray(value))\n return fromBytes(new Uint8Array(value));\n return value;\n}\n/**\n * Encodes a boolean into a {@link ox#Hex.Hex} value.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.fromBoolean(true)\n * // @log: '0x1'\n *\n * Hex.fromBoolean(false)\n * // @log: '0x0'\n *\n * Hex.fromBoolean(true, { size: 32 })\n * // @log: '0x0000000000000000000000000000000000000000000000000000000000000001'\n * ```\n *\n * @param value - The boolean value to encode.\n * @param options - Options.\n * @returns The encoded {@link ox#Hex.Hex} value.\n */\nexport function fromBoolean(value, options = {}) {\n const hex = `0x${Number(value)}`;\n if (typeof options.size === 'number') {\n internal.assertSize(hex, options.size);\n return padLeft(hex, options.size);\n }\n return hex;\n}\n/**\n * Encodes a {@link ox#Bytes.Bytes} value into a {@link ox#Hex.Hex} value.\n *\n * @example\n * ```ts twoslash\n * import { Bytes, Hex } from 'ox'\n *\n * Hex.fromBytes(Bytes.from([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]))\n * // @log: '0x48656c6c6f20576f726c6421'\n * ```\n *\n * @param value - The {@link ox#Bytes.Bytes} value to encode.\n * @param options - Options.\n * @returns The encoded {@link ox#Hex.Hex} value.\n */\nexport function fromBytes(value, options = {}) {\n let string = '';\n for (let i = 0; i < value.length; i++)\n string += hexes[value[i]];\n const hex = `0x${string}`;\n if (typeof options.size === 'number') {\n internal.assertSize(hex, options.size);\n return padRight(hex, options.size);\n }\n return hex;\n}\n/**\n * Encodes a number or bigint into a {@link ox#Hex.Hex} value.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.fromNumber(420)\n * // @log: '0x1a4'\n *\n * Hex.fromNumber(420, { size: 32 })\n * // @log: '0x00000000000000000000000000000000000000000000000000000000000001a4'\n * ```\n *\n * @param value - The number or bigint value to encode.\n * @param options - Options.\n * @returns The encoded {@link ox#Hex.Hex} value.\n */\nexport function fromNumber(value, options = {}) {\n const { signed, size } = options;\n const value_ = BigInt(value);\n let maxValue;\n if (size) {\n if (signed)\n maxValue = (1n << (BigInt(size) * 8n - 1n)) - 1n;\n else\n maxValue = 2n ** (BigInt(size) * 8n) - 1n;\n }\n else if (typeof value === 'number') {\n maxValue = BigInt(Number.MAX_SAFE_INTEGER);\n }\n const minValue = typeof maxValue === 'bigint' && signed ? -maxValue - 1n : 0;\n if ((maxValue && value_ > maxValue) || value_ < minValue) {\n const suffix = typeof value === 'bigint' ? 'n' : '';\n throw new IntegerOutOfRangeError({\n max: maxValue ? `${maxValue}${suffix}` : undefined,\n min: `${minValue}${suffix}`,\n signed,\n size,\n value: `${value}${suffix}`,\n });\n }\n const stringValue = (signed && value_ < 0 ? (1n << BigInt(size * 8)) + BigInt(value_) : value_).toString(16);\n const hex = `0x${stringValue}`;\n if (size)\n return padLeft(hex, size);\n return hex;\n}\n/**\n * Encodes a string into a {@link ox#Hex.Hex} value.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n * Hex.fromString('Hello World!')\n * // '0x48656c6c6f20576f726c6421'\n *\n * Hex.fromString('Hello World!', { size: 32 })\n * // '0x48656c6c6f20576f726c64210000000000000000000000000000000000000000'\n * ```\n *\n * @param value - The string value to encode.\n * @param options - Options.\n * @returns The encoded {@link ox#Hex.Hex} value.\n */\nexport function fromString(value, options = {}) {\n return fromBytes(encoder.encode(value), options);\n}\n/**\n * Checks if two {@link ox#Hex.Hex} values are equal.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.isEqual('0xdeadbeef', '0xdeadbeef')\n * // @log: true\n *\n * Hex.isEqual('0xda', '0xba')\n * // @log: false\n * ```\n *\n * @param hexA - The first {@link ox#Hex.Hex} value.\n * @param hexB - The second {@link ox#Hex.Hex} value.\n * @returns `true` if the two {@link ox#Hex.Hex} values are equal, `false` otherwise.\n */\nexport function isEqual(hexA, hexB) {\n return equalBytes(Bytes.fromHex(hexA), Bytes.fromHex(hexB));\n}\n/**\n * Pads a {@link ox#Hex.Hex} value to the left with zero bytes until it reaches the given `size` (default: 32 bytes).\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.padLeft('0x1234', 4)\n * // @log: '0x00001234'\n * ```\n *\n * @param value - The {@link ox#Hex.Hex} value to pad.\n * @param size - The size (in bytes) of the output hex value.\n * @returns The padded {@link ox#Hex.Hex} value.\n */\nexport function padLeft(value, size) {\n return internal.pad(value, { dir: 'left', size });\n}\n/**\n * Pads a {@link ox#Hex.Hex} value to the right with zero bytes until it reaches the given `size` (default: 32 bytes).\n *\n * @example\n * ```ts\n * import { Hex } from 'ox'\n *\n * Hex.padRight('0x1234', 4)\n * // @log: '0x12340000'\n * ```\n *\n * @param value - The {@link ox#Hex.Hex} value to pad.\n * @param size - The size (in bytes) of the output hex value.\n * @returns The padded {@link ox#Hex.Hex} value.\n */\nexport function padRight(value, size) {\n return internal.pad(value, { dir: 'right', size });\n}\n/**\n * Generates a random {@link ox#Hex.Hex} value of the specified length.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * const hex = Hex.random(32)\n * // @log: '0x...'\n * ```\n *\n * @returns Random {@link ox#Hex.Hex} value.\n */\nexport function random(length) {\n return fromBytes(Bytes.random(length));\n}\n/**\n * Returns a section of a {@link ox#Bytes.Bytes} value given a start/end bytes offset.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.slice('0x0123456789', 1, 4)\n * // @log: '0x234567'\n * ```\n *\n * @param value - The {@link ox#Hex.Hex} value to slice.\n * @param start - The start offset (in bytes).\n * @param end - The end offset (in bytes).\n * @param options - Options.\n * @returns The sliced {@link ox#Hex.Hex} value.\n */\nexport function slice(value, start, end, options = {}) {\n const { strict } = options;\n internal.assertStartOffset(value, start);\n const value_ = `0x${value\n .replace('0x', '')\n .slice((start ?? 0) * 2, (end ?? value.length) * 2)}`;\n if (strict)\n internal.assertEndOffset(value_, start, end);\n return value_;\n}\n/**\n * Retrieves the size of a {@link ox#Hex.Hex} value (in bytes).\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.size('0xdeadbeef')\n * // @log: 4\n * ```\n *\n * @param value - The {@link ox#Hex.Hex} value to get the size of.\n * @returns The size of the {@link ox#Hex.Hex} value (in bytes).\n */\nexport function size(value) {\n return Math.ceil((value.length - 2) / 2);\n}\n/**\n * Trims leading zeros from a {@link ox#Hex.Hex} value.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.trimLeft('0x00000000deadbeef')\n * // @log: '0xdeadbeef'\n * ```\n *\n * @param value - The {@link ox#Hex.Hex} value to trim.\n * @returns The trimmed {@link ox#Hex.Hex} value.\n */\nexport function trimLeft(value) {\n return internal.trim(value, { dir: 'left' });\n}\n/**\n * Trims trailing zeros from a {@link ox#Hex.Hex} value.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.trimRight('0xdeadbeef00000000')\n * // @log: '0xdeadbeef'\n * ```\n *\n * @param value - The {@link ox#Hex.Hex} value to trim.\n * @returns The trimmed {@link ox#Hex.Hex} value.\n */\nexport function trimRight(value) {\n return internal.trim(value, { dir: 'right' });\n}\n/**\n * Decodes a {@link ox#Hex.Hex} value into a BigInt.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.toBigInt('0x1a4')\n * // @log: 420n\n *\n * Hex.toBigInt('0x00000000000000000000000000000000000000000000000000000000000001a4', { size: 32 })\n * // @log: 420n\n * ```\n *\n * @param hex - The {@link ox#Hex.Hex} value to decode.\n * @param options - Options.\n * @returns The decoded BigInt.\n */\nexport function toBigInt(hex, options = {}) {\n const { signed } = options;\n if (options.size)\n internal.assertSize(hex, options.size);\n const value = BigInt(hex);\n if (!signed)\n return value;\n const size = (hex.length - 2) / 2;\n const max_unsigned = (1n << (BigInt(size) * 8n)) - 1n;\n const max_signed = max_unsigned >> 1n;\n if (value <= max_signed)\n return value;\n return value - max_unsigned - 1n;\n}\n/**\n * Decodes a {@link ox#Hex.Hex} value into a boolean.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.toBoolean('0x01')\n * // @log: true\n *\n * Hex.toBoolean('0x0000000000000000000000000000000000000000000000000000000000000001', { size: 32 })\n * // @log: true\n * ```\n *\n * @param hex - The {@link ox#Hex.Hex} value to decode.\n * @param options - Options.\n * @returns The decoded boolean.\n */\nexport function toBoolean(hex, options = {}) {\n if (options.size)\n internal.assertSize(hex, options.size);\n const hex_ = trimLeft(hex);\n if (hex_ === '0x')\n return false;\n if (hex_ === '0x1')\n return true;\n throw new InvalidHexBooleanError(hex);\n}\n/**\n * Decodes a {@link ox#Hex.Hex} value into a {@link ox#Bytes.Bytes}.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * const data = Hex.toBytes('0x48656c6c6f20776f726c6421')\n * // @log: Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\n * ```\n *\n * @param hex - The {@link ox#Hex.Hex} value to decode.\n * @param options - Options.\n * @returns The decoded {@link ox#Bytes.Bytes}.\n */\nexport function toBytes(hex, options = {}) {\n return Bytes.fromHex(hex, options);\n}\n/**\n * Decodes a {@link ox#Hex.Hex} value into a number.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.toNumber('0x1a4')\n * // @log: 420\n *\n * Hex.toNumber('0x00000000000000000000000000000000000000000000000000000000000001a4', { size: 32 })\n * // @log: 420\n * ```\n *\n * @param hex - The {@link ox#Hex.Hex} value to decode.\n * @param options - Options.\n * @returns The decoded number.\n */\nexport function toNumber(hex, options = {}) {\n const { signed, size } = options;\n if (!signed && !size)\n return Number(hex);\n return Number(toBigInt(hex, options));\n}\n/**\n * Decodes a {@link ox#Hex.Hex} value into a string.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.toString('0x48656c6c6f20576f726c6421')\n * // @log: 'Hello world!'\n *\n * Hex.toString('0x48656c6c6f20576f726c64210000000000000000000000000000000000000000', {\n * size: 32,\n * })\n * // @log: 'Hello world'\n * ```\n *\n * @param hex - The {@link ox#Hex.Hex} value to decode.\n * @param options - Options.\n * @returns The decoded string.\n */\nexport function toString(hex, options = {}) {\n const { size } = options;\n let bytes = Bytes.fromHex(hex);\n if (size) {\n internal_bytes.assertSize(bytes, size);\n bytes = Bytes.trimRight(bytes);\n }\n return new TextDecoder().decode(bytes);\n}\n/**\n * Checks if the given value is {@link ox#Hex.Hex}.\n *\n * @example\n * ```ts twoslash\n * import { Bytes, Hex } from 'ox'\n *\n * Hex.validate('0xdeadbeef')\n * // @log: true\n *\n * Hex.validate(Bytes.from([1, 2, 3]))\n * // @log: false\n * ```\n *\n * @param value - The value to check.\n * @param options - Options.\n * @returns `true` if the value is a {@link ox#Hex.Hex}, `false` otherwise.\n */\nexport function validate(value, options = {}) {\n const { strict = false } = options;\n try {\n assert(value, { strict });\n return true;\n }\n catch {\n return false;\n }\n}\n/**\n * Thrown when the provided integer is out of range, and cannot be represented as a hex value.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.fromNumber(420182738912731283712937129)\n * // @error: Hex.IntegerOutOfRangeError: Number \\`4.2018273891273126e+26\\` is not in safe unsigned integer range (`0` to `9007199254740991`)\n * ```\n */\nexport class IntegerOutOfRangeError extends Errors.BaseError {\n constructor({ max, min, signed, size, value, }) {\n super(`Number \\`${value}\\` is not in safe${size ? ` ${size * 8}-bit` : ''}${signed ? ' signed' : ' unsigned'} integer range ${max ? `(\\`${min}\\` to \\`${max}\\`)` : `(above \\`${min}\\`)`}`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Hex.IntegerOutOfRangeError'\n });\n }\n}\n/**\n * Thrown when the provided hex value cannot be represented as a boolean.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.toBoolean('0xa')\n * // @error: Hex.InvalidHexBooleanError: Hex value `\"0xa\"` is not a valid boolean.\n * // @error: The hex value must be `\"0x0\"` (false) or `\"0x1\"` (true).\n * ```\n */\nexport class InvalidHexBooleanError extends Errors.BaseError {\n constructor(hex) {\n super(`Hex value \\`\"${hex}\"\\` is not a valid boolean.`, {\n metaMessages: [\n 'The hex value must be `\"0x0\"` (false) or `\"0x1\"` (true).',\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Hex.InvalidHexBooleanError'\n });\n }\n}\n/**\n * Thrown when the provided value is not a valid hex type.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.assert(1)\n * // @error: Hex.InvalidHexTypeError: Value `1` of type `number` is an invalid hex type.\n * ```\n */\nexport class InvalidHexTypeError extends Errors.BaseError {\n constructor(value) {\n super(`Value \\`${typeof value === 'object' ? Json.stringify(value) : value}\\` of type \\`${typeof value}\\` is an invalid hex type.`, {\n metaMessages: ['Hex types must be represented as `\"0x${string}\"`.'],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Hex.InvalidHexTypeError'\n });\n }\n}\n/**\n * Thrown when the provided hex value is invalid.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.assert('0x0123456789abcdefg')\n * // @error: Hex.InvalidHexValueError: Value `0x0123456789abcdefg` is an invalid hex value.\n * // @error: Hex values must start with `\"0x\"` and contain only hexadecimal characters (0-9, a-f, A-F).\n * ```\n */\nexport class InvalidHexValueError extends Errors.BaseError {\n constructor(value) {\n super(`Value \\`${value}\\` is an invalid hex value.`, {\n metaMessages: [\n 'Hex values must start with `\"0x\"` and contain only hexadecimal characters (0-9, a-f, A-F).',\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Hex.InvalidHexValueError'\n });\n }\n}\n/**\n * Thrown when the provided hex value is an odd length.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.fromHex('0xabcde')\n * // @error: Hex.InvalidLengthError: Hex value `\"0xabcde\"` is an odd length (5 nibbles).\n * ```\n */\nexport class InvalidLengthError extends Errors.BaseError {\n constructor(value) {\n super(`Hex value \\`\"${value}\"\\` is an odd length (${value.length - 2} nibbles).`, {\n metaMessages: ['It must be an even length.'],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Hex.InvalidLengthError'\n });\n }\n}\n/**\n * Thrown when the size of the value exceeds the expected max size.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.fromString('Hello World!', { size: 8 })\n * // @error: Hex.SizeOverflowError: Size cannot exceed `8` bytes. Given size: `12` bytes.\n * ```\n */\nexport class SizeOverflowError extends Errors.BaseError {\n constructor({ givenSize, maxSize }) {\n super(`Size cannot exceed \\`${maxSize}\\` bytes. Given size: \\`${givenSize}\\` bytes.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Hex.SizeOverflowError'\n });\n }\n}\n/**\n * Thrown when the slice offset exceeds the bounds of the value.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.slice('0x0123456789', 6)\n * // @error: Hex.SliceOffsetOutOfBoundsError: Slice starting at offset `6` is out-of-bounds (size: `5`).\n * ```\n */\nexport class SliceOffsetOutOfBoundsError extends Errors.BaseError {\n constructor({ offset, position, size, }) {\n super(`Slice ${position === 'start' ? 'starting' : 'ending'} at offset \\`${offset}\\` is out-of-bounds (size: \\`${size}\\`).`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Hex.SliceOffsetOutOfBoundsError'\n });\n }\n}\n/**\n * Thrown when the size of the value exceeds the pad size.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.padLeft('0x1a4e12a45a21323123aaa87a897a897a898a6567a578a867a98778a667a85a875a87a6a787a65a675a6a9', 32)\n * // @error: Hex.SizeExceedsPaddingSizeError: Hex size (`43`) exceeds padding size (`32`).\n * ```\n */\nexport class SizeExceedsPaddingSizeError extends Errors.BaseError {\n constructor({ size, targetSize, type, }) {\n super(`${type.charAt(0).toUpperCase()}${type\n .slice(1)\n .toLowerCase()} size (\\`${size}\\`) exceeds padding size (\\`${targetSize}\\`).`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Hex.SizeExceedsPaddingSizeError'\n });\n }\n}\n//# sourceMappingURL=Hex.js.map","import { equalBytes } from '@noble/curves/abstract/utils';\nimport * as Errors from './Errors.js';\nimport * as Hex from './Hex.js';\nimport * as internal from './internal/bytes.js';\nimport * as internal_hex from './internal/hex.js';\nimport * as Json from './Json.js';\nconst decoder = /*#__PURE__*/ new TextDecoder();\nconst encoder = /*#__PURE__*/ new TextEncoder();\n/**\n * Asserts if the given value is {@link ox#Bytes.Bytes}.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.assert('abc')\n * // @error: Bytes.InvalidBytesTypeError:\n * // @error: Value `\"abc\"` of type `string` is an invalid Bytes value.\n * // @error: Bytes values must be of type `Uint8Array`.\n * ```\n *\n * @param value - Value to assert.\n */\nexport function assert(value) {\n if (value instanceof Uint8Array)\n return;\n if (!value)\n throw new InvalidBytesTypeError(value);\n if (typeof value !== 'object')\n throw new InvalidBytesTypeError(value);\n if (!('BYTES_PER_ELEMENT' in value))\n throw new InvalidBytesTypeError(value);\n if (value.BYTES_PER_ELEMENT !== 1 || value.constructor.name !== 'Uint8Array')\n throw new InvalidBytesTypeError(value);\n}\n/**\n * Concatenates two or more {@link ox#Bytes.Bytes}.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * const bytes = Bytes.concat(\n * Bytes.from([1]),\n * Bytes.from([69]),\n * Bytes.from([420, 69]),\n * )\n * // @log: Uint8Array [ 1, 69, 420, 69 ]\n * ```\n *\n * @param values - Values to concatenate.\n * @returns Concatenated {@link ox#Bytes.Bytes}.\n */\nexport function concat(...values) {\n let length = 0;\n for (const arr of values) {\n length += arr.length;\n }\n const result = new Uint8Array(length);\n for (let i = 0, index = 0; i < values.length; i++) {\n const arr = values[i];\n result.set(arr, index);\n index += arr.length;\n }\n return result;\n}\n/**\n * Instantiates a {@link ox#Bytes.Bytes} value from a `Uint8Array`, a hex string, or an array of unsigned 8-bit integers.\n *\n * :::tip\n *\n * To instantiate from a **Boolean**, **String**, or **Number**, use one of the following:\n *\n * - `Bytes.fromBoolean`\n *\n * - `Bytes.fromString`\n *\n * - `Bytes.fromNumber`\n *\n * :::\n *\n * @example\n * ```ts twoslash\n * // @noErrors\n * import { Bytes } from 'ox'\n *\n * const data = Bytes.from([255, 124, 5, 4])\n * // @log: Uint8Array([255, 124, 5, 4])\n *\n * const data = Bytes.from('0xdeadbeef')\n * // @log: Uint8Array([222, 173, 190, 239])\n * ```\n *\n * @param value - Value to convert.\n * @returns A {@link ox#Bytes.Bytes} instance.\n */\nexport function from(value) {\n if (value instanceof Uint8Array)\n return value;\n if (typeof value === 'string')\n return fromHex(value);\n return fromArray(value);\n}\n/**\n * Converts an array of unsigned 8-bit integers into {@link ox#Bytes.Bytes}.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * const data = Bytes.fromArray([255, 124, 5, 4])\n * // @log: Uint8Array([255, 124, 5, 4])\n * ```\n *\n * @param value - Value to convert.\n * @returns A {@link ox#Bytes.Bytes} instance.\n */\nexport function fromArray(value) {\n return value instanceof Uint8Array ? value : new Uint8Array(value);\n}\n/**\n * Encodes a boolean value into {@link ox#Bytes.Bytes}.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * const data = Bytes.fromBoolean(true)\n * // @log: Uint8Array([1])\n * ```\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * const data = Bytes.fromBoolean(true, { size: 32 })\n * // @log: Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1])\n * ```\n *\n * @param value - Boolean value to encode.\n * @param options - Encoding options.\n * @returns Encoded {@link ox#Bytes.Bytes}.\n */\nexport function fromBoolean(value, options = {}) {\n const { size } = options;\n const bytes = new Uint8Array(1);\n bytes[0] = Number(value);\n if (typeof size === 'number') {\n internal.assertSize(bytes, size);\n return padLeft(bytes, size);\n }\n return bytes;\n}\n/**\n * Encodes a {@link ox#Hex.Hex} value into {@link ox#Bytes.Bytes}.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * const data = Bytes.fromHex('0x48656c6c6f20776f726c6421')\n * // @log: Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\n * ```\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * const data = Bytes.fromHex('0x48656c6c6f20776f726c6421', { size: 32 })\n * // @log: Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])\n * ```\n *\n * @param value - {@link ox#Hex.Hex} value to encode.\n * @param options - Encoding options.\n * @returns Encoded {@link ox#Bytes.Bytes}.\n */\nexport function fromHex(value, options = {}) {\n const { size } = options;\n let hex = value;\n if (size) {\n internal_hex.assertSize(value, size);\n hex = Hex.padRight(value, size);\n }\n let hexString = hex.slice(2);\n if (hexString.length % 2)\n hexString = `0${hexString}`;\n const length = hexString.length / 2;\n const bytes = new Uint8Array(length);\n for (let index = 0, j = 0; index < length; index++) {\n const nibbleLeft = internal.charCodeToBase16(hexString.charCodeAt(j++));\n const nibbleRight = internal.charCodeToBase16(hexString.charCodeAt(j++));\n if (nibbleLeft === undefined || nibbleRight === undefined) {\n throw new Errors.BaseError(`Invalid byte sequence (\"${hexString[j - 2]}${hexString[j - 1]}\" in \"${hexString}\").`);\n }\n bytes[index] = nibbleLeft * 16 + nibbleRight;\n }\n return bytes;\n}\n/**\n * Encodes a number value into {@link ox#Bytes.Bytes}.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * const data = Bytes.fromNumber(420)\n * // @log: Uint8Array([1, 164])\n * ```\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * const data = Bytes.fromNumber(420, { size: 4 })\n * // @log: Uint8Array([0, 0, 1, 164])\n * ```\n *\n * @param value - Number value to encode.\n * @param options - Encoding options.\n * @returns Encoded {@link ox#Bytes.Bytes}.\n */\nexport function fromNumber(value, options) {\n const hex = Hex.fromNumber(value, options);\n return fromHex(hex);\n}\n/**\n * Encodes a string into {@link ox#Bytes.Bytes}.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * const data = Bytes.fromString('Hello world!')\n * // @log: Uint8Array([72, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100, 33])\n * ```\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * const data = Bytes.fromString('Hello world!', { size: 32 })\n * // @log: Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])\n * ```\n *\n * @param value - String to encode.\n * @param options - Encoding options.\n * @returns Encoded {@link ox#Bytes.Bytes}.\n */\nexport function fromString(value, options = {}) {\n const { size } = options;\n const bytes = encoder.encode(value);\n if (typeof size === 'number') {\n internal.assertSize(bytes, size);\n return padRight(bytes, size);\n }\n return bytes;\n}\n/**\n * Checks if two {@link ox#Bytes.Bytes} values are equal.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.isEqual(Bytes.from([1]), Bytes.from([1]))\n * // @log: true\n *\n * Bytes.isEqual(Bytes.from([1]), Bytes.from([2]))\n * // @log: false\n * ```\n *\n * @param bytesA - First {@link ox#Bytes.Bytes} value.\n * @param bytesB - Second {@link ox#Bytes.Bytes} value.\n * @returns `true` if the two values are equal, otherwise `false`.\n */\nexport function isEqual(bytesA, bytesB) {\n return equalBytes(bytesA, bytesB);\n}\n/**\n * Pads a {@link ox#Bytes.Bytes} value to the left with zero bytes until it reaches the given `size` (default: 32 bytes).\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.padLeft(Bytes.from([1]), 4)\n * // @log: Uint8Array([0, 0, 0, 1])\n * ```\n *\n * @param value - {@link ox#Bytes.Bytes} value to pad.\n * @param size - Size to pad the {@link ox#Bytes.Bytes} value to.\n * @returns Padded {@link ox#Bytes.Bytes} value.\n */\nexport function padLeft(value, size) {\n return internal.pad(value, { dir: 'left', size });\n}\n/**\n * Pads a {@link ox#Bytes.Bytes} value to the right with zero bytes until it reaches the given `size` (default: 32 bytes).\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.padRight(Bytes.from([1]), 4)\n * // @log: Uint8Array([1, 0, 0, 0])\n * ```\n *\n * @param value - {@link ox#Bytes.Bytes} value to pad.\n * @param size - Size to pad the {@link ox#Bytes.Bytes} value to.\n * @returns Padded {@link ox#Bytes.Bytes} value.\n */\nexport function padRight(value, size) {\n return internal.pad(value, { dir: 'right', size });\n}\n/**\n * Generates random {@link ox#Bytes.Bytes} of the specified length.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * const bytes = Bytes.random(32)\n * // @log: Uint8Array([... x32])\n * ```\n *\n * @param length - Length of the random {@link ox#Bytes.Bytes} to generate.\n * @returns Random {@link ox#Bytes.Bytes} of the specified length.\n */\nexport function random(length) {\n return crypto.getRandomValues(new Uint8Array(length));\n}\n/**\n * Retrieves the size of a {@link ox#Bytes.Bytes} value.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.size(Bytes.from([1, 2, 3, 4]))\n * // @log: 4\n * ```\n *\n * @param value - {@link ox#Bytes.Bytes} value.\n * @returns Size of the {@link ox#Bytes.Bytes} value.\n */\nexport function size(value) {\n return value.length;\n}\n/**\n * Returns a section of a {@link ox#Bytes.Bytes} value given a start/end bytes offset.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.slice(\n * Bytes.from([1, 2, 3, 4, 5, 6, 7, 8, 9]),\n * 1,\n * 4,\n * )\n * // @log: Uint8Array([2, 3, 4])\n * ```\n *\n * @param value - The {@link ox#Bytes.Bytes} value.\n * @param start - Start offset.\n * @param end - End offset.\n * @param options - Slice options.\n * @returns Sliced {@link ox#Bytes.Bytes} value.\n */\nexport function slice(value, start, end, options = {}) {\n const { strict } = options;\n internal.assertStartOffset(value, start);\n const value_ = value.slice(start, end);\n if (strict)\n internal.assertEndOffset(value_, start, end);\n return value_;\n}\n/**\n * Decodes a {@link ox#Bytes.Bytes} into a bigint.\n *\n * @example\n * ```ts\n * import { Bytes } from 'ox'\n *\n * Bytes.toBigInt(Bytes.from([1, 164]))\n * // @log: 420n\n * ```\n *\n * @param bytes - The {@link ox#Bytes.Bytes} to decode.\n * @param options - Decoding options.\n * @returns Decoded bigint.\n */\nexport function toBigInt(bytes, options = {}) {\n const { size } = options;\n if (typeof size !== 'undefined')\n internal.assertSize(bytes, size);\n const hex = Hex.fromBytes(bytes, options);\n return Hex.toBigInt(hex, options);\n}\n/**\n * Decodes a {@link ox#Bytes.Bytes} into a boolean.\n *\n * @example\n * ```ts\n * import { Bytes } from 'ox'\n *\n * Bytes.toBoolean(Bytes.from([1]))\n * // @log: true\n * ```\n *\n * @param bytes - The {@link ox#Bytes.Bytes} to decode.\n * @param options - Decoding options.\n * @returns Decoded boolean.\n */\nexport function toBoolean(bytes, options = {}) {\n const { size } = options;\n let bytes_ = bytes;\n if (typeof size !== 'undefined') {\n internal.assertSize(bytes_, size);\n bytes_ = trimLeft(bytes_);\n }\n if (bytes_.length > 1 || bytes_[0] > 1)\n throw new InvalidBytesBooleanError(bytes_);\n return Boolean(bytes_[0]);\n}\n/**\n * Encodes a {@link ox#Bytes.Bytes} value into a {@link ox#Hex.Hex} value.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.toHex(Bytes.from([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]))\n * // '0x48656c6c6f20576f726c6421'\n * ```\n *\n * @param value - The {@link ox#Bytes.Bytes} to decode.\n * @param options - Options.\n * @returns Decoded {@link ox#Hex.Hex} value.\n */\nexport function toHex(value, options = {}) {\n return Hex.fromBytes(value, options);\n}\n/**\n * Decodes a {@link ox#Bytes.Bytes} into a number.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.toNumber(Bytes.from([1, 164]))\n * // @log: 420\n * ```\n */\nexport function toNumber(bytes, options = {}) {\n const { size } = options;\n if (typeof size !== 'undefined')\n internal.assertSize(bytes, size);\n const hex = Hex.fromBytes(bytes, options);\n return Hex.toNumber(hex, options);\n}\n/**\n * Decodes a {@link ox#Bytes.Bytes} into a string.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * const data = Bytes.toString(Bytes.from([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]))\n * // @log: 'Hello world'\n * ```\n *\n * @param bytes - The {@link ox#Bytes.Bytes} to decode.\n * @param options - Options.\n * @returns Decoded string.\n */\nexport function toString(bytes, options = {}) {\n const { size } = options;\n let bytes_ = bytes;\n if (typeof size !== 'undefined') {\n internal.assertSize(bytes_, size);\n bytes_ = trimRight(bytes_);\n }\n return decoder.decode(bytes_);\n}\n/**\n * Trims leading zeros from a {@link ox#Bytes.Bytes} value.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.trimLeft(Bytes.from([0, 0, 0, 0, 1, 2, 3]))\n * // @log: Uint8Array([1, 2, 3])\n * ```\n *\n * @param value - {@link ox#Bytes.Bytes} value.\n * @returns Trimmed {@link ox#Bytes.Bytes} value.\n */\nexport function trimLeft(value) {\n return internal.trim(value, { dir: 'left' });\n}\n/**\n * Trims trailing zeros from a {@link ox#Bytes.Bytes} value.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.trimRight(Bytes.from([1, 2, 3, 0, 0, 0, 0]))\n * // @log: Uint8Array([1, 2, 3])\n * ```\n *\n * @param value - {@link ox#Bytes.Bytes} value.\n * @returns Trimmed {@link ox#Bytes.Bytes} value.\n */\nexport function trimRight(value) {\n return internal.trim(value, { dir: 'right' });\n}\n/**\n * Checks if the given value is {@link ox#Bytes.Bytes}.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.validate('0x')\n * // @log: false\n *\n * Bytes.validate(Bytes.from([1, 2, 3]))\n * // @log: true\n * ```\n *\n * @param value - Value to check.\n * @returns `true` if the value is {@link ox#Bytes.Bytes}, otherwise `false`.\n */\nexport function validate(value) {\n try {\n assert(value);\n return true;\n }\n catch {\n return false;\n }\n}\n/**\n * Thrown when the bytes value cannot be represented as a boolean.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.toBoolean(Bytes.from([5]))\n * // @error: Bytes.InvalidBytesBooleanError: Bytes value `[5]` is not a valid boolean.\n * // @error: The bytes array must contain a single byte of either a `0` or `1` value.\n * ```\n */\nexport class InvalidBytesBooleanError extends Errors.BaseError {\n constructor(bytes) {\n super(`Bytes value \\`${bytes}\\` is not a valid boolean.`, {\n metaMessages: [\n 'The bytes array must contain a single byte of either a `0` or `1` value.',\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Bytes.InvalidBytesBooleanError'\n });\n }\n}\n/**\n * Thrown when a value cannot be converted to bytes.\n *\n * @example\n * ```ts twoslash\n * // @noErrors\n * import { Bytes } from 'ox'\n *\n * Bytes.from('foo')\n * // @error: Bytes.InvalidBytesTypeError: Value `foo` of type `string` is an invalid Bytes value.\n * ```\n */\nexport class InvalidBytesTypeError extends Errors.BaseError {\n constructor(value) {\n super(`Value \\`${typeof value === 'object' ? Json.stringify(value) : value}\\` of type \\`${typeof value}\\` is an invalid Bytes value.`, {\n metaMessages: ['Bytes values must be of type `Bytes`.'],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Bytes.InvalidBytesTypeError'\n });\n }\n}\n/**\n * Thrown when a size exceeds the maximum allowed size.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.fromString('Hello World!', { size: 8 })\n * // @error: Bytes.SizeOverflowError: Size cannot exceed `8` bytes. Given size: `12` bytes.\n * ```\n */\nexport class SizeOverflowError extends Errors.BaseError {\n constructor({ givenSize, maxSize }) {\n super(`Size cannot exceed \\`${maxSize}\\` bytes. Given size: \\`${givenSize}\\` bytes.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Bytes.SizeOverflowError'\n });\n }\n}\n/**\n * Thrown when a slice offset is out-of-bounds.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.slice(Bytes.from([1, 2, 3]), 4)\n * // @error: Bytes.SliceOffsetOutOfBoundsError: Slice starting at offset `4` is out-of-bounds (size: `3`).\n * ```\n */\nexport class SliceOffsetOutOfBoundsError extends Errors.BaseError {\n constructor({ offset, position, size, }) {\n super(`Slice ${position === 'start' ? 'starting' : 'ending'} at offset \\`${offset}\\` is out-of-bounds (size: \\`${size}\\`).`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Bytes.SliceOffsetOutOfBoundsError'\n });\n }\n}\n/**\n * Thrown when a the padding size exceeds the maximum allowed size.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.padLeft(Bytes.fromString('Hello World!'), 8)\n * // @error: [Bytes.SizeExceedsPaddingSizeError: Bytes size (`12`) exceeds padding size (`8`).\n * ```\n */\nexport class SizeExceedsPaddingSizeError extends Errors.BaseError {\n constructor({ size, targetSize, type, }) {\n super(`${type.charAt(0).toUpperCase()}${type\n .slice(1)\n .toLowerCase()} size (\\`${size}\\`) exceeds padding size (\\`${targetSize}\\`).`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Bytes.SizeExceedsPaddingSizeError'\n });\n }\n}\n//# sourceMappingURL=Bytes.js.map","import { ripemd160 as noble_ripemd160 } from '@noble/hashes/ripemd160';\nimport { keccak_256 as noble_keccak256 } from '@noble/hashes/sha3';\nimport { sha256 as noble_sha256 } from '@noble/hashes/sha256';\nimport * as Bytes from './Bytes.js';\nimport * as Hex from './Hex.js';\n/**\n * Calculates the [Keccak256](https://en.wikipedia.org/wiki/SHA-3) hash of a {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.\n *\n * This function is a re-export of `keccak_256` from [`@noble/hashes`](https://github.com/paulmillr/noble-hashes), an audited & minimal JS hashing library.\n *\n * @example\n * ```ts twoslash\n * import { Hash } from 'ox'\n *\n * Hash.keccak256('0xdeadbeef')\n * // @log: '0xd4fd4e189132273036449fc9e11198c739161b4c0116a9a2dccdfa1c492006f1'\n * ```\n *\n * @example\n * ### Calculate Hash of a String\n *\n * ```ts twoslash\n * import { Hash, Hex } from 'ox'\n *\n * Hash.keccak256(Hex.fromString('hello world'))\n * // @log: '0x3ea2f1d0abf3fc66cf29eebb70cbd4e7fe762ef8a09bcc06c8edf641230afec0'\n * ```\n *\n * @example\n * ### Configure Return Type\n *\n * ```ts twoslash\n * import { Hash } from 'ox'\n *\n * Hash.keccak256('0xdeadbeef', { as: 'Bytes' })\n * // @log: Uint8Array [...]\n * ```\n *\n * @param value - {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.\n * @param options - Options.\n * @returns Keccak256 hash.\n */\nexport function keccak256(value, options = {}) {\n const { as = typeof value === 'string' ? 'Hex' : 'Bytes' } = options;\n const bytes = noble_keccak256(Bytes.from(value));\n if (as === 'Bytes')\n return bytes;\n return Hex.fromBytes(bytes);\n}\n/**\n * Calculates the [Ripemd160](https://en.wikipedia.org/wiki/RIPEMD) hash of a {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.\n *\n * This function is a re-export of `ripemd160` from [`@noble/hashes`](https://github.com/paulmillr/noble-hashes), an audited & minimal JS hashing library.\n *\n * @example\n * ```ts twoslash\n * import { Hash } from 'ox'\n *\n * Hash.ripemd160('0xdeadbeef')\n * // '0x226821c2f5423e11fe9af68bd285c249db2e4b5a'\n * ```\n *\n * @param value - {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.\n * @param options - Options.\n * @returns Ripemd160 hash.\n */\nexport function ripemd160(value, options = {}) {\n const { as = typeof value === 'string' ? 'Hex' : 'Bytes' } = options;\n const bytes = noble_ripemd160(Bytes.from(value));\n if (as === 'Bytes')\n return bytes;\n return Hex.fromBytes(bytes);\n}\n/**\n * Calculates the [Sha256](https://en.wikipedia.org/wiki/SHA-256) hash of a {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.\n *\n * This function is a re-export of `sha256` from [`@noble/hashes`](https://github.com/paulmillr/noble-hashes), an audited & minimal JS hashing library.\n *\n * @example\n * ```ts twoslash\n * import { Hash } from 'ox'\n *\n * Hash.sha256('0xdeadbeef')\n * // '0x5f78c33274e43fa9de5659265c1d917e25c03722dcb0b8d27db8d5feaa813953'\n * ```\n *\n * @param value - {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.\n * @param options - Options.\n * @returns Sha256 hash.\n */\nexport function sha256(value, options = {}) {\n const { as = typeof value === 'string' ? 'Hex' : 'Bytes' } = options;\n const bytes = noble_sha256(Bytes.from(value));\n if (as === 'Bytes')\n return bytes;\n return Hex.fromBytes(bytes);\n}\n/**\n * Checks if a string is a valid hash value.\n *\n * @example\n * ```ts twoslash\n * import { Hash } from 'ox'\n *\n * Hash.validate('0x')\n * // @log: false\n *\n * Hash.validate('0x3ea2f1d0abf3fc66cf29eebb70cbd4e7fe762ef8a09bcc06c8edf641230afec0')\n * // @log: true\n * ```\n *\n * @param value - Value to check.\n * @returns Whether the value is a valid hash.\n */\nexport function validate(value) {\n return Hex.validate(value) && Hex.size(value) === 32;\n}\n//# sourceMappingURL=Hash.js.map","/**\n * @internal\n *\n * Map with a LRU (Least recently used) policy.\n * @see https://en.wikipedia.org/wiki/Cache_replacement_policies#LRU\n */\nexport class LruMap extends Map {\n constructor(size) {\n super();\n Object.defineProperty(this, \"maxSize\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.maxSize = size;\n }\n get(key) {\n const value = super.get(key);\n if (super.has(key) && value !== undefined) {\n this.delete(key);\n super.set(key, value);\n }\n return value;\n }\n set(key, value) {\n super.set(key, value);\n if (this.maxSize && this.size > this.maxSize) {\n const firstKey = this.keys().next().value;\n if (firstKey)\n this.delete(firstKey);\n }\n return this;\n }\n}\n//# sourceMappingURL=lru.js.map","import { LruMap } from './internal/lru.js';\nconst caches = {\n checksum: /*#__PURE__*/ new LruMap(8192),\n};\nexport const checksum = caches.checksum;\n/**\n * Clears all global caches.\n *\n * @example\n * ```ts\n * import { Caches } from 'ox'\n * Caches.clear()\n * ```\n */\nexport function clear() {\n for (const cache of Object.values(caches))\n cache.clear();\n}\n//# sourceMappingURL=Caches.js.map","import * as Bytes from './Bytes.js';\nimport * as Errors from './Errors.js';\nimport * as Hex from './Hex.js';\nimport * as Json from './Json.js';\n/**\n * Asserts that a {@link ox#PublicKey.PublicKey} is valid.\n *\n * @example\n * ```ts twoslash\n * import { PublicKey } from 'ox'\n *\n * PublicKey.assert({\n * prefix: 4,\n * y: 49782753348462494199823712700004552394425719014458918871452329774910450607807n,\n * })\n * // @error: PublicKey.InvalidError: Value \\`{\"y\":\"1\"}\\` is not a valid public key.\n * // @error: Public key must contain:\n * // @error: - an `x` and `prefix` value (compressed)\n * // @error: - an `x`, `y`, and `prefix` value (uncompressed)\n * ```\n *\n * @param publicKey - The public key object to assert.\n */\nexport function assert(publicKey, options = {}) {\n const { compressed } = options;\n const { prefix, x, y } = publicKey;\n // Uncompressed\n if (compressed === false ||\n (typeof x === 'bigint' && typeof y === 'bigint')) {\n if (prefix !== 4)\n throw new InvalidPrefixError({\n prefix,\n cause: new InvalidUncompressedPrefixError(),\n });\n return;\n }\n // Compressed\n if (compressed === true ||\n (typeof x === 'bigint' && typeof y === 'undefined')) {\n if (prefix !== 3 && prefix !== 2)\n throw new InvalidPrefixError({\n prefix,\n cause: new InvalidCompressedPrefixError(),\n });\n return;\n }\n // Unknown/invalid\n throw new InvalidError({ publicKey });\n}\n/**\n * Compresses a {@link ox#PublicKey.PublicKey}.\n *\n * @example\n * ```ts twoslash\n * import { PublicKey } from 'ox'\n *\n * const publicKey = PublicKey.from({\n * prefix: 4,\n * x: 59295962801117472859457908919941473389380284132224861839820747729565200149877n,\n * y: 24099691209996290925259367678540227198235484593389470330605641003500238088869n,\n * })\n *\n * const compressed = PublicKey.compress(publicKey) // [!code focus]\n * // @log: {\n * // @log: prefix: 3,\n * // @log: x: 59295962801117472859457908919941473389380284132224861839820747729565200149877n,\n * // @log: }\n * ```\n *\n * @param publicKey - The public key to compress.\n * @returns The compressed public key.\n */\nexport function compress(publicKey) {\n const { x, y } = publicKey;\n return {\n prefix: y % 2n === 0n ? 2 : 3,\n x,\n };\n}\n/**\n * Instantiates a typed {@link ox#PublicKey.PublicKey} object from a {@link ox#PublicKey.PublicKey}, {@link ox#Bytes.Bytes}, or {@link ox#Hex.Hex}.\n *\n * @example\n * ```ts twoslash\n * import { PublicKey } from 'ox'\n *\n * const publicKey = PublicKey.from({\n * prefix: 4,\n * x: 59295962801117472859457908919941473389380284132224861839820747729565200149877n,\n * y: 24099691209996290925259367678540227198235484593389470330605641003500238088869n,\n * })\n * // @log: {\n * // @log: prefix: 4,\n * // @log: x: 59295962801117472859457908919941473389380284132224861839820747729565200149877n,\n * // @log: y: 24099691209996290925259367678540227198235484593389470330605641003500238088869n,\n * // @log: }\n * ```\n *\n * @example\n * ### From Serialized\n *\n * ```ts twoslash\n * import { PublicKey } from 'ox'\n *\n * const publicKey = PublicKey.from('0x048318535b54105d4a7aae60c08fc45f9687181b4fdfc625bd1a753fa7397fed753547f11ca8696646f2f3acb08e31016afac23e630c5d11f59f61fef57b0d2aa5')\n * // @log: {\n * // @log: prefix: 4,\n * // @log: x: 59295962801117472859457908919941473389380284132224861839820747729565200149877n,\n * // @log: y: 24099691209996290925259367678540227198235484593389470330605641003500238088869n,\n * // @log: }\n * ```\n *\n * @param value - The public key value to instantiate.\n * @returns The instantiated {@link ox#PublicKey.PublicKey}.\n */\nexport function from(value) {\n const publicKey = (() => {\n if (Hex.validate(value))\n return fromHex(value);\n if (Bytes.validate(value))\n return fromBytes(value);\n const { prefix, x, y } = value;\n if (typeof x === 'bigint' && typeof y === 'bigint')\n return { prefix: prefix ?? 0x04, x, y };\n return { prefix, x };\n })();\n assert(publicKey);\n return publicKey;\n}\n/**\n * Deserializes a {@link ox#PublicKey.PublicKey} from a {@link ox#Bytes.Bytes} value.\n *\n * @example\n * ```ts twoslash\n * // @noErrors\n * import { PublicKey } from 'ox'\n *\n * const publicKey = PublicKey.fromBytes(new Uint8Array([128, 3, 131, ...]))\n * // @log: {\n * // @log: prefix: 4,\n * // @log: x: 59295962801117472859457908919941473389380284132224861839820747729565200149877n,\n * // @log: y: 24099691209996290925259367678540227198235484593389470330605641003500238088869n,\n * // @log: }\n * ```\n *\n * @param publicKey - The serialized public key.\n * @returns The deserialized public key.\n */\nexport function fromBytes(publicKey) {\n return fromHex(Hex.fromBytes(publicKey));\n}\n/**\n * Deserializes a {@link ox#PublicKey.PublicKey} from a {@link ox#Hex.Hex} value.\n *\n * @example\n * ```ts twoslash\n * import { PublicKey } from 'ox'\n *\n * const publicKey = PublicKey.fromHex('0x8318535b54105d4a7aae60c08fc45f9687181b4fdfc625bd1a753fa7397fed753547f11ca8696646f2f3acb08e31016afac23e630c5d11f59f61fef57b0d2aa5')\n * // @log: {\n * // @log: prefix: 4,\n * // @log: x: 59295962801117472859457908919941473389380284132224861839820747729565200149877n,\n * // @log: y: 24099691209996290925259367678540227198235484593389470330605641003500238088869n,\n * // @log: }\n * ```\n *\n * @example\n * ### Deserializing a Compressed Public Key\n *\n * ```ts twoslash\n * import { PublicKey } from 'ox'\n *\n * const publicKey = PublicKey.fromHex('0x038318535b54105d4a7aae60c08fc45f9687181b4fdfc625bd1a753fa7397fed75')\n * // @log: {\n * // @log: prefix: 3,\n * // @log: x: 59295962801117472859457908919941473389380284132224861839820747729565200149877n,\n * // @log: }\n * ```\n *\n * @param publicKey - The serialized public key.\n * @returns The deserialized public key.\n */\nexport function fromHex(publicKey) {\n if (publicKey.length !== 132 &&\n publicKey.length !== 130 &&\n publicKey.length !== 68)\n throw new InvalidSerializedSizeError({ publicKey });\n if (publicKey.length === 130) {\n const x = BigInt(Hex.slice(publicKey, 0, 32));\n const y = BigInt(Hex.slice(publicKey, 32, 64));\n return {\n prefix: 4,\n x,\n y,\n };\n }\n if (publicKey.length === 132) {\n const prefix = Number(Hex.slice(publicKey, 0, 1));\n const x = BigInt(Hex.slice(publicKey, 1, 33));\n const y = BigInt(Hex.slice(publicKey, 33, 65));\n return {\n prefix,\n x,\n y,\n };\n }\n const prefix = Number(Hex.slice(publicKey, 0, 1));\n const x = BigInt(Hex.slice(publicKey, 1, 33));\n return {\n prefix,\n x,\n };\n}\n/**\n * Serializes a {@link ox#PublicKey.PublicKey} to {@link ox#Bytes.Bytes}.\n *\n * @example\n * ```ts twoslash\n * import { PublicKey } from 'ox'\n *\n * const publicKey = PublicKey.from({\n * prefix: 4,\n * x: 59295962801117472859457908919941473389380284132224861839820747729565200149877n,\n * y: 24099691209996290925259367678540227198235484593389470330605641003500238088869n,\n * })\n *\n * const bytes = PublicKey.toBytes(publicKey) // [!code focus]\n * // @log: Uint8Array [128, 3, 131, ...]\n * ```\n *\n * @param publicKey - The public key to serialize.\n * @returns The serialized public key.\n */\nexport function toBytes(publicKey, options = {}) {\n return Bytes.fromHex(toHex(publicKey, options));\n}\n/**\n * Serializes a {@link ox#PublicKey.PublicKey} to {@link ox#Hex.Hex}.\n *\n * @example\n * ```ts twoslash\n * import { PublicKey } from 'ox'\n *\n * const publicKey = PublicKey.from({\n * prefix: 4,\n * x: 59295962801117472859457908919941473389380284132224861839820747729565200149877n,\n * y: 24099691209996290925259367678540227198235484593389470330605641003500238088869n,\n * })\n *\n * const hex = PublicKey.toHex(publicKey) // [!code focus]\n * // @log: '0x048318535b54105d4a7aae60c08fc45f9687181b4fdfc625bd1a753fa7397fed753547f11ca8696646f2f3acb08e31016afac23e630c5d11f59f61fef57b0d2aa5'\n * ```\n *\n * @param publicKey - The public key to serialize.\n * @returns The serialized public key.\n */\nexport function toHex(publicKey, options = {}) {\n assert(publicKey);\n const { prefix, x, y } = publicKey;\n const { includePrefix = true } = options;\n const publicKey_ = Hex.concat(includePrefix ? Hex.fromNumber(prefix, { size: 1 }) : '0x', Hex.fromNumber(x, { size: 32 }), \n // If the public key is not compressed, add the y coordinate.\n typeof y === 'bigint' ? Hex.fromNumber(y, { size: 32 }) : '0x');\n return publicKey_;\n}\n/**\n * Validates a {@link ox#PublicKey.PublicKey}. Returns `true` if valid, `false` otherwise.\n *\n * @example\n * ```ts twoslash\n * import { PublicKey } from 'ox'\n *\n * const valid = PublicKey.validate({\n * prefix: 4,\n * y: 49782753348462494199823712700004552394425719014458918871452329774910450607807n,\n * })\n * // @log: false\n * ```\n *\n * @param publicKey - The public key object to assert.\n */\nexport function validate(publicKey, options = {}) {\n try {\n assert(publicKey, options);\n return true;\n }\n catch (_error) {\n return false;\n }\n}\n/**\n * Thrown when a public key is invalid.\n *\n * @example\n * ```ts twoslash\n * import { PublicKey } from 'ox'\n *\n * PublicKey.assert({ y: 1n })\n * // @error: PublicKey.InvalidError: Value `{\"y\":1n}` is not a valid public key.\n * // @error: Public key must contain:\n * // @error: - an `x` and `prefix` value (compressed)\n * // @error: - an `x`, `y`, and `prefix` value (uncompressed)\n * ```\n */\nexport class InvalidError extends Errors.BaseError {\n constructor({ publicKey }) {\n super(`Value \\`${Json.stringify(publicKey)}\\` is not a valid public key.`, {\n metaMessages: [\n 'Public key must contain:',\n '- an `x` and `prefix` value (compressed)',\n '- an `x`, `y`, and `prefix` value (uncompressed)',\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'PublicKey.InvalidError'\n });\n }\n}\n/** Thrown when a public key has an invalid prefix. */\nexport class InvalidPrefixError extends Errors.BaseError {\n constructor({ prefix, cause }) {\n super(`Prefix \"${prefix}\" is invalid.`, {\n cause,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'PublicKey.InvalidPrefixError'\n });\n }\n}\n/** Thrown when the public key has an invalid prefix for a compressed public key. */\nexport class InvalidCompressedPrefixError extends Errors.BaseError {\n constructor() {\n super('Prefix must be 2 or 3 for compressed public keys.');\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'PublicKey.InvalidCompressedPrefixError'\n });\n }\n}\n/** Thrown when the public key has an invalid prefix for an uncompressed public key. */\nexport class InvalidUncompressedPrefixError extends Errors.BaseError {\n constructor() {\n super('Prefix must be 4 for uncompressed public keys.');\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'PublicKey.InvalidUncompressedPrefixError'\n });\n }\n}\n/** Thrown when the public key has an invalid serialized size. */\nexport class InvalidSerializedSizeError extends Errors.BaseError {\n constructor({ publicKey }) {\n super(`Value \\`${publicKey}\\` is an invalid public key size.`, {\n metaMessages: [\n 'Expected: 33 bytes (compressed + prefix), 64 bytes (uncompressed) or 65 bytes (uncompressed + prefix).',\n `Received ${Hex.size(Hex.from(publicKey))} bytes.`,\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'PublicKey.InvalidSerializedSizeError'\n });\n }\n}\n//# sourceMappingURL=PublicKey.js.map","import * as Bytes from './Bytes.js';\nimport * as Caches from './Caches.js';\nimport * as Errors from './Errors.js';\nimport * as Hash from './Hash.js';\nimport * as PublicKey from './PublicKey.js';\nconst addressRegex = /^0x[a-fA-F0-9]{40}$/;\n/**\n * Asserts that the given value is a valid {@link ox#Address.Address}.\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.assert('0xA0Cf798816D4b9b9866b5330EEa46a18382f251e')\n * ```\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.assert('0xdeadbeef')\n * // @error: InvalidAddressError: Address \"0xdeadbeef\" is invalid.\n * ```\n *\n * @param value - Value to assert if it is a valid address.\n * @param options - Assertion options.\n */\nexport function assert(value, options = {}) {\n const { strict = true } = options;\n if (!addressRegex.test(value))\n throw new InvalidAddressError({\n address: value,\n cause: new InvalidInputError(),\n });\n if (strict) {\n if (value.toLowerCase() === value)\n return;\n if (checksum(value) !== value)\n throw new InvalidAddressError({\n address: value,\n cause: new InvalidChecksumError(),\n });\n }\n}\n/**\n * Computes the checksum address for the given {@link ox#Address.Address}.\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.checksum('0xa0cf798816d4b9b9866b5330eea46a18382f251e')\n * // @log: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'\n * ```\n *\n * @param address - The address to compute the checksum for.\n * @returns The checksummed address.\n */\nexport function checksum(address) {\n if (Caches.checksum.has(address))\n return Caches.checksum.get(address);\n assert(address, { strict: false });\n const hexAddress = address.substring(2).toLowerCase();\n const hash = Hash.keccak256(Bytes.fromString(hexAddress), { as: 'Bytes' });\n const characters = hexAddress.split('');\n for (let i = 0; i < 40; i += 2) {\n if (hash[i >> 1] >> 4 >= 8 && characters[i]) {\n characters[i] = characters[i].toUpperCase();\n }\n if ((hash[i >> 1] & 0x0f) >= 8 && characters[i + 1]) {\n characters[i + 1] = characters[i + 1].toUpperCase();\n }\n }\n const result = `0x${characters.join('')}`;\n Caches.checksum.set(address, result);\n return result;\n}\n/**\n * Converts a stringified address to a typed (checksummed) {@link ox#Address.Address}.\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.from('0xa0cf798816d4b9b9866b5330eea46a18382f251e')\n * // @log: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'\n * ```\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.from('0xa0cf798816d4b9b9866b5330eea46a18382f251e', {\n * checksum: false\n * })\n * // @log: '0xa0cf798816d4b9b9866b5330eea46a18382f251e'\n * ```\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.from('hello')\n * // @error: InvalidAddressError: Address \"0xa\" is invalid.\n * ```\n *\n * @param address - An address string to convert to a typed Address.\n * @param options - Conversion options.\n * @returns The typed Address.\n */\nexport function from(address, options = {}) {\n const { checksum: checksumVal = false } = options;\n assert(address);\n if (checksumVal)\n return checksum(address);\n return address;\n}\n/**\n * Converts an ECDSA public key to an {@link ox#Address.Address}.\n *\n * @example\n * ```ts twoslash\n * import { Address, PublicKey } from 'ox'\n *\n * const publicKey = PublicKey.from(\n * '0x048318535b54105d4a7aae60c08fc45f9687181b4fdfc625bd1a753fa7397fed753547f11ca8696646f2f3acb08e31016afac23e630c5d11f59f61fef57b0d2aa5',\n * )\n * const address = Address.fromPublicKey(publicKey)\n * // @log: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\n * ```\n *\n * @param publicKey - The ECDSA public key to convert to an {@link ox#Address.Address}.\n * @param options - Conversion options.\n * @returns The {@link ox#Address.Address} corresponding to the public key.\n */\nexport function fromPublicKey(publicKey, options = {}) {\n const address = Hash.keccak256(`0x${PublicKey.toHex(publicKey).slice(4)}`).substring(26);\n return from(`0x${address}`, options);\n}\n/**\n * Checks if two {@link ox#Address.Address} are equal.\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.isEqual(\n * '0xa0cf798816d4b9b9866b5330eea46a18382f251e',\n * '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'\n * )\n * // @log: true\n * ```\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.isEqual(\n * '0xa0cf798816d4b9b9866b5330eea46a18382f251e',\n * '0xA0Cf798816D4b9b9866b5330EEa46a18382f251f'\n * )\n * // @log: false\n * ```\n *\n * @param addressA - The first address to compare.\n * @param addressB - The second address to compare.\n * @returns Whether the addresses are equal.\n */\nexport function isEqual(addressA, addressB) {\n assert(addressA, { strict: false });\n assert(addressB, { strict: false });\n return addressA.toLowerCase() === addressB.toLowerCase();\n}\n/**\n * Checks if the given address is a valid {@link ox#Address.Address}.\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.validate('0xA0Cf798816D4b9b9866b5330EEa46a18382f251e')\n * // @log: true\n * ```\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.validate('0xdeadbeef')\n * // @log: false\n * ```\n *\n * @param address - Value to check if it is a valid address.\n * @param options - Check options.\n * @returns Whether the address is a valid address.\n */\nexport function validate(address, options = {}) {\n const { strict = true } = options ?? {};\n try {\n assert(address, { strict });\n return true;\n }\n catch {\n return false;\n }\n}\n/**\n * Thrown when an address is invalid.\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.from('0x123')\n * // @error: Address.InvalidAddressError: Address `0x123` is invalid.\n * ```\n */\nexport class InvalidAddressError extends Errors.BaseError {\n constructor({ address, cause }) {\n super(`Address \"${address}\" is invalid.`, {\n cause,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Address.InvalidAddressError'\n });\n }\n}\n/** Thrown when an address is not a 20 byte (40 hexadecimal character) value. */\nexport class InvalidInputError extends Errors.BaseError {\n constructor() {\n super('Address is not a 20 byte (40 hexadecimal character) value.');\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Address.InvalidInputError'\n });\n }\n}\n/** Thrown when an address does not match its checksum counterpart. */\nexport class InvalidChecksumError extends Errors.BaseError {\n constructor() {\n super('Address does not match its checksum counterpart.');\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Address.InvalidChecksumError'\n });\n }\n}\n//# sourceMappingURL=Address.js.map","/**\n * HMAC: RFC2104 message authentication code.\n * @module\n */\nimport { abytes, aexists, ahash, clean, Hash, toBytes } from \"./utils.js\";\nexport class HMAC extends Hash {\n constructor(hash, _key) {\n super();\n this.finished = false;\n this.destroyed = false;\n ahash(hash);\n const key = toBytes(_key);\n this.iHash = hash.create();\n if (typeof this.iHash.update !== 'function')\n throw new Error('Expected instance of class which extends utils.Hash');\n this.blockLen = this.iHash.blockLen;\n this.outputLen = this.iHash.outputLen;\n const blockLen = this.blockLen;\n const pad = new Uint8Array(blockLen);\n // blockLen can be bigger than outputLen\n pad.set(key.length > blockLen ? hash.create().update(key).digest() : key);\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36;\n this.iHash.update(pad);\n // By doing update (processing of first block) of outer hash here we can re-use it between multiple calls via clone\n this.oHash = hash.create();\n // Undo internal XOR && apply outer XOR\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36 ^ 0x5c;\n this.oHash.update(pad);\n clean(pad);\n }\n update(buf) {\n aexists(this);\n this.iHash.update(buf);\n return this;\n }\n digestInto(out) {\n aexists(this);\n abytes(out, this.outputLen);\n this.finished = true;\n this.iHash.digestInto(out);\n this.oHash.update(out);\n this.oHash.digestInto(out);\n this.destroy();\n }\n digest() {\n const out = new Uint8Array(this.oHash.outputLen);\n this.digestInto(out);\n return out;\n }\n _cloneInto(to) {\n // Create new instance without calling constructor since key already in state and we don't know it.\n to || (to = Object.create(Object.getPrototypeOf(this), {}));\n const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this;\n to = to;\n to.finished = finished;\n to.destroyed = destroyed;\n to.blockLen = blockLen;\n to.outputLen = outputLen;\n to.oHash = oHash._cloneInto(to.oHash);\n to.iHash = iHash._cloneInto(to.iHash);\n return to;\n }\n clone() {\n return this._cloneInto();\n }\n destroy() {\n this.destroyed = true;\n this.oHash.destroy();\n this.iHash.destroy();\n }\n}\n/**\n * HMAC: RFC2104 message authentication code.\n * @param hash - function that would be used e.g. sha256\n * @param key - message key\n * @param message - message data\n * @example\n * import { hmac } from '@noble/hashes/hmac';\n * import { sha256 } from '@noble/hashes/sha2';\n * const mac1 = hmac(sha256, 'key', 'message');\n */\nexport const hmac = (hash, key, message) => new HMAC(hash, key).update(message).digest();\nhmac.create = (hash, key) => new HMAC(hash, key);\n//# sourceMappingURL=hmac.js.map","/**\n * Utils for modular division and finite fields.\n * A finite field over 11 is integer number operations `mod 11`.\n * There is no division: it is replaced by modular multiplicative inverse.\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { anumber } from '@noble/hashes/utils';\nimport { bitMask, bytesToNumberBE, bytesToNumberLE, ensureBytes, numberToBytesBE, numberToBytesLE, validateObject, } from \"./utils.js\";\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = /* @__PURE__ */ BigInt(2), _3n = /* @__PURE__ */ BigInt(3);\n// prettier-ignore\nconst _4n = /* @__PURE__ */ BigInt(4), _5n = /* @__PURE__ */ BigInt(5), _8n = /* @__PURE__ */ BigInt(8);\n// Calculates a modulo b\nexport function mod(a, b) {\n const result = a % b;\n return result >= _0n ? result : b + result;\n}\n/**\n * Efficiently raise num to power and do modular division.\n * Unsafe in some contexts: uses ladder, so can expose bigint bits.\n * TODO: remove.\n * @example\n * pow(2n, 6n, 11n) // 64n % 11n == 9n\n */\nexport function pow(num, power, modulo) {\n return FpPow(Field(modulo), num, power);\n}\n/** Does `x^(2^power)` mod p. `pow2(30, 4)` == `30^(2^4)` */\nexport function pow2(x, power, modulo) {\n let res = x;\n while (power-- > _0n) {\n res *= res;\n res %= modulo;\n }\n return res;\n}\n/**\n * Inverses number over modulo.\n * Implemented using [Euclidean GCD](https://brilliant.org/wiki/extended-euclidean-algorithm/).\n */\nexport function invert(number, modulo) {\n if (number === _0n)\n throw new Error('invert: expected non-zero number');\n if (modulo <= _0n)\n throw new Error('invert: expected positive modulus, got ' + modulo);\n // Fermat's little theorem \"CT-like\" version inv(n) = n^(m-2) mod m is 30x slower.\n let a = mod(number, modulo);\n let b = modulo;\n // prettier-ignore\n let x = _0n, y = _1n, u = _1n, v = _0n;\n while (a !== _0n) {\n // JIT applies optimization if those two lines follow each other\n const q = b / a;\n const r = b % a;\n const m = x - u * q;\n const n = y - v * q;\n // prettier-ignore\n b = a, a = r, x = u, y = v, u = m, v = n;\n }\n const gcd = b;\n if (gcd !== _1n)\n throw new Error('invert: does not exist');\n return mod(x, modulo);\n}\n// Not all roots are possible! Example which will throw:\n// const NUM =\n// n = 72057594037927816n;\n// Fp = Field(BigInt('0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab'));\nfunction sqrt3mod4(Fp, n) {\n const p1div4 = (Fp.ORDER + _1n) / _4n;\n const root = Fp.pow(n, p1div4);\n // Throw if root^2 != n\n if (!Fp.eql(Fp.sqr(root), n))\n throw new Error('Cannot find square root');\n return root;\n}\nfunction sqrt5mod8(Fp, n) {\n const p5div8 = (Fp.ORDER - _5n) / _8n;\n const n2 = Fp.mul(n, _2n);\n const v = Fp.pow(n2, p5div8);\n const nv = Fp.mul(n, v);\n const i = Fp.mul(Fp.mul(nv, _2n), v);\n const root = Fp.mul(nv, Fp.sub(i, Fp.ONE));\n if (!Fp.eql(Fp.sqr(root), n))\n throw new Error('Cannot find square root');\n return root;\n}\n// TODO: Commented-out for now. Provide test vectors.\n// Tonelli is too slow for extension fields Fp2.\n// That means we can't use sqrt (c1, c2...) even for initialization constants.\n// if (P % _16n === _9n) return sqrt9mod16;\n// // prettier-ignore\n// function sqrt9mod16<T>(Fp: IField<T>, n: T, p7div16?: bigint) {\n// if (p7div16 === undefined) p7div16 = (Fp.ORDER + BigInt(7)) / _16n;\n// const c1 = Fp.sqrt(Fp.neg(Fp.ONE)); // 1. c1 = sqrt(-1) in F, i.e., (c1^2) == -1 in F\n// const c2 = Fp.sqrt(c1); // 2. c2 = sqrt(c1) in F, i.e., (c2^2) == c1 in F\n// const c3 = Fp.sqrt(Fp.neg(c1)); // 3. c3 = sqrt(-c1) in F, i.e., (c3^2) == -c1 in F\n// const c4 = p7div16; // 4. c4 = (q + 7) / 16 # Integer arithmetic\n// let tv1 = Fp.pow(n, c4); // 1. tv1 = x^c4\n// let tv2 = Fp.mul(c1, tv1); // 2. tv2 = c1 * tv1\n// const tv3 = Fp.mul(c2, tv1); // 3. tv3 = c2 * tv1\n// let tv4 = Fp.mul(c3, tv1); // 4. tv4 = c3 * tv1\n// const e1 = Fp.eql(Fp.sqr(tv2), n); // 5. e1 = (tv2^2) == x\n// const e2 = Fp.eql(Fp.sqr(tv3), n); // 6. e2 = (tv3^2) == x\n// tv1 = Fp.cmov(tv1, tv2, e1); // 7. tv1 = CMOV(tv1, tv2, e1) # Select tv2 if (tv2^2) == x\n// tv2 = Fp.cmov(tv4, tv3, e2); // 8. tv2 = CMOV(tv4, tv3, e2) # Select tv3 if (tv3^2) == x\n// const e3 = Fp.eql(Fp.sqr(tv2), n); // 9. e3 = (tv2^2) == x\n// return Fp.cmov(tv1, tv2, e3); // 10. z = CMOV(tv1, tv2, e3) # Select the sqrt from tv1 and tv2\n// }\n/**\n * Tonelli-Shanks square root search algorithm.\n * 1. https://eprint.iacr.org/2012/685.pdf (page 12)\n * 2. Square Roots from 1; 24, 51, 10 to Dan Shanks\n * @param P field order\n * @returns function that takes field Fp (created from P) and number n\n */\nexport function tonelliShanks(P) {\n // Initialization (precomputation).\n if (P < BigInt(3))\n throw new Error('sqrt is not defined for small field');\n // Factor P - 1 = Q * 2^S, where Q is odd\n let Q = P - _1n;\n let S = 0;\n while (Q % _2n === _0n) {\n Q /= _2n;\n S++;\n }\n // Find the first quadratic non-residue Z >= 2\n let Z = _2n;\n const _Fp = Field(P);\n while (FpLegendre(_Fp, Z) === 1) {\n // Basic primality test for P. After x iterations, chance of\n // not finding quadratic non-residue is 2^x, so 2^1000.\n if (Z++ > 1000)\n throw new Error('Cannot find square root: probably non-prime P');\n }\n // Fast-path; usually done before Z, but we do \"primality test\".\n if (S === 1)\n return sqrt3mod4;\n // Slow-path\n // TODO: test on Fp2 and others\n let cc = _Fp.pow(Z, Q); // c = z^Q\n const Q1div2 = (Q + _1n) / _2n;\n return function tonelliSlow(Fp, n) {\n if (Fp.is0(n))\n return n;\n // Check if n is a quadratic residue using Legendre symbol\n if (FpLegendre(Fp, n) !== 1)\n throw new Error('Cannot find square root');\n // Initialize variables for the main loop\n let M = S;\n let c = Fp.mul(Fp.ONE, cc); // c = z^Q, move cc from field _Fp into field Fp\n let t = Fp.pow(n, Q); // t = n^Q, first guess at the fudge factor\n let R = Fp.pow(n, Q1div2); // R = n^((Q+1)/2), first guess at the square root\n // Main loop\n // while t != 1\n while (!Fp.eql(t, Fp.ONE)) {\n if (Fp.is0(t))\n return Fp.ZERO; // if t=0 return R=0\n let i = 1;\n // Find the smallest i >= 1 such that t^(2^i) ≡ 1 (mod P)\n let t_tmp = Fp.sqr(t); // t^(2^1)\n while (!Fp.eql(t_tmp, Fp.ONE)) {\n i++;\n t_tmp = Fp.sqr(t_tmp); // t^(2^2)...\n if (i === M)\n throw new Error('Cannot find square root');\n }\n // Calculate the exponent for b: 2^(M - i - 1)\n const exponent = _1n << BigInt(M - i - 1); // bigint is important\n const b = Fp.pow(c, exponent); // b = 2^(M - i - 1)\n // Update variables\n M = i;\n c = Fp.sqr(b); // c = b^2\n t = Fp.mul(t, c); // t = (t * b^2)\n R = Fp.mul(R, b); // R = R*b\n }\n return R;\n };\n}\n/**\n * Square root for a finite field. Will try optimized versions first:\n *\n * 1. P ≡ 3 (mod 4)\n * 2. P ≡ 5 (mod 8)\n * 3. Tonelli-Shanks algorithm\n *\n * Different algorithms can give different roots, it is up to user to decide which one they want.\n * For example there is FpSqrtOdd/FpSqrtEven to choice root based on oddness (used for hash-to-curve).\n */\nexport function FpSqrt(P) {\n // P ≡ 3 (mod 4) => √n = n^((P+1)/4)\n if (P % _4n === _3n)\n return sqrt3mod4;\n // P ≡ 5 (mod 8) => Atkin algorithm, page 10 of https://eprint.iacr.org/2012/685.pdf\n if (P % _8n === _5n)\n return sqrt5mod8;\n // P ≡ 9 (mod 16) not implemented, see above\n // Tonelli-Shanks algorithm\n return tonelliShanks(P);\n}\n// Little-endian check for first LE bit (last BE bit);\nexport const isNegativeLE = (num, modulo) => (mod(num, modulo) & _1n) === _1n;\n// prettier-ignore\nconst FIELD_FIELDS = [\n 'create', 'isValid', 'is0', 'neg', 'inv', 'sqrt', 'sqr',\n 'eql', 'add', 'sub', 'mul', 'pow', 'div',\n 'addN', 'subN', 'mulN', 'sqrN'\n];\nexport function validateField(field) {\n const initial = {\n ORDER: 'bigint',\n MASK: 'bigint',\n BYTES: 'isSafeInteger',\n BITS: 'isSafeInteger',\n };\n const opts = FIELD_FIELDS.reduce((map, val) => {\n map[val] = 'function';\n return map;\n }, initial);\n return validateObject(field, opts);\n}\n// Generic field functions\n/**\n * Same as `pow` but for Fp: non-constant-time.\n * Unsafe in some contexts: uses ladder, so can expose bigint bits.\n */\nexport function FpPow(Fp, num, power) {\n if (power < _0n)\n throw new Error('invalid exponent, negatives unsupported');\n if (power === _0n)\n return Fp.ONE;\n if (power === _1n)\n return num;\n let p = Fp.ONE;\n let d = num;\n while (power > _0n) {\n if (power & _1n)\n p = Fp.mul(p, d);\n d = Fp.sqr(d);\n power >>= _1n;\n }\n return p;\n}\n/**\n * Efficiently invert an array of Field elements.\n * Exception-free. Will return `undefined` for 0 elements.\n * @param passZero map 0 to 0 (instead of undefined)\n */\nexport function FpInvertBatch(Fp, nums, passZero = false) {\n const inverted = new Array(nums.length).fill(passZero ? Fp.ZERO : undefined);\n // Walk from first to last, multiply them by each other MOD p\n const multipliedAcc = nums.reduce((acc, num, i) => {\n if (Fp.is0(num))\n return acc;\n inverted[i] = acc;\n return Fp.mul(acc, num);\n }, Fp.ONE);\n // Invert last element\n const invertedAcc = Fp.inv(multipliedAcc);\n // Walk from last to first, multiply them by inverted each other MOD p\n nums.reduceRight((acc, num, i) => {\n if (Fp.is0(num))\n return acc;\n inverted[i] = Fp.mul(acc, inverted[i]);\n return Fp.mul(acc, num);\n }, invertedAcc);\n return inverted;\n}\n// TODO: remove\nexport function FpDiv(Fp, lhs, rhs) {\n return Fp.mul(lhs, typeof rhs === 'bigint' ? invert(rhs, Fp.ORDER) : Fp.inv(rhs));\n}\n/**\n * Legendre symbol.\n * Legendre constant is used to calculate Legendre symbol (a | p)\n * which denotes the value of a^((p-1)/2) (mod p).\n *\n * * (a | p) ≡ 1 if a is a square (mod p), quadratic residue\n * * (a | p) ≡ -1 if a is not a square (mod p), quadratic non residue\n * * (a | p) ≡ 0 if a ≡ 0 (mod p)\n */\nexport function FpLegendre(Fp, n) {\n // We can use 3rd argument as optional cache of this value\n // but seems unneeded for now. The operation is very fast.\n const p1mod2 = (Fp.ORDER - _1n) / _2n;\n const powered = Fp.pow(n, p1mod2);\n const yes = Fp.eql(powered, Fp.ONE);\n const zero = Fp.eql(powered, Fp.ZERO);\n const no = Fp.eql(powered, Fp.neg(Fp.ONE));\n if (!yes && !zero && !no)\n throw new Error('invalid Legendre symbol result');\n return yes ? 1 : zero ? 0 : -1;\n}\n// This function returns True whenever the value x is a square in the field F.\nexport function FpIsSquare(Fp, n) {\n const l = FpLegendre(Fp, n);\n return l === 1;\n}\n// CURVE.n lengths\nexport function nLength(n, nBitLength) {\n // Bit size, byte size of CURVE.n\n if (nBitLength !== undefined)\n anumber(nBitLength);\n const _nBitLength = nBitLength !== undefined ? nBitLength : n.toString(2).length;\n const nByteLength = Math.ceil(_nBitLength / 8);\n return { nBitLength: _nBitLength, nByteLength };\n}\n/**\n * Initializes a finite field over prime.\n * Major performance optimizations:\n * * a) denormalized operations like mulN instead of mul\n * * b) same object shape: never add or remove keys\n * * c) Object.freeze\n * Fragile: always run a benchmark on a change.\n * Security note: operations don't check 'isValid' for all elements for performance reasons,\n * it is caller responsibility to check this.\n * This is low-level code, please make sure you know what you're doing.\n * @param ORDER prime positive bigint\n * @param bitLen how many bits the field consumes\n * @param isLE (def: false) if encoding / decoding should be in little-endian\n * @param redef optional faster redefinitions of sqrt and other methods\n */\nexport function Field(ORDER, bitLen, isLE = false, redef = {}) {\n if (ORDER <= _0n)\n throw new Error('invalid field: expected ORDER > 0, got ' + ORDER);\n const { nBitLength: BITS, nByteLength: BYTES } = nLength(ORDER, bitLen);\n if (BYTES > 2048)\n throw new Error('invalid field: expected ORDER of <= 2048 bytes');\n let sqrtP; // cached sqrtP\n const f = Object.freeze({\n ORDER,\n isLE,\n BITS,\n BYTES,\n MASK: bitMask(BITS),\n ZERO: _0n,\n ONE: _1n,\n create: (num) => mod(num, ORDER),\n isValid: (num) => {\n if (typeof num !== 'bigint')\n throw new Error('invalid field element: expected bigint, got ' + typeof num);\n return _0n <= num && num < ORDER; // 0 is valid element, but it's not invertible\n },\n is0: (num) => num === _0n,\n isOdd: (num) => (num & _1n) === _1n,\n neg: (num) => mod(-num, ORDER),\n eql: (lhs, rhs) => lhs === rhs,\n sqr: (num) => mod(num * num, ORDER),\n add: (lhs, rhs) => mod(lhs + rhs, ORDER),\n sub: (lhs, rhs) => mod(lhs - rhs, ORDER),\n mul: (lhs, rhs) => mod(lhs * rhs, ORDER),\n pow: (num, power) => FpPow(f, num, power),\n div: (lhs, rhs) => mod(lhs * invert(rhs, ORDER), ORDER),\n // Same as above, but doesn't normalize\n sqrN: (num) => num * num,\n addN: (lhs, rhs) => lhs + rhs,\n subN: (lhs, rhs) => lhs - rhs,\n mulN: (lhs, rhs) => lhs * rhs,\n inv: (num) => invert(num, ORDER),\n sqrt: redef.sqrt ||\n ((n) => {\n if (!sqrtP)\n sqrtP = FpSqrt(ORDER);\n return sqrtP(f, n);\n }),\n toBytes: (num) => (isLE ? numberToBytesLE(num, BYTES) : numberToBytesBE(num, BYTES)),\n fromBytes: (bytes) => {\n if (bytes.length !== BYTES)\n throw new Error('Field.fromBytes: expected ' + BYTES + ' bytes, got ' + bytes.length);\n return isLE ? bytesToNumberLE(bytes) : bytesToNumberBE(bytes);\n },\n // TODO: we don't need it here, move out to separate fn\n invertBatch: (lst) => FpInvertBatch(f, lst),\n // We can't move this out because Fp6, Fp12 implement it\n // and it's unclear what to return in there.\n cmov: (a, b, c) => (c ? b : a),\n });\n return Object.freeze(f);\n}\nexport function FpSqrtOdd(Fp, elm) {\n if (!Fp.isOdd)\n throw new Error(\"Field doesn't have isOdd\");\n const root = Fp.sqrt(elm);\n return Fp.isOdd(root) ? root : Fp.neg(root);\n}\nexport function FpSqrtEven(Fp, elm) {\n if (!Fp.isOdd)\n throw new Error(\"Field doesn't have isOdd\");\n const root = Fp.sqrt(elm);\n return Fp.isOdd(root) ? Fp.neg(root) : root;\n}\n/**\n * \"Constant-time\" private key generation utility.\n * Same as mapKeyToField, but accepts less bytes (40 instead of 48 for 32-byte field).\n * Which makes it slightly more biased, less secure.\n * @deprecated use `mapKeyToField` instead\n */\nexport function hashToPrivateScalar(hash, groupOrder, isLE = false) {\n hash = ensureBytes('privateHash', hash);\n const hashLen = hash.length;\n const minLen = nLength(groupOrder).nByteLength + 8;\n if (minLen < 24 || hashLen < minLen || hashLen > 1024)\n throw new Error('hashToPrivateScalar: expected ' + minLen + '-1024 bytes of input, got ' + hashLen);\n const num = isLE ? bytesToNumberLE(hash) : bytesToNumberBE(hash);\n return mod(num, groupOrder - _1n) + _1n;\n}\n/**\n * Returns total number of bytes consumed by the field element.\n * For example, 32 bytes for usual 256-bit weierstrass curve.\n * @param fieldOrder number of field elements, usually CURVE.n\n * @returns byte length of field\n */\nexport function getFieldBytesLength(fieldOrder) {\n if (typeof fieldOrder !== 'bigint')\n throw new Error('field order must be bigint');\n const bitLength = fieldOrder.toString(2).length;\n return Math.ceil(bitLength / 8);\n}\n/**\n * Returns minimal amount of bytes that can be safely reduced\n * by field order.\n * Should be 2^-128 for 128-bit curve such as P256.\n * @param fieldOrder number of field elements, usually CURVE.n\n * @returns byte length of target hash\n */\nexport function getMinHashLength(fieldOrder) {\n const length = getFieldBytesLength(fieldOrder);\n return length + Math.ceil(length / 2);\n}\n/**\n * \"Constant-time\" private key generation utility.\n * Can take (n + n/2) or more bytes of uniform input e.g. from CSPRNG or KDF\n * and convert them into private scalar, with the modulo bias being negligible.\n * Needs at least 48 bytes of input for 32-byte private key.\n * https://research.kudelskisecurity.com/2020/07/28/the-definitive-guide-to-modulo-bias-and-how-to-avoid-it/\n * FIPS 186-5, A.2 https://csrc.nist.gov/publications/detail/fips/186/5/final\n * RFC 9380, https://www.rfc-editor.org/rfc/rfc9380#section-5\n * @param hash hash output from SHA3 or a similar function\n * @param groupOrder size of subgroup - (e.g. secp256k1.CURVE.n)\n * @param isLE interpret hash bytes as LE num\n * @returns valid private scalar\n */\nexport function mapHashToField(key, fieldOrder, isLE = false) {\n const len = key.length;\n const fieldLen = getFieldBytesLength(fieldOrder);\n const minLen = getMinHashLength(fieldOrder);\n // No small numbers: need to understand bias story. No huge numbers: easier to detect JS timings.\n if (len < 16 || len < minLen || len > 1024)\n throw new Error('expected ' + minLen + '-1024 bytes of input, got ' + len);\n const num = isLE ? bytesToNumberLE(key) : bytesToNumberBE(key);\n // `mod(x, 11)` can sometimes produce 0. `mod(x, 10) + 1` is the same, but no 0\n const reduced = mod(num, fieldOrder - _1n) + _1n;\n return isLE ? numberToBytesLE(reduced, fieldLen) : numberToBytesBE(reduced, fieldLen);\n}\n//# sourceMappingURL=modular.js.map","/**\n * Methods for elliptic curve multiplication by scalars.\n * Contains wNAF, pippenger\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { nLength, validateField } from \"./modular.js\";\nimport { bitLen, bitMask, validateObject } from \"./utils.js\";\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nfunction constTimeNegate(condition, item) {\n const neg = item.negate();\n return condition ? neg : item;\n}\nfunction validateW(W, bits) {\n if (!Number.isSafeInteger(W) || W <= 0 || W > bits)\n throw new Error('invalid window size, expected [1..' + bits + '], got W=' + W);\n}\nfunction calcWOpts(W, scalarBits) {\n validateW(W, scalarBits);\n const windows = Math.ceil(scalarBits / W) + 1; // W=8 33. Not 32, because we skip zero\n const windowSize = 2 ** (W - 1); // W=8 128. Not 256, because we skip zero\n const maxNumber = 2 ** W; // W=8 256\n const mask = bitMask(W); // W=8 255 == mask 0b11111111\n const shiftBy = BigInt(W); // W=8 8\n return { windows, windowSize, mask, maxNumber, shiftBy };\n}\nfunction calcOffsets(n, window, wOpts) {\n const { windowSize, mask, maxNumber, shiftBy } = wOpts;\n let wbits = Number(n & mask); // extract W bits.\n let nextN = n >> shiftBy; // shift number by W bits.\n // What actually happens here:\n // const highestBit = Number(mask ^ (mask >> 1n));\n // let wbits2 = wbits - 1; // skip zero\n // if (wbits2 & highestBit) { wbits2 ^= Number(mask); // (~);\n // split if bits > max: +224 => 256-32\n if (wbits > windowSize) {\n // we skip zero, which means instead of `>= size-1`, we do `> size`\n wbits -= maxNumber; // -32, can be maxNumber - wbits, but then we need to set isNeg here.\n nextN += _1n; // +256 (carry)\n }\n const offsetStart = window * windowSize;\n const offset = offsetStart + Math.abs(wbits) - 1; // -1 because we skip zero\n const isZero = wbits === 0; // is current window slice a 0?\n const isNeg = wbits < 0; // is current window slice negative?\n const isNegF = window % 2 !== 0; // fake random statement for noise\n const offsetF = offsetStart; // fake offset for noise\n return { nextN, offset, isZero, isNeg, isNegF, offsetF };\n}\nfunction validateMSMPoints(points, c) {\n if (!Array.isArray(points))\n throw new Error('array expected');\n points.forEach((p, i) => {\n if (!(p instanceof c))\n throw new Error('invalid point at index ' + i);\n });\n}\nfunction validateMSMScalars(scalars, field) {\n if (!Array.isArray(scalars))\n throw new Error('array of scalars expected');\n scalars.forEach((s, i) => {\n if (!field.isValid(s))\n throw new Error('invalid scalar at index ' + i);\n });\n}\n// Since points in different groups cannot be equal (different object constructor),\n// we can have single place to store precomputes.\n// Allows to make points frozen / immutable.\nconst pointPrecomputes = new WeakMap();\nconst pointWindowSizes = new WeakMap();\nfunction getW(P) {\n return pointWindowSizes.get(P) || 1;\n}\n/**\n * Elliptic curve multiplication of Point by scalar. Fragile.\n * Scalars should always be less than curve order: this should be checked inside of a curve itself.\n * Creates precomputation tables for fast multiplication:\n * - private scalar is split by fixed size windows of W bits\n * - every window point is collected from window's table & added to accumulator\n * - since windows are different, same point inside tables won't be accessed more than once per calc\n * - each multiplication is 'Math.ceil(CURVE_ORDER / 𝑊) + 1' point additions (fixed for any scalar)\n * - +1 window is neccessary for wNAF\n * - wNAF reduces table size: 2x less memory + 2x faster generation, but 10% slower multiplication\n *\n * @todo Research returning 2d JS array of windows, instead of a single window.\n * This would allow windows to be in different memory locations\n */\nexport function wNAF(c, bits) {\n return {\n constTimeNegate,\n hasPrecomputes(elm) {\n return getW(elm) !== 1;\n },\n // non-const time multiplication ladder\n unsafeLadder(elm, n, p = c.ZERO) {\n let d = elm;\n while (n > _0n) {\n if (n & _1n)\n p = p.add(d);\n d = d.double();\n n >>= _1n;\n }\n return p;\n },\n /**\n * Creates a wNAF precomputation window. Used for caching.\n * Default window size is set by `utils.precompute()` and is equal to 8.\n * Number of precomputed points depends on the curve size:\n * 2^(𝑊−1) * (Math.ceil(𝑛 / 𝑊) + 1), where:\n * - 𝑊 is the window size\n * - 𝑛 is the bitlength of the curve order.\n * For a 256-bit curve and window size 8, the number of precomputed points is 128 * 33 = 4224.\n * @param elm Point instance\n * @param W window size\n * @returns precomputed point tables flattened to a single array\n */\n precomputeWindow(elm, W) {\n const { windows, windowSize } = calcWOpts(W, bits);\n const points = [];\n let p = elm;\n let base = p;\n for (let window = 0; window < windows; window++) {\n base = p;\n points.push(base);\n // i=1, bc we skip 0\n for (let i = 1; i < windowSize; i++) {\n base = base.add(p);\n points.push(base);\n }\n p = base.double();\n }\n return points;\n },\n /**\n * Implements ec multiplication using precomputed tables and w-ary non-adjacent form.\n * @param W window size\n * @param precomputes precomputed tables\n * @param n scalar (we don't check here, but should be less than curve order)\n * @returns real and fake (for const-time) points\n */\n wNAF(W, precomputes, n) {\n // Smaller version:\n // https://github.com/paulmillr/noble-secp256k1/blob/47cb1669b6e506ad66b35fe7d76132ae97465da2/index.ts#L502-L541\n // TODO: check the scalar is less than group order?\n // wNAF behavior is undefined otherwise. But have to carefully remove\n // other checks before wNAF. ORDER == bits here.\n // Accumulators\n let p = c.ZERO;\n let f = c.BASE;\n // This code was first written with assumption that 'f' and 'p' will never be infinity point:\n // since each addition is multiplied by 2 ** W, it cannot cancel each other. However,\n // there is negate now: it is possible that negated element from low value\n // would be the same as high element, which will create carry into next window.\n // It's not obvious how this can fail, but still worth investigating later.\n const wo = calcWOpts(W, bits);\n for (let window = 0; window < wo.windows; window++) {\n // (n === _0n) is handled and not early-exited. isEven and offsetF are used for noise\n const { nextN, offset, isZero, isNeg, isNegF, offsetF } = calcOffsets(n, window, wo);\n n = nextN;\n if (isZero) {\n // bits are 0: add garbage to fake point\n // Important part for const-time getPublicKey: add random \"noise\" point to f.\n f = f.add(constTimeNegate(isNegF, precomputes[offsetF]));\n }\n else {\n // bits are 1: add to result point\n p = p.add(constTimeNegate(isNeg, precomputes[offset]));\n }\n }\n // Return both real and fake points: JIT won't eliminate f.\n // At this point there is a way to F be infinity-point even if p is not,\n // which makes it less const-time: around 1 bigint multiply.\n return { p, f };\n },\n /**\n * Implements ec unsafe (non const-time) multiplication using precomputed tables and w-ary non-adjacent form.\n * @param W window size\n * @param precomputes precomputed tables\n * @param n scalar (we don't check here, but should be less than curve order)\n * @param acc accumulator point to add result of multiplication\n * @returns point\n */\n wNAFUnsafe(W, precomputes, n, acc = c.ZERO) {\n const wo = calcWOpts(W, bits);\n for (let window = 0; window < wo.windows; window++) {\n if (n === _0n)\n break; // Early-exit, skip 0 value\n const { nextN, offset, isZero, isNeg } = calcOffsets(n, window, wo);\n n = nextN;\n if (isZero) {\n // Window bits are 0: skip processing.\n // Move to next window.\n continue;\n }\n else {\n const item = precomputes[offset];\n acc = acc.add(isNeg ? item.negate() : item); // Re-using acc allows to save adds in MSM\n }\n }\n return acc;\n },\n getPrecomputes(W, P, transform) {\n // Calculate precomputes on a first run, reuse them after\n let comp = pointPrecomputes.get(P);\n if (!comp) {\n comp = this.precomputeWindow(P, W);\n if (W !== 1)\n pointPrecomputes.set(P, transform(comp));\n }\n return comp;\n },\n wNAFCached(P, n, transform) {\n const W = getW(P);\n return this.wNAF(W, this.getPrecomputes(W, P, transform), n);\n },\n wNAFCachedUnsafe(P, n, transform, prev) {\n const W = getW(P);\n if (W === 1)\n return this.unsafeLadder(P, n, prev); // For W=1 ladder is ~x2 faster\n return this.wNAFUnsafe(W, this.getPrecomputes(W, P, transform), n, prev);\n },\n // We calculate precomputes for elliptic curve point multiplication\n // using windowed method. This specifies window size and\n // stores precomputed values. Usually only base point would be precomputed.\n setWindowSize(P, W) {\n validateW(W, bits);\n pointWindowSizes.set(P, W);\n pointPrecomputes.delete(P);\n },\n };\n}\n/**\n * Pippenger algorithm for multi-scalar multiplication (MSM, Pa + Qb + Rc + ...).\n * 30x faster vs naive addition on L=4096, 10x faster than precomputes.\n * For N=254bit, L=1, it does: 1024 ADD + 254 DBL. For L=5: 1536 ADD + 254 DBL.\n * Algorithmically constant-time (for same L), even when 1 point + scalar, or when scalar = 0.\n * @param c Curve Point constructor\n * @param fieldN field over CURVE.N - important that it's not over CURVE.P\n * @param points array of L curve points\n * @param scalars array of L scalars (aka private keys / bigints)\n */\nexport function pippenger(c, fieldN, points, scalars) {\n // If we split scalars by some window (let's say 8 bits), every chunk will only\n // take 256 buckets even if there are 4096 scalars, also re-uses double.\n // TODO:\n // - https://eprint.iacr.org/2024/750.pdf\n // - https://tches.iacr.org/index.php/TCHES/article/view/10287\n // 0 is accepted in scalars\n validateMSMPoints(points, c);\n validateMSMScalars(scalars, fieldN);\n const plength = points.length;\n const slength = scalars.length;\n if (plength !== slength)\n throw new Error('arrays of points and scalars must have equal length');\n // if (plength === 0) throw new Error('array must be of length >= 2');\n const zero = c.ZERO;\n const wbits = bitLen(BigInt(plength));\n let windowSize = 1; // bits\n if (wbits > 12)\n windowSize = wbits - 3;\n else if (wbits > 4)\n windowSize = wbits - 2;\n else if (wbits > 0)\n windowSize = 2;\n const MASK = bitMask(windowSize);\n const buckets = new Array(Number(MASK) + 1).fill(zero); // +1 for zero array\n const lastBits = Math.floor((fieldN.BITS - 1) / windowSize) * windowSize;\n let sum = zero;\n for (let i = lastBits; i >= 0; i -= windowSize) {\n buckets.fill(zero);\n for (let j = 0; j < slength; j++) {\n const scalar = scalars[j];\n const wbits = Number((scalar >> BigInt(i)) & MASK);\n buckets[wbits] = buckets[wbits].add(points[j]);\n }\n let resI = zero; // not using this will do small speed-up, but will lose ct\n // Skip first bucket, because it is zero\n for (let j = buckets.length - 1, sumI = zero; j > 0; j--) {\n sumI = sumI.add(buckets[j]);\n resI = resI.add(sumI);\n }\n sum = sum.add(resI);\n if (i !== 0)\n for (let j = 0; j < windowSize; j++)\n sum = sum.double();\n }\n return sum;\n}\n/**\n * Precomputed multi-scalar multiplication (MSM, Pa + Qb + Rc + ...).\n * @param c Curve Point constructor\n * @param fieldN field over CURVE.N - important that it's not over CURVE.P\n * @param points array of L curve points\n * @returns function which multiplies points with scaars\n */\nexport function precomputeMSMUnsafe(c, fieldN, points, windowSize) {\n /**\n * Performance Analysis of Window-based Precomputation\n *\n * Base Case (256-bit scalar, 8-bit window):\n * - Standard precomputation requires:\n * - 31 additions per scalar × 256 scalars = 7,936 ops\n * - Plus 255 summary additions = 8,191 total ops\n * Note: Summary additions can be optimized via accumulator\n *\n * Chunked Precomputation Analysis:\n * - Using 32 chunks requires:\n * - 255 additions per chunk\n * - 256 doublings\n * - Total: (255 × 32) + 256 = 8,416 ops\n *\n * Memory Usage Comparison:\n * Window Size | Standard Points | Chunked Points\n * ------------|-----------------|---------------\n * 4-bit | 520 | 15\n * 8-bit | 4,224 | 255\n * 10-bit | 13,824 | 1,023\n * 16-bit | 557,056 | 65,535\n *\n * Key Advantages:\n * 1. Enables larger window sizes due to reduced memory overhead\n * 2. More efficient for smaller scalar counts:\n * - 16 chunks: (16 × 255) + 256 = 4,336 ops\n * - ~2x faster than standard 8,191 ops\n *\n * Limitations:\n * - Not suitable for plain precomputes (requires 256 constant doublings)\n * - Performance degrades with larger scalar counts:\n * - Optimal for ~256 scalars\n * - Less efficient for 4096+ scalars (Pippenger preferred)\n */\n validateW(windowSize, fieldN.BITS);\n validateMSMPoints(points, c);\n const zero = c.ZERO;\n const tableSize = 2 ** windowSize - 1; // table size (without zero)\n const chunks = Math.ceil(fieldN.BITS / windowSize); // chunks of item\n const MASK = bitMask(windowSize);\n const tables = points.map((p) => {\n const res = [];\n for (let i = 0, acc = p; i < tableSize; i++) {\n res.push(acc);\n acc = acc.add(p);\n }\n return res;\n });\n return (scalars) => {\n validateMSMScalars(scalars, fieldN);\n if (scalars.length > points.length)\n throw new Error('array of scalars must be smaller than array of points');\n let res = zero;\n for (let i = 0; i < chunks; i++) {\n // No need to double if accumulator is still zero.\n if (res !== zero)\n for (let j = 0; j < windowSize; j++)\n res = res.double();\n const shiftBy = BigInt(chunks * windowSize - (i + 1) * windowSize);\n for (let j = 0; j < scalars.length; j++) {\n const n = scalars[j];\n const curr = Number((n >> shiftBy) & MASK);\n if (!curr)\n continue; // skip zero scalars chunks\n res = res.add(tables[j][curr - 1]);\n }\n }\n return res;\n };\n}\nexport function validateBasic(curve) {\n validateField(curve.Fp);\n validateObject(curve, {\n n: 'bigint',\n h: 'bigint',\n Gx: 'field',\n Gy: 'field',\n }, {\n nBitLength: 'isSafeInteger',\n nByteLength: 'isSafeInteger',\n });\n // Set defaults\n return Object.freeze({\n ...nLength(curve.n, curve.nBitLength),\n ...curve,\n ...{ p: curve.Fp.ORDER },\n });\n}\n//# sourceMappingURL=curve.js.map","/**\n * Short Weierstrass curve methods. The formula is: y² = x³ + ax + b.\n *\n * ### Parameters\n *\n * To initialize a weierstrass curve, one needs to pass following params:\n *\n * * a: formula param\n * * b: formula param\n * * Fp: finite field of prime characteristic P; may be complex (Fp2). Arithmetics is done in field\n * * n: order of prime subgroup a.k.a total amount of valid curve points\n * * Gx: Base point (x, y) aka generator point. Gx = x coordinate\n * * Gy: ...y coordinate\n * * h: cofactor, usually 1. h*n = curve group order (n is only subgroup order)\n * * lowS: whether to enable (default) or disable \"low-s\" non-malleable signatures\n *\n * ### Design rationale for types\n *\n * * Interaction between classes from different curves should fail:\n * `k256.Point.BASE.add(p256.Point.BASE)`\n * * For this purpose we want to use `instanceof` operator, which is fast and works during runtime\n * * Different calls of `curve()` would return different classes -\n * `curve(params) !== curve(params)`: if somebody decided to monkey-patch their curve,\n * it won't affect others\n *\n * TypeScript can't infer types for classes created inside a function. Classes is one instance\n * of nominative types in TypeScript and interfaces only check for shape, so it's hard to create\n * unique type for every function call.\n *\n * We can use generic types via some param, like curve opts, but that would:\n * 1. Enable interaction between `curve(params)` and `curve(params)` (curves of same params)\n * which is hard to debug.\n * 2. Params can be generic and we can't enforce them to be constant value:\n * if somebody creates curve from non-constant params,\n * it would be allowed to interact with other curves with non-constant params\n *\n * @todo https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-7.html#unique-symbol\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// prettier-ignore\nimport { pippenger, validateBasic, wNAF } from \"./curve.js\";\n// prettier-ignore\nimport { Field, FpInvertBatch, getMinHashLength, invert, mapHashToField, mod, validateField } from \"./modular.js\";\n// prettier-ignore\nimport { aInRange, abool, bitMask, bytesToHex, bytesToNumberBE, concatBytes, createHmacDrbg, ensureBytes, hexToBytes, inRange, isBytes, memoized, numberToBytesBE, numberToHexUnpadded, validateObject } from \"./utils.js\";\nfunction validateSigVerOpts(opts) {\n if (opts.lowS !== undefined)\n abool('lowS', opts.lowS);\n if (opts.prehash !== undefined)\n abool('prehash', opts.prehash);\n}\nfunction validatePointOpts(curve) {\n const opts = validateBasic(curve);\n validateObject(opts, {\n a: 'field',\n b: 'field',\n }, {\n allowInfinityPoint: 'boolean',\n allowedPrivateKeyLengths: 'array',\n clearCofactor: 'function',\n fromBytes: 'function',\n isTorsionFree: 'function',\n toBytes: 'function',\n wrapPrivateKey: 'boolean',\n });\n const { endo, Fp, a } = opts;\n if (endo) {\n if (!Fp.eql(a, Fp.ZERO)) {\n throw new Error('invalid endo: CURVE.a must be 0');\n }\n if (typeof endo !== 'object' ||\n typeof endo.beta !== 'bigint' ||\n typeof endo.splitScalar !== 'function') {\n throw new Error('invalid endo: expected \"beta\": bigint and \"splitScalar\": function');\n }\n }\n return Object.freeze({ ...opts });\n}\nexport class DERErr extends Error {\n constructor(m = '') {\n super(m);\n }\n}\n/**\n * ASN.1 DER encoding utilities. ASN is very complex & fragile. Format:\n *\n * [0x30 (SEQUENCE), bytelength, 0x02 (INTEGER), intLength, R, 0x02 (INTEGER), intLength, S]\n *\n * Docs: https://letsencrypt.org/docs/a-warm-welcome-to-asn1-and-der/, https://luca.ntop.org/Teaching/Appunti/asn1.html\n */\nexport const DER = {\n // asn.1 DER encoding utils\n Err: DERErr,\n // Basic building block is TLV (Tag-Length-Value)\n _tlv: {\n encode: (tag, data) => {\n const { Err: E } = DER;\n if (tag < 0 || tag > 256)\n throw new E('tlv.encode: wrong tag');\n if (data.length & 1)\n throw new E('tlv.encode: unpadded data');\n const dataLen = data.length / 2;\n const len = numberToHexUnpadded(dataLen);\n if ((len.length / 2) & 128)\n throw new E('tlv.encode: long form length too big');\n // length of length with long form flag\n const lenLen = dataLen > 127 ? numberToHexUnpadded((len.length / 2) | 128) : '';\n const t = numberToHexUnpadded(tag);\n return t + lenLen + len + data;\n },\n // v - value, l - left bytes (unparsed)\n decode(tag, data) {\n const { Err: E } = DER;\n let pos = 0;\n if (tag < 0 || tag > 256)\n throw new E('tlv.encode: wrong tag');\n if (data.length < 2 || data[pos++] !== tag)\n throw new E('tlv.decode: wrong tlv');\n const first = data[pos++];\n const isLong = !!(first & 128); // First bit of first length byte is flag for short/long form\n let length = 0;\n if (!isLong)\n length = first;\n else {\n // Long form: [longFlag(1bit), lengthLength(7bit), length (BE)]\n const lenLen = first & 127;\n if (!lenLen)\n throw new E('tlv.decode(long): indefinite length not supported');\n if (lenLen > 4)\n throw new E('tlv.decode(long): byte length is too big'); // this will overflow u32 in js\n const lengthBytes = data.subarray(pos, pos + lenLen);\n if (lengthBytes.length !== lenLen)\n throw new E('tlv.decode: length bytes not complete');\n if (lengthBytes[0] === 0)\n throw new E('tlv.decode(long): zero leftmost byte');\n for (const b of lengthBytes)\n length = (length << 8) | b;\n pos += lenLen;\n if (length < 128)\n throw new E('tlv.decode(long): not minimal encoding');\n }\n const v = data.subarray(pos, pos + length);\n if (v.length !== length)\n throw new E('tlv.decode: wrong value length');\n return { v, l: data.subarray(pos + length) };\n },\n },\n // https://crypto.stackexchange.com/a/57734 Leftmost bit of first byte is 'negative' flag,\n // since we always use positive integers here. It must always be empty:\n // - add zero byte if exists\n // - if next byte doesn't have a flag, leading zero is not allowed (minimal encoding)\n _int: {\n encode(num) {\n const { Err: E } = DER;\n if (num < _0n)\n throw new E('integer: negative integers are not allowed');\n let hex = numberToHexUnpadded(num);\n // Pad with zero byte if negative flag is present\n if (Number.parseInt(hex[0], 16) & 0b1000)\n hex = '00' + hex;\n if (hex.length & 1)\n throw new E('unexpected DER parsing assertion: unpadded hex');\n return hex;\n },\n decode(data) {\n const { Err: E } = DER;\n if (data[0] & 128)\n throw new E('invalid signature integer: negative');\n if (data[0] === 0x00 && !(data[1] & 128))\n throw new E('invalid signature integer: unnecessary leading zero');\n return bytesToNumberBE(data);\n },\n },\n toSig(hex) {\n // parse DER signature\n const { Err: E, _int: int, _tlv: tlv } = DER;\n const data = ensureBytes('signature', hex);\n const { v: seqBytes, l: seqLeftBytes } = tlv.decode(0x30, data);\n if (seqLeftBytes.length)\n throw new E('invalid signature: left bytes after parsing');\n const { v: rBytes, l: rLeftBytes } = tlv.decode(0x02, seqBytes);\n const { v: sBytes, l: sLeftBytes } = tlv.decode(0x02, rLeftBytes);\n if (sLeftBytes.length)\n throw new E('invalid signature: left bytes after parsing');\n return { r: int.decode(rBytes), s: int.decode(sBytes) };\n },\n hexFromSig(sig) {\n const { _tlv: tlv, _int: int } = DER;\n const rs = tlv.encode(0x02, int.encode(sig.r));\n const ss = tlv.encode(0x02, int.encode(sig.s));\n const seq = rs + ss;\n return tlv.encode(0x30, seq);\n },\n};\nfunction numToSizedHex(num, size) {\n return bytesToHex(numberToBytesBE(num, size));\n}\n// Be friendly to bad ECMAScript parsers by not using bigint literals\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = BigInt(2), _3n = BigInt(3), _4n = BigInt(4);\nexport function weierstrassPoints(opts) {\n const CURVE = validatePointOpts(opts);\n const { Fp } = CURVE; // All curves has same field / group length as for now, but they can differ\n const Fn = Field(CURVE.n, CURVE.nBitLength);\n const toBytes = CURVE.toBytes ||\n ((_c, point, _isCompressed) => {\n const a = point.toAffine();\n return concatBytes(Uint8Array.from([0x04]), Fp.toBytes(a.x), Fp.toBytes(a.y));\n });\n const fromBytes = CURVE.fromBytes ||\n ((bytes) => {\n // const head = bytes[0];\n const tail = bytes.subarray(1);\n // if (head !== 0x04) throw new Error('Only non-compressed encoding is supported');\n const x = Fp.fromBytes(tail.subarray(0, Fp.BYTES));\n const y = Fp.fromBytes(tail.subarray(Fp.BYTES, 2 * Fp.BYTES));\n return { x, y };\n });\n /**\n * y² = x³ + ax + b: Short weierstrass curve formula. Takes x, returns y².\n * @returns y²\n */\n function weierstrassEquation(x) {\n const { a, b } = CURVE;\n const x2 = Fp.sqr(x); // x * x\n const x3 = Fp.mul(x2, x); // x² * x\n return Fp.add(Fp.add(x3, Fp.mul(x, a)), b); // x³ + a * x + b\n }\n function isValidXY(x, y) {\n const left = Fp.sqr(y); // y²\n const right = weierstrassEquation(x); // x³ + ax + b\n return Fp.eql(left, right);\n }\n // Validate whether the passed curve params are valid.\n // Test 1: equation y² = x³ + ax + b should work for generator point.\n if (!isValidXY(CURVE.Gx, CURVE.Gy))\n throw new Error('bad curve params: generator point');\n // Test 2: discriminant Δ part should be non-zero: 4a³ + 27b² != 0.\n // Guarantees curve is genus-1, smooth (non-singular).\n const _4a3 = Fp.mul(Fp.pow(CURVE.a, _3n), _4n);\n const _27b2 = Fp.mul(Fp.sqr(CURVE.b), BigInt(27));\n if (Fp.is0(Fp.add(_4a3, _27b2)))\n throw new Error('bad curve params: a or b');\n // Valid group elements reside in range 1..n-1\n function isWithinCurveOrder(num) {\n return inRange(num, _1n, CURVE.n);\n }\n // Validates if priv key is valid and converts it to bigint.\n // Supports options allowedPrivateKeyLengths and wrapPrivateKey.\n function normPrivateKeyToScalar(key) {\n const { allowedPrivateKeyLengths: lengths, nByteLength, wrapPrivateKey, n: N } = CURVE;\n if (lengths && typeof key !== 'bigint') {\n if (isBytes(key))\n key = bytesToHex(key);\n // Normalize to hex string, pad. E.g. P521 would norm 130-132 char hex to 132-char bytes\n if (typeof key !== 'string' || !lengths.includes(key.length))\n throw new Error('invalid private key');\n key = key.padStart(nByteLength * 2, '0');\n }\n let num;\n try {\n num =\n typeof key === 'bigint'\n ? key\n : bytesToNumberBE(ensureBytes('private key', key, nByteLength));\n }\n catch (error) {\n throw new Error('invalid private key, expected hex or ' + nByteLength + ' bytes, got ' + typeof key);\n }\n if (wrapPrivateKey)\n num = mod(num, N); // disabled by default, enabled for BLS\n aInRange('private key', num, _1n, N); // num in range [1..N-1]\n return num;\n }\n function aprjpoint(other) {\n if (!(other instanceof Point))\n throw new Error('ProjectivePoint expected');\n }\n // Memoized toAffine / validity check. They are heavy. Points are immutable.\n // Converts Projective point to affine (x, y) coordinates.\n // Can accept precomputed Z^-1 - for example, from invertBatch.\n // (X, Y, Z) ∋ (x=X/Z, y=Y/Z)\n const toAffineMemo = memoized((p, iz) => {\n const { px: x, py: y, pz: z } = p;\n // Fast-path for normalized points\n if (Fp.eql(z, Fp.ONE))\n return { x, y };\n const is0 = p.is0();\n // If invZ was 0, we return zero point. However we still want to execute\n // all operations, so we replace invZ with a random number, 1.\n if (iz == null)\n iz = is0 ? Fp.ONE : Fp.inv(z);\n const ax = Fp.mul(x, iz);\n const ay = Fp.mul(y, iz);\n const zz = Fp.mul(z, iz);\n if (is0)\n return { x: Fp.ZERO, y: Fp.ZERO };\n if (!Fp.eql(zz, Fp.ONE))\n throw new Error('invZ was invalid');\n return { x: ax, y: ay };\n });\n // NOTE: on exception this will crash 'cached' and no value will be set.\n // Otherwise true will be return\n const assertValidMemo = memoized((p) => {\n if (p.is0()) {\n // (0, 1, 0) aka ZERO is invalid in most contexts.\n // In BLS, ZERO can be serialized, so we allow it.\n // (0, 0, 0) is invalid representation of ZERO.\n if (CURVE.allowInfinityPoint && !Fp.is0(p.py))\n return;\n throw new Error('bad point: ZERO');\n }\n // Some 3rd-party test vectors require different wording between here & `fromCompressedHex`\n const { x, y } = p.toAffine();\n // Check if x, y are valid field elements\n if (!Fp.isValid(x) || !Fp.isValid(y))\n throw new Error('bad point: x or y not FE');\n if (!isValidXY(x, y))\n throw new Error('bad point: equation left != right');\n if (!p.isTorsionFree())\n throw new Error('bad point: not in prime-order subgroup');\n return true;\n });\n /**\n * Projective Point works in 3d / projective (homogeneous) coordinates: (X, Y, Z) ∋ (x=X/Z, y=Y/Z)\n * Default Point works in 2d / affine coordinates: (x, y)\n * We're doing calculations in projective, because its operations don't require costly inversion.\n */\n class Point {\n constructor(px, py, pz) {\n if (px == null || !Fp.isValid(px))\n throw new Error('x required');\n if (py == null || !Fp.isValid(py) || Fp.is0(py))\n throw new Error('y required');\n if (pz == null || !Fp.isValid(pz))\n throw new Error('z required');\n this.px = px;\n this.py = py;\n this.pz = pz;\n Object.freeze(this);\n }\n // Does not validate if the point is on-curve.\n // Use fromHex instead, or call assertValidity() later.\n static fromAffine(p) {\n const { x, y } = p || {};\n if (!p || !Fp.isValid(x) || !Fp.isValid(y))\n throw new Error('invalid affine point');\n if (p instanceof Point)\n throw new Error('projective point not allowed');\n const is0 = (i) => Fp.eql(i, Fp.ZERO);\n // fromAffine(x:0, y:0) would produce (x:0, y:0, z:1), but we need (x:0, y:1, z:0)\n if (is0(x) && is0(y))\n return Point.ZERO;\n return new Point(x, y, Fp.ONE);\n }\n get x() {\n return this.toAffine().x;\n }\n get y() {\n return this.toAffine().y;\n }\n /**\n * Takes a bunch of Projective Points but executes only one\n * inversion on all of them. Inversion is very slow operation,\n * so this improves performance massively.\n * Optimization: converts a list of projective points to a list of identical points with Z=1.\n */\n static normalizeZ(points) {\n const toInv = FpInvertBatch(Fp, points.map((p) => p.pz));\n return points.map((p, i) => p.toAffine(toInv[i])).map(Point.fromAffine);\n }\n /**\n * Converts hash string or Uint8Array to Point.\n * @param hex short/long ECDSA hex\n */\n static fromHex(hex) {\n const P = Point.fromAffine(fromBytes(ensureBytes('pointHex', hex)));\n P.assertValidity();\n return P;\n }\n // Multiplies generator point by privateKey.\n static fromPrivateKey(privateKey) {\n return Point.BASE.multiply(normPrivateKeyToScalar(privateKey));\n }\n // Multiscalar Multiplication\n static msm(points, scalars) {\n return pippenger(Point, Fn, points, scalars);\n }\n // \"Private method\", don't use it directly\n _setWindowSize(windowSize) {\n wnaf.setWindowSize(this, windowSize);\n }\n // A point on curve is valid if it conforms to equation.\n assertValidity() {\n assertValidMemo(this);\n }\n hasEvenY() {\n const { y } = this.toAffine();\n if (Fp.isOdd)\n return !Fp.isOdd(y);\n throw new Error(\"Field doesn't support isOdd\");\n }\n /**\n * Compare one point to another.\n */\n equals(other) {\n aprjpoint(other);\n const { px: X1, py: Y1, pz: Z1 } = this;\n const { px: X2, py: Y2, pz: Z2 } = other;\n const U1 = Fp.eql(Fp.mul(X1, Z2), Fp.mul(X2, Z1));\n const U2 = Fp.eql(Fp.mul(Y1, Z2), Fp.mul(Y2, Z1));\n return U1 && U2;\n }\n /**\n * Flips point to one corresponding to (x, -y) in Affine coordinates.\n */\n negate() {\n return new Point(this.px, Fp.neg(this.py), this.pz);\n }\n // Renes-Costello-Batina exception-free doubling formula.\n // There is 30% faster Jacobian formula, but it is not complete.\n // https://eprint.iacr.org/2015/1060, algorithm 3\n // Cost: 8M + 3S + 3*a + 2*b3 + 15add.\n double() {\n const { a, b } = CURVE;\n const b3 = Fp.mul(b, _3n);\n const { px: X1, py: Y1, pz: Z1 } = this;\n let X3 = Fp.ZERO, Y3 = Fp.ZERO, Z3 = Fp.ZERO; // prettier-ignore\n let t0 = Fp.mul(X1, X1); // step 1\n let t1 = Fp.mul(Y1, Y1);\n let t2 = Fp.mul(Z1, Z1);\n let t3 = Fp.mul(X1, Y1);\n t3 = Fp.add(t3, t3); // step 5\n Z3 = Fp.mul(X1, Z1);\n Z3 = Fp.add(Z3, Z3);\n X3 = Fp.mul(a, Z3);\n Y3 = Fp.mul(b3, t2);\n Y3 = Fp.add(X3, Y3); // step 10\n X3 = Fp.sub(t1, Y3);\n Y3 = Fp.add(t1, Y3);\n Y3 = Fp.mul(X3, Y3);\n X3 = Fp.mul(t3, X3);\n Z3 = Fp.mul(b3, Z3); // step 15\n t2 = Fp.mul(a, t2);\n t3 = Fp.sub(t0, t2);\n t3 = Fp.mul(a, t3);\n t3 = Fp.add(t3, Z3);\n Z3 = Fp.add(t0, t0); // step 20\n t0 = Fp.add(Z3, t0);\n t0 = Fp.add(t0, t2);\n t0 = Fp.mul(t0, t3);\n Y3 = Fp.add(Y3, t0);\n t2 = Fp.mul(Y1, Z1); // step 25\n t2 = Fp.add(t2, t2);\n t0 = Fp.mul(t2, t3);\n X3 = Fp.sub(X3, t0);\n Z3 = Fp.mul(t2, t1);\n Z3 = Fp.add(Z3, Z3); // step 30\n Z3 = Fp.add(Z3, Z3);\n return new Point(X3, Y3, Z3);\n }\n // Renes-Costello-Batina exception-free addition formula.\n // There is 30% faster Jacobian formula, but it is not complete.\n // https://eprint.iacr.org/2015/1060, algorithm 1\n // Cost: 12M + 0S + 3*a + 3*b3 + 23add.\n add(other) {\n aprjpoint(other);\n const { px: X1, py: Y1, pz: Z1 } = this;\n const { px: X2, py: Y2, pz: Z2 } = other;\n let X3 = Fp.ZERO, Y3 = Fp.ZERO, Z3 = Fp.ZERO; // prettier-ignore\n const a = CURVE.a;\n const b3 = Fp.mul(CURVE.b, _3n);\n let t0 = Fp.mul(X1, X2); // step 1\n let t1 = Fp.mul(Y1, Y2);\n let t2 = Fp.mul(Z1, Z2);\n let t3 = Fp.add(X1, Y1);\n let t4 = Fp.add(X2, Y2); // step 5\n t3 = Fp.mul(t3, t4);\n t4 = Fp.add(t0, t1);\n t3 = Fp.sub(t3, t4);\n t4 = Fp.add(X1, Z1);\n let t5 = Fp.add(X2, Z2); // step 10\n t4 = Fp.mul(t4, t5);\n t5 = Fp.add(t0, t2);\n t4 = Fp.sub(t4, t5);\n t5 = Fp.add(Y1, Z1);\n X3 = Fp.add(Y2, Z2); // step 15\n t5 = Fp.mul(t5, X3);\n X3 = Fp.add(t1, t2);\n t5 = Fp.sub(t5, X3);\n Z3 = Fp.mul(a, t4);\n X3 = Fp.mul(b3, t2); // step 20\n Z3 = Fp.add(X3, Z3);\n X3 = Fp.sub(t1, Z3);\n Z3 = Fp.add(t1, Z3);\n Y3 = Fp.mul(X3, Z3);\n t1 = Fp.add(t0, t0); // step 25\n t1 = Fp.add(t1, t0);\n t2 = Fp.mul(a, t2);\n t4 = Fp.mul(b3, t4);\n t1 = Fp.add(t1, t2);\n t2 = Fp.sub(t0, t2); // step 30\n t2 = Fp.mul(a, t2);\n t4 = Fp.add(t4, t2);\n t0 = Fp.mul(t1, t4);\n Y3 = Fp.add(Y3, t0);\n t0 = Fp.mul(t5, t4); // step 35\n X3 = Fp.mul(t3, X3);\n X3 = Fp.sub(X3, t0);\n t0 = Fp.mul(t3, t1);\n Z3 = Fp.mul(t5, Z3);\n Z3 = Fp.add(Z3, t0); // step 40\n return new Point(X3, Y3, Z3);\n }\n subtract(other) {\n return this.add(other.negate());\n }\n is0() {\n return this.equals(Point.ZERO);\n }\n wNAF(n) {\n return wnaf.wNAFCached(this, n, Point.normalizeZ);\n }\n /**\n * Non-constant-time multiplication. Uses double-and-add algorithm.\n * It's faster, but should only be used when you don't care about\n * an exposed private key e.g. sig verification, which works over *public* keys.\n */\n multiplyUnsafe(sc) {\n const { endo, n: N } = CURVE;\n aInRange('scalar', sc, _0n, N);\n const I = Point.ZERO;\n if (sc === _0n)\n return I;\n if (this.is0() || sc === _1n)\n return this;\n // Case a: no endomorphism. Case b: has precomputes.\n if (!endo || wnaf.hasPrecomputes(this))\n return wnaf.wNAFCachedUnsafe(this, sc, Point.normalizeZ);\n // Case c: endomorphism\n /** See docs for {@link EndomorphismOpts} */\n let { k1neg, k1, k2neg, k2 } = endo.splitScalar(sc);\n let k1p = I;\n let k2p = I;\n let d = this;\n while (k1 > _0n || k2 > _0n) {\n if (k1 & _1n)\n k1p = k1p.add(d);\n if (k2 & _1n)\n k2p = k2p.add(d);\n d = d.double();\n k1 >>= _1n;\n k2 >>= _1n;\n }\n if (k1neg)\n k1p = k1p.negate();\n if (k2neg)\n k2p = k2p.negate();\n k2p = new Point(Fp.mul(k2p.px, endo.beta), k2p.py, k2p.pz);\n return k1p.add(k2p);\n }\n /**\n * Constant time multiplication.\n * Uses wNAF method. Windowed method may be 10% faster,\n * but takes 2x longer to generate and consumes 2x memory.\n * Uses precomputes when available.\n * Uses endomorphism for Koblitz curves.\n * @param scalar by which the point would be multiplied\n * @returns New point\n */\n multiply(scalar) {\n const { endo, n: N } = CURVE;\n aInRange('scalar', scalar, _1n, N);\n let point, fake; // Fake point is used to const-time mult\n /** See docs for {@link EndomorphismOpts} */\n if (endo) {\n const { k1neg, k1, k2neg, k2 } = endo.splitScalar(scalar);\n let { p: k1p, f: f1p } = this.wNAF(k1);\n let { p: k2p, f: f2p } = this.wNAF(k2);\n k1p = wnaf.constTimeNegate(k1neg, k1p);\n k2p = wnaf.constTimeNegate(k2neg, k2p);\n k2p = new Point(Fp.mul(k2p.px, endo.beta), k2p.py, k2p.pz);\n point = k1p.add(k2p);\n fake = f1p.add(f2p);\n }\n else {\n const { p, f } = this.wNAF(scalar);\n point = p;\n fake = f;\n }\n // Normalize `z` for both points, but return only real one\n return Point.normalizeZ([point, fake])[0];\n }\n /**\n * Efficiently calculate `aP + bQ`. Unsafe, can expose private key, if used incorrectly.\n * Not using Strauss-Shamir trick: precomputation tables are faster.\n * The trick could be useful if both P and Q are not G (not in our case).\n * @returns non-zero affine point\n */\n multiplyAndAddUnsafe(Q, a, b) {\n const G = Point.BASE; // No Strauss-Shamir trick: we have 10% faster G precomputes\n const mul = (P, a // Select faster multiply() method\n ) => (a === _0n || a === _1n || !P.equals(G) ? P.multiplyUnsafe(a) : P.multiply(a));\n const sum = mul(this, a).add(mul(Q, b));\n return sum.is0() ? undefined : sum;\n }\n // Converts Projective point to affine (x, y) coordinates.\n // Can accept precomputed Z^-1 - for example, from invertBatch.\n // (x, y, z) ∋ (x=x/z, y=y/z)\n toAffine(iz) {\n return toAffineMemo(this, iz);\n }\n isTorsionFree() {\n const { h: cofactor, isTorsionFree } = CURVE;\n if (cofactor === _1n)\n return true; // No subgroups, always torsion-free\n if (isTorsionFree)\n return isTorsionFree(Point, this);\n throw new Error('isTorsionFree() has not been declared for the elliptic curve');\n }\n clearCofactor() {\n const { h: cofactor, clearCofactor } = CURVE;\n if (cofactor === _1n)\n return this; // Fast-path\n if (clearCofactor)\n return clearCofactor(Point, this);\n return this.multiplyUnsafe(CURVE.h);\n }\n toRawBytes(isCompressed = true) {\n abool('isCompressed', isCompressed);\n this.assertValidity();\n return toBytes(Point, this, isCompressed);\n }\n toHex(isCompressed = true) {\n abool('isCompressed', isCompressed);\n return bytesToHex(this.toRawBytes(isCompressed));\n }\n }\n // base / generator point\n Point.BASE = new Point(CURVE.Gx, CURVE.Gy, Fp.ONE);\n // zero / infinity / identity point\n Point.ZERO = new Point(Fp.ZERO, Fp.ONE, Fp.ZERO); // 0, 1, 0\n const { endo, nBitLength } = CURVE;\n const wnaf = wNAF(Point, endo ? Math.ceil(nBitLength / 2) : nBitLength);\n return {\n CURVE,\n ProjectivePoint: Point,\n normPrivateKeyToScalar,\n weierstrassEquation,\n isWithinCurveOrder,\n };\n}\nfunction validateOpts(curve) {\n const opts = validateBasic(curve);\n validateObject(opts, {\n hash: 'hash',\n hmac: 'function',\n randomBytes: 'function',\n }, {\n bits2int: 'function',\n bits2int_modN: 'function',\n lowS: 'boolean',\n });\n return Object.freeze({ lowS: true, ...opts });\n}\n/**\n * Creates short weierstrass curve and ECDSA signature methods for it.\n * @example\n * import { Field } from '@noble/curves/abstract/modular';\n * // Before that, define BigInt-s: a, b, p, n, Gx, Gy\n * const curve = weierstrass({ a, b, Fp: Field(p), n, Gx, Gy, h: 1n })\n */\nexport function weierstrass(curveDef) {\n const CURVE = validateOpts(curveDef);\n const { Fp, n: CURVE_ORDER, nByteLength, nBitLength } = CURVE;\n const compressedLen = Fp.BYTES + 1; // e.g. 33 for 32\n const uncompressedLen = 2 * Fp.BYTES + 1; // e.g. 65 for 32\n function modN(a) {\n return mod(a, CURVE_ORDER);\n }\n function invN(a) {\n return invert(a, CURVE_ORDER);\n }\n const { ProjectivePoint: Point, normPrivateKeyToScalar, weierstrassEquation, isWithinCurveOrder, } = weierstrassPoints({\n ...CURVE,\n toBytes(_c, point, isCompressed) {\n const a = point.toAffine();\n const x = Fp.toBytes(a.x);\n const cat = concatBytes;\n abool('isCompressed', isCompressed);\n if (isCompressed) {\n return cat(Uint8Array.from([point.hasEvenY() ? 0x02 : 0x03]), x);\n }\n else {\n return cat(Uint8Array.from([0x04]), x, Fp.toBytes(a.y));\n }\n },\n fromBytes(bytes) {\n const len = bytes.length;\n const head = bytes[0];\n const tail = bytes.subarray(1);\n // this.assertValidity() is done inside of fromHex\n if (len === compressedLen && (head === 0x02 || head === 0x03)) {\n const x = bytesToNumberBE(tail);\n if (!inRange(x, _1n, Fp.ORDER))\n throw new Error('Point is not on curve');\n const y2 = weierstrassEquation(x); // y² = x³ + ax + b\n let y;\n try {\n y = Fp.sqrt(y2); // y = y² ^ (p+1)/4\n }\n catch (sqrtError) {\n const suffix = sqrtError instanceof Error ? ': ' + sqrtError.message : '';\n throw new Error('Point is not on curve' + suffix);\n }\n const isYOdd = (y & _1n) === _1n;\n // ECDSA\n const isHeadOdd = (head & 1) === 1;\n if (isHeadOdd !== isYOdd)\n y = Fp.neg(y);\n return { x, y };\n }\n else if (len === uncompressedLen && head === 0x04) {\n const x = Fp.fromBytes(tail.subarray(0, Fp.BYTES));\n const y = Fp.fromBytes(tail.subarray(Fp.BYTES, 2 * Fp.BYTES));\n return { x, y };\n }\n else {\n const cl = compressedLen;\n const ul = uncompressedLen;\n throw new Error('invalid Point, expected length of ' + cl + ', or uncompressed ' + ul + ', got ' + len);\n }\n },\n });\n function isBiggerThanHalfOrder(number) {\n const HALF = CURVE_ORDER >> _1n;\n return number > HALF;\n }\n function normalizeS(s) {\n return isBiggerThanHalfOrder(s) ? modN(-s) : s;\n }\n // slice bytes num\n const slcNum = (b, from, to) => bytesToNumberBE(b.slice(from, to));\n /**\n * ECDSA signature with its (r, s) properties. Supports DER & compact representations.\n */\n class Signature {\n constructor(r, s, recovery) {\n aInRange('r', r, _1n, CURVE_ORDER); // r in [1..N]\n aInRange('s', s, _1n, CURVE_ORDER); // s in [1..N]\n this.r = r;\n this.s = s;\n if (recovery != null)\n this.recovery = recovery;\n Object.freeze(this);\n }\n // pair (bytes of r, bytes of s)\n static fromCompact(hex) {\n const l = nByteLength;\n hex = ensureBytes('compactSignature', hex, l * 2);\n return new Signature(slcNum(hex, 0, l), slcNum(hex, l, 2 * l));\n }\n // DER encoded ECDSA signature\n // https://bitcoin.stackexchange.com/questions/57644/what-are-the-parts-of-a-bitcoin-transaction-input-script\n static fromDER(hex) {\n const { r, s } = DER.toSig(ensureBytes('DER', hex));\n return new Signature(r, s);\n }\n /**\n * @todo remove\n * @deprecated\n */\n assertValidity() { }\n addRecoveryBit(recovery) {\n return new Signature(this.r, this.s, recovery);\n }\n recoverPublicKey(msgHash) {\n const { r, s, recovery: rec } = this;\n const h = bits2int_modN(ensureBytes('msgHash', msgHash)); // Truncate hash\n if (rec == null || ![0, 1, 2, 3].includes(rec))\n throw new Error('recovery id invalid');\n const radj = rec === 2 || rec === 3 ? r + CURVE.n : r;\n if (radj >= Fp.ORDER)\n throw new Error('recovery id 2 or 3 invalid');\n const prefix = (rec & 1) === 0 ? '02' : '03';\n const R = Point.fromHex(prefix + numToSizedHex(radj, Fp.BYTES));\n const ir = invN(radj); // r^-1\n const u1 = modN(-h * ir); // -hr^-1\n const u2 = modN(s * ir); // sr^-1\n const Q = Point.BASE.multiplyAndAddUnsafe(R, u1, u2); // (sr^-1)R-(hr^-1)G = -(hr^-1)G + (sr^-1)\n if (!Q)\n throw new Error('point at infinify'); // unsafe is fine: no priv data leaked\n Q.assertValidity();\n return Q;\n }\n // Signatures should be low-s, to prevent malleability.\n hasHighS() {\n return isBiggerThanHalfOrder(this.s);\n }\n normalizeS() {\n return this.hasHighS() ? new Signature(this.r, modN(-this.s), this.recovery) : this;\n }\n // DER-encoded\n toDERRawBytes() {\n return hexToBytes(this.toDERHex());\n }\n toDERHex() {\n return DER.hexFromSig(this);\n }\n // padded bytes of r, then padded bytes of s\n toCompactRawBytes() {\n return hexToBytes(this.toCompactHex());\n }\n toCompactHex() {\n const l = nByteLength;\n return numToSizedHex(this.r, l) + numToSizedHex(this.s, l);\n }\n }\n const utils = {\n isValidPrivateKey(privateKey) {\n try {\n normPrivateKeyToScalar(privateKey);\n return true;\n }\n catch (error) {\n return false;\n }\n },\n normPrivateKeyToScalar: normPrivateKeyToScalar,\n /**\n * Produces cryptographically secure private key from random of size\n * (groupLen + ceil(groupLen / 2)) with modulo bias being negligible.\n */\n randomPrivateKey: () => {\n const length = getMinHashLength(CURVE.n);\n return mapHashToField(CURVE.randomBytes(length), CURVE.n);\n },\n /**\n * Creates precompute table for an arbitrary EC point. Makes point \"cached\".\n * Allows to massively speed-up `point.multiply(scalar)`.\n * @returns cached point\n * @example\n * const fast = utils.precompute(8, ProjectivePoint.fromHex(someonesPubKey));\n * fast.multiply(privKey); // much faster ECDH now\n */\n precompute(windowSize = 8, point = Point.BASE) {\n point._setWindowSize(windowSize);\n point.multiply(BigInt(3)); // 3 is arbitrary, just need any number here\n return point;\n },\n };\n /**\n * Computes public key for a private key. Checks for validity of the private key.\n * @param privateKey private key\n * @param isCompressed whether to return compact (default), or full key\n * @returns Public key, full when isCompressed=false; short when isCompressed=true\n */\n function getPublicKey(privateKey, isCompressed = true) {\n return Point.fromPrivateKey(privateKey).toRawBytes(isCompressed);\n }\n /**\n * Quick and dirty check for item being public key. Does not validate hex, or being on-curve.\n */\n function isProbPub(item) {\n if (typeof item === 'bigint')\n return false;\n if (item instanceof Point)\n return true;\n const arr = ensureBytes('key', item);\n const len = arr.length;\n const fpl = Fp.BYTES;\n const compLen = fpl + 1; // e.g. 33 for 32\n const uncompLen = 2 * fpl + 1; // e.g. 65 for 32\n if (CURVE.allowedPrivateKeyLengths || nByteLength === compLen) {\n return undefined;\n }\n else {\n return len === compLen || len === uncompLen;\n }\n }\n /**\n * ECDH (Elliptic Curve Diffie Hellman).\n * Computes shared public key from private key and public key.\n * Checks: 1) private key validity 2) shared key is on-curve.\n * Does NOT hash the result.\n * @param privateA private key\n * @param publicB different public key\n * @param isCompressed whether to return compact (default), or full key\n * @returns shared public key\n */\n function getSharedSecret(privateA, publicB, isCompressed = true) {\n if (isProbPub(privateA) === true)\n throw new Error('first arg must be private key');\n if (isProbPub(publicB) === false)\n throw new Error('second arg must be public key');\n const b = Point.fromHex(publicB); // check for being on-curve\n return b.multiply(normPrivateKeyToScalar(privateA)).toRawBytes(isCompressed);\n }\n // RFC6979: ensure ECDSA msg is X bytes and < N. RFC suggests optional truncating via bits2octets.\n // FIPS 186-4 4.6 suggests the leftmost min(nBitLen, outLen) bits, which matches bits2int.\n // bits2int can produce res>N, we can do mod(res, N) since the bitLen is the same.\n // int2octets can't be used; pads small msgs with 0: unacceptatble for trunc as per RFC vectors\n const bits2int = CURVE.bits2int ||\n function (bytes) {\n // Our custom check \"just in case\", for protection against DoS\n if (bytes.length > 8192)\n throw new Error('input is too large');\n // For curves with nBitLength % 8 !== 0: bits2octets(bits2octets(m)) !== bits2octets(m)\n // for some cases, since bytes.length * 8 is not actual bitLength.\n const num = bytesToNumberBE(bytes); // check for == u8 done here\n const delta = bytes.length * 8 - nBitLength; // truncate to nBitLength leftmost bits\n return delta > 0 ? num >> BigInt(delta) : num;\n };\n const bits2int_modN = CURVE.bits2int_modN ||\n function (bytes) {\n return modN(bits2int(bytes)); // can't use bytesToNumberBE here\n };\n // NOTE: pads output with zero as per spec\n const ORDER_MASK = bitMask(nBitLength);\n /**\n * Converts to bytes. Checks if num in `[0..ORDER_MASK-1]` e.g.: `[0..2^256-1]`.\n */\n function int2octets(num) {\n aInRange('num < 2^' + nBitLength, num, _0n, ORDER_MASK);\n // works with order, can have different size than numToField!\n return numberToBytesBE(num, nByteLength);\n }\n // Steps A, D of RFC6979 3.2\n // Creates RFC6979 seed; converts msg/privKey to numbers.\n // Used only in sign, not in verify.\n // NOTE: we cannot assume here that msgHash has same amount of bytes as curve order,\n // this will be invalid at least for P521. Also it can be bigger for P224 + SHA256\n function prepSig(msgHash, privateKey, opts = defaultSigOpts) {\n if (['recovered', 'canonical'].some((k) => k in opts))\n throw new Error('sign() legacy options not supported');\n const { hash, randomBytes } = CURVE;\n let { lowS, prehash, extraEntropy: ent } = opts; // generates low-s sigs by default\n if (lowS == null)\n lowS = true; // RFC6979 3.2: we skip step A, because we already provide hash\n msgHash = ensureBytes('msgHash', msgHash);\n validateSigVerOpts(opts);\n if (prehash)\n msgHash = ensureBytes('prehashed msgHash', hash(msgHash));\n // We can't later call bits2octets, since nested bits2int is broken for curves\n // with nBitLength % 8 !== 0. Because of that, we unwrap it here as int2octets call.\n // const bits2octets = (bits) => int2octets(bits2int_modN(bits))\n const h1int = bits2int_modN(msgHash);\n const d = normPrivateKeyToScalar(privateKey); // validate private key, convert to bigint\n const seedArgs = [int2octets(d), int2octets(h1int)];\n // extraEntropy. RFC6979 3.6: additional k' (optional).\n if (ent != null && ent !== false) {\n // K = HMAC_K(V || 0x00 || int2octets(x) || bits2octets(h1) || k')\n const e = ent === true ? randomBytes(Fp.BYTES) : ent; // generate random bytes OR pass as-is\n seedArgs.push(ensureBytes('extraEntropy', e)); // check for being bytes\n }\n const seed = concatBytes(...seedArgs); // Step D of RFC6979 3.2\n const m = h1int; // NOTE: no need to call bits2int second time here, it is inside truncateHash!\n // Converts signature params into point w r/s, checks result for validity.\n function k2sig(kBytes) {\n // RFC 6979 Section 3.2, step 3: k = bits2int(T)\n const k = bits2int(kBytes); // Cannot use fields methods, since it is group element\n if (!isWithinCurveOrder(k))\n return; // Important: all mod() calls here must be done over N\n const ik = invN(k); // k^-1 mod n\n const q = Point.BASE.multiply(k).toAffine(); // q = Gk\n const r = modN(q.x); // r = q.x mod n\n if (r === _0n)\n return;\n // Can use scalar blinding b^-1(bm + bdr) where b ∈ [1,q−1] according to\n // https://tches.iacr.org/index.php/TCHES/article/view/7337/6509. We've decided against it:\n // a) dependency on CSPRNG b) 15% slowdown c) doesn't really help since bigints are not CT\n const s = modN(ik * modN(m + r * d)); // Not using blinding here\n if (s === _0n)\n return;\n let recovery = (q.x === r ? 0 : 2) | Number(q.y & _1n); // recovery bit (2 or 3, when q.x > n)\n let normS = s;\n if (lowS && isBiggerThanHalfOrder(s)) {\n normS = normalizeS(s); // if lowS was passed, ensure s is always\n recovery ^= 1; // // in the bottom half of N\n }\n return new Signature(r, normS, recovery); // use normS, not s\n }\n return { seed, k2sig };\n }\n const defaultSigOpts = { lowS: CURVE.lowS, prehash: false };\n const defaultVerOpts = { lowS: CURVE.lowS, prehash: false };\n /**\n * Signs message hash with a private key.\n * ```\n * sign(m, d, k) where\n * (x, y) = G × k\n * r = x mod n\n * s = (m + dr)/k mod n\n * ```\n * @param msgHash NOT message. msg needs to be hashed to `msgHash`, or use `prehash`.\n * @param privKey private key\n * @param opts lowS for non-malleable sigs. extraEntropy for mixing randomness into k. prehash will hash first arg.\n * @returns signature with recovery param\n */\n function sign(msgHash, privKey, opts = defaultSigOpts) {\n const { seed, k2sig } = prepSig(msgHash, privKey, opts); // Steps A, D of RFC6979 3.2.\n const C = CURVE;\n const drbg = createHmacDrbg(C.hash.outputLen, C.nByteLength, C.hmac);\n return drbg(seed, k2sig); // Steps B, C, D, E, F, G\n }\n // Enable precomputes. Slows down first publicKey computation by 20ms.\n Point.BASE._setWindowSize(8);\n // utils.precompute(8, ProjectivePoint.BASE)\n /**\n * Verifies a signature against message hash and public key.\n * Rejects lowS signatures by default: to override,\n * specify option `{lowS: false}`. Implements section 4.1.4 from https://www.secg.org/sec1-v2.pdf:\n *\n * ```\n * verify(r, s, h, P) where\n * U1 = hs^-1 mod n\n * U2 = rs^-1 mod n\n * R = U1⋅G - U2⋅P\n * mod(R.x, n) == r\n * ```\n */\n function verify(signature, msgHash, publicKey, opts = defaultVerOpts) {\n const sg = signature;\n msgHash = ensureBytes('msgHash', msgHash);\n publicKey = ensureBytes('publicKey', publicKey);\n const { lowS, prehash, format } = opts;\n // Verify opts, deduce signature format\n validateSigVerOpts(opts);\n if ('strict' in opts)\n throw new Error('options.strict was renamed to lowS');\n if (format !== undefined && format !== 'compact' && format !== 'der')\n throw new Error('format must be compact or der');\n const isHex = typeof sg === 'string' || isBytes(sg);\n const isObj = !isHex &&\n !format &&\n typeof sg === 'object' &&\n sg !== null &&\n typeof sg.r === 'bigint' &&\n typeof sg.s === 'bigint';\n if (!isHex && !isObj)\n throw new Error('invalid signature, expected Uint8Array, hex string or Signature instance');\n let _sig = undefined;\n let P;\n try {\n if (isObj)\n _sig = new Signature(sg.r, sg.s);\n if (isHex) {\n // Signature can be represented in 2 ways: compact (2*nByteLength) & DER (variable-length).\n // Since DER can also be 2*nByteLength bytes, we check for it first.\n try {\n if (format !== 'compact')\n _sig = Signature.fromDER(sg);\n }\n catch (derError) {\n if (!(derError instanceof DER.Err))\n throw derError;\n }\n if (!_sig && format !== 'der')\n _sig = Signature.fromCompact(sg);\n }\n P = Point.fromHex(publicKey);\n }\n catch (error) {\n return false;\n }\n if (!_sig)\n return false;\n if (lowS && _sig.hasHighS())\n return false;\n if (prehash)\n msgHash = CURVE.hash(msgHash);\n const { r, s } = _sig;\n const h = bits2int_modN(msgHash); // Cannot use fields methods, since it is group element\n const is = invN(s); // s^-1\n const u1 = modN(h * is); // u1 = hs^-1 mod n\n const u2 = modN(r * is); // u2 = rs^-1 mod n\n const R = Point.BASE.multiplyAndAddUnsafe(P, u1, u2)?.toAffine(); // R = u1⋅G + u2⋅P\n if (!R)\n return false;\n const v = modN(R.x);\n return v === r;\n }\n return {\n CURVE,\n getPublicKey,\n getSharedSecret,\n sign,\n verify,\n ProjectivePoint: Point,\n Signature,\n utils,\n };\n}\n/**\n * Implementation of the Shallue and van de Woestijne method for any weierstrass curve.\n * TODO: check if there is a way to merge this with uvRatio in Edwards; move to modular.\n * b = True and y = sqrt(u / v) if (u / v) is square in F, and\n * b = False and y = sqrt(Z * (u / v)) otherwise.\n * @param Fp\n * @param Z\n * @returns\n */\nexport function SWUFpSqrtRatio(Fp, Z) {\n // Generic implementation\n const q = Fp.ORDER;\n let l = _0n;\n for (let o = q - _1n; o % _2n === _0n; o /= _2n)\n l += _1n;\n const c1 = l; // 1. c1, the largest integer such that 2^c1 divides q - 1.\n // We need 2n ** c1 and 2n ** (c1-1). We can't use **; but we can use <<.\n // 2n ** c1 == 2n << (c1-1)\n const _2n_pow_c1_1 = _2n << (c1 - _1n - _1n);\n const _2n_pow_c1 = _2n_pow_c1_1 * _2n;\n const c2 = (q - _1n) / _2n_pow_c1; // 2. c2 = (q - 1) / (2^c1) # Integer arithmetic\n const c3 = (c2 - _1n) / _2n; // 3. c3 = (c2 - 1) / 2 # Integer arithmetic\n const c4 = _2n_pow_c1 - _1n; // 4. c4 = 2^c1 - 1 # Integer arithmetic\n const c5 = _2n_pow_c1_1; // 5. c5 = 2^(c1 - 1) # Integer arithmetic\n const c6 = Fp.pow(Z, c2); // 6. c6 = Z^c2\n const c7 = Fp.pow(Z, (c2 + _1n) / _2n); // 7. c7 = Z^((c2 + 1) / 2)\n let sqrtRatio = (u, v) => {\n let tv1 = c6; // 1. tv1 = c6\n let tv2 = Fp.pow(v, c4); // 2. tv2 = v^c4\n let tv3 = Fp.sqr(tv2); // 3. tv3 = tv2^2\n tv3 = Fp.mul(tv3, v); // 4. tv3 = tv3 * v\n let tv5 = Fp.mul(u, tv3); // 5. tv5 = u * tv3\n tv5 = Fp.pow(tv5, c3); // 6. tv5 = tv5^c3\n tv5 = Fp.mul(tv5, tv2); // 7. tv5 = tv5 * tv2\n tv2 = Fp.mul(tv5, v); // 8. tv2 = tv5 * v\n tv3 = Fp.mul(tv5, u); // 9. tv3 = tv5 * u\n let tv4 = Fp.mul(tv3, tv2); // 10. tv4 = tv3 * tv2\n tv5 = Fp.pow(tv4, c5); // 11. tv5 = tv4^c5\n let isQR = Fp.eql(tv5, Fp.ONE); // 12. isQR = tv5 == 1\n tv2 = Fp.mul(tv3, c7); // 13. tv2 = tv3 * c7\n tv5 = Fp.mul(tv4, tv1); // 14. tv5 = tv4 * tv1\n tv3 = Fp.cmov(tv2, tv3, isQR); // 15. tv3 = CMOV(tv2, tv3, isQR)\n tv4 = Fp.cmov(tv5, tv4, isQR); // 16. tv4 = CMOV(tv5, tv4, isQR)\n // 17. for i in (c1, c1 - 1, ..., 2):\n for (let i = c1; i > _1n; i--) {\n let tv5 = i - _2n; // 18. tv5 = i - 2\n tv5 = _2n << (tv5 - _1n); // 19. tv5 = 2^tv5\n let tvv5 = Fp.pow(tv4, tv5); // 20. tv5 = tv4^tv5\n const e1 = Fp.eql(tvv5, Fp.ONE); // 21. e1 = tv5 == 1\n tv2 = Fp.mul(tv3, tv1); // 22. tv2 = tv3 * tv1\n tv1 = Fp.mul(tv1, tv1); // 23. tv1 = tv1 * tv1\n tvv5 = Fp.mul(tv4, tv1); // 24. tv5 = tv4 * tv1\n tv3 = Fp.cmov(tv2, tv3, e1); // 25. tv3 = CMOV(tv2, tv3, e1)\n tv4 = Fp.cmov(tvv5, tv4, e1); // 26. tv4 = CMOV(tv5, tv4, e1)\n }\n return { isValid: isQR, value: tv3 };\n };\n if (Fp.ORDER % _4n === _3n) {\n // sqrt_ratio_3mod4(u, v)\n const c1 = (Fp.ORDER - _3n) / _4n; // 1. c1 = (q - 3) / 4 # Integer arithmetic\n const c2 = Fp.sqrt(Fp.neg(Z)); // 2. c2 = sqrt(-Z)\n sqrtRatio = (u, v) => {\n let tv1 = Fp.sqr(v); // 1. tv1 = v^2\n const tv2 = Fp.mul(u, v); // 2. tv2 = u * v\n tv1 = Fp.mul(tv1, tv2); // 3. tv1 = tv1 * tv2\n let y1 = Fp.pow(tv1, c1); // 4. y1 = tv1^c1\n y1 = Fp.mul(y1, tv2); // 5. y1 = y1 * tv2\n const y2 = Fp.mul(y1, c2); // 6. y2 = y1 * c2\n const tv3 = Fp.mul(Fp.sqr(y1), v); // 7. tv3 = y1^2; 8. tv3 = tv3 * v\n const isQR = Fp.eql(tv3, u); // 9. isQR = tv3 == u\n let y = Fp.cmov(y2, y1, isQR); // 10. y = CMOV(y2, y1, isQR)\n return { isValid: isQR, value: y }; // 11. return (isQR, y) isQR ? y : y*c2\n };\n }\n // No curves uses that\n // if (Fp.ORDER % _8n === _5n) // sqrt_ratio_5mod8\n return sqrtRatio;\n}\n/**\n * Simplified Shallue-van de Woestijne-Ulas Method\n * https://www.rfc-editor.org/rfc/rfc9380#section-6.6.2\n */\nexport function mapToCurveSimpleSWU(Fp, opts) {\n validateField(Fp);\n if (!Fp.isValid(opts.A) || !Fp.isValid(opts.B) || !Fp.isValid(opts.Z))\n throw new Error('mapToCurveSimpleSWU: invalid opts');\n const sqrtRatio = SWUFpSqrtRatio(Fp, opts.Z);\n if (!Fp.isOdd)\n throw new Error('Fp.isOdd is not implemented!');\n // Input: u, an element of F.\n // Output: (x, y), a point on E.\n return (u) => {\n // prettier-ignore\n let tv1, tv2, tv3, tv4, tv5, tv6, x, y;\n tv1 = Fp.sqr(u); // 1. tv1 = u^2\n tv1 = Fp.mul(tv1, opts.Z); // 2. tv1 = Z * tv1\n tv2 = Fp.sqr(tv1); // 3. tv2 = tv1^2\n tv2 = Fp.add(tv2, tv1); // 4. tv2 = tv2 + tv1\n tv3 = Fp.add(tv2, Fp.ONE); // 5. tv3 = tv2 + 1\n tv3 = Fp.mul(tv3, opts.B); // 6. tv3 = B * tv3\n tv4 = Fp.cmov(opts.Z, Fp.neg(tv2), !Fp.eql(tv2, Fp.ZERO)); // 7. tv4 = CMOV(Z, -tv2, tv2 != 0)\n tv4 = Fp.mul(tv4, opts.A); // 8. tv4 = A * tv4\n tv2 = Fp.sqr(tv3); // 9. tv2 = tv3^2\n tv6 = Fp.sqr(tv4); // 10. tv6 = tv4^2\n tv5 = Fp.mul(tv6, opts.A); // 11. tv5 = A * tv6\n tv2 = Fp.add(tv2, tv5); // 12. tv2 = tv2 + tv5\n tv2 = Fp.mul(tv2, tv3); // 13. tv2 = tv2 * tv3\n tv6 = Fp.mul(tv6, tv4); // 14. tv6 = tv6 * tv4\n tv5 = Fp.mul(tv6, opts.B); // 15. tv5 = B * tv6\n tv2 = Fp.add(tv2, tv5); // 16. tv2 = tv2 + tv5\n x = Fp.mul(tv1, tv3); // 17. x = tv1 * tv3\n const { isValid, value } = sqrtRatio(tv2, tv6); // 18. (is_gx1_square, y1) = sqrt_ratio(tv2, tv6)\n y = Fp.mul(tv1, u); // 19. y = tv1 * u -> Z * u^3 * y1\n y = Fp.mul(y, value); // 20. y = y * y1\n x = Fp.cmov(x, tv3, isValid); // 21. x = CMOV(x, tv3, is_gx1_square)\n y = Fp.cmov(y, value, isValid); // 22. y = CMOV(y, y1, is_gx1_square)\n const e1 = Fp.isOdd(u) === Fp.isOdd(y); // 23. e1 = sgn0(u) == sgn0(y)\n y = Fp.cmov(Fp.neg(y), y, e1); // 24. y = CMOV(-y, y, e1)\n const tv4_inv = FpInvertBatch(Fp, [tv4], true)[0];\n x = Fp.mul(x, tv4_inv); // 25. x = x / tv4\n return { x, y };\n };\n}\n//# sourceMappingURL=weierstrass.js.map","/**\n * Utilities for short weierstrass curves, combined with noble-hashes.\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { hmac } from '@noble/hashes/hmac';\nimport { concatBytes, randomBytes } from '@noble/hashes/utils';\nimport { weierstrass } from \"./abstract/weierstrass.js\";\n/** connects noble-curves to noble-hashes */\nexport function getHash(hash) {\n return {\n hash,\n hmac: (key, ...msgs) => hmac(hash, key, concatBytes(...msgs)),\n randomBytes,\n };\n}\nexport function createCurve(curveDef, defHash) {\n const create = (hash) => weierstrass({ ...curveDef, ...getHash(hash) });\n return { ...create(defHash), create };\n}\n//# sourceMappingURL=_shortw_utils.js.map","/**\n * NIST secp256k1. See [pdf](https://www.secg.org/sec2-v2.pdf).\n *\n * Seems to be rigid (not backdoored)\n * [as per discussion](https://bitcointalk.org/index.php?topic=289795.msg3183975#msg3183975).\n *\n * secp256k1 belongs to Koblitz curves: it has efficiently computable endomorphism.\n * Endomorphism uses 2x less RAM, speeds up precomputation by 2x and ECDH / key recovery by 20%.\n * For precomputed wNAF it trades off 1/2 init time & 1/3 ram for 20% perf hit.\n * [See explanation](https://gist.github.com/paulmillr/eb670806793e84df628a7c434a873066).\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { sha256 } from '@noble/hashes/sha2';\nimport { randomBytes } from '@noble/hashes/utils';\nimport { createCurve } from \"./_shortw_utils.js\";\nimport { createHasher, isogenyMap } from \"./abstract/hash-to-curve.js\";\nimport { Field, mod, pow2 } from \"./abstract/modular.js\";\nimport { aInRange, bytesToNumberBE, concatBytes, ensureBytes, inRange, numberToBytesBE, } from \"./abstract/utils.js\";\nimport { mapToCurveSimpleSWU } from \"./abstract/weierstrass.js\";\nconst secp256k1P = BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f');\nconst secp256k1N = BigInt('0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141');\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst divNearest = (a, b) => (a + b / _2n) / b;\n/**\n * √n = n^((p+1)/4) for fields p = 3 mod 4. We unwrap the loop and multiply bit-by-bit.\n * (P+1n/4n).toString(2) would produce bits [223x 1, 0, 22x 1, 4x 0, 11, 00]\n */\nfunction sqrtMod(y) {\n const P = secp256k1P;\n // prettier-ignore\n const _3n = BigInt(3), _6n = BigInt(6), _11n = BigInt(11), _22n = BigInt(22);\n // prettier-ignore\n const _23n = BigInt(23), _44n = BigInt(44), _88n = BigInt(88);\n const b2 = (y * y * y) % P; // x^3, 11\n const b3 = (b2 * b2 * y) % P; // x^7\n const b6 = (pow2(b3, _3n, P) * b3) % P;\n const b9 = (pow2(b6, _3n, P) * b3) % P;\n const b11 = (pow2(b9, _2n, P) * b2) % P;\n const b22 = (pow2(b11, _11n, P) * b11) % P;\n const b44 = (pow2(b22, _22n, P) * b22) % P;\n const b88 = (pow2(b44, _44n, P) * b44) % P;\n const b176 = (pow2(b88, _88n, P) * b88) % P;\n const b220 = (pow2(b176, _44n, P) * b44) % P;\n const b223 = (pow2(b220, _3n, P) * b3) % P;\n const t1 = (pow2(b223, _23n, P) * b22) % P;\n const t2 = (pow2(t1, _6n, P) * b2) % P;\n const root = pow2(t2, _2n, P);\n if (!Fpk1.eql(Fpk1.sqr(root), y))\n throw new Error('Cannot find square root');\n return root;\n}\nconst Fpk1 = Field(secp256k1P, undefined, undefined, { sqrt: sqrtMod });\n/**\n * secp256k1 curve, ECDSA and ECDH methods.\n *\n * Field: `2n**256n - 2n**32n - 2n**9n - 2n**8n - 2n**7n - 2n**6n - 2n**4n - 1n`\n *\n * @example\n * ```js\n * import { secp256k1 } from '@noble/curves/secp256k1';\n * const priv = secp256k1.utils.randomPrivateKey();\n * const pub = secp256k1.getPublicKey(priv);\n * const msg = new Uint8Array(32).fill(1); // message hash (not message) in ecdsa\n * const sig = secp256k1.sign(msg, priv); // `{prehash: true}` option is available\n * const isValid = secp256k1.verify(sig, msg, pub) === true;\n * ```\n */\nexport const secp256k1 = createCurve({\n a: _0n,\n b: BigInt(7),\n Fp: Fpk1,\n n: secp256k1N,\n Gx: BigInt('55066263022277343669578718895168534326250603453777594175500187360389116729240'),\n Gy: BigInt('32670510020758816978083085130507043184471273380659243275938904335757337482424'),\n h: BigInt(1),\n lowS: true, // Allow only low-S signatures by default in sign() and verify()\n endo: {\n // Endomorphism, see above\n beta: BigInt('0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee'),\n splitScalar: (k) => {\n const n = secp256k1N;\n const a1 = BigInt('0x3086d221a7d46bcde86c90e49284eb15');\n const b1 = -_1n * BigInt('0xe4437ed6010e88286f547fa90abfe4c3');\n const a2 = BigInt('0x114ca50f7a8e2f3f657c1108d9d44cfd8');\n const b2 = a1;\n const POW_2_128 = BigInt('0x100000000000000000000000000000000'); // (2n**128n).toString(16)\n const c1 = divNearest(b2 * k, n);\n const c2 = divNearest(-b1 * k, n);\n let k1 = mod(k - c1 * a1 - c2 * a2, n);\n let k2 = mod(-c1 * b1 - c2 * b2, n);\n const k1neg = k1 > POW_2_128;\n const k2neg = k2 > POW_2_128;\n if (k1neg)\n k1 = n - k1;\n if (k2neg)\n k2 = n - k2;\n if (k1 > POW_2_128 || k2 > POW_2_128) {\n throw new Error('splitScalar: Endomorphism failed, k=' + k);\n }\n return { k1neg, k1, k2neg, k2 };\n },\n },\n}, sha256);\n// Schnorr signatures are superior to ECDSA from above. Below is Schnorr-specific BIP0340 code.\n// https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki\n/** An object mapping tags to their tagged hash prefix of [SHA256(tag) | SHA256(tag)] */\nconst TAGGED_HASH_PREFIXES = {};\nfunction taggedHash(tag, ...messages) {\n let tagP = TAGGED_HASH_PREFIXES[tag];\n if (tagP === undefined) {\n const tagH = sha256(Uint8Array.from(tag, (c) => c.charCodeAt(0)));\n tagP = concatBytes(tagH, tagH);\n TAGGED_HASH_PREFIXES[tag] = tagP;\n }\n return sha256(concatBytes(tagP, ...messages));\n}\n// ECDSA compact points are 33-byte. Schnorr is 32: we strip first byte 0x02 or 0x03\nconst pointToBytes = (point) => point.toRawBytes(true).slice(1);\nconst numTo32b = (n) => numberToBytesBE(n, 32);\nconst modP = (x) => mod(x, secp256k1P);\nconst modN = (x) => mod(x, secp256k1N);\nconst Point = /* @__PURE__ */ (() => secp256k1.ProjectivePoint)();\nconst GmulAdd = (Q, a, b) => Point.BASE.multiplyAndAddUnsafe(Q, a, b);\n// Calculate point, scalar and bytes\nfunction schnorrGetExtPubKey(priv) {\n let d_ = secp256k1.utils.normPrivateKeyToScalar(priv); // same method executed in fromPrivateKey\n let p = Point.fromPrivateKey(d_); // P = d'⋅G; 0 < d' < n check is done inside\n const scalar = p.hasEvenY() ? d_ : modN(-d_);\n return { scalar: scalar, bytes: pointToBytes(p) };\n}\n/**\n * lift_x from BIP340. Convert 32-byte x coordinate to elliptic curve point.\n * @returns valid point checked for being on-curve\n */\nfunction lift_x(x) {\n aInRange('x', x, _1n, secp256k1P); // Fail if x ≥ p.\n const xx = modP(x * x);\n const c = modP(xx * x + BigInt(7)); // Let c = x³ + 7 mod p.\n let y = sqrtMod(c); // Let y = c^(p+1)/4 mod p.\n if (y % _2n !== _0n)\n y = modP(-y); // Return the unique point P such that x(P) = x and\n const p = new Point(x, y, _1n); // y(P) = y if y mod 2 = 0 or y(P) = p-y otherwise.\n p.assertValidity();\n return p;\n}\nconst num = bytesToNumberBE;\n/**\n * Create tagged hash, convert it to bigint, reduce modulo-n.\n */\nfunction challenge(...args) {\n return modN(num(taggedHash('BIP0340/challenge', ...args)));\n}\n/**\n * Schnorr public key is just `x` coordinate of Point as per BIP340.\n */\nfunction schnorrGetPublicKey(privateKey) {\n return schnorrGetExtPubKey(privateKey).bytes; // d'=int(sk). Fail if d'=0 or d'≥n. Ret bytes(d'⋅G)\n}\n/**\n * Creates Schnorr signature as per BIP340. Verifies itself before returning anything.\n * auxRand is optional and is not the sole source of k generation: bad CSPRNG won't be dangerous.\n */\nfunction schnorrSign(message, privateKey, auxRand = randomBytes(32)) {\n const m = ensureBytes('message', message);\n const { bytes: px, scalar: d } = schnorrGetExtPubKey(privateKey); // checks for isWithinCurveOrder\n const a = ensureBytes('auxRand', auxRand, 32); // Auxiliary random data a: a 32-byte array\n const t = numTo32b(d ^ num(taggedHash('BIP0340/aux', a))); // Let t be the byte-wise xor of bytes(d) and hash/aux(a)\n const rand = taggedHash('BIP0340/nonce', t, px, m); // Let rand = hash/nonce(t || bytes(P) || m)\n const k_ = modN(num(rand)); // Let k' = int(rand) mod n\n if (k_ === _0n)\n throw new Error('sign failed: k is zero'); // Fail if k' = 0.\n const { bytes: rx, scalar: k } = schnorrGetExtPubKey(k_); // Let R = k'⋅G.\n const e = challenge(rx, px, m); // Let e = int(hash/challenge(bytes(R) || bytes(P) || m)) mod n.\n const sig = new Uint8Array(64); // Let sig = bytes(R) || bytes((k + ed) mod n).\n sig.set(rx, 0);\n sig.set(numTo32b(modN(k + e * d)), 32);\n // If Verify(bytes(P), m, sig) (see below) returns failure, abort\n if (!schnorrVerify(sig, m, px))\n throw new Error('sign: Invalid signature produced');\n return sig;\n}\n/**\n * Verifies Schnorr signature.\n * Will swallow errors & return false except for initial type validation of arguments.\n */\nfunction schnorrVerify(signature, message, publicKey) {\n const sig = ensureBytes('signature', signature, 64);\n const m = ensureBytes('message', message);\n const pub = ensureBytes('publicKey', publicKey, 32);\n try {\n const P = lift_x(num(pub)); // P = lift_x(int(pk)); fail if that fails\n const r = num(sig.subarray(0, 32)); // Let r = int(sig[0:32]); fail if r ≥ p.\n if (!inRange(r, _1n, secp256k1P))\n return false;\n const s = num(sig.subarray(32, 64)); // Let s = int(sig[32:64]); fail if s ≥ n.\n if (!inRange(s, _1n, secp256k1N))\n return false;\n const e = challenge(numTo32b(r), pointToBytes(P), m); // int(challenge(bytes(r)||bytes(P)||m))%n\n const R = GmulAdd(P, s, modN(-e)); // R = s⋅G - e⋅P\n if (!R || !R.hasEvenY() || R.toAffine().x !== r)\n return false; // -eP == (n-e)P\n return true; // Fail if is_infinite(R) / not has_even_y(R) / x(R) ≠ r.\n }\n catch (error) {\n return false;\n }\n}\n/**\n * Schnorr signatures over secp256k1.\n * https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki\n * @example\n * ```js\n * import { schnorr } from '@noble/curves/secp256k1';\n * const priv = schnorr.utils.randomPrivateKey();\n * const pub = schnorr.getPublicKey(priv);\n * const msg = new TextEncoder().encode('hello');\n * const sig = schnorr.sign(msg, priv);\n * const isValid = schnorr.verify(sig, msg, pub);\n * ```\n */\nexport const schnorr = /* @__PURE__ */ (() => ({\n getPublicKey: schnorrGetPublicKey,\n sign: schnorrSign,\n verify: schnorrVerify,\n utils: {\n randomPrivateKey: secp256k1.utils.randomPrivateKey,\n lift_x,\n pointToBytes,\n numberToBytesBE,\n bytesToNumberBE,\n taggedHash,\n mod,\n },\n}))();\nconst isoMap = /* @__PURE__ */ (() => isogenyMap(Fpk1, [\n // xNum\n [\n '0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa8c7',\n '0x7d3d4c80bc321d5b9f315cea7fd44c5d595d2fc0bf63b92dfff1044f17c6581',\n '0x534c328d23f234e6e2a413deca25caece4506144037c40314ecbd0b53d9dd262',\n '0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa88c',\n ],\n // xDen\n [\n '0xd35771193d94918a9ca34ccbb7b640dd86cd409542f8487d9fe6b745781eb49b',\n '0xedadc6f64383dc1df7c4b2d51b54225406d36b641f5e41bbc52a56612a8c6d14',\n '0x0000000000000000000000000000000000000000000000000000000000000001', // LAST 1\n ],\n // yNum\n [\n '0x4bda12f684bda12f684bda12f684bda12f684bda12f684bda12f684b8e38e23c',\n '0xc75e0c32d5cb7c0fa9d0a54b12a0a6d5647ab046d686da6fdffc90fc201d71a3',\n '0x29a6194691f91a73715209ef6512e576722830a201be2018a765e85a9ecee931',\n '0x2f684bda12f684bda12f684bda12f684bda12f684bda12f684bda12f38e38d84',\n ],\n // yDen\n [\n '0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffff93b',\n '0x7a06534bb8bdb49fd5e9e6632722c2989467c1bfc8e8d978dfb425d2685c2573',\n '0x6484aa716545ca2cf3a70c3fa8fe337e0a3d21162f0d6299a7bf8192bfd2a76f',\n '0x0000000000000000000000000000000000000000000000000000000000000001', // LAST 1\n ],\n].map((i) => i.map((j) => BigInt(j)))))();\nconst mapSWU = /* @__PURE__ */ (() => mapToCurveSimpleSWU(Fpk1, {\n A: BigInt('0x3f8731abdd661adca08a5558f0f5d272e953d363cb6f0e5d405447c01a444533'),\n B: BigInt('1771'),\n Z: Fpk1.create(BigInt('-11')),\n}))();\n/** Hashing / encoding to secp256k1 points / field. RFC 9380 methods. */\nexport const secp256k1_hasher = /* @__PURE__ */ (() => createHasher(secp256k1.ProjectivePoint, (scalars) => {\n const { x, y } = mapSWU(Fpk1.create(scalars[0]));\n return isoMap(x, y);\n}, {\n DST: 'secp256k1_XMD:SHA-256_SSWU_RO_',\n encodeDST: 'secp256k1_XMD:SHA-256_SSWU_NU_',\n p: Fpk1.ORDER,\n m: 1,\n k: 128,\n expand: 'xmd',\n hash: sha256,\n}))();\nexport const hashToCurve = /* @__PURE__ */ (() => secp256k1_hasher.hashToCurve)();\nexport const encodeToCurve = /* @__PURE__ */ (() => secp256k1_hasher.encodeToCurve)();\n//# sourceMappingURL=secp256k1.js.map","import { secp256k1 } from '@noble/curves/secp256k1';\nimport * as Bytes from './Bytes.js';\nimport * as Errors from './Errors.js';\nimport * as Hex from './Hex.js';\nimport * as Json from './Json.js';\nimport * as Solidity from './Solidity.js';\n/**\n * Asserts that a Signature is valid.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * Signature.assert({\n * r: -49782753348462494199823712700004552394425719014458918871452329774910450607807n,\n * s: 33726695977844476214676913201140481102225469284307016937915595756355928419768n,\n * yParity: 1,\n * })\n * // @error: InvalidSignatureRError:\n * // @error: Value `-549...n` is an invalid r value.\n * // @error: r must be a positive integer less than 2^256.\n * ```\n *\n * @param signature - The signature object to assert.\n */\nexport function assert(signature, options = {}) {\n const { recovered } = options;\n if (typeof signature.r === 'undefined')\n throw new MissingPropertiesError({ signature });\n if (typeof signature.s === 'undefined')\n throw new MissingPropertiesError({ signature });\n if (recovered && typeof signature.yParity === 'undefined')\n throw new MissingPropertiesError({ signature });\n if (signature.r < 0n || signature.r > Solidity.maxUint256)\n throw new InvalidRError({ value: signature.r });\n if (signature.s < 0n || signature.s > Solidity.maxUint256)\n throw new InvalidSError({ value: signature.s });\n if (typeof signature.yParity === 'number' &&\n signature.yParity !== 0 &&\n signature.yParity !== 1)\n throw new InvalidYParityError({ value: signature.yParity });\n}\n/**\n * Deserializes a {@link ox#Bytes.Bytes} signature into a structured {@link ox#Signature.Signature}.\n *\n * @example\n * ```ts twoslash\n * // @noErrors\n * import { Signature } from 'ox'\n *\n * Signature.fromBytes(new Uint8Array([128, 3, 131, ...]))\n * // @log: { r: 5231...n, s: 3522...n, yParity: 0 }\n * ```\n *\n * @param signature - The serialized signature.\n * @returns The deserialized {@link ox#Signature.Signature}.\n */\nexport function fromBytes(signature) {\n return fromHex(Hex.fromBytes(signature));\n}\n/**\n * Deserializes a {@link ox#Hex.Hex} signature into a structured {@link ox#Signature.Signature}.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * Signature.fromHex('0x6e100a352ec6ad1b70802290e18aeed190704973570f3b8ed42cb9808e2ea6bf4a90a229a244495b41890987806fcbd2d5d23fc0dbe5f5256c2613c039d76db81c')\n * // @log: { r: 5231...n, s: 3522...n, yParity: 0 }\n * ```\n *\n * @param serialized - The serialized signature.\n * @returns The deserialized {@link ox#Signature.Signature}.\n */\nexport function fromHex(signature) {\n if (signature.length !== 130 && signature.length !== 132)\n throw new InvalidSerializedSizeError({ signature });\n const r = BigInt(Hex.slice(signature, 0, 32));\n const s = BigInt(Hex.slice(signature, 32, 64));\n const yParity = (() => {\n const yParity = Number(`0x${signature.slice(130)}`);\n if (Number.isNaN(yParity))\n return undefined;\n try {\n return vToYParity(yParity);\n }\n catch {\n throw new InvalidYParityError({ value: yParity });\n }\n })();\n if (typeof yParity === 'undefined')\n return {\n r,\n s,\n };\n return {\n r,\n s,\n yParity,\n };\n}\n/**\n * Extracts a {@link ox#Signature.Signature} from an arbitrary object that may include signature properties.\n *\n * @example\n * ```ts twoslash\n * // @noErrors\n * import { Signature } from 'ox'\n *\n * Signature.extract({\n * baz: 'barry',\n * foo: 'bar',\n * r: 49782753348462494199823712700004552394425719014458918871452329774910450607807n,\n * s: 33726695977844476214676913201140481102225469284307016937915595756355928419768n,\n * yParity: 1,\n * zebra: 'stripes',\n * })\n * // @log: {\n * // @log: r: 49782753348462494199823712700004552394425719014458918871452329774910450607807n,\n * // @log: s: 33726695977844476214676913201140481102225469284307016937915595756355928419768n,\n * // @log: yParity: 1\n * // @log: }\n * ```\n *\n * @param value - The arbitrary object to extract the signature from.\n * @returns The extracted {@link ox#Signature.Signature}.\n */\nexport function extract(value) {\n if (typeof value.r === 'undefined')\n return undefined;\n if (typeof value.s === 'undefined')\n return undefined;\n return from(value);\n}\n/**\n * Instantiates a typed {@link ox#Signature.Signature} object from a {@link ox#Signature.Signature}, {@link ox#Signature.Legacy}, {@link ox#Bytes.Bytes}, or {@link ox#Hex.Hex}.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * Signature.from({\n * r: 49782753348462494199823712700004552394425719014458918871452329774910450607807n,\n * s: 33726695977844476214676913201140481102225469284307016937915595756355928419768n,\n * yParity: 1,\n * })\n * // @log: {\n * // @log: r: 49782753348462494199823712700004552394425719014458918871452329774910450607807n,\n * // @log: s: 33726695977844476214676913201140481102225469284307016937915595756355928419768n,\n * // @log: yParity: 1\n * // @log: }\n * ```\n *\n * @example\n * ### From Serialized\n *\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * Signature.from('0x6e100a352ec6ad1b70802290e18aeed190704973570f3b8ed42cb9808e2ea6bf4a90a229a244495b41890987806fcbd2d5d23fc0dbe5f5256c2613c039d76db801')\n * // @log: {\n * // @log: r: 49782753348462494199823712700004552394425719014458918871452329774910450607807n,\n * // @log: s: 33726695977844476214676913201140481102225469284307016937915595756355928419768n,\n * // @log: yParity: 1,\n * // @log: }\n * ```\n *\n * @example\n * ### From Legacy\n *\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * Signature.from({\n * r: 47323457007453657207889730243826965761922296599680473886588287015755652701072n,\n * s: 57228803202727131502949358313456071280488184270258293674242124340113824882788n,\n * v: 27,\n * })\n * // @log: {\n * // @log: r: 47323457007453657207889730243826965761922296599680473886588287015755652701072n,\n * // @log: s: 57228803202727131502949358313456071280488184270258293674242124340113824882788n,\n * // @log: yParity: 0\n * // @log: }\n * ```\n *\n * @param signature - The signature value to instantiate.\n * @returns The instantiated {@link ox#Signature.Signature}.\n */\nexport function from(signature) {\n const signature_ = (() => {\n if (typeof signature === 'string')\n return fromHex(signature);\n if (signature instanceof Uint8Array)\n return fromBytes(signature);\n if (typeof signature.r === 'string')\n return fromRpc(signature);\n if (signature.v)\n return fromLegacy(signature);\n return {\n r: signature.r,\n s: signature.s,\n ...(typeof signature.yParity !== 'undefined'\n ? { yParity: signature.yParity }\n : {}),\n };\n })();\n assert(signature_);\n return signature_;\n}\n/**\n * Converts a DER-encoded signature to a {@link ox#Signature.Signature}.\n *\n * @example\n * ```ts twoslash\n * // @noErrors\n * import { Signature } from 'ox'\n *\n * const signature = Signature.fromDerBytes(new Uint8Array([132, 51, 23, ...]))\n * // @log: {\n * // @log: r: 49782753348462494199823712700004552394425719014458918871452329774910450607807n,\n * // @log: s: 33726695977844476214676913201140481102225469284307016937915595756355928419768n,\n * // @log: }\n * ```\n *\n * @param signature - The DER-encoded signature to convert.\n * @returns The {@link ox#Signature.Signature}.\n */\nexport function fromDerBytes(signature) {\n return fromDerHex(Hex.fromBytes(signature));\n}\n/**\n * Converts a DER-encoded signature to a {@link ox#Signature.Signature}.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * const signature = Signature.fromDerHex('0x304402206e100a352ec6ad1b70802290e18aeed190704973570f3b8ed42cb9808e2ea6bf02204a90a229a244495b41890987806fcbd2d5d23fc0dbe5f5256c2613c039d76db8')\n * // @log: {\n * // @log: r: 49782753348462494199823712700004552394425719014458918871452329774910450607807n,\n * // @log: s: 33726695977844476214676913201140481102225469284307016937915595756355928419768n,\n * // @log: }\n * ```\n *\n * @param signature - The DER-encoded signature to convert.\n * @returns The {@link ox#Signature.Signature}.\n */\nexport function fromDerHex(signature) {\n const { r, s } = secp256k1.Signature.fromDER(Hex.from(signature).slice(2));\n return { r, s };\n}\n/**\n * Converts a {@link ox#Signature.Legacy} into a {@link ox#Signature.Signature}.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * const legacy = Signature.fromLegacy({ r: 1n, s: 2n, v: 28 })\n * // @log: { r: 1n, s: 2n, yParity: 1 }\n * ```\n *\n * @param signature - The {@link ox#Signature.Legacy} to convert.\n * @returns The converted {@link ox#Signature.Signature}.\n */\nexport function fromLegacy(signature) {\n return {\n r: signature.r,\n s: signature.s,\n yParity: vToYParity(signature.v),\n };\n}\n/**\n * Converts a {@link ox#Signature.Rpc} into a {@link ox#Signature.Signature}.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * const signature = Signature.fromRpc({\n * r: '0x635dc2033e60185bb36709c29c75d64ea51dfbd91c32ef4be198e4ceb169fb4d',\n * s: '0x50c2667ac4c771072746acfdcf1f1483336dcca8bd2df47cd83175dbe60f0540',\n * yParity: '0x0',\n * })\n * ```\n *\n * @param signature - The {@link ox#Signature.Rpc} to convert.\n * @returns The converted {@link ox#Signature.Signature}.\n */\nexport function fromRpc(signature) {\n const yParity = (() => {\n const v = signature.v ? Number(signature.v) : undefined;\n let yParity = signature.yParity ? Number(signature.yParity) : undefined;\n if (typeof v === 'number' && typeof yParity !== 'number')\n yParity = vToYParity(v);\n if (typeof yParity !== 'number')\n throw new InvalidYParityError({ value: signature.yParity });\n return yParity;\n })();\n return {\n r: BigInt(signature.r),\n s: BigInt(signature.s),\n yParity,\n };\n}\n/**\n * Converts a {@link ox#Signature.Tuple} to a {@link ox#Signature.Signature}.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * const signature = Signature.fromTuple(['0x01', '0x7b', '0x1c8'])\n * // @log: {\n * // @log: r: 123n,\n * // @log: s: 456n,\n * // @log: yParity: 1,\n * // @log: }\n * ```\n *\n * @param tuple - The {@link ox#Signature.Tuple} to convert.\n * @returns The {@link ox#Signature.Signature}.\n */\nexport function fromTuple(tuple) {\n const [yParity, r, s] = tuple;\n return from({\n r: r === '0x' ? 0n : BigInt(r),\n s: s === '0x' ? 0n : BigInt(s),\n yParity: yParity === '0x' ? 0 : Number(yParity),\n });\n}\n/**\n * Serializes a {@link ox#Signature.Signature} to {@link ox#Bytes.Bytes}.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * const signature = Signature.toBytes({\n * r: 49782753348462494199823712700004552394425719014458918871452329774910450607807n,\n * s: 33726695977844476214676913201140481102225469284307016937915595756355928419768n,\n * yParity: 1\n * })\n * // @log: Uint8Array [102, 16, 10, ...]\n * ```\n *\n * @param signature - The signature to serialize.\n * @returns The serialized signature.\n */\nexport function toBytes(signature) {\n return Bytes.fromHex(toHex(signature));\n}\n/**\n * Serializes a {@link ox#Signature.Signature} to {@link ox#Hex.Hex}.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * const signature = Signature.toHex({\n * r: 49782753348462494199823712700004552394425719014458918871452329774910450607807n,\n * s: 33726695977844476214676913201140481102225469284307016937915595756355928419768n,\n * yParity: 1\n * })\n * // @log: '0x6e100a352ec6ad1b70802290e18aeed190704973570f3b8ed42cb9808e2ea6bf4a90a229a244495b41890987806fcbd2d5d23fc0dbe5f5256c2613c039d76db81c'\n * ```\n *\n * @param signature - The signature to serialize.\n * @returns The serialized signature.\n */\nexport function toHex(signature) {\n assert(signature);\n const r = signature.r;\n const s = signature.s;\n const signature_ = Hex.concat(Hex.fromNumber(r, { size: 32 }), Hex.fromNumber(s, { size: 32 }), \n // If the signature is recovered, add the recovery byte to the signature.\n typeof signature.yParity === 'number'\n ? Hex.fromNumber(yParityToV(signature.yParity), { size: 1 })\n : '0x');\n return signature_;\n}\n/**\n * Converts a {@link ox#Signature.Signature} to DER-encoded format.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * const signature = Signature.from({\n * r: 49782753348462494199823712700004552394425719014458918871452329774910450607807n,\n * s: 33726695977844476214676913201140481102225469284307016937915595756355928419768n,\n * })\n *\n * const signature_der = Signature.toDerBytes(signature)\n * // @log: Uint8Array [132, 51, 23, ...]\n * ```\n *\n * @param signature - The signature to convert.\n * @returns The DER-encoded signature.\n */\nexport function toDerBytes(signature) {\n const sig = new secp256k1.Signature(signature.r, signature.s);\n return sig.toDERRawBytes();\n}\n/**\n * Converts a {@link ox#Signature.Signature} to DER-encoded format.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * const signature = Signature.from({\n * r: 49782753348462494199823712700004552394425719014458918871452329774910450607807n,\n * s: 33726695977844476214676913201140481102225469284307016937915595756355928419768n,\n * })\n *\n * const signature_der = Signature.toDerHex(signature)\n * // @log: '0x304402206e100a352ec6ad1b70802290e18aeed190704973570f3b8ed42cb9808e2ea6bf02204a90a229a244495b41890987806fcbd2d5d23fc0dbe5f5256c2613c039d76db8'\n * ```\n *\n * @param signature - The signature to convert.\n * @returns The DER-encoded signature.\n */\nexport function toDerHex(signature) {\n const sig = new secp256k1.Signature(signature.r, signature.s);\n return `0x${sig.toDERHex()}`;\n}\n/**\n * Converts a {@link ox#Signature.Signature} into a {@link ox#Signature.Legacy}.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * const legacy = Signature.toLegacy({ r: 1n, s: 2n, yParity: 1 })\n * // @log: { r: 1n, s: 2n, v: 28 }\n * ```\n *\n * @param signature - The {@link ox#Signature.Signature} to convert.\n * @returns The converted {@link ox#Signature.Legacy}.\n */\nexport function toLegacy(signature) {\n return {\n r: signature.r,\n s: signature.s,\n v: yParityToV(signature.yParity),\n };\n}\n/**\n * Converts a {@link ox#Signature.Signature} into a {@link ox#Signature.Rpc}.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * const signature = Signature.toRpc({\n * r: 49782753348462494199823712700004552394425719014458918871452329774910450607807n,\n * s: 33726695977844476214676913201140481102225469284307016937915595756355928419768n,\n * yParity: 1\n * })\n * ```\n *\n * @param signature - The {@link ox#Signature.Signature} to convert.\n * @returns The converted {@link ox#Signature.Rpc}.\n */\nexport function toRpc(signature) {\n const { r, s, yParity } = signature;\n return {\n r: Hex.fromNumber(r, { size: 32 }),\n s: Hex.fromNumber(s, { size: 32 }),\n yParity: yParity === 0 ? '0x0' : '0x1',\n };\n}\n/**\n * Converts a {@link ox#Signature.Signature} to a serialized {@link ox#Signature.Tuple} to be used for signatures in Transaction Envelopes, EIP-7702 Authorization Lists, etc.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * const signatureTuple = Signature.toTuple({\n * r: 123n,\n * s: 456n,\n * yParity: 1,\n * })\n * // @log: [yParity: '0x01', r: '0x7b', s: '0x1c8']\n * ```\n *\n * @param signature - The {@link ox#Signature.Signature} to convert.\n * @returns The {@link ox#Signature.Tuple}.\n */\nexport function toTuple(signature) {\n const { r, s, yParity } = signature;\n return [\n yParity ? '0x01' : '0x',\n r === 0n ? '0x' : Hex.trimLeft(Hex.fromNumber(r)),\n s === 0n ? '0x' : Hex.trimLeft(Hex.fromNumber(s)),\n ];\n}\n/**\n * Validates a Signature. Returns `true` if the signature is valid, `false` otherwise.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * const valid = Signature.validate({\n * r: -49782753348462494199823712700004552394425719014458918871452329774910450607807n,\n * s: 33726695977844476214676913201140481102225469284307016937915595756355928419768n,\n * yParity: 1,\n * })\n * // @log: false\n * ```\n *\n * @param signature - The signature object to assert.\n */\nexport function validate(signature, options = {}) {\n try {\n assert(signature, options);\n return true;\n }\n catch {\n return false;\n }\n}\n/**\n * Converts a ECDSA `v` value to a `yParity` value.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * const yParity = Signature.vToYParity(28)\n * // @log: 1\n * ```\n *\n * @param v - The ECDSA `v` value to convert.\n * @returns The `yParity` value.\n */\nexport function vToYParity(v) {\n if (v === 0 || v === 27)\n return 0;\n if (v === 1 || v === 28)\n return 1;\n if (v >= 35)\n return v % 2 === 0 ? 1 : 0;\n throw new InvalidVError({ value: v });\n}\n/**\n * Converts a ECDSA `v` value to a `yParity` value.\n *\n * @example\n * ```ts twoslash\n * import { Signature } from 'ox'\n *\n * const v = Signature.yParityToV(1)\n * // @log: 28\n * ```\n *\n * @param yParity - The ECDSA `yParity` value to convert.\n * @returns The `v` value.\n */\nexport function yParityToV(yParity) {\n if (yParity === 0)\n return 27;\n if (yParity === 1)\n return 28;\n throw new InvalidYParityError({ value: yParity });\n}\n/** Thrown when the serialized signature is of an invalid size. */\nexport class InvalidSerializedSizeError extends Errors.BaseError {\n constructor({ signature }) {\n super(`Value \\`${signature}\\` is an invalid signature size.`, {\n metaMessages: [\n 'Expected: 64 bytes or 65 bytes.',\n `Received ${Hex.size(Hex.from(signature))} bytes.`,\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Signature.InvalidSerializedSizeError'\n });\n }\n}\n/** Thrown when the signature is missing either an `r`, `s`, or `yParity` property. */\nexport class MissingPropertiesError extends Errors.BaseError {\n constructor({ signature }) {\n super(`Signature \\`${Json.stringify(signature)}\\` is missing either an \\`r\\`, \\`s\\`, or \\`yParity\\` property.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Signature.MissingPropertiesError'\n });\n }\n}\n/** Thrown when the signature has an invalid `r` value. */\nexport class InvalidRError extends Errors.BaseError {\n constructor({ value }) {\n super(`Value \\`${value}\\` is an invalid r value. r must be a positive integer less than 2^256.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Signature.InvalidRError'\n });\n }\n}\n/** Thrown when the signature has an invalid `s` value. */\nexport class InvalidSError extends Errors.BaseError {\n constructor({ value }) {\n super(`Value \\`${value}\\` is an invalid s value. s must be a positive integer less than 2^256.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Signature.InvalidSError'\n });\n }\n}\n/** Thrown when the signature has an invalid `yParity` value. */\nexport class InvalidYParityError extends Errors.BaseError {\n constructor({ value }) {\n super(`Value \\`${value}\\` is an invalid y-parity value. Y-parity must be 0 or 1.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Signature.InvalidYParityError'\n });\n }\n}\n/** Thrown when the signature has an invalid `v` value. */\nexport class InvalidVError extends Errors.BaseError {\n constructor({ value }) {\n super(`Value \\`${value}\\` is an invalid v value. v must be 27, 28 or >=35.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Signature.InvalidVError'\n });\n }\n}\n//# sourceMappingURL=Signature.js.map","/*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */\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}\nfunction isArrayOf(isString, arr) {\n if (!Array.isArray(arr))\n return false;\n if (arr.length === 0)\n return true;\n if (isString) {\n return arr.every((item) => typeof item === 'string');\n }\n else {\n return arr.every((item) => Number.isSafeInteger(item));\n }\n}\n// no abytes: seems to have 10% slowdown. Why?!\nfunction afn(input) {\n if (typeof input !== 'function')\n throw new Error('function expected');\n return true;\n}\nfunction astr(label, input) {\n if (typeof input !== 'string')\n throw new Error(`${label}: string expected`);\n return true;\n}\nfunction anumber(n) {\n if (!Number.isSafeInteger(n))\n throw new Error(`invalid integer: ${n}`);\n}\nfunction aArr(input) {\n if (!Array.isArray(input))\n throw new Error('array expected');\n}\nfunction astrArr(label, input) {\n if (!isArrayOf(true, input))\n throw new Error(`${label}: array of strings expected`);\n}\nfunction anumArr(label, input) {\n if (!isArrayOf(false, input))\n throw new Error(`${label}: array of numbers expected`);\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction chain(...args) {\n const id = (a) => a;\n // Wrap call in closure so JIT can inline calls\n const wrap = (a, b) => (c) => a(b(c));\n // Construct chain of args[-1].encode(args[-2].encode([...]))\n const encode = args.map((x) => x.encode).reduceRight(wrap, id);\n // Construct chain of args[0].decode(args[1].decode(...))\n const decode = args.map((x) => x.decode).reduce(wrap, id);\n return { encode, decode };\n}\n/**\n * Encodes integer radix representation to array of strings using alphabet and back.\n * Could also be array of strings.\n * @__NO_SIDE_EFFECTS__\n */\nfunction alphabet(letters) {\n // mapping 1 to \"b\"\n const lettersA = typeof letters === 'string' ? letters.split('') : letters;\n const len = lettersA.length;\n astrArr('alphabet', lettersA);\n // mapping \"b\" to 1\n const indexes = new Map(lettersA.map((l, i) => [l, i]));\n return {\n encode: (digits) => {\n aArr(digits);\n return digits.map((i) => {\n if (!Number.isSafeInteger(i) || i < 0 || i >= len)\n throw new Error(`alphabet.encode: digit index outside alphabet \"${i}\". Allowed: ${letters}`);\n return lettersA[i];\n });\n },\n decode: (input) => {\n aArr(input);\n return input.map((letter) => {\n astr('alphabet.decode', letter);\n const i = indexes.get(letter);\n if (i === undefined)\n throw new Error(`Unknown letter: \"${letter}\". Allowed: ${letters}`);\n return i;\n });\n },\n };\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction join(separator = '') {\n astr('join', separator);\n return {\n encode: (from) => {\n astrArr('join.decode', from);\n return from.join(separator);\n },\n decode: (to) => {\n astr('join.decode', to);\n return to.split(separator);\n },\n };\n}\n/**\n * Pad strings array so it has integer number of bits\n * @__NO_SIDE_EFFECTS__\n */\nfunction padding(bits, chr = '=') {\n anumber(bits);\n astr('padding', chr);\n return {\n encode(data) {\n astrArr('padding.encode', data);\n while ((data.length * bits) % 8)\n data.push(chr);\n return data;\n },\n decode(input) {\n astrArr('padding.decode', input);\n let end = input.length;\n if ((end * bits) % 8)\n throw new Error('padding: invalid, string should have whole number of bytes');\n for (; end > 0 && input[end - 1] === chr; end--) {\n const last = end - 1;\n const byte = last * bits;\n if (byte % 8 === 0)\n throw new Error('padding: invalid, string has too much padding');\n }\n return input.slice(0, end);\n },\n };\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction normalize(fn) {\n afn(fn);\n return { encode: (from) => from, decode: (to) => fn(to) };\n}\n/**\n * Slow: O(n^2) time complexity\n */\nfunction convertRadix(data, from, to) {\n // base 1 is impossible\n if (from < 2)\n throw new Error(`convertRadix: invalid from=${from}, base cannot be less than 2`);\n if (to < 2)\n throw new Error(`convertRadix: invalid to=${to}, base cannot be less than 2`);\n aArr(data);\n if (!data.length)\n return [];\n let pos = 0;\n const res = [];\n const digits = Array.from(data, (d) => {\n anumber(d);\n if (d < 0 || d >= from)\n throw new Error(`invalid integer: ${d}`);\n return d;\n });\n const dlen = digits.length;\n while (true) {\n let carry = 0;\n let done = true;\n for (let i = pos; i < dlen; i++) {\n const digit = digits[i];\n const fromCarry = from * carry;\n const digitBase = fromCarry + digit;\n if (!Number.isSafeInteger(digitBase) ||\n fromCarry / from !== carry ||\n digitBase - digit !== fromCarry) {\n throw new Error('convertRadix: carry overflow');\n }\n const div = digitBase / to;\n carry = digitBase % to;\n const rounded = Math.floor(div);\n digits[i] = rounded;\n if (!Number.isSafeInteger(rounded) || rounded * to + carry !== digitBase)\n throw new Error('convertRadix: carry overflow');\n if (!done)\n continue;\n else if (!rounded)\n pos = i;\n else\n done = false;\n }\n res.push(carry);\n if (done)\n break;\n }\n for (let i = 0; i < data.length - 1 && data[i] === 0; i++)\n res.push(0);\n return res.reverse();\n}\nconst gcd = (a, b) => (b === 0 ? a : gcd(b, a % b));\nconst radix2carry = /* @__NO_SIDE_EFFECTS__ */ (from, to) => from + (to - gcd(from, to));\nconst powers = /* @__PURE__ */ (() => {\n let res = [];\n for (let i = 0; i < 40; i++)\n res.push(2 ** i);\n return res;\n})();\n/**\n * Implemented with numbers, because BigInt is 5x slower\n */\nfunction convertRadix2(data, from, to, padding) {\n aArr(data);\n if (from <= 0 || from > 32)\n throw new Error(`convertRadix2: wrong from=${from}`);\n if (to <= 0 || to > 32)\n throw new Error(`convertRadix2: wrong to=${to}`);\n if (radix2carry(from, to) > 32) {\n throw new Error(`convertRadix2: carry overflow from=${from} to=${to} carryBits=${radix2carry(from, to)}`);\n }\n let carry = 0;\n let pos = 0; // bitwise position in current element\n const max = powers[from];\n const mask = powers[to] - 1;\n const res = [];\n for (const n of data) {\n anumber(n);\n if (n >= max)\n throw new Error(`convertRadix2: invalid data word=${n} from=${from}`);\n carry = (carry << from) | n;\n if (pos + from > 32)\n throw new Error(`convertRadix2: carry overflow pos=${pos} from=${from}`);\n pos += from;\n for (; pos >= to; pos -= to)\n res.push(((carry >> (pos - to)) & mask) >>> 0);\n const pow = powers[pos];\n if (pow === undefined)\n throw new Error('invalid carry');\n carry &= pow - 1; // clean carry, otherwise it will cause overflow\n }\n carry = (carry << (to - pos)) & mask;\n if (!padding && pos >= from)\n throw new Error('Excess padding');\n if (!padding && carry > 0)\n throw new Error(`Non-zero padding: ${carry}`);\n if (padding && pos > 0)\n res.push(carry >>> 0);\n return res;\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction radix(num) {\n anumber(num);\n const _256 = 2 ** 8;\n return {\n encode: (bytes) => {\n if (!isBytes(bytes))\n throw new Error('radix.encode input should be Uint8Array');\n return convertRadix(Array.from(bytes), _256, num);\n },\n decode: (digits) => {\n anumArr('radix.decode', digits);\n return Uint8Array.from(convertRadix(digits, num, _256));\n },\n };\n}\n/**\n * If both bases are power of same number (like `2**8 <-> 2**64`),\n * there is a linear algorithm. For now we have implementation for power-of-two bases only.\n * @__NO_SIDE_EFFECTS__\n */\nfunction radix2(bits, revPadding = false) {\n anumber(bits);\n if (bits <= 0 || bits > 32)\n throw new Error('radix2: bits should be in (0..32]');\n if (radix2carry(8, bits) > 32 || radix2carry(bits, 8) > 32)\n throw new Error('radix2: carry overflow');\n return {\n encode: (bytes) => {\n if (!isBytes(bytes))\n throw new Error('radix2.encode input should be Uint8Array');\n return convertRadix2(Array.from(bytes), 8, bits, !revPadding);\n },\n decode: (digits) => {\n anumArr('radix2.decode', digits);\n return Uint8Array.from(convertRadix2(digits, bits, 8, revPadding));\n },\n };\n}\nfunction unsafeWrapper(fn) {\n afn(fn);\n return function (...args) {\n try {\n return fn.apply(null, args);\n }\n catch (e) { }\n };\n}\nfunction checksum(len, fn) {\n anumber(len);\n afn(fn);\n return {\n encode(data) {\n if (!isBytes(data))\n throw new Error('checksum.encode: input should be Uint8Array');\n const sum = fn(data).slice(0, len);\n const res = new Uint8Array(data.length + len);\n res.set(data);\n res.set(sum, data.length);\n return res;\n },\n decode(data) {\n if (!isBytes(data))\n throw new Error('checksum.decode: input should be Uint8Array');\n const payload = data.slice(0, -len);\n const oldChecksum = data.slice(-len);\n const newChecksum = fn(payload).slice(0, len);\n for (let i = 0; i < len; i++)\n if (newChecksum[i] !== oldChecksum[i])\n throw new Error('Invalid checksum');\n return payload;\n },\n };\n}\n// prettier-ignore\nexport const utils = {\n alphabet, chain, checksum, convertRadix, convertRadix2, radix, radix2, join, padding,\n};\n// RFC 4648 aka RFC 3548\n// ---------------------\n/**\n * base16 encoding from RFC 4648.\n * @example\n * ```js\n * base16.encode(Uint8Array.from([0x12, 0xab]));\n * // => '12AB'\n * ```\n */\nexport const base16 = chain(radix2(4), alphabet('0123456789ABCDEF'), join(''));\n/**\n * base32 encoding from RFC 4648. Has padding.\n * Use `base32nopad` for unpadded version.\n * Also check out `base32hex`, `base32hexnopad`, `base32crockford`.\n * @example\n * ```js\n * base32.encode(Uint8Array.from([0x12, 0xab]));\n * // => 'CKVQ===='\n * base32.decode('CKVQ====');\n * // => Uint8Array.from([0x12, 0xab])\n * ```\n */\nexport const base32 = chain(radix2(5), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'), padding(5), join(''));\n/**\n * base32 encoding from RFC 4648. No padding.\n * Use `base32` for padded version.\n * Also check out `base32hex`, `base32hexnopad`, `base32crockford`.\n * @example\n * ```js\n * base32nopad.encode(Uint8Array.from([0x12, 0xab]));\n * // => 'CKVQ'\n * base32nopad.decode('CKVQ');\n * // => Uint8Array.from([0x12, 0xab])\n * ```\n */\nexport const base32nopad = chain(radix2(5), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'), join(''));\n/**\n * base32 encoding from RFC 4648. Padded. Compared to ordinary `base32`, slightly different alphabet.\n * Use `base32hexnopad` for unpadded version.\n * @example\n * ```js\n * base32hex.encode(Uint8Array.from([0x12, 0xab]));\n * // => '2ALG===='\n * base32hex.decode('2ALG====');\n * // => Uint8Array.from([0x12, 0xab])\n * ```\n */\nexport const base32hex = chain(radix2(5), alphabet('0123456789ABCDEFGHIJKLMNOPQRSTUV'), padding(5), join(''));\n/**\n * base32 encoding from RFC 4648. No padding. Compared to ordinary `base32`, slightly different alphabet.\n * Use `base32hex` for padded version.\n * @example\n * ```js\n * base32hexnopad.encode(Uint8Array.from([0x12, 0xab]));\n * // => '2ALG'\n * base32hexnopad.decode('2ALG');\n * // => Uint8Array.from([0x12, 0xab])\n * ```\n */\nexport const base32hexnopad = chain(radix2(5), alphabet('0123456789ABCDEFGHIJKLMNOPQRSTUV'), join(''));\n/**\n * base32 encoding from RFC 4648. Doug Crockford's version.\n * https://www.crockford.com/base32.html\n * @example\n * ```js\n * base32crockford.encode(Uint8Array.from([0x12, 0xab]));\n * // => '2ANG'\n * base32crockford.decode('2ANG');\n * // => Uint8Array.from([0x12, 0xab])\n * ```\n */\nexport const base32crockford = chain(radix2(5), alphabet('0123456789ABCDEFGHJKMNPQRSTVWXYZ'), join(''), normalize((s) => s.toUpperCase().replace(/O/g, '0').replace(/[IL]/g, '1')));\n// Built-in base64 conversion https://caniuse.com/mdn-javascript_builtins_uint8array_frombase64\n// prettier-ignore\nconst hasBase64Builtin = /* @__PURE__ */ (() => typeof Uint8Array.from([]).toBase64 === 'function' &&\n typeof Uint8Array.fromBase64 === 'function')();\nconst decodeBase64Builtin = (s, isUrl) => {\n astr('base64', s);\n const re = isUrl ? /^[A-Za-z0-9=_-]+$/ : /^[A-Za-z0-9=+/]+$/;\n const alphabet = isUrl ? 'base64url' : 'base64';\n if (s.length > 0 && !re.test(s))\n throw new Error('invalid base64');\n return Uint8Array.fromBase64(s, { alphabet, lastChunkHandling: 'strict' });\n};\n/**\n * base64 from RFC 4648. Padded.\n * Use `base64nopad` for unpadded version.\n * Also check out `base64url`, `base64urlnopad`.\n * Falls back to built-in function, when available.\n * @example\n * ```js\n * base64.encode(Uint8Array.from([0x12, 0xab]));\n * // => 'Eqs='\n * base64.decode('Eqs=');\n * // => Uint8Array.from([0x12, 0xab])\n * ```\n */\n// prettier-ignore\nexport const base64 = hasBase64Builtin ? {\n encode(b) { abytes(b); return b.toBase64(); },\n decode(s) { return decodeBase64Builtin(s, false); },\n} : chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'), padding(6), join(''));\n/**\n * base64 from RFC 4648. No padding.\n * Use `base64` for padded version.\n * @example\n * ```js\n * base64nopad.encode(Uint8Array.from([0x12, 0xab]));\n * // => 'Eqs'\n * base64nopad.decode('Eqs');\n * // => Uint8Array.from([0x12, 0xab])\n * ```\n */\nexport const base64nopad = chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'), join(''));\n/**\n * base64 from RFC 4648, using URL-safe alphabet. Padded.\n * Use `base64urlnopad` for unpadded version.\n * Falls back to built-in function, when available.\n * @example\n * ```js\n * base64url.encode(Uint8Array.from([0x12, 0xab]));\n * // => 'Eqs='\n * base64url.decode('Eqs=');\n * // => Uint8Array.from([0x12, 0xab])\n * ```\n */\n// prettier-ignore\nexport const base64url = hasBase64Builtin ? {\n encode(b) { abytes(b); return b.toBase64({ alphabet: 'base64url' }); },\n decode(s) { return decodeBase64Builtin(s, true); },\n} : chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'), padding(6), join(''));\n/**\n * base64 from RFC 4648, using URL-safe alphabet. No padding.\n * Use `base64url` for padded version.\n * @example\n * ```js\n * base64urlnopad.encode(Uint8Array.from([0x12, 0xab]));\n * // => 'Eqs'\n * base64urlnopad.decode('Eqs');\n * // => Uint8Array.from([0x12, 0xab])\n * ```\n */\nexport const base64urlnopad = chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'), join(''));\n// base58 code\n// -----------\nconst genBase58 = /* @__NO_SIDE_EFFECTS__ */ (abc) => chain(radix(58), alphabet(abc), join(''));\n/**\n * base58: base64 without ambigous characters +, /, 0, O, I, l.\n * Quadratic (O(n^2)) - so, can't be used on large inputs.\n * @example\n * ```js\n * base58.decode('01abcdef');\n * // => '3UhJW'\n * ```\n */\nexport const base58 = genBase58('123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz');\n/**\n * base58: flickr version. Check out `base58`.\n */\nexport const base58flickr = genBase58('123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ');\n/**\n * base58: XRP version. Check out `base58`.\n */\nexport const base58xrp = genBase58('rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz');\n// Data len (index) -> encoded block len\nconst XMR_BLOCK_LEN = [0, 2, 3, 5, 6, 7, 9, 10, 11];\n/**\n * base58: XMR version. Check out `base58`.\n * Done in 8-byte blocks (which equals 11 chars in decoding). Last (non-full) block padded with '1' to size in XMR_BLOCK_LEN.\n * Block encoding significantly reduces quadratic complexity of base58.\n */\nexport const base58xmr = {\n encode(data) {\n let res = '';\n for (let i = 0; i < data.length; i += 8) {\n const block = data.subarray(i, i + 8);\n res += base58.encode(block).padStart(XMR_BLOCK_LEN[block.length], '1');\n }\n return res;\n },\n decode(str) {\n let res = [];\n for (let i = 0; i < str.length; i += 11) {\n const slice = str.slice(i, i + 11);\n const blockLen = XMR_BLOCK_LEN.indexOf(slice.length);\n const block = base58.decode(slice);\n for (let j = 0; j < block.length - blockLen; j++) {\n if (block[j] !== 0)\n throw new Error('base58xmr: wrong padding');\n }\n res = res.concat(Array.from(block.slice(block.length - blockLen)));\n }\n return Uint8Array.from(res);\n },\n};\n/**\n * Method, which creates base58check encoder.\n * Requires function, calculating sha256.\n */\nexport const createBase58check = (sha256) => chain(checksum(4, (data) => sha256(sha256(data))), base58);\n/**\n * Use `createBase58check` instead.\n * @deprecated\n */\nexport const base58check = createBase58check;\nconst BECH_ALPHABET = chain(alphabet('qpzry9x8gf2tvdw0s3jn54khce6mua7l'), join(''));\nconst POLYMOD_GENERATORS = [0x3b6a57b2, 0x26508e6d, 0x1ea119fa, 0x3d4233dd, 0x2a1462b3];\nfunction bech32Polymod(pre) {\n const b = pre >> 25;\n let chk = (pre & 0x1ffffff) << 5;\n for (let i = 0; i < POLYMOD_GENERATORS.length; i++) {\n if (((b >> i) & 1) === 1)\n chk ^= POLYMOD_GENERATORS[i];\n }\n return chk;\n}\nfunction bechChecksum(prefix, words, encodingConst = 1) {\n const len = prefix.length;\n let chk = 1;\n for (let i = 0; i < len; i++) {\n const c = prefix.charCodeAt(i);\n if (c < 33 || c > 126)\n throw new Error(`Invalid prefix (${prefix})`);\n chk = bech32Polymod(chk) ^ (c >> 5);\n }\n chk = bech32Polymod(chk);\n for (let i = 0; i < len; i++)\n chk = bech32Polymod(chk) ^ (prefix.charCodeAt(i) & 0x1f);\n for (let v of words)\n chk = bech32Polymod(chk) ^ v;\n for (let i = 0; i < 6; i++)\n chk = bech32Polymod(chk);\n chk ^= encodingConst;\n return BECH_ALPHABET.encode(convertRadix2([chk % powers[30]], 30, 5, false));\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction genBech32(encoding) {\n const ENCODING_CONST = encoding === 'bech32' ? 1 : 0x2bc830a3;\n const _words = radix2(5);\n const fromWords = _words.decode;\n const toWords = _words.encode;\n const fromWordsUnsafe = unsafeWrapper(fromWords);\n function encode(prefix, words, limit = 90) {\n astr('bech32.encode prefix', prefix);\n if (isBytes(words))\n words = Array.from(words);\n anumArr('bech32.encode', words);\n const plen = prefix.length;\n if (plen === 0)\n throw new TypeError(`Invalid prefix length ${plen}`);\n const actualLength = plen + 7 + words.length;\n if (limit !== false && actualLength > limit)\n throw new TypeError(`Length ${actualLength} exceeds limit ${limit}`);\n const lowered = prefix.toLowerCase();\n const sum = bechChecksum(lowered, words, ENCODING_CONST);\n return `${lowered}1${BECH_ALPHABET.encode(words)}${sum}`;\n }\n function decode(str, limit = 90) {\n astr('bech32.decode input', str);\n const slen = str.length;\n if (slen < 8 || (limit !== false && slen > limit))\n throw new TypeError(`invalid string length: ${slen} (${str}). Expected (8..${limit})`);\n // don't allow mixed case\n const lowered = str.toLowerCase();\n if (str !== lowered && str !== str.toUpperCase())\n throw new Error(`String must be lowercase or uppercase`);\n const sepIndex = lowered.lastIndexOf('1');\n if (sepIndex === 0 || sepIndex === -1)\n throw new Error(`Letter \"1\" must be present between prefix and data only`);\n const prefix = lowered.slice(0, sepIndex);\n const data = lowered.slice(sepIndex + 1);\n if (data.length < 6)\n throw new Error('Data must be at least 6 characters long');\n const words = BECH_ALPHABET.decode(data).slice(0, -6);\n const sum = bechChecksum(prefix, words, ENCODING_CONST);\n if (!data.endsWith(sum))\n throw new Error(`Invalid checksum in ${str}: expected \"${sum}\"`);\n return { prefix, words };\n }\n const decodeUnsafe = unsafeWrapper(decode);\n function decodeToBytes(str) {\n const { prefix, words } = decode(str, false);\n return { prefix, words, bytes: fromWords(words) };\n }\n function encodeFromBytes(prefix, bytes) {\n return encode(prefix, toWords(bytes));\n }\n return {\n encode,\n decode,\n encodeFromBytes,\n decodeToBytes,\n decodeUnsafe,\n fromWords,\n fromWordsUnsafe,\n toWords,\n };\n}\n/**\n * bech32 from BIP 173. Operates on words.\n * For high-level, check out scure-btc-signer:\n * https://github.com/paulmillr/scure-btc-signer.\n */\nexport const bech32 = genBech32('bech32');\n/**\n * bech32m from BIP 350. Operates on words.\n * It was to mitigate `bech32` weaknesses.\n * For high-level, check out scure-btc-signer:\n * https://github.com/paulmillr/scure-btc-signer.\n */\nexport const bech32m = genBech32('bech32m');\n/**\n * UTF-8-to-byte decoder. Uses built-in TextDecoder / TextEncoder.\n * @example\n * ```js\n * const b = utf8.decode(\"hey\"); // => new Uint8Array([ 104, 101, 121 ])\n * const str = utf8.encode(b); // \"hey\"\n * ```\n */\nexport const utf8 = {\n encode: (data) => new TextDecoder().decode(data),\n decode: (str) => new TextEncoder().encode(str),\n};\n// Built-in hex conversion https://caniuse.com/mdn-javascript_builtins_uint8array_fromhex\n// prettier-ignore\nconst hasHexBuiltin = /* @__PURE__ */ (() => typeof Uint8Array.from([]).toHex === 'function' &&\n typeof Uint8Array.fromHex === 'function')();\n// prettier-ignore\nconst hexBuiltin = {\n encode(data) { abytes(data); return data.toHex(); },\n decode(s) { astr('hex', s); return Uint8Array.fromHex(s); },\n};\n/**\n * hex string decoder. Uses built-in function, when available.\n * @example\n * ```js\n * const b = hex.decode(\"0102ff\"); // => new Uint8Array([ 1, 2, 255 ])\n * const str = hex.encode(b); // \"0102ff\"\n * ```\n */\nexport const hex = hasHexBuiltin\n ? hexBuiltin\n : chain(radix2(4), alphabet('0123456789abcdef'), join(''), normalize((s) => {\n if (typeof s !== 'string' || s.length % 2 !== 0)\n throw new TypeError(`hex.decode: expected string, got ${typeof s} with length ${s.length}`);\n return s.toLowerCase();\n }));\n// prettier-ignore\nconst CODERS = {\n utf8, hex, base16, base32, base64, base64url, base58, base58xmr\n};\nconst coderTypeError = 'Invalid encoding type. Available types: utf8, hex, base16, base32, base64, base64url, base58, base58xmr';\n/** @deprecated */\nexport const bytesToString = (type, bytes) => {\n if (typeof type !== 'string' || !CODERS.hasOwnProperty(type))\n throw new TypeError(coderTypeError);\n if (!isBytes(bytes))\n throw new TypeError('bytesToString() expects Uint8Array');\n return CODERS[type].encode(bytes);\n};\n/** @deprecated */\nexport const str = bytesToString; // as in python, but for bytes only\n/** @deprecated */\nexport const stringToBytes = (type, str) => {\n if (!CODERS.hasOwnProperty(type))\n throw new TypeError(coderTypeError);\n if (typeof str !== 'string')\n throw new TypeError('stringToBytes() expects string');\n return CODERS[type].decode(str);\n};\n/** @deprecated */\nexport const bytes = stringToBytes;\n//# sourceMappingURL=index.js.map","import { secp256k1 } from '@noble/curves/secp256k1';\nimport * as Address from './Address.js';\nimport * as Bytes from './Bytes.js';\nimport * as Hex from './Hex.js';\nimport * as Entropy from './internal/entropy.js';\nimport * as PublicKey from './PublicKey.js';\n/** Re-export of noble/curves secp256k1 utilities. */\nexport const noble = secp256k1;\n/**\n * Creates a new secp256k1 ECDSA key pair consisting of a private key and its corresponding public key.\n *\n * @example\n * ```ts twoslash\n * import { Secp256k1 } from 'ox'\n *\n * const { privateKey, publicKey } = Secp256k1.createKeyPair()\n * ```\n *\n * @param options - The options to generate the key pair.\n * @returns The generated key pair containing both private and public keys.\n */\nexport function createKeyPair(options = {}) {\n const { as = 'Hex' } = options;\n const privateKey = randomPrivateKey({ as });\n const publicKey = getPublicKey({ privateKey });\n return {\n privateKey: privateKey,\n publicKey,\n };\n}\n/**\n * Computes the secp256k1 ECDSA public key from a provided private key.\n *\n * @example\n * ```ts twoslash\n * import { Secp256k1 } from 'ox'\n *\n * const publicKey = Secp256k1.getPublicKey({ privateKey: '0x...' })\n * ```\n *\n * @param options - The options to compute the public key.\n * @returns The computed public key.\n */\nexport function getPublicKey(options) {\n const { privateKey } = options;\n const point = secp256k1.ProjectivePoint.fromPrivateKey(Hex.from(privateKey).slice(2));\n return PublicKey.from(point);\n}\n/**\n * Computes a shared secret using ECDH (Elliptic Curve Diffie-Hellman) between a private key and a public key.\n *\n * @example\n * ```ts twoslash\n * import { Secp256k1 } from 'ox'\n *\n * const { privateKey: privateKeyA } = Secp256k1.createKeyPair()\n * const { publicKey: publicKeyB } = Secp256k1.createKeyPair()\n *\n * const sharedSecret = Secp256k1.getSharedSecret({\n * privateKey: privateKeyA,\n * publicKey: publicKeyB\n * })\n * ```\n *\n * @param options - The options to compute the shared secret.\n * @returns The computed shared secret.\n */\nexport function getSharedSecret(options) {\n const { as = 'Hex', privateKey, publicKey } = options;\n const point = secp256k1.ProjectivePoint.fromHex(PublicKey.toHex(publicKey).slice(2));\n const sharedPoint = point.multiply(secp256k1.utils.normPrivateKeyToScalar(Hex.from(privateKey).slice(2)));\n const sharedSecret = sharedPoint.toRawBytes(true); // compressed format\n if (as === 'Hex')\n return Hex.fromBytes(sharedSecret);\n return sharedSecret;\n}\n/**\n * Generates a random ECDSA private key on the secp256k1 curve.\n *\n * @example\n * ```ts twoslash\n * import { Secp256k1 } from 'ox'\n *\n * const privateKey = Secp256k1.randomPrivateKey()\n * ```\n *\n * @param options - The options to generate the private key.\n * @returns The generated private key.\n */\nexport function randomPrivateKey(options = {}) {\n const { as = 'Hex' } = options;\n const bytes = secp256k1.utils.randomPrivateKey();\n if (as === 'Hex')\n return Hex.fromBytes(bytes);\n return bytes;\n}\n/**\n * Recovers the signing address from the signed payload and signature.\n *\n * @example\n * ```ts twoslash\n * import { Secp256k1 } from 'ox'\n *\n * const signature = Secp256k1.sign({ payload: '0xdeadbeef', privateKey: '0x...' })\n *\n * const address = Secp256k1.recoverAddress({ // [!code focus]\n * payload: '0xdeadbeef', // [!code focus]\n * signature, // [!code focus]\n * }) // [!code focus]\n * ```\n *\n * @param options - The recovery options.\n * @returns The recovered address.\n */\nexport function recoverAddress(options) {\n return Address.fromPublicKey(recoverPublicKey(options));\n}\n/**\n * Recovers the signing public key from the signed payload and signature.\n *\n * @example\n * ```ts twoslash\n * import { Secp256k1 } from 'ox'\n *\n * const signature = Secp256k1.sign({ payload: '0xdeadbeef', privateKey: '0x...' })\n *\n * const publicKey = Secp256k1.recoverPublicKey({ // [!code focus]\n * payload: '0xdeadbeef', // [!code focus]\n * signature, // [!code focus]\n * }) // [!code focus]\n * ```\n *\n * @param options - The recovery options.\n * @returns The recovered public key.\n */\nexport function recoverPublicKey(options) {\n const { payload, signature } = options;\n const { r, s, yParity } = signature;\n const signature_ = new secp256k1.Signature(BigInt(r), BigInt(s)).addRecoveryBit(yParity);\n const point = signature_.recoverPublicKey(Hex.from(payload).substring(2));\n return PublicKey.from(point);\n}\n/**\n * Signs the payload with the provided private key.\n *\n * @example\n * ```ts twoslash\n * import { Secp256k1 } from 'ox'\n *\n * const signature = Secp256k1.sign({ // [!code focus]\n * payload: '0xdeadbeef', // [!code focus]\n * privateKey: '0x...' // [!code focus]\n * }) // [!code focus]\n * ```\n *\n * @param options - The signing options.\n * @returns The ECDSA {@link ox#Signature.Signature}.\n */\nexport function sign(options) {\n const { extraEntropy = Entropy.extraEntropy, hash, payload, privateKey, } = options;\n const { r, s, recovery } = secp256k1.sign(Bytes.from(payload), Bytes.from(privateKey), {\n extraEntropy: typeof extraEntropy === 'boolean'\n ? extraEntropy\n : Hex.from(extraEntropy).slice(2),\n lowS: true,\n ...(hash ? { prehash: true } : {}),\n });\n return {\n r,\n s,\n yParity: recovery,\n };\n}\n/**\n * Verifies a payload was signed by the provided address.\n *\n * @example\n * ### Verify with Ethereum Address\n *\n * ```ts twoslash\n * import { Secp256k1 } from 'ox'\n *\n * const signature = Secp256k1.sign({ payload: '0xdeadbeef', privateKey: '0x...' })\n *\n * const verified = Secp256k1.verify({ // [!code focus]\n * address: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\n * payload: '0xdeadbeef', // [!code focus]\n * signature, // [!code focus]\n * }) // [!code focus]\n * ```\n *\n * @example\n * ### Verify with Public Key\n *\n * ```ts twoslash\n * import { Secp256k1 } from 'ox'\n *\n * const privateKey = '0x...'\n * const publicKey = Secp256k1.getPublicKey({ privateKey })\n * const signature = Secp256k1.sign({ payload: '0xdeadbeef', privateKey })\n *\n * const verified = Secp256k1.verify({ // [!code focus]\n * publicKey, // [!code focus]\n * payload: '0xdeadbeef', // [!code focus]\n * signature, // [!code focus]\n * }) // [!code focus]\n * ```\n *\n * @param options - The verification options.\n * @returns Whether the payload was signed by the provided address.\n */\nexport function verify(options) {\n const { address, hash, payload, publicKey, signature } = options;\n if (address)\n return Address.isEqual(address, recoverAddress({ payload, signature }));\n return secp256k1.verify(signature, Bytes.from(payload), PublicKey.toBytes(publicKey), ...(hash ? [{ prehash: true, lowS: true }] : []));\n}\n//# sourceMappingURL=Secp256k1.js.map","export function utf8Count(str) {\n const strLength = str.length;\n let byteLength = 0;\n let pos = 0;\n while (pos < strLength) {\n let value = str.charCodeAt(pos++);\n if ((value & 0xffffff80) === 0) {\n // 1-byte\n byteLength++;\n continue;\n }\n else if ((value & 0xfffff800) === 0) {\n // 2-bytes\n byteLength += 2;\n }\n else {\n // handle surrogate pair\n if (value >= 0xd800 && value <= 0xdbff) {\n // high surrogate\n if (pos < strLength) {\n const extra = str.charCodeAt(pos);\n if ((extra & 0xfc00) === 0xdc00) {\n ++pos;\n value = ((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000;\n }\n }\n }\n if ((value & 0xffff0000) === 0) {\n // 3-byte\n byteLength += 3;\n }\n else {\n // 4-byte\n byteLength += 4;\n }\n }\n }\n return byteLength;\n}\nexport function utf8EncodeJs(str, output, outputOffset) {\n const strLength = str.length;\n let offset = outputOffset;\n let pos = 0;\n while (pos < strLength) {\n let value = str.charCodeAt(pos++);\n if ((value & 0xffffff80) === 0) {\n // 1-byte\n output[offset++] = value;\n continue;\n }\n else if ((value & 0xfffff800) === 0) {\n // 2-bytes\n output[offset++] = ((value >> 6) & 0x1f) | 0xc0;\n }\n else {\n // handle surrogate pair\n if (value >= 0xd800 && value <= 0xdbff) {\n // high surrogate\n if (pos < strLength) {\n const extra = str.charCodeAt(pos);\n if ((extra & 0xfc00) === 0xdc00) {\n ++pos;\n value = ((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000;\n }\n }\n }\n if ((value & 0xffff0000) === 0) {\n // 3-byte\n output[offset++] = ((value >> 12) & 0x0f) | 0xe0;\n output[offset++] = ((value >> 6) & 0x3f) | 0x80;\n }\n else {\n // 4-byte\n output[offset++] = ((value >> 18) & 0x07) | 0xf0;\n output[offset++] = ((value >> 12) & 0x3f) | 0x80;\n output[offset++] = ((value >> 6) & 0x3f) | 0x80;\n }\n }\n output[offset++] = (value & 0x3f) | 0x80;\n }\n}\n// TextEncoder and TextDecoder are standardized in whatwg encoding:\n// https://encoding.spec.whatwg.org/\n// and available in all the modern browsers:\n// https://caniuse.com/textencoder\n// They are available in Node.js since v12 LTS as well:\n// https://nodejs.org/api/globals.html#textencoder\nconst sharedTextEncoder = new TextEncoder();\n// This threshold should be determined by benchmarking, which might vary in engines and input data.\n// Run `npx ts-node benchmark/encode-string.ts` for details.\nconst TEXT_ENCODER_THRESHOLD = 50;\nexport function utf8EncodeTE(str, output, outputOffset) {\n sharedTextEncoder.encodeInto(str, output.subarray(outputOffset));\n}\nexport function utf8Encode(str, output, outputOffset) {\n if (str.length > TEXT_ENCODER_THRESHOLD) {\n utf8EncodeTE(str, output, outputOffset);\n }\n else {\n utf8EncodeJs(str, output, outputOffset);\n }\n}\nconst CHUNK_SIZE = 4096;\nexport function utf8DecodeJs(bytes, inputOffset, byteLength) {\n let offset = inputOffset;\n const end = offset + byteLength;\n const units = [];\n let result = \"\";\n while (offset < end) {\n const byte1 = bytes[offset++];\n if ((byte1 & 0x80) === 0) {\n // 1 byte\n units.push(byte1);\n }\n else if ((byte1 & 0xe0) === 0xc0) {\n // 2 bytes\n const byte2 = bytes[offset++] & 0x3f;\n units.push(((byte1 & 0x1f) << 6) | byte2);\n }\n else if ((byte1 & 0xf0) === 0xe0) {\n // 3 bytes\n const byte2 = bytes[offset++] & 0x3f;\n const byte3 = bytes[offset++] & 0x3f;\n units.push(((byte1 & 0x1f) << 12) | (byte2 << 6) | byte3);\n }\n else if ((byte1 & 0xf8) === 0xf0) {\n // 4 bytes\n const byte2 = bytes[offset++] & 0x3f;\n const byte3 = bytes[offset++] & 0x3f;\n const byte4 = bytes[offset++] & 0x3f;\n let unit = ((byte1 & 0x07) << 0x12) | (byte2 << 0x0c) | (byte3 << 0x06) | byte4;\n if (unit > 0xffff) {\n unit -= 0x10000;\n units.push(((unit >>> 10) & 0x3ff) | 0xd800);\n unit = 0xdc00 | (unit & 0x3ff);\n }\n units.push(unit);\n }\n else {\n units.push(byte1);\n }\n if (units.length >= CHUNK_SIZE) {\n result += String.fromCharCode(...units);\n units.length = 0;\n }\n }\n if (units.length > 0) {\n result += String.fromCharCode(...units);\n }\n return result;\n}\nconst sharedTextDecoder = new TextDecoder();\n// This threshold should be determined by benchmarking, which might vary in engines and input data.\n// Run `npx ts-node benchmark/decode-string.ts` for details.\nconst TEXT_DECODER_THRESHOLD = 200;\nexport function utf8DecodeTD(bytes, inputOffset, byteLength) {\n const stringBytes = bytes.subarray(inputOffset, inputOffset + byteLength);\n return sharedTextDecoder.decode(stringBytes);\n}\nexport function utf8Decode(bytes, inputOffset, byteLength) {\n if (byteLength > TEXT_DECODER_THRESHOLD) {\n return utf8DecodeTD(bytes, inputOffset, byteLength);\n }\n else {\n return utf8DecodeJs(bytes, inputOffset, byteLength);\n }\n}\n//# sourceMappingURL=utf8.mjs.map","/**\n * ExtData is used to handle Extension Types that are not registered to ExtensionCodec.\n */\nexport class ExtData {\n type;\n data;\n constructor(type, data) {\n this.type = type;\n this.data = data;\n }\n}\n//# sourceMappingURL=ExtData.mjs.map","export class DecodeError extends Error {\n constructor(message) {\n super(message);\n // fix the prototype chain in a cross-platform way\n const proto = Object.create(DecodeError.prototype);\n Object.setPrototypeOf(this, proto);\n Object.defineProperty(this, \"name\", {\n configurable: true,\n enumerable: false,\n value: DecodeError.name,\n });\n }\n}\n//# sourceMappingURL=DecodeError.mjs.map","// Integer Utility\nexport const UINT32_MAX = 4294967295;\n// DataView extension to handle int64 / uint64,\n// where the actual range is 53-bits integer (a.k.a. safe integer)\nexport function setUint64(view, offset, value) {\n const high = value / 4294967296;\n const low = value; // high bits are truncated by DataView\n view.setUint32(offset, high);\n view.setUint32(offset + 4, low);\n}\nexport function setInt64(view, offset, value) {\n const high = Math.floor(value / 4294967296);\n const low = value; // high bits are truncated by DataView\n view.setUint32(offset, high);\n view.setUint32(offset + 4, low);\n}\nexport function getInt64(view, offset) {\n const high = view.getInt32(offset);\n const low = view.getUint32(offset + 4);\n return high * 4294967296 + low;\n}\nexport function getUint64(view, offset) {\n const high = view.getUint32(offset);\n const low = view.getUint32(offset + 4);\n return high * 4294967296 + low;\n}\n//# sourceMappingURL=int.mjs.map","// https://github.com/msgpack/msgpack/blob/master/spec.md#timestamp-extension-type\nimport { DecodeError } from \"./DecodeError.mjs\";\nimport { getInt64, setInt64 } from \"./utils/int.mjs\";\nexport const EXT_TIMESTAMP = -1;\nconst TIMESTAMP32_MAX_SEC = 0x100000000 - 1; // 32-bit unsigned int\nconst TIMESTAMP64_MAX_SEC = 0x400000000 - 1; // 34-bit unsigned int\nexport function encodeTimeSpecToTimestamp({ sec, nsec }) {\n if (sec >= 0 && nsec >= 0 && sec <= TIMESTAMP64_MAX_SEC) {\n // Here sec >= 0 && nsec >= 0\n if (nsec === 0 && sec <= TIMESTAMP32_MAX_SEC) {\n // timestamp 32 = { sec32 (unsigned) }\n const rv = new Uint8Array(4);\n const view = new DataView(rv.buffer);\n view.setUint32(0, sec);\n return rv;\n }\n else {\n // timestamp 64 = { nsec30 (unsigned), sec34 (unsigned) }\n const secHigh = sec / 0x100000000;\n const secLow = sec & 0xffffffff;\n const rv = new Uint8Array(8);\n const view = new DataView(rv.buffer);\n // nsec30 | secHigh2\n view.setUint32(0, (nsec << 2) | (secHigh & 0x3));\n // secLow32\n view.setUint32(4, secLow);\n return rv;\n }\n }\n else {\n // timestamp 96 = { nsec32 (unsigned), sec64 (signed) }\n const rv = new Uint8Array(12);\n const view = new DataView(rv.buffer);\n view.setUint32(0, nsec);\n setInt64(view, 4, sec);\n return rv;\n }\n}\nexport function encodeDateToTimeSpec(date) {\n const msec = date.getTime();\n const sec = Math.floor(msec / 1e3);\n const nsec = (msec - sec * 1e3) * 1e6;\n // Normalizes { sec, nsec } to ensure nsec is unsigned.\n const nsecInSec = Math.floor(nsec / 1e9);\n return {\n sec: sec + nsecInSec,\n nsec: nsec - nsecInSec * 1e9,\n };\n}\nexport function encodeTimestampExtension(object) {\n if (object instanceof Date) {\n const timeSpec = encodeDateToTimeSpec(object);\n return encodeTimeSpecToTimestamp(timeSpec);\n }\n else {\n return null;\n }\n}\nexport function decodeTimestampToTimeSpec(data) {\n const view = new DataView(data.buffer, data.byteOffset, data.byteLength);\n // data may be 32, 64, or 96 bits\n switch (data.byteLength) {\n case 4: {\n // timestamp 32 = { sec32 }\n const sec = view.getUint32(0);\n const nsec = 0;\n return { sec, nsec };\n }\n case 8: {\n // timestamp 64 = { nsec30, sec34 }\n const nsec30AndSecHigh2 = view.getUint32(0);\n const secLow32 = view.getUint32(4);\n const sec = (nsec30AndSecHigh2 & 0x3) * 0x100000000 + secLow32;\n const nsec = nsec30AndSecHigh2 >>> 2;\n return { sec, nsec };\n }\n case 12: {\n // timestamp 96 = { nsec32 (unsigned), sec64 (signed) }\n const sec = getInt64(view, 4);\n const nsec = view.getUint32(0);\n return { sec, nsec };\n }\n default:\n throw new DecodeError(`Unrecognized data size for timestamp (expected 4, 8, or 12): ${data.length}`);\n }\n}\nexport function decodeTimestampExtension(data) {\n const timeSpec = decodeTimestampToTimeSpec(data);\n return new Date(timeSpec.sec * 1e3 + timeSpec.nsec / 1e6);\n}\nexport const timestampExtension = {\n type: EXT_TIMESTAMP,\n encode: encodeTimestampExtension,\n decode: decodeTimestampExtension,\n};\n//# sourceMappingURL=timestamp.mjs.map","// ExtensionCodec to handle MessagePack extensions\nimport { ExtData } from \"./ExtData.mjs\";\nimport { timestampExtension } from \"./timestamp.mjs\";\nexport class ExtensionCodec {\n static defaultCodec = new ExtensionCodec();\n // ensures ExtensionCodecType<X> matches ExtensionCodec<X>\n // this will make type errors a lot more clear\n // eslint-disable-next-line @typescript-eslint/naming-convention\n __brand;\n // built-in extensions\n builtInEncoders = [];\n builtInDecoders = [];\n // custom extensions\n encoders = [];\n decoders = [];\n constructor() {\n this.register(timestampExtension);\n }\n register({ type, encode, decode, }) {\n if (type >= 0) {\n // custom extensions\n this.encoders[type] = encode;\n this.decoders[type] = decode;\n }\n else {\n // built-in extensions\n const index = -1 - type;\n this.builtInEncoders[index] = encode;\n this.builtInDecoders[index] = decode;\n }\n }\n tryToEncode(object, context) {\n // built-in extensions\n for (let i = 0; i < this.builtInEncoders.length; i++) {\n const encodeExt = this.builtInEncoders[i];\n if (encodeExt != null) {\n const data = encodeExt(object, context);\n if (data != null) {\n const type = -1 - i;\n return new ExtData(type, data);\n }\n }\n }\n // custom extensions\n for (let i = 0; i < this.encoders.length; i++) {\n const encodeExt = this.encoders[i];\n if (encodeExt != null) {\n const data = encodeExt(object, context);\n if (data != null) {\n const type = i;\n return new ExtData(type, data);\n }\n }\n }\n if (object instanceof ExtData) {\n // to keep ExtData as is\n return object;\n }\n return null;\n }\n decode(data, type, context) {\n const decodeExt = type < 0 ? this.builtInDecoders[-1 - type] : this.decoders[type];\n if (decodeExt) {\n return decodeExt(data, type, context);\n }\n else {\n // decode() does not fail, returns ExtData instead.\n return new ExtData(type, data);\n }\n }\n}\n//# sourceMappingURL=ExtensionCodec.mjs.map","function isArrayBufferLike(buffer) {\n return (buffer instanceof ArrayBuffer || (typeof SharedArrayBuffer !== \"undefined\" && buffer instanceof SharedArrayBuffer));\n}\nexport function ensureUint8Array(buffer) {\n if (buffer instanceof Uint8Array) {\n return buffer;\n }\n else if (ArrayBuffer.isView(buffer)) {\n return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n }\n else if (isArrayBufferLike(buffer)) {\n return new Uint8Array(buffer);\n }\n else {\n // ArrayLike<number>\n return Uint8Array.from(buffer);\n }\n}\n//# sourceMappingURL=typedArrays.mjs.map","import { utf8Count, utf8Encode } from \"./utils/utf8.mjs\";\nimport { ExtensionCodec } from \"./ExtensionCodec.mjs\";\nimport { setInt64, setUint64 } from \"./utils/int.mjs\";\nimport { ensureUint8Array } from \"./utils/typedArrays.mjs\";\nexport const DEFAULT_MAX_DEPTH = 100;\nexport const DEFAULT_INITIAL_BUFFER_SIZE = 2048;\nexport class Encoder {\n extensionCodec;\n context;\n useBigInt64;\n maxDepth;\n initialBufferSize;\n sortKeys;\n forceFloat32;\n ignoreUndefined;\n forceIntegerToFloat;\n pos;\n view;\n bytes;\n entered = false;\n constructor(options) {\n this.extensionCodec = options?.extensionCodec ?? ExtensionCodec.defaultCodec;\n this.context = options?.context; // needs a type assertion because EncoderOptions has no context property when ContextType is undefined\n this.useBigInt64 = options?.useBigInt64 ?? false;\n this.maxDepth = options?.maxDepth ?? DEFAULT_MAX_DEPTH;\n this.initialBufferSize = options?.initialBufferSize ?? DEFAULT_INITIAL_BUFFER_SIZE;\n this.sortKeys = options?.sortKeys ?? false;\n this.forceFloat32 = options?.forceFloat32 ?? false;\n this.ignoreUndefined = options?.ignoreUndefined ?? false;\n this.forceIntegerToFloat = options?.forceIntegerToFloat ?? false;\n this.pos = 0;\n this.view = new DataView(new ArrayBuffer(this.initialBufferSize));\n this.bytes = new Uint8Array(this.view.buffer);\n }\n clone() {\n // Because of slightly special argument `context`,\n // type assertion is needed.\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n return new Encoder({\n extensionCodec: this.extensionCodec,\n context: this.context,\n useBigInt64: this.useBigInt64,\n maxDepth: this.maxDepth,\n initialBufferSize: this.initialBufferSize,\n sortKeys: this.sortKeys,\n forceFloat32: this.forceFloat32,\n ignoreUndefined: this.ignoreUndefined,\n forceIntegerToFloat: this.forceIntegerToFloat,\n });\n }\n reinitializeState() {\n this.pos = 0;\n }\n /**\n * This is almost equivalent to {@link Encoder#encode}, but it returns an reference of the encoder's internal buffer and thus much faster than {@link Encoder#encode}.\n *\n * @returns Encodes the object and returns a shared reference the encoder's internal buffer.\n */\n encodeSharedRef(object) {\n if (this.entered) {\n const instance = this.clone();\n return instance.encodeSharedRef(object);\n }\n try {\n this.entered = true;\n this.reinitializeState();\n this.doEncode(object, 1);\n return this.bytes.subarray(0, this.pos);\n }\n finally {\n this.entered = false;\n }\n }\n /**\n * @returns Encodes the object and returns a copy of the encoder's internal buffer.\n */\n encode(object) {\n if (this.entered) {\n const instance = this.clone();\n return instance.encode(object);\n }\n try {\n this.entered = true;\n this.reinitializeState();\n this.doEncode(object, 1);\n return this.bytes.slice(0, this.pos);\n }\n finally {\n this.entered = false;\n }\n }\n doEncode(object, depth) {\n if (depth > this.maxDepth) {\n throw new Error(`Too deep objects in depth ${depth}`);\n }\n if (object == null) {\n this.encodeNil();\n }\n else if (typeof object === \"boolean\") {\n this.encodeBoolean(object);\n }\n else if (typeof object === \"number\") {\n if (!this.forceIntegerToFloat) {\n this.encodeNumber(object);\n }\n else {\n this.encodeNumberAsFloat(object);\n }\n }\n else if (typeof object === \"string\") {\n this.encodeString(object);\n }\n else if (this.useBigInt64 && typeof object === \"bigint\") {\n this.encodeBigInt64(object);\n }\n else {\n this.encodeObject(object, depth);\n }\n }\n ensureBufferSizeToWrite(sizeToWrite) {\n const requiredSize = this.pos + sizeToWrite;\n if (this.view.byteLength < requiredSize) {\n this.resizeBuffer(requiredSize * 2);\n }\n }\n resizeBuffer(newSize) {\n const newBuffer = new ArrayBuffer(newSize);\n const newBytes = new Uint8Array(newBuffer);\n const newView = new DataView(newBuffer);\n newBytes.set(this.bytes);\n this.view = newView;\n this.bytes = newBytes;\n }\n encodeNil() {\n this.writeU8(0xc0);\n }\n encodeBoolean(object) {\n if (object === false) {\n this.writeU8(0xc2);\n }\n else {\n this.writeU8(0xc3);\n }\n }\n encodeNumber(object) {\n if (!this.forceIntegerToFloat && Number.isSafeInteger(object)) {\n if (object >= 0) {\n if (object < 0x80) {\n // positive fixint\n this.writeU8(object);\n }\n else if (object < 0x100) {\n // uint 8\n this.writeU8(0xcc);\n this.writeU8(object);\n }\n else if (object < 0x10000) {\n // uint 16\n this.writeU8(0xcd);\n this.writeU16(object);\n }\n else if (object < 0x100000000) {\n // uint 32\n this.writeU8(0xce);\n this.writeU32(object);\n }\n else if (!this.useBigInt64) {\n // uint 64\n this.writeU8(0xcf);\n this.writeU64(object);\n }\n else {\n this.encodeNumberAsFloat(object);\n }\n }\n else {\n if (object >= -0x20) {\n // negative fixint\n this.writeU8(0xe0 | (object + 0x20));\n }\n else if (object >= -0x80) {\n // int 8\n this.writeU8(0xd0);\n this.writeI8(object);\n }\n else if (object >= -0x8000) {\n // int 16\n this.writeU8(0xd1);\n this.writeI16(object);\n }\n else if (object >= -0x80000000) {\n // int 32\n this.writeU8(0xd2);\n this.writeI32(object);\n }\n else if (!this.useBigInt64) {\n // int 64\n this.writeU8(0xd3);\n this.writeI64(object);\n }\n else {\n this.encodeNumberAsFloat(object);\n }\n }\n }\n else {\n this.encodeNumberAsFloat(object);\n }\n }\n encodeNumberAsFloat(object) {\n if (this.forceFloat32) {\n // float 32\n this.writeU8(0xca);\n this.writeF32(object);\n }\n else {\n // float 64\n this.writeU8(0xcb);\n this.writeF64(object);\n }\n }\n encodeBigInt64(object) {\n if (object >= BigInt(0)) {\n // uint 64\n this.writeU8(0xcf);\n this.writeBigUint64(object);\n }\n else {\n // int 64\n this.writeU8(0xd3);\n this.writeBigInt64(object);\n }\n }\n writeStringHeader(byteLength) {\n if (byteLength < 32) {\n // fixstr\n this.writeU8(0xa0 + byteLength);\n }\n else if (byteLength < 0x100) {\n // str 8\n this.writeU8(0xd9);\n this.writeU8(byteLength);\n }\n else if (byteLength < 0x10000) {\n // str 16\n this.writeU8(0xda);\n this.writeU16(byteLength);\n }\n else if (byteLength < 0x100000000) {\n // str 32\n this.writeU8(0xdb);\n this.writeU32(byteLength);\n }\n else {\n throw new Error(`Too long string: ${byteLength} bytes in UTF-8`);\n }\n }\n encodeString(object) {\n const maxHeaderSize = 1 + 4;\n const byteLength = utf8Count(object);\n this.ensureBufferSizeToWrite(maxHeaderSize + byteLength);\n this.writeStringHeader(byteLength);\n utf8Encode(object, this.bytes, this.pos);\n this.pos += byteLength;\n }\n encodeObject(object, depth) {\n // try to encode objects with custom codec first of non-primitives\n const ext = this.extensionCodec.tryToEncode(object, this.context);\n if (ext != null) {\n this.encodeExtension(ext);\n }\n else if (Array.isArray(object)) {\n this.encodeArray(object, depth);\n }\n else if (ArrayBuffer.isView(object)) {\n this.encodeBinary(object);\n }\n else if (typeof object === \"object\") {\n this.encodeMap(object, depth);\n }\n else {\n // symbol, function and other special object come here unless extensionCodec handles them.\n throw new Error(`Unrecognized object: ${Object.prototype.toString.apply(object)}`);\n }\n }\n encodeBinary(object) {\n const size = object.byteLength;\n if (size < 0x100) {\n // bin 8\n this.writeU8(0xc4);\n this.writeU8(size);\n }\n else if (size < 0x10000) {\n // bin 16\n this.writeU8(0xc5);\n this.writeU16(size);\n }\n else if (size < 0x100000000) {\n // bin 32\n this.writeU8(0xc6);\n this.writeU32(size);\n }\n else {\n throw new Error(`Too large binary: ${size}`);\n }\n const bytes = ensureUint8Array(object);\n this.writeU8a(bytes);\n }\n encodeArray(object, depth) {\n const size = object.length;\n if (size < 16) {\n // fixarray\n this.writeU8(0x90 + size);\n }\n else if (size < 0x10000) {\n // array 16\n this.writeU8(0xdc);\n this.writeU16(size);\n }\n else if (size < 0x100000000) {\n // array 32\n this.writeU8(0xdd);\n this.writeU32(size);\n }\n else {\n throw new Error(`Too large array: ${size}`);\n }\n for (const item of object) {\n this.doEncode(item, depth + 1);\n }\n }\n countWithoutUndefined(object, keys) {\n let count = 0;\n for (const key of keys) {\n if (object[key] !== undefined) {\n count++;\n }\n }\n return count;\n }\n encodeMap(object, depth) {\n const keys = Object.keys(object);\n if (this.sortKeys) {\n keys.sort();\n }\n const size = this.ignoreUndefined ? this.countWithoutUndefined(object, keys) : keys.length;\n if (size < 16) {\n // fixmap\n this.writeU8(0x80 + size);\n }\n else if (size < 0x10000) {\n // map 16\n this.writeU8(0xde);\n this.writeU16(size);\n }\n else if (size < 0x100000000) {\n // map 32\n this.writeU8(0xdf);\n this.writeU32(size);\n }\n else {\n throw new Error(`Too large map object: ${size}`);\n }\n for (const key of keys) {\n const value = object[key];\n if (!(this.ignoreUndefined && value === undefined)) {\n this.encodeString(key);\n this.doEncode(value, depth + 1);\n }\n }\n }\n encodeExtension(ext) {\n if (typeof ext.data === \"function\") {\n const data = ext.data(this.pos + 6);\n const size = data.length;\n if (size >= 0x100000000) {\n throw new Error(`Too large extension object: ${size}`);\n }\n this.writeU8(0xc9);\n this.writeU32(size);\n this.writeI8(ext.type);\n this.writeU8a(data);\n return;\n }\n const size = ext.data.length;\n if (size === 1) {\n // fixext 1\n this.writeU8(0xd4);\n }\n else if (size === 2) {\n // fixext 2\n this.writeU8(0xd5);\n }\n else if (size === 4) {\n // fixext 4\n this.writeU8(0xd6);\n }\n else if (size === 8) {\n // fixext 8\n this.writeU8(0xd7);\n }\n else if (size === 16) {\n // fixext 16\n this.writeU8(0xd8);\n }\n else if (size < 0x100) {\n // ext 8\n this.writeU8(0xc7);\n this.writeU8(size);\n }\n else if (size < 0x10000) {\n // ext 16\n this.writeU8(0xc8);\n this.writeU16(size);\n }\n else if (size < 0x100000000) {\n // ext 32\n this.writeU8(0xc9);\n this.writeU32(size);\n }\n else {\n throw new Error(`Too large extension object: ${size}`);\n }\n this.writeI8(ext.type);\n this.writeU8a(ext.data);\n }\n writeU8(value) {\n this.ensureBufferSizeToWrite(1);\n this.view.setUint8(this.pos, value);\n this.pos++;\n }\n writeU8a(values) {\n const size = values.length;\n this.ensureBufferSizeToWrite(size);\n this.bytes.set(values, this.pos);\n this.pos += size;\n }\n writeI8(value) {\n this.ensureBufferSizeToWrite(1);\n this.view.setInt8(this.pos, value);\n this.pos++;\n }\n writeU16(value) {\n this.ensureBufferSizeToWrite(2);\n this.view.setUint16(this.pos, value);\n this.pos += 2;\n }\n writeI16(value) {\n this.ensureBufferSizeToWrite(2);\n this.view.setInt16(this.pos, value);\n this.pos += 2;\n }\n writeU32(value) {\n this.ensureBufferSizeToWrite(4);\n this.view.setUint32(this.pos, value);\n this.pos += 4;\n }\n writeI32(value) {\n this.ensureBufferSizeToWrite(4);\n this.view.setInt32(this.pos, value);\n this.pos += 4;\n }\n writeF32(value) {\n this.ensureBufferSizeToWrite(4);\n this.view.setFloat32(this.pos, value);\n this.pos += 4;\n }\n writeF64(value) {\n this.ensureBufferSizeToWrite(8);\n this.view.setFloat64(this.pos, value);\n this.pos += 8;\n }\n writeU64(value) {\n this.ensureBufferSizeToWrite(8);\n setUint64(this.view, this.pos, value);\n this.pos += 8;\n }\n writeI64(value) {\n this.ensureBufferSizeToWrite(8);\n setInt64(this.view, this.pos, value);\n this.pos += 8;\n }\n writeBigUint64(value) {\n this.ensureBufferSizeToWrite(8);\n this.view.setBigUint64(this.pos, value);\n this.pos += 8;\n }\n writeBigInt64(value) {\n this.ensureBufferSizeToWrite(8);\n this.view.setBigInt64(this.pos, value);\n this.pos += 8;\n }\n}\n//# sourceMappingURL=Encoder.mjs.map","import { Encoder } from \"./Encoder.mjs\";\n/**\n * It encodes `value` in the MessagePack format and\n * returns a byte buffer.\n *\n * The returned buffer is a slice of a larger `ArrayBuffer`, so you have to use its `#byteOffset` and `#byteLength` in order to convert it to another typed arrays including NodeJS `Buffer`.\n */\nexport function encode(value, options) {\n const encoder = new Encoder(options);\n return encoder.encodeSharedRef(value);\n}\n//# sourceMappingURL=encode.mjs.map","export function prettyByte(byte) {\n return `${byte < 0 ? \"-\" : \"\"}0x${Math.abs(byte).toString(16).padStart(2, \"0\")}`;\n}\n//# sourceMappingURL=prettyByte.mjs.map","import { utf8DecodeJs } from \"./utils/utf8.mjs\";\nconst DEFAULT_MAX_KEY_LENGTH = 16;\nconst DEFAULT_MAX_LENGTH_PER_KEY = 16;\nexport class CachedKeyDecoder {\n hit = 0;\n miss = 0;\n caches;\n maxKeyLength;\n maxLengthPerKey;\n constructor(maxKeyLength = DEFAULT_MAX_KEY_LENGTH, maxLengthPerKey = DEFAULT_MAX_LENGTH_PER_KEY) {\n this.maxKeyLength = maxKeyLength;\n this.maxLengthPerKey = maxLengthPerKey;\n // avoid `new Array(N)`, which makes a sparse array,\n // because a sparse array is typically slower than a non-sparse array.\n this.caches = [];\n for (let i = 0; i < this.maxKeyLength; i++) {\n this.caches.push([]);\n }\n }\n canBeCached(byteLength) {\n return byteLength > 0 && byteLength <= this.maxKeyLength;\n }\n find(bytes, inputOffset, byteLength) {\n const records = this.caches[byteLength - 1];\n FIND_CHUNK: for (const record of records) {\n const recordBytes = record.bytes;\n for (let j = 0; j < byteLength; j++) {\n if (recordBytes[j] !== bytes[inputOffset + j]) {\n continue FIND_CHUNK;\n }\n }\n return record.str;\n }\n return null;\n }\n store(bytes, value) {\n const records = this.caches[bytes.length - 1];\n const record = { bytes, str: value };\n if (records.length >= this.maxLengthPerKey) {\n // `records` are full!\n // Set `record` to an arbitrary position.\n records[(Math.random() * records.length) | 0] = record;\n }\n else {\n records.push(record);\n }\n }\n decode(bytes, inputOffset, byteLength) {\n const cachedValue = this.find(bytes, inputOffset, byteLength);\n if (cachedValue != null) {\n this.hit++;\n return cachedValue;\n }\n this.miss++;\n const str = utf8DecodeJs(bytes, inputOffset, byteLength);\n // Ensure to copy a slice of bytes because the bytes may be a NodeJS Buffer and Buffer#slice() returns a reference to its internal ArrayBuffer.\n const slicedCopyOfBytes = Uint8Array.prototype.slice.call(bytes, inputOffset, inputOffset + byteLength);\n this.store(slicedCopyOfBytes, str);\n return str;\n }\n}\n//# sourceMappingURL=CachedKeyDecoder.mjs.map","import { prettyByte } from \"./utils/prettyByte.mjs\";\nimport { ExtensionCodec } from \"./ExtensionCodec.mjs\";\nimport { getInt64, getUint64, UINT32_MAX } from \"./utils/int.mjs\";\nimport { utf8Decode } from \"./utils/utf8.mjs\";\nimport { ensureUint8Array } from \"./utils/typedArrays.mjs\";\nimport { CachedKeyDecoder } from \"./CachedKeyDecoder.mjs\";\nimport { DecodeError } from \"./DecodeError.mjs\";\nconst STATE_ARRAY = \"array\";\nconst STATE_MAP_KEY = \"map_key\";\nconst STATE_MAP_VALUE = \"map_value\";\nconst mapKeyConverter = (key) => {\n if (typeof key === \"string\" || typeof key === \"number\") {\n return key;\n }\n throw new DecodeError(\"The type of key must be string or number but \" + typeof key);\n};\nclass StackPool {\n stack = [];\n stackHeadPosition = -1;\n get length() {\n return this.stackHeadPosition + 1;\n }\n top() {\n return this.stack[this.stackHeadPosition];\n }\n pushArrayState(size) {\n const state = this.getUninitializedStateFromPool();\n state.type = STATE_ARRAY;\n state.position = 0;\n state.size = size;\n state.array = new Array(size);\n }\n pushMapState(size) {\n const state = this.getUninitializedStateFromPool();\n state.type = STATE_MAP_KEY;\n state.readCount = 0;\n state.size = size;\n state.map = {};\n }\n getUninitializedStateFromPool() {\n this.stackHeadPosition++;\n if (this.stackHeadPosition === this.stack.length) {\n const partialState = {\n type: undefined,\n size: 0,\n array: undefined,\n position: 0,\n readCount: 0,\n map: undefined,\n key: null,\n };\n this.stack.push(partialState);\n }\n return this.stack[this.stackHeadPosition];\n }\n release(state) {\n const topStackState = this.stack[this.stackHeadPosition];\n if (topStackState !== state) {\n throw new Error(\"Invalid stack state. Released state is not on top of the stack.\");\n }\n if (state.type === STATE_ARRAY) {\n const partialState = state;\n partialState.size = 0;\n partialState.array = undefined;\n partialState.position = 0;\n partialState.type = undefined;\n }\n if (state.type === STATE_MAP_KEY || state.type === STATE_MAP_VALUE) {\n const partialState = state;\n partialState.size = 0;\n partialState.map = undefined;\n partialState.readCount = 0;\n partialState.type = undefined;\n }\n this.stackHeadPosition--;\n }\n reset() {\n this.stack.length = 0;\n this.stackHeadPosition = -1;\n }\n}\nconst HEAD_BYTE_REQUIRED = -1;\nconst EMPTY_VIEW = new DataView(new ArrayBuffer(0));\nconst EMPTY_BYTES = new Uint8Array(EMPTY_VIEW.buffer);\ntry {\n // IE11: The spec says it should throw RangeError,\n // IE11: but in IE11 it throws TypeError.\n EMPTY_VIEW.getInt8(0);\n}\ncatch (e) {\n if (!(e instanceof RangeError)) {\n throw new Error(\"This module is not supported in the current JavaScript engine because DataView does not throw RangeError on out-of-bounds access\");\n }\n}\nconst MORE_DATA = new RangeError(\"Insufficient data\");\nconst sharedCachedKeyDecoder = new CachedKeyDecoder();\nexport class Decoder {\n extensionCodec;\n context;\n useBigInt64;\n rawStrings;\n maxStrLength;\n maxBinLength;\n maxArrayLength;\n maxMapLength;\n maxExtLength;\n keyDecoder;\n mapKeyConverter;\n totalPos = 0;\n pos = 0;\n view = EMPTY_VIEW;\n bytes = EMPTY_BYTES;\n headByte = HEAD_BYTE_REQUIRED;\n stack = new StackPool();\n entered = false;\n constructor(options) {\n this.extensionCodec = options?.extensionCodec ?? ExtensionCodec.defaultCodec;\n this.context = options?.context; // needs a type assertion because EncoderOptions has no context property when ContextType is undefined\n this.useBigInt64 = options?.useBigInt64 ?? false;\n this.rawStrings = options?.rawStrings ?? false;\n this.maxStrLength = options?.maxStrLength ?? UINT32_MAX;\n this.maxBinLength = options?.maxBinLength ?? UINT32_MAX;\n this.maxArrayLength = options?.maxArrayLength ?? UINT32_MAX;\n this.maxMapLength = options?.maxMapLength ?? UINT32_MAX;\n this.maxExtLength = options?.maxExtLength ?? UINT32_MAX;\n this.keyDecoder = options?.keyDecoder !== undefined ? options.keyDecoder : sharedCachedKeyDecoder;\n this.mapKeyConverter = options?.mapKeyConverter ?? mapKeyConverter;\n }\n clone() {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n return new Decoder({\n extensionCodec: this.extensionCodec,\n context: this.context,\n useBigInt64: this.useBigInt64,\n rawStrings: this.rawStrings,\n maxStrLength: this.maxStrLength,\n maxBinLength: this.maxBinLength,\n maxArrayLength: this.maxArrayLength,\n maxMapLength: this.maxMapLength,\n maxExtLength: this.maxExtLength,\n keyDecoder: this.keyDecoder,\n });\n }\n reinitializeState() {\n this.totalPos = 0;\n this.headByte = HEAD_BYTE_REQUIRED;\n this.stack.reset();\n // view, bytes, and pos will be re-initialized in setBuffer()\n }\n setBuffer(buffer) {\n const bytes = ensureUint8Array(buffer);\n this.bytes = bytes;\n this.view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n this.pos = 0;\n }\n appendBuffer(buffer) {\n if (this.headByte === HEAD_BYTE_REQUIRED && !this.hasRemaining(1)) {\n this.setBuffer(buffer);\n }\n else {\n const remainingData = this.bytes.subarray(this.pos);\n const newData = ensureUint8Array(buffer);\n // concat remainingData + newData\n const newBuffer = new Uint8Array(remainingData.length + newData.length);\n newBuffer.set(remainingData);\n newBuffer.set(newData, remainingData.length);\n this.setBuffer(newBuffer);\n }\n }\n hasRemaining(size) {\n return this.view.byteLength - this.pos >= size;\n }\n createExtraByteError(posToShow) {\n const { view, pos } = this;\n return new RangeError(`Extra ${view.byteLength - pos} of ${view.byteLength} byte(s) found at buffer[${posToShow}]`);\n }\n /**\n * @throws {@link DecodeError}\n * @throws {@link RangeError}\n */\n decode(buffer) {\n if (this.entered) {\n const instance = this.clone();\n return instance.decode(buffer);\n }\n try {\n this.entered = true;\n this.reinitializeState();\n this.setBuffer(buffer);\n const object = this.doDecodeSync();\n if (this.hasRemaining(1)) {\n throw this.createExtraByteError(this.pos);\n }\n return object;\n }\n finally {\n this.entered = false;\n }\n }\n *decodeMulti(buffer) {\n if (this.entered) {\n const instance = this.clone();\n yield* instance.decodeMulti(buffer);\n return;\n }\n try {\n this.entered = true;\n this.reinitializeState();\n this.setBuffer(buffer);\n while (this.hasRemaining(1)) {\n yield this.doDecodeSync();\n }\n }\n finally {\n this.entered = false;\n }\n }\n async decodeAsync(stream) {\n if (this.entered) {\n const instance = this.clone();\n return instance.decodeAsync(stream);\n }\n try {\n this.entered = true;\n let decoded = false;\n let object;\n for await (const buffer of stream) {\n if (decoded) {\n this.entered = false;\n throw this.createExtraByteError(this.totalPos);\n }\n this.appendBuffer(buffer);\n try {\n object = this.doDecodeSync();\n decoded = true;\n }\n catch (e) {\n if (!(e instanceof RangeError)) {\n throw e; // rethrow\n }\n // fallthrough\n }\n this.totalPos += this.pos;\n }\n if (decoded) {\n if (this.hasRemaining(1)) {\n throw this.createExtraByteError(this.totalPos);\n }\n return object;\n }\n const { headByte, pos, totalPos } = this;\n throw new RangeError(`Insufficient data in parsing ${prettyByte(headByte)} at ${totalPos} (${pos} in the current buffer)`);\n }\n finally {\n this.entered = false;\n }\n }\n decodeArrayStream(stream) {\n return this.decodeMultiAsync(stream, true);\n }\n decodeStream(stream) {\n return this.decodeMultiAsync(stream, false);\n }\n async *decodeMultiAsync(stream, isArray) {\n if (this.entered) {\n const instance = this.clone();\n yield* instance.decodeMultiAsync(stream, isArray);\n return;\n }\n try {\n this.entered = true;\n let isArrayHeaderRequired = isArray;\n let arrayItemsLeft = -1;\n for await (const buffer of stream) {\n if (isArray && arrayItemsLeft === 0) {\n throw this.createExtraByteError(this.totalPos);\n }\n this.appendBuffer(buffer);\n if (isArrayHeaderRequired) {\n arrayItemsLeft = this.readArraySize();\n isArrayHeaderRequired = false;\n this.complete();\n }\n try {\n while (true) {\n yield this.doDecodeSync();\n if (--arrayItemsLeft === 0) {\n break;\n }\n }\n }\n catch (e) {\n if (!(e instanceof RangeError)) {\n throw e; // rethrow\n }\n // fallthrough\n }\n this.totalPos += this.pos;\n }\n }\n finally {\n this.entered = false;\n }\n }\n doDecodeSync() {\n DECODE: while (true) {\n const headByte = this.readHeadByte();\n let object;\n if (headByte >= 0xe0) {\n // negative fixint (111x xxxx) 0xe0 - 0xff\n object = headByte - 0x100;\n }\n else if (headByte < 0xc0) {\n if (headByte < 0x80) {\n // positive fixint (0xxx xxxx) 0x00 - 0x7f\n object = headByte;\n }\n else if (headByte < 0x90) {\n // fixmap (1000 xxxx) 0x80 - 0x8f\n const size = headByte - 0x80;\n if (size !== 0) {\n this.pushMapState(size);\n this.complete();\n continue DECODE;\n }\n else {\n object = {};\n }\n }\n else if (headByte < 0xa0) {\n // fixarray (1001 xxxx) 0x90 - 0x9f\n const size = headByte - 0x90;\n if (size !== 0) {\n this.pushArrayState(size);\n this.complete();\n continue DECODE;\n }\n else {\n object = [];\n }\n }\n else {\n // fixstr (101x xxxx) 0xa0 - 0xbf\n const byteLength = headByte - 0xa0;\n object = this.decodeString(byteLength, 0);\n }\n }\n else if (headByte === 0xc0) {\n // nil\n object = null;\n }\n else if (headByte === 0xc2) {\n // false\n object = false;\n }\n else if (headByte === 0xc3) {\n // true\n object = true;\n }\n else if (headByte === 0xca) {\n // float 32\n object = this.readF32();\n }\n else if (headByte === 0xcb) {\n // float 64\n object = this.readF64();\n }\n else if (headByte === 0xcc) {\n // uint 8\n object = this.readU8();\n }\n else if (headByte === 0xcd) {\n // uint 16\n object = this.readU16();\n }\n else if (headByte === 0xce) {\n // uint 32\n object = this.readU32();\n }\n else if (headByte === 0xcf) {\n // uint 64\n if (this.useBigInt64) {\n object = this.readU64AsBigInt();\n }\n else {\n object = this.readU64();\n }\n }\n else if (headByte === 0xd0) {\n // int 8\n object = this.readI8();\n }\n else if (headByte === 0xd1) {\n // int 16\n object = this.readI16();\n }\n else if (headByte === 0xd2) {\n // int 32\n object = this.readI32();\n }\n else if (headByte === 0xd3) {\n // int 64\n if (this.useBigInt64) {\n object = this.readI64AsBigInt();\n }\n else {\n object = this.readI64();\n }\n }\n else if (headByte === 0xd9) {\n // str 8\n const byteLength = this.lookU8();\n object = this.decodeString(byteLength, 1);\n }\n else if (headByte === 0xda) {\n // str 16\n const byteLength = this.lookU16();\n object = this.decodeString(byteLength, 2);\n }\n else if (headByte === 0xdb) {\n // str 32\n const byteLength = this.lookU32();\n object = this.decodeString(byteLength, 4);\n }\n else if (headByte === 0xdc) {\n // array 16\n const size = this.readU16();\n if (size !== 0) {\n this.pushArrayState(size);\n this.complete();\n continue DECODE;\n }\n else {\n object = [];\n }\n }\n else if (headByte === 0xdd) {\n // array 32\n const size = this.readU32();\n if (size !== 0) {\n this.pushArrayState(size);\n this.complete();\n continue DECODE;\n }\n else {\n object = [];\n }\n }\n else if (headByte === 0xde) {\n // map 16\n const size = this.readU16();\n if (size !== 0) {\n this.pushMapState(size);\n this.complete();\n continue DECODE;\n }\n else {\n object = {};\n }\n }\n else if (headByte === 0xdf) {\n // map 32\n const size = this.readU32();\n if (size !== 0) {\n this.pushMapState(size);\n this.complete();\n continue DECODE;\n }\n else {\n object = {};\n }\n }\n else if (headByte === 0xc4) {\n // bin 8\n const size = this.lookU8();\n object = this.decodeBinary(size, 1);\n }\n else if (headByte === 0xc5) {\n // bin 16\n const size = this.lookU16();\n object = this.decodeBinary(size, 2);\n }\n else if (headByte === 0xc6) {\n // bin 32\n const size = this.lookU32();\n object = this.decodeBinary(size, 4);\n }\n else if (headByte === 0xd4) {\n // fixext 1\n object = this.decodeExtension(1, 0);\n }\n else if (headByte === 0xd5) {\n // fixext 2\n object = this.decodeExtension(2, 0);\n }\n else if (headByte === 0xd6) {\n // fixext 4\n object = this.decodeExtension(4, 0);\n }\n else if (headByte === 0xd7) {\n // fixext 8\n object = this.decodeExtension(8, 0);\n }\n else if (headByte === 0xd8) {\n // fixext 16\n object = this.decodeExtension(16, 0);\n }\n else if (headByte === 0xc7) {\n // ext 8\n const size = this.lookU8();\n object = this.decodeExtension(size, 1);\n }\n else if (headByte === 0xc8) {\n // ext 16\n const size = this.lookU16();\n object = this.decodeExtension(size, 2);\n }\n else if (headByte === 0xc9) {\n // ext 32\n const size = this.lookU32();\n object = this.decodeExtension(size, 4);\n }\n else {\n throw new DecodeError(`Unrecognized type byte: ${prettyByte(headByte)}`);\n }\n this.complete();\n const stack = this.stack;\n while (stack.length > 0) {\n // arrays and maps\n const state = stack.top();\n if (state.type === STATE_ARRAY) {\n state.array[state.position] = object;\n state.position++;\n if (state.position === state.size) {\n object = state.array;\n stack.release(state);\n }\n else {\n continue DECODE;\n }\n }\n else if (state.type === STATE_MAP_KEY) {\n if (object === \"__proto__\") {\n throw new DecodeError(\"The key __proto__ is not allowed\");\n }\n state.key = this.mapKeyConverter(object);\n state.type = STATE_MAP_VALUE;\n continue DECODE;\n }\n else {\n // it must be `state.type === State.MAP_VALUE` here\n state.map[state.key] = object;\n state.readCount++;\n if (state.readCount === state.size) {\n object = state.map;\n stack.release(state);\n }\n else {\n state.key = null;\n state.type = STATE_MAP_KEY;\n continue DECODE;\n }\n }\n }\n return object;\n }\n }\n readHeadByte() {\n if (this.headByte === HEAD_BYTE_REQUIRED) {\n this.headByte = this.readU8();\n // console.log(\"headByte\", prettyByte(this.headByte));\n }\n return this.headByte;\n }\n complete() {\n this.headByte = HEAD_BYTE_REQUIRED;\n }\n readArraySize() {\n const headByte = this.readHeadByte();\n switch (headByte) {\n case 0xdc:\n return this.readU16();\n case 0xdd:\n return this.readU32();\n default: {\n if (headByte < 0xa0) {\n return headByte - 0x90;\n }\n else {\n throw new DecodeError(`Unrecognized array type byte: ${prettyByte(headByte)}`);\n }\n }\n }\n }\n pushMapState(size) {\n if (size > this.maxMapLength) {\n throw new DecodeError(`Max length exceeded: map length (${size}) > maxMapLengthLength (${this.maxMapLength})`);\n }\n this.stack.pushMapState(size);\n }\n pushArrayState(size) {\n if (size > this.maxArrayLength) {\n throw new DecodeError(`Max length exceeded: array length (${size}) > maxArrayLength (${this.maxArrayLength})`);\n }\n this.stack.pushArrayState(size);\n }\n decodeString(byteLength, headerOffset) {\n if (!this.rawStrings || this.stateIsMapKey()) {\n return this.decodeUtf8String(byteLength, headerOffset);\n }\n return this.decodeBinary(byteLength, headerOffset);\n }\n /**\n * @throws {@link RangeError}\n */\n decodeUtf8String(byteLength, headerOffset) {\n if (byteLength > this.maxStrLength) {\n throw new DecodeError(`Max length exceeded: UTF-8 byte length (${byteLength}) > maxStrLength (${this.maxStrLength})`);\n }\n if (this.bytes.byteLength < this.pos + headerOffset + byteLength) {\n throw MORE_DATA;\n }\n const offset = this.pos + headerOffset;\n let object;\n if (this.stateIsMapKey() && this.keyDecoder?.canBeCached(byteLength)) {\n object = this.keyDecoder.decode(this.bytes, offset, byteLength);\n }\n else {\n object = utf8Decode(this.bytes, offset, byteLength);\n }\n this.pos += headerOffset + byteLength;\n return object;\n }\n stateIsMapKey() {\n if (this.stack.length > 0) {\n const state = this.stack.top();\n return state.type === STATE_MAP_KEY;\n }\n return false;\n }\n /**\n * @throws {@link RangeError}\n */\n decodeBinary(byteLength, headOffset) {\n if (byteLength > this.maxBinLength) {\n throw new DecodeError(`Max length exceeded: bin length (${byteLength}) > maxBinLength (${this.maxBinLength})`);\n }\n if (!this.hasRemaining(byteLength + headOffset)) {\n throw MORE_DATA;\n }\n const offset = this.pos + headOffset;\n const object = this.bytes.subarray(offset, offset + byteLength);\n this.pos += headOffset + byteLength;\n return object;\n }\n decodeExtension(size, headOffset) {\n if (size > this.maxExtLength) {\n throw new DecodeError(`Max length exceeded: ext length (${size}) > maxExtLength (${this.maxExtLength})`);\n }\n const extType = this.view.getInt8(this.pos + headOffset);\n const data = this.decodeBinary(size, headOffset + 1 /* extType */);\n return this.extensionCodec.decode(data, extType, this.context);\n }\n lookU8() {\n return this.view.getUint8(this.pos);\n }\n lookU16() {\n return this.view.getUint16(this.pos);\n }\n lookU32() {\n return this.view.getUint32(this.pos);\n }\n readU8() {\n const value = this.view.getUint8(this.pos);\n this.pos++;\n return value;\n }\n readI8() {\n const value = this.view.getInt8(this.pos);\n this.pos++;\n return value;\n }\n readU16() {\n const value = this.view.getUint16(this.pos);\n this.pos += 2;\n return value;\n }\n readI16() {\n const value = this.view.getInt16(this.pos);\n this.pos += 2;\n return value;\n }\n readU32() {\n const value = this.view.getUint32(this.pos);\n this.pos += 4;\n return value;\n }\n readI32() {\n const value = this.view.getInt32(this.pos);\n this.pos += 4;\n return value;\n }\n readU64() {\n const value = getUint64(this.view, this.pos);\n this.pos += 8;\n return value;\n }\n readI64() {\n const value = getInt64(this.view, this.pos);\n this.pos += 8;\n return value;\n }\n readU64AsBigInt() {\n const value = this.view.getBigUint64(this.pos);\n this.pos += 8;\n return value;\n }\n readI64AsBigInt() {\n const value = this.view.getBigInt64(this.pos);\n this.pos += 8;\n return value;\n }\n readF32() {\n const value = this.view.getFloat32(this.pos);\n this.pos += 4;\n return value;\n }\n readF64() {\n const value = this.view.getFloat64(this.pos);\n this.pos += 8;\n return value;\n }\n}\n//# sourceMappingURL=Decoder.mjs.map","import { Decoder } from \"./Decoder.mjs\";\n/**\n * It decodes a single MessagePack object in a buffer.\n *\n * This is a synchronous decoding function.\n * See other variants for asynchronous decoding: {@link decodeAsync}, {@link decodeMultiStream}, or {@link decodeArrayStream}.\n *\n * @throws {@link RangeError} if the buffer is incomplete, including the case where the buffer is empty.\n * @throws {@link DecodeError} if the buffer contains invalid data.\n */\nexport function decode(buffer, options) {\n const decoder = new Decoder(options);\n return decoder.decode(buffer);\n}\n/**\n * It decodes multiple MessagePack objects in a buffer.\n * This is corresponding to {@link decodeMultiStream}.\n *\n * @throws {@link RangeError} if the buffer is incomplete, including the case where the buffer is empty.\n * @throws {@link DecodeError} if the buffer contains invalid data.\n */\nexport function decodeMulti(buffer, options) {\n const decoder = new Decoder(options);\n return decoder.decodeMulti(buffer);\n}\n//# sourceMappingURL=decode.mjs.map","const JSONStringify = data => JSON.stringify(data, (_, value) => typeof value === \"bigint\" ? value.toString() + \"n\" : value);\nconst JSONParse = json => {\n const numbersBiggerThanMaxInt = /([\\[:])?(\\d{17,}|(?:[9](?:[1-9]07199254740991|0[1-9]7199254740991|00[8-9]199254740991|007[2-9]99254740991|007199[3-9]54740991|0071992[6-9]4740991|00719925[5-9]740991|007199254[8-9]40991|0071992547[5-9]0991|00719925474[1-9]991|00719925474099[2-9])))([,\\}\\]])/g;\n const serializedData = json.replace(numbersBiggerThanMaxInt, \"$1\\\"$2n\\\"$3\");\n return JSON.parse(serializedData, (_, value) => {\n const isCustomFormatBigInt = typeof value === \"string\" && value.match(/^\\d+n$/);\n if (isCustomFormatBigInt)\n return BigInt(value.substring(0, value.length - 1));\n return value;\n });\n};\nexport function safeJsonParse(value) {\n if (typeof value !== \"string\") {\n throw new Error(`Cannot safe json parse value of type ${typeof value}`);\n }\n try {\n return JSONParse(value);\n }\n catch (_a) {\n return value;\n }\n}\nexport function safeJsonStringify(value) {\n return typeof value === \"string\" ? value : JSONStringify(value) || \"\";\n}\n//# sourceMappingURL=index.js.map","import{fromMiliseconds as bn}from\"@walletconnect/time\";import{safeJsonParse as pn,safeJsonStringify as wn}from\"@walletconnect/safe-json\";function En(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name===\"Uint8Array\"}function fe(t,...e){if(!En(t))throw new Error(\"Uint8Array expected\");if(e.length>0&&!e.includes(t.length))throw new Error(\"Uint8Array expected of length \"+e+\", got length=\"+t.length)}function De(t,e=!0){if(t.destroyed)throw new Error(\"Hash instance has been destroyed\");if(e&&t.finished)throw new Error(\"Hash#digest() has already been called\")}function gn(t,e){fe(t);const n=e.outputLen;if(t.length<n)throw new Error(\"digestInto() expects output buffer of length at least \"+n)}const it=typeof globalThis==\"object\"&&\"crypto\"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */const _t=t=>new DataView(t.buffer,t.byteOffset,t.byteLength);function yn(t){if(typeof t!=\"string\")throw new Error(\"utf8ToBytes expected string, got \"+typeof t);return new Uint8Array(new TextEncoder().encode(t))}function de(t){return typeof t==\"string\"&&(t=yn(t)),fe(t),t}class xn{clone(){return this._cloneInto()}}function Bn(t){const e=r=>t().update(de(r)).digest(),n=t();return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=()=>t(),e}function he(t=32){if(it&&typeof it.getRandomValues==\"function\")return it.getRandomValues(new Uint8Array(t));if(it&&typeof it.randomBytes==\"function\")return it.randomBytes(t);throw new Error(\"crypto.getRandomValues must be defined\")}function Cn(t,e,n,r){if(typeof t.setBigUint64==\"function\")return t.setBigUint64(e,n,r);const o=BigInt(32),s=BigInt(4294967295),a=Number(n>>o&s),u=Number(n&s),i=r?4:0,D=r?0:4;t.setUint32(e+i,a,r),t.setUint32(e+D,u,r)}class An extends xn{constructor(e,n,r,o){super(),this.blockLen=e,this.outputLen=n,this.padOffset=r,this.isLE=o,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=_t(this.buffer)}update(e){De(this);const{view:n,buffer:r,blockLen:o}=this;e=de(e);const s=e.length;for(let a=0;a<s;){const u=Math.min(o-this.pos,s-a);if(u===o){const i=_t(e);for(;o<=s-a;a+=o)this.process(i,a);continue}r.set(e.subarray(a,a+u),this.pos),this.pos+=u,a+=u,this.pos===o&&(this.process(n,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){De(this),gn(e,this),this.finished=!0;const{buffer:n,view:r,blockLen:o,isLE:s}=this;let{pos:a}=this;n[a++]=128,this.buffer.subarray(a).fill(0),this.padOffset>o-a&&(this.process(r,0),a=0);for(let l=a;l<o;l++)n[l]=0;Cn(r,o-8,BigInt(this.length*8),s),this.process(r,0);const u=_t(e),i=this.outputLen;if(i%4)throw new Error(\"_sha2: outputLen should be aligned to 32bit\");const D=i/4,c=this.get();if(D>c.length)throw new Error(\"_sha2: outputLen bigger than state\");for(let l=0;l<D;l++)u.setUint32(4*l,c[l],s)}digest(){const{buffer:e,outputLen:n}=this;this.digestInto(e);const r=e.slice(0,n);return this.destroy(),r}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());const{blockLen:n,buffer:r,length:o,finished:s,destroyed:a,pos:u}=this;return e.length=o,e.pos=u,e.finished=s,e.destroyed=a,o%n&&e.buffer.set(r),e}}const wt=BigInt(2**32-1),St=BigInt(32);function le(t,e=!1){return e?{h:Number(t&wt),l:Number(t>>St&wt)}:{h:Number(t>>St&wt)|0,l:Number(t&wt)|0}}function mn(t,e=!1){let n=new Uint32Array(t.length),r=new Uint32Array(t.length);for(let o=0;o<t.length;o++){const{h:s,l:a}=le(t[o],e);[n[o],r[o]]=[s,a]}return[n,r]}const _n=(t,e)=>BigInt(t>>>0)<<St|BigInt(e>>>0),Sn=(t,e,n)=>t>>>n,vn=(t,e,n)=>t<<32-n|e>>>n,In=(t,e,n)=>t>>>n|e<<32-n,Un=(t,e,n)=>t<<32-n|e>>>n,Tn=(t,e,n)=>t<<64-n|e>>>n-32,Fn=(t,e,n)=>t>>>n-32|e<<64-n,Nn=(t,e)=>e,Ln=(t,e)=>t,On=(t,e,n)=>t<<n|e>>>32-n,Hn=(t,e,n)=>e<<n|t>>>32-n,zn=(t,e,n)=>e<<n-32|t>>>64-n,Mn=(t,e,n)=>t<<n-32|e>>>64-n;function qn(t,e,n,r){const o=(e>>>0)+(r>>>0);return{h:t+n+(o/2**32|0)|0,l:o|0}}const $n=(t,e,n)=>(t>>>0)+(e>>>0)+(n>>>0),kn=(t,e,n,r)=>e+n+r+(t/2**32|0)|0,Rn=(t,e,n,r)=>(t>>>0)+(e>>>0)+(n>>>0)+(r>>>0),jn=(t,e,n,r,o)=>e+n+r+o+(t/2**32|0)|0,Zn=(t,e,n,r,o)=>(t>>>0)+(e>>>0)+(n>>>0)+(r>>>0)+(o>>>0),Gn=(t,e,n,r,o,s)=>e+n+r+o+s+(t/2**32|0)|0,x={fromBig:le,split:mn,toBig:_n,shrSH:Sn,shrSL:vn,rotrSH:In,rotrSL:Un,rotrBH:Tn,rotrBL:Fn,rotr32H:Nn,rotr32L:Ln,rotlSH:On,rotlSL:Hn,rotlBH:zn,rotlBL:Mn,add:qn,add3L:$n,add3H:kn,add4L:Rn,add4H:jn,add5H:Gn,add5L:Zn},[Vn,Yn]=(()=>x.split([\"0x428a2f98d728ae22\",\"0x7137449123ef65cd\",\"0xb5c0fbcfec4d3b2f\",\"0xe9b5dba58189dbbc\",\"0x3956c25bf348b538\",\"0x59f111f1b605d019\",\"0x923f82a4af194f9b\",\"0xab1c5ed5da6d8118\",\"0xd807aa98a3030242\",\"0x12835b0145706fbe\",\"0x243185be4ee4b28c\",\"0x550c7dc3d5ffb4e2\",\"0x72be5d74f27b896f\",\"0x80deb1fe3b1696b1\",\"0x9bdc06a725c71235\",\"0xc19bf174cf692694\",\"0xe49b69c19ef14ad2\",\"0xefbe4786384f25e3\",\"0x0fc19dc68b8cd5b5\",\"0x240ca1cc77ac9c65\",\"0x2de92c6f592b0275\",\"0x4a7484aa6ea6e483\",\"0x5cb0a9dcbd41fbd4\",\"0x76f988da831153b5\",\"0x983e5152ee66dfab\",\"0xa831c66d2db43210\",\"0xb00327c898fb213f\",\"0xbf597fc7beef0ee4\",\"0xc6e00bf33da88fc2\",\"0xd5a79147930aa725\",\"0x06ca6351e003826f\",\"0x142929670a0e6e70\",\"0x27b70a8546d22ffc\",\"0x2e1b21385c26c926\",\"0x4d2c6dfc5ac42aed\",\"0x53380d139d95b3df\",\"0x650a73548baf63de\",\"0x766a0abb3c77b2a8\",\"0x81c2c92e47edaee6\",\"0x92722c851482353b\",\"0xa2bfe8a14cf10364\",\"0xa81a664bbc423001\",\"0xc24b8b70d0f89791\",\"0xc76c51a30654be30\",\"0xd192e819d6ef5218\",\"0xd69906245565a910\",\"0xf40e35855771202a\",\"0x106aa07032bbd1b8\",\"0x19a4c116b8d2d0c8\",\"0x1e376c085141ab53\",\"0x2748774cdf8eeb99\",\"0x34b0bcb5e19b48a8\",\"0x391c0cb3c5c95a63\",\"0x4ed8aa4ae3418acb\",\"0x5b9cca4f7763e373\",\"0x682e6ff3d6b2b8a3\",\"0x748f82ee5defb2fc\",\"0x78a5636f43172f60\",\"0x84c87814a1f0ab72\",\"0x8cc702081a6439ec\",\"0x90befffa23631e28\",\"0xa4506cebde82bde9\",\"0xbef9a3f7b2c67915\",\"0xc67178f2e372532b\",\"0xca273eceea26619c\",\"0xd186b8c721c0c207\",\"0xeada7dd6cde0eb1e\",\"0xf57d4f7fee6ed178\",\"0x06f067aa72176fba\",\"0x0a637dc5a2c898a6\",\"0x113f9804bef90dae\",\"0x1b710b35131c471b\",\"0x28db77f523047d84\",\"0x32caab7b40c72493\",\"0x3c9ebe0a15c9bebc\",\"0x431d67c49c100d4c\",\"0x4cc5d4becb3e42b6\",\"0x597f299cfc657e2a\",\"0x5fcb6fab3ad6faec\",\"0x6c44198c4a475817\"].map(t=>BigInt(t))))(),P=new Uint32Array(80),Q=new Uint32Array(80);class Jn extends An{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){const{Ah:e,Al:n,Bh:r,Bl:o,Ch:s,Cl:a,Dh:u,Dl:i,Eh:D,El:c,Fh:l,Fl:p,Gh:w,Gl:h,Hh:g,Hl:S}=this;return[e,n,r,o,s,a,u,i,D,c,l,p,w,h,g,S]}set(e,n,r,o,s,a,u,i,D,c,l,p,w,h,g,S){this.Ah=e|0,this.Al=n|0,this.Bh=r|0,this.Bl=o|0,this.Ch=s|0,this.Cl=a|0,this.Dh=u|0,this.Dl=i|0,this.Eh=D|0,this.El=c|0,this.Fh=l|0,this.Fl=p|0,this.Gh=w|0,this.Gl=h|0,this.Hh=g|0,this.Hl=S|0}process(e,n){for(let d=0;d<16;d++,n+=4)P[d]=e.getUint32(n),Q[d]=e.getUint32(n+=4);for(let d=16;d<80;d++){const m=P[d-15]|0,F=Q[d-15]|0,q=x.rotrSH(m,F,1)^x.rotrSH(m,F,8)^x.shrSH(m,F,7),z=x.rotrSL(m,F,1)^x.rotrSL(m,F,8)^x.shrSL(m,F,7),I=P[d-2]|0,O=Q[d-2]|0,ot=x.rotrSH(I,O,19)^x.rotrBH(I,O,61)^x.shrSH(I,O,6),tt=x.rotrSL(I,O,19)^x.rotrBL(I,O,61)^x.shrSL(I,O,6),st=x.add4L(z,tt,Q[d-7],Q[d-16]),at=x.add4H(st,q,ot,P[d-7],P[d-16]);P[d]=at|0,Q[d]=st|0}let{Ah:r,Al:o,Bh:s,Bl:a,Ch:u,Cl:i,Dh:D,Dl:c,Eh:l,El:p,Fh:w,Fl:h,Gh:g,Gl:S,Hh:v,Hl:L}=this;for(let d=0;d<80;d++){const m=x.rotrSH(l,p,14)^x.rotrSH(l,p,18)^x.rotrBH(l,p,41),F=x.rotrSL(l,p,14)^x.rotrSL(l,p,18)^x.rotrBL(l,p,41),q=l&w^~l&g,z=p&h^~p&S,I=x.add5L(L,F,z,Yn[d],Q[d]),O=x.add5H(I,v,m,q,Vn[d],P[d]),ot=I|0,tt=x.rotrSH(r,o,28)^x.rotrBH(r,o,34)^x.rotrBH(r,o,39),st=x.rotrSL(r,o,28)^x.rotrBL(r,o,34)^x.rotrBL(r,o,39),at=r&s^r&u^s&u,Ct=o&a^o&i^a&i;v=g|0,L=S|0,g=w|0,S=h|0,w=l|0,h=p|0,{h:l,l:p}=x.add(D|0,c|0,O|0,ot|0),D=u|0,c=i|0,u=s|0,i=a|0,s=r|0,a=o|0;const At=x.add3L(ot,st,Ct);r=x.add3H(At,O,tt,at),o=At|0}({h:r,l:o}=x.add(this.Ah|0,this.Al|0,r|0,o|0)),{h:s,l:a}=x.add(this.Bh|0,this.Bl|0,s|0,a|0),{h:u,l:i}=x.add(this.Ch|0,this.Cl|0,u|0,i|0),{h:D,l:c}=x.add(this.Dh|0,this.Dl|0,D|0,c|0),{h:l,l:p}=x.add(this.Eh|0,this.El|0,l|0,p|0),{h:w,l:h}=x.add(this.Fh|0,this.Fl|0,w|0,h|0),{h:g,l:S}=x.add(this.Gh|0,this.Gl|0,g|0,S|0),{h:v,l:L}=x.add(this.Hh|0,this.Hl|0,v|0,L|0),this.set(r,o,s,a,u,i,D,c,l,p,w,h,g,S,v,L)}roundClean(){P.fill(0),Q.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}const Kn=Bn(()=>new Jn);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const vt=BigInt(0),be=BigInt(1),Wn=BigInt(2);function It(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name===\"Uint8Array\"}function Ut(t){if(!It(t))throw new Error(\"Uint8Array expected\")}function Tt(t,e){if(typeof e!=\"boolean\")throw new Error(t+\" boolean expected, got \"+e)}const Xn=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,\"0\"));function Ft(t){Ut(t);let e=\"\";for(let n=0;n<t.length;n++)e+=Xn[t[n]];return e}function pe(t){if(typeof t!=\"string\")throw new Error(\"hex string expected, got \"+typeof t);return t===\"\"?vt:BigInt(\"0x\"+t)}const K={_0:48,_9:57,A:65,F:70,a:97,f:102};function we(t){if(t>=K._0&&t<=K._9)return t-K._0;if(t>=K.A&&t<=K.F)return t-(K.A-10);if(t>=K.a&&t<=K.f)return t-(K.a-10)}function Ee(t){if(typeof t!=\"string\")throw new Error(\"hex string expected, got \"+typeof t);const e=t.length,n=e/2;if(e%2)throw new Error(\"hex string expected, got unpadded hex of length \"+e);const r=new Uint8Array(n);for(let o=0,s=0;o<n;o++,s+=2){const a=we(t.charCodeAt(s)),u=we(t.charCodeAt(s+1));if(a===void 0||u===void 0){const i=t[s]+t[s+1];throw new Error('hex string expected, got non-hex character \"'+i+'\" at index '+s)}r[o]=a*16+u}return r}function Pn(t){return pe(Ft(t))}function Et(t){return Ut(t),pe(Ft(Uint8Array.from(t).reverse()))}function ge(t,e){return Ee(t.toString(16).padStart(e*2,\"0\"))}function Nt(t,e){return ge(t,e).reverse()}function W(t,e,n){let r;if(typeof e==\"string\")try{r=Ee(e)}catch(s){throw new Error(t+\" must be hex string or Uint8Array, cause: \"+s)}else if(It(e))r=Uint8Array.from(e);else throw new Error(t+\" must be hex string or Uint8Array\");const o=r.length;if(typeof n==\"number\"&&o!==n)throw new Error(t+\" of length \"+n+\" expected, got \"+o);return r}function ye(...t){let e=0;for(let r=0;r<t.length;r++){const o=t[r];Ut(o),e+=o.length}const n=new Uint8Array(e);for(let r=0,o=0;r<t.length;r++){const s=t[r];n.set(s,o),o+=s.length}return n}const Lt=t=>typeof t==\"bigint\"&&vt<=t;function Qn(t,e,n){return Lt(t)&&Lt(e)&&Lt(n)&&e<=t&&t<n}function ft(t,e,n,r){if(!Qn(e,n,r))throw new Error(\"expected valid \"+t+\": \"+n+\" <= n < \"+r+\", got \"+e)}function tr(t){let e;for(e=0;t>vt;t>>=be,e+=1);return e}const er=t=>(Wn<<BigInt(t-1))-be,nr={bigint:t=>typeof t==\"bigint\",function:t=>typeof t==\"function\",boolean:t=>typeof t==\"boolean\",string:t=>typeof t==\"string\",stringOrUint8Array:t=>typeof t==\"string\"||It(t),isSafeInteger:t=>Number.isSafeInteger(t),array:t=>Array.isArray(t),field:(t,e)=>e.Fp.isValid(t),hash:t=>typeof t==\"function\"&&Number.isSafeInteger(t.outputLen)};function Ot(t,e,n={}){const r=(o,s,a)=>{const u=nr[s];if(typeof u!=\"function\")throw new Error(\"invalid validator function\");const i=t[o];if(!(a&&i===void 0)&&!u(i,t))throw new Error(\"param \"+String(o)+\" is invalid. Expected \"+s+\", got \"+i)};for(const[o,s]of Object.entries(e))r(o,s,!1);for(const[o,s]of Object.entries(n))r(o,s,!0);return t}function xe(t){const e=new WeakMap;return(n,...r)=>{const o=e.get(n);if(o!==void 0)return o;const s=t(n,...r);return e.set(n,s),s}}const M=BigInt(0),N=BigInt(1),nt=BigInt(2),rr=BigInt(3),Ht=BigInt(4),Be=BigInt(5),Ce=BigInt(8);function H(t,e){const n=t%e;return n>=M?n:e+n}function or(t,e,n){if(e<M)throw new Error(\"invalid exponent, negatives unsupported\");if(n<=M)throw new Error(\"invalid modulus\");if(n===N)return M;let r=N;for(;e>M;)e&N&&(r=r*t%n),t=t*t%n,e>>=N;return r}function J(t,e,n){let r=t;for(;e-- >M;)r*=r,r%=n;return r}function Ae(t,e){if(t===M)throw new Error(\"invert: expected non-zero number\");if(e<=M)throw new Error(\"invert: expected positive modulus, got \"+e);let n=H(t,e),r=e,o=M,s=N;for(;n!==M;){const u=r/n,i=r%n,D=o-s*u;r=n,n=i,o=s,s=D}if(r!==N)throw new Error(\"invert: does not exist\");return H(o,e)}function sr(t){const e=(t-N)/nt;let n,r,o;for(n=t-N,r=0;n%nt===M;n/=nt,r++);for(o=nt;o<t&&or(o,e,t)!==t-N;o++)if(o>1e3)throw new Error(\"Cannot find square root: likely non-prime P\");if(r===1){const a=(t+N)/Ht;return function(i,D){const c=i.pow(D,a);if(!i.eql(i.sqr(c),D))throw new Error(\"Cannot find square root\");return c}}const s=(n+N)/nt;return function(u,i){if(u.pow(i,e)===u.neg(u.ONE))throw new Error(\"Cannot find square root\");let D=r,c=u.pow(u.mul(u.ONE,o),n),l=u.pow(i,s),p=u.pow(i,n);for(;!u.eql(p,u.ONE);){if(u.eql(p,u.ZERO))return u.ZERO;let w=1;for(let g=u.sqr(p);w<D&&!u.eql(g,u.ONE);w++)g=u.sqr(g);const h=u.pow(c,N<<BigInt(D-w-1));c=u.sqr(h),l=u.mul(l,h),p=u.mul(p,c),D=w}return l}}function ir(t){if(t%Ht===rr){const e=(t+N)/Ht;return function(r,o){const s=r.pow(o,e);if(!r.eql(r.sqr(s),o))throw new Error(\"Cannot find square root\");return s}}if(t%Ce===Be){const e=(t-Be)/Ce;return function(r,o){const s=r.mul(o,nt),a=r.pow(s,e),u=r.mul(o,a),i=r.mul(r.mul(u,nt),a),D=r.mul(u,r.sub(i,r.ONE));if(!r.eql(r.sqr(D),o))throw new Error(\"Cannot find square root\");return D}}return sr(t)}const ur=(t,e)=>(H(t,e)&N)===N,cr=[\"create\",\"isValid\",\"is0\",\"neg\",\"inv\",\"sqrt\",\"sqr\",\"eql\",\"add\",\"sub\",\"mul\",\"pow\",\"div\",\"addN\",\"subN\",\"mulN\",\"sqrN\"];function ar(t){const e={ORDER:\"bigint\",MASK:\"bigint\",BYTES:\"isSafeInteger\",BITS:\"isSafeInteger\"},n=cr.reduce((r,o)=>(r[o]=\"function\",r),e);return Ot(t,n)}function fr(t,e,n){if(n<M)throw new Error(\"invalid exponent, negatives unsupported\");if(n===M)return t.ONE;if(n===N)return e;let r=t.ONE,o=e;for(;n>M;)n&N&&(r=t.mul(r,o)),o=t.sqr(o),n>>=N;return r}function Dr(t,e){const n=new Array(e.length),r=e.reduce((s,a,u)=>t.is0(a)?s:(n[u]=s,t.mul(s,a)),t.ONE),o=t.inv(r);return e.reduceRight((s,a,u)=>t.is0(a)?s:(n[u]=t.mul(s,n[u]),t.mul(s,a)),o),n}function me(t,e){const n=e!==void 0?e:t.toString(2).length,r=Math.ceil(n/8);return{nBitLength:n,nByteLength:r}}function _e(t,e,n=!1,r={}){if(t<=M)throw new Error(\"invalid field: expected ORDER > 0, got \"+t);const{nBitLength:o,nByteLength:s}=me(t,e);if(s>2048)throw new Error(\"invalid field: expected ORDER of <= 2048 bytes\");let a;const u=Object.freeze({ORDER:t,isLE:n,BITS:o,BYTES:s,MASK:er(o),ZERO:M,ONE:N,create:i=>H(i,t),isValid:i=>{if(typeof i!=\"bigint\")throw new Error(\"invalid field element: expected bigint, got \"+typeof i);return M<=i&&i<t},is0:i=>i===M,isOdd:i=>(i&N)===N,neg:i=>H(-i,t),eql:(i,D)=>i===D,sqr:i=>H(i*i,t),add:(i,D)=>H(i+D,t),sub:(i,D)=>H(i-D,t),mul:(i,D)=>H(i*D,t),pow:(i,D)=>fr(u,i,D),div:(i,D)=>H(i*Ae(D,t),t),sqrN:i=>i*i,addN:(i,D)=>i+D,subN:(i,D)=>i-D,mulN:(i,D)=>i*D,inv:i=>Ae(i,t),sqrt:r.sqrt||(i=>(a||(a=ir(t)),a(u,i))),invertBatch:i=>Dr(u,i),cmov:(i,D,c)=>c?D:i,toBytes:i=>n?Nt(i,s):ge(i,s),fromBytes:i=>{if(i.length!==s)throw new Error(\"Field.fromBytes: expected \"+s+\" bytes, got \"+i.length);return n?Et(i):Pn(i)}});return Object.freeze(u)}const Se=BigInt(0),gt=BigInt(1);function zt(t,e){const n=e.negate();return t?n:e}function ve(t,e){if(!Number.isSafeInteger(t)||t<=0||t>e)throw new Error(\"invalid window size, expected [1..\"+e+\"], got W=\"+t)}function Mt(t,e){ve(t,e);const n=Math.ceil(e/t)+1,r=2**(t-1);return{windows:n,windowSize:r}}function dr(t,e){if(!Array.isArray(t))throw new Error(\"array expected\");t.forEach((n,r)=>{if(!(n instanceof e))throw new Error(\"invalid point at index \"+r)})}function hr(t,e){if(!Array.isArray(t))throw new Error(\"array of scalars expected\");t.forEach((n,r)=>{if(!e.isValid(n))throw new Error(\"invalid scalar at index \"+r)})}const qt=new WeakMap,Ie=new WeakMap;function $t(t){return Ie.get(t)||1}function lr(t,e){return{constTimeNegate:zt,hasPrecomputes(n){return $t(n)!==1},unsafeLadder(n,r,o=t.ZERO){let s=n;for(;r>Se;)r&gt&&(o=o.add(s)),s=s.double(),r>>=gt;return o},precomputeWindow(n,r){const{windows:o,windowSize:s}=Mt(r,e),a=[];let u=n,i=u;for(let D=0;D<o;D++){i=u,a.push(i);for(let c=1;c<s;c++)i=i.add(u),a.push(i);u=i.double()}return a},wNAF(n,r,o){const{windows:s,windowSize:a}=Mt(n,e);let u=t.ZERO,i=t.BASE;const D=BigInt(2**n-1),c=2**n,l=BigInt(n);for(let p=0;p<s;p++){const w=p*a;let h=Number(o&D);o>>=l,h>a&&(h-=c,o+=gt);const g=w,S=w+Math.abs(h)-1,v=p%2!==0,L=h<0;h===0?i=i.add(zt(v,r[g])):u=u.add(zt(L,r[S]))}return{p:u,f:i}},wNAFUnsafe(n,r,o,s=t.ZERO){const{windows:a,windowSize:u}=Mt(n,e),i=BigInt(2**n-1),D=2**n,c=BigInt(n);for(let l=0;l<a;l++){const p=l*u;if(o===Se)break;let w=Number(o&i);if(o>>=c,w>u&&(w-=D,o+=gt),w===0)continue;let h=r[p+Math.abs(w)-1];w<0&&(h=h.negate()),s=s.add(h)}return s},getPrecomputes(n,r,o){let s=qt.get(r);return s||(s=this.precomputeWindow(r,n),n!==1&&qt.set(r,o(s))),s},wNAFCached(n,r,o){const s=$t(n);return this.wNAF(s,this.getPrecomputes(s,n,o),r)},wNAFCachedUnsafe(n,r,o,s){const a=$t(n);return a===1?this.unsafeLadder(n,r,s):this.wNAFUnsafe(a,this.getPrecomputes(a,n,o),r,s)},setWindowSize(n,r){ve(r,e),Ie.set(n,r),qt.delete(n)}}}function br(t,e,n,r){if(dr(n,t),hr(r,e),n.length!==r.length)throw new Error(\"arrays of points and scalars must have equal length\");const o=t.ZERO,s=tr(BigInt(n.length)),a=s>12?s-3:s>4?s-2:s?2:1,u=(1<<a)-1,i=new Array(u+1).fill(o),D=Math.floor((e.BITS-1)/a)*a;let c=o;for(let l=D;l>=0;l-=a){i.fill(o);for(let w=0;w<r.length;w++){const h=r[w],g=Number(h>>BigInt(l)&BigInt(u));i[g]=i[g].add(n[w])}let p=o;for(let w=i.length-1,h=o;w>0;w--)h=h.add(i[w]),p=p.add(h);if(c=c.add(p),l!==0)for(let w=0;w<a;w++)c=c.double()}return c}function pr(t){return ar(t.Fp),Ot(t,{n:\"bigint\",h:\"bigint\",Gx:\"field\",Gy:\"field\"},{nBitLength:\"isSafeInteger\",nByteLength:\"isSafeInteger\"}),Object.freeze({...me(t.n,t.nBitLength),...t,p:t.Fp.ORDER})}const G=BigInt(0),j=BigInt(1),yt=BigInt(2),wr=BigInt(8),Er={zip215:!0};function gr(t){const e=pr(t);return Ot(t,{hash:\"function\",a:\"bigint\",d:\"bigint\",randomBytes:\"function\"},{adjustScalarBytes:\"function\",domain:\"function\",uvRatio:\"function\",mapToCurve:\"function\"}),Object.freeze({...e})}function yr(t){const e=gr(t),{Fp:n,n:r,prehash:o,hash:s,randomBytes:a,nByteLength:u,h:i}=e,D=yt<<BigInt(u*8)-j,c=n.create,l=_e(e.n,e.nBitLength),p=e.uvRatio||((y,f)=>{try{return{isValid:!0,value:n.sqrt(y*n.inv(f))}}catch{return{isValid:!1,value:G}}}),w=e.adjustScalarBytes||(y=>y),h=e.domain||((y,f,b)=>{if(Tt(\"phflag\",b),f.length||b)throw new Error(\"Contexts/pre-hash are not supported\");return y});function g(y,f){ft(\"coordinate \"+y,f,G,D)}function S(y){if(!(y instanceof d))throw new Error(\"ExtendedPoint expected\")}const v=xe((y,f)=>{const{ex:b,ey:E,ez:B}=y,C=y.is0();f==null&&(f=C?wr:n.inv(B));const A=c(b*f),U=c(E*f),_=c(B*f);if(C)return{x:G,y:j};if(_!==j)throw new Error(\"invZ was invalid\");return{x:A,y:U}}),L=xe(y=>{const{a:f,d:b}=e;if(y.is0())throw new Error(\"bad point: ZERO\");const{ex:E,ey:B,ez:C,et:A}=y,U=c(E*E),_=c(B*B),T=c(C*C),$=c(T*T),R=c(U*f),V=c(T*c(R+_)),Y=c($+c(b*c(U*_)));if(V!==Y)throw new Error(\"bad point: equation left != right (1)\");const Z=c(E*B),X=c(C*A);if(Z!==X)throw new Error(\"bad point: equation left != right (2)\");return!0});class d{constructor(f,b,E,B){this.ex=f,this.ey=b,this.ez=E,this.et=B,g(\"x\",f),g(\"y\",b),g(\"z\",E),g(\"t\",B),Object.freeze(this)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(f){if(f instanceof d)throw new Error(\"extended point not allowed\");const{x:b,y:E}=f||{};return g(\"x\",b),g(\"y\",E),new d(b,E,j,c(b*E))}static normalizeZ(f){const b=n.invertBatch(f.map(E=>E.ez));return f.map((E,B)=>E.toAffine(b[B])).map(d.fromAffine)}static msm(f,b){return br(d,l,f,b)}_setWindowSize(f){q.setWindowSize(this,f)}assertValidity(){L(this)}equals(f){S(f);const{ex:b,ey:E,ez:B}=this,{ex:C,ey:A,ez:U}=f,_=c(b*U),T=c(C*B),$=c(E*U),R=c(A*B);return _===T&&$===R}is0(){return this.equals(d.ZERO)}negate(){return new d(c(-this.ex),this.ey,this.ez,c(-this.et))}double(){const{a:f}=e,{ex:b,ey:E,ez:B}=this,C=c(b*b),A=c(E*E),U=c(yt*c(B*B)),_=c(f*C),T=b+E,$=c(c(T*T)-C-A),R=_+A,V=R-U,Y=_-A,Z=c($*V),X=c(R*Y),et=c($*Y),pt=c(V*R);return new d(Z,X,pt,et)}add(f){S(f);const{a:b,d:E}=e,{ex:B,ey:C,ez:A,et:U}=this,{ex:_,ey:T,ez:$,et:R}=f;if(b===BigInt(-1)){const re=c((C-B)*(T+_)),oe=c((C+B)*(T-_)),mt=c(oe-re);if(mt===G)return this.double();const se=c(A*yt*R),ie=c(U*yt*$),ue=ie+se,ce=oe+re,ae=ie-se,Dn=c(ue*mt),dn=c(ce*ae),hn=c(ue*ae),ln=c(mt*ce);return new d(Dn,dn,ln,hn)}const V=c(B*_),Y=c(C*T),Z=c(U*E*R),X=c(A*$),et=c((B+C)*(_+T)-V-Y),pt=X-Z,ee=X+Z,ne=c(Y-b*V),un=c(et*pt),cn=c(ee*ne),an=c(et*ne),fn=c(pt*ee);return new d(un,cn,fn,an)}subtract(f){return this.add(f.negate())}wNAF(f){return q.wNAFCached(this,f,d.normalizeZ)}multiply(f){const b=f;ft(\"scalar\",b,j,r);const{p:E,f:B}=this.wNAF(b);return d.normalizeZ([E,B])[0]}multiplyUnsafe(f,b=d.ZERO){const E=f;return ft(\"scalar\",E,G,r),E===G?F:this.is0()||E===j?this:q.wNAFCachedUnsafe(this,E,d.normalizeZ,b)}isSmallOrder(){return this.multiplyUnsafe(i).is0()}isTorsionFree(){return q.unsafeLadder(this,r).is0()}toAffine(f){return v(this,f)}clearCofactor(){const{h:f}=e;return f===j?this:this.multiplyUnsafe(f)}static fromHex(f,b=!1){const{d:E,a:B}=e,C=n.BYTES;f=W(\"pointHex\",f,C),Tt(\"zip215\",b);const A=f.slice(),U=f[C-1];A[C-1]=U&-129;const _=Et(A),T=b?D:n.ORDER;ft(\"pointHex.y\",_,G,T);const $=c(_*_),R=c($-j),V=c(E*$-B);let{isValid:Y,value:Z}=p(R,V);if(!Y)throw new Error(\"Point.fromHex: invalid y coordinate\");const X=(Z&j)===j,et=(U&128)!==0;if(!b&&Z===G&&et)throw new Error(\"Point.fromHex: x=0 and x_0=1\");return et!==X&&(Z=c(-Z)),d.fromAffine({x:Z,y:_})}static fromPrivateKey(f){return O(f).point}toRawBytes(){const{x:f,y:b}=this.toAffine(),E=Nt(b,n.BYTES);return E[E.length-1]|=f&j?128:0,E}toHex(){return Ft(this.toRawBytes())}}d.BASE=new d(e.Gx,e.Gy,j,c(e.Gx*e.Gy)),d.ZERO=new d(G,j,j,G);const{BASE:m,ZERO:F}=d,q=lr(d,u*8);function z(y){return H(y,r)}function I(y){return z(Et(y))}function O(y){const f=n.BYTES;y=W(\"private key\",y,f);const b=W(\"hashed private key\",s(y),2*f),E=w(b.slice(0,f)),B=b.slice(f,2*f),C=I(E),A=m.multiply(C),U=A.toRawBytes();return{head:E,prefix:B,scalar:C,point:A,pointBytes:U}}function ot(y){return O(y).pointBytes}function tt(y=new Uint8Array,...f){const b=ye(...f);return I(s(h(b,W(\"context\",y),!!o)))}function st(y,f,b={}){y=W(\"message\",y),o&&(y=o(y));const{prefix:E,scalar:B,pointBytes:C}=O(f),A=tt(b.context,E,y),U=m.multiply(A).toRawBytes(),_=tt(b.context,U,C,y),T=z(A+_*B);ft(\"signature.s\",T,G,r);const $=ye(U,Nt(T,n.BYTES));return W(\"result\",$,n.BYTES*2)}const at=Er;function Ct(y,f,b,E=at){const{context:B,zip215:C}=E,A=n.BYTES;y=W(\"signature\",y,2*A),f=W(\"message\",f),b=W(\"publicKey\",b,A),C!==void 0&&Tt(\"zip215\",C),o&&(f=o(f));const U=Et(y.slice(A,2*A));let _,T,$;try{_=d.fromHex(b,C),T=d.fromHex(y.slice(0,A),C),$=m.multiplyUnsafe(U)}catch{return!1}if(!C&&_.isSmallOrder())return!1;const R=tt(B,T.toRawBytes(),_.toRawBytes(),f);return T.add(_.multiplyUnsafe(R)).subtract($).clearCofactor().equals(d.ZERO)}return m._setWindowSize(8),{CURVE:e,getPublicKey:ot,sign:st,verify:Ct,ExtendedPoint:d,utils:{getExtendedPublicKey:O,randomPrivateKey:()=>a(n.BYTES),precompute(y=8,f=d.BASE){return f._setWindowSize(y),f.multiply(BigInt(3)),f}}}}BigInt(0),BigInt(1);const kt=BigInt(\"57896044618658097711785492504343953926634992332820282019728792003956564819949\"),Ue=BigInt(\"19681161376707505956807079304988542015446066515923890162744021073123829784752\");BigInt(0);const xr=BigInt(1),Te=BigInt(2);BigInt(3);const Br=BigInt(5),Cr=BigInt(8);function Ar(t){const e=BigInt(10),n=BigInt(20),r=BigInt(40),o=BigInt(80),s=kt,u=t*t%s*t%s,i=J(u,Te,s)*u%s,D=J(i,xr,s)*t%s,c=J(D,Br,s)*D%s,l=J(c,e,s)*c%s,p=J(l,n,s)*l%s,w=J(p,r,s)*p%s,h=J(w,o,s)*w%s,g=J(h,o,s)*w%s,S=J(g,e,s)*c%s;return{pow_p_5_8:J(S,Te,s)*t%s,b2:u}}function mr(t){return t[0]&=248,t[31]&=127,t[31]|=64,t}function _r(t,e){const n=kt,r=H(e*e*e,n),o=H(r*r*e,n),s=Ar(t*o).pow_p_5_8;let a=H(t*r*s,n);const u=H(e*a*a,n),i=a,D=H(a*Ue,n),c=u===t,l=u===H(-t,n),p=u===H(-t*Ue,n);return c&&(a=i),(l||p)&&(a=D),ur(a,n)&&(a=H(-a,n)),{isValid:c||l,value:a}}const Sr=(()=>_e(kt,void 0,!0))(),vr=(()=>({a:BigInt(-1),d:BigInt(\"37095705934669439343138083508754565189542113879843219016388785533085940283555\"),Fp:Sr,n:BigInt(\"7237005577332262213973186563042994240857116359379907606001950938285454250989\"),h:Cr,Gx:BigInt(\"15112221349535400772501151409588531511454012693041857206046113283949847762202\"),Gy:BigInt(\"46316835694926478169428394003475163141307993866256225615783033603165251855960\"),hash:Kn,randomBytes:he,adjustScalarBytes:mr,uvRatio:_r}))(),Rt=(()=>yr(vr))(),jt=\"EdDSA\",Zt=\"JWT\",ut=\".\",Dt=\"base64url\",Gt=\"utf8\",xt=\"utf8\",Vt=\":\",Yt=\"did\",Jt=\"key\",dt=\"base58btc\",Kt=\"z\",Wt=\"K36\",Fe=32,Ne=32;function Xt(t){return globalThis.Buffer!=null?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t}function Le(t=0){return globalThis.Buffer!=null&&globalThis.Buffer.allocUnsafe!=null?Xt(globalThis.Buffer.allocUnsafe(t)):new Uint8Array(t)}function Oe(t,e){e||(e=t.reduce((o,s)=>o+s.length,0));const n=Le(e);let r=0;for(const o of t)n.set(o,r),r+=o.length;return Xt(n)}function Ir(t,e){if(t.length>=255)throw new TypeError(\"Alphabet too long\");for(var n=new Uint8Array(256),r=0;r<n.length;r++)n[r]=255;for(var o=0;o<t.length;o++){var s=t.charAt(o),a=s.charCodeAt(0);if(n[a]!==255)throw new TypeError(s+\" is ambiguous\");n[a]=o}var u=t.length,i=t.charAt(0),D=Math.log(u)/Math.log(256),c=Math.log(256)/Math.log(u);function l(h){if(h instanceof Uint8Array||(ArrayBuffer.isView(h)?h=new Uint8Array(h.buffer,h.byteOffset,h.byteLength):Array.isArray(h)&&(h=Uint8Array.from(h))),!(h instanceof Uint8Array))throw new TypeError(\"Expected Uint8Array\");if(h.length===0)return\"\";for(var g=0,S=0,v=0,L=h.length;v!==L&&h[v]===0;)v++,g++;for(var d=(L-v)*c+1>>>0,m=new Uint8Array(d);v!==L;){for(var F=h[v],q=0,z=d-1;(F!==0||q<S)&&z!==-1;z--,q++)F+=256*m[z]>>>0,m[z]=F%u>>>0,F=F/u>>>0;if(F!==0)throw new Error(\"Non-zero carry\");S=q,v++}for(var I=d-S;I!==d&&m[I]===0;)I++;for(var O=i.repeat(g);I<d;++I)O+=t.charAt(m[I]);return O}function p(h){if(typeof h!=\"string\")throw new TypeError(\"Expected String\");if(h.length===0)return new Uint8Array;var g=0;if(h[g]!==\" \"){for(var S=0,v=0;h[g]===i;)S++,g++;for(var L=(h.length-g)*D+1>>>0,d=new Uint8Array(L);h[g];){var m=n[h.charCodeAt(g)];if(m===255)return;for(var F=0,q=L-1;(m!==0||F<v)&&q!==-1;q--,F++)m+=u*d[q]>>>0,d[q]=m%256>>>0,m=m/256>>>0;if(m!==0)throw new Error(\"Non-zero carry\");v=F,g++}if(h[g]!==\" \"){for(var z=L-v;z!==L&&d[z]===0;)z++;for(var I=new Uint8Array(S+(L-z)),O=S;z!==L;)I[O++]=d[z++];return I}}}function w(h){var g=p(h);if(g)return g;throw new Error(`Non-${e} character`)}return{encode:l,decodeUnsafe:p,decode:w}}var Ur=Ir,Tr=Ur;const He=t=>{if(t instanceof Uint8Array&&t.constructor.name===\"Uint8Array\")return t;if(t instanceof ArrayBuffer)return new Uint8Array(t);if(ArrayBuffer.isView(t))return new Uint8Array(t.buffer,t.byteOffset,t.byteLength);throw new Error(\"Unknown type, must be binary type\")},Fr=t=>new TextEncoder().encode(t),Nr=t=>new TextDecoder().decode(t);class Lr{constructor(e,n,r){this.name=e,this.prefix=n,this.baseEncode=r}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error(\"Unknown type, must be binary type\")}}class Or{constructor(e,n,r){if(this.name=e,this.prefix=n,n.codePointAt(0)===void 0)throw new Error(\"Invalid prefix character\");this.prefixCodePoint=n.codePointAt(0),this.baseDecode=r}decode(e){if(typeof e==\"string\"){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}else throw Error(\"Can only multibase decode strings\")}or(e){return ze(this,e)}}class Hr{constructor(e){this.decoders=e}or(e){return ze(this,e)}decode(e){const n=e[0],r=this.decoders[n];if(r)return r.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}}const ze=(t,e)=>new Hr({...t.decoders||{[t.prefix]:t},...e.decoders||{[e.prefix]:e}});class zr{constructor(e,n,r,o){this.name=e,this.prefix=n,this.baseEncode=r,this.baseDecode=o,this.encoder=new Lr(e,n,r),this.decoder=new Or(e,n,o)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}}const Bt=({name:t,prefix:e,encode:n,decode:r})=>new zr(t,e,n,r),ht=({prefix:t,name:e,alphabet:n})=>{const{encode:r,decode:o}=Tr(n,e);return Bt({prefix:t,name:e,encode:r,decode:s=>He(o(s))})},Mr=(t,e,n,r)=>{const o={};for(let c=0;c<e.length;++c)o[e[c]]=c;let s=t.length;for(;t[s-1]===\"=\";)--s;const a=new Uint8Array(s*n/8|0);let u=0,i=0,D=0;for(let c=0;c<s;++c){const l=o[t[c]];if(l===void 0)throw new SyntaxError(`Non-${r} character`);i=i<<n|l,u+=n,u>=8&&(u-=8,a[D++]=255&i>>u)}if(u>=n||255&i<<8-u)throw new SyntaxError(\"Unexpected end of data\");return a},qr=(t,e,n)=>{const r=e[e.length-1]===\"=\",o=(1<<n)-1;let s=\"\",a=0,u=0;for(let i=0;i<t.length;++i)for(u=u<<8|t[i],a+=8;a>n;)a-=n,s+=e[o&u>>a];if(a&&(s+=e[o&u<<n-a]),r)for(;s.length*n&7;)s+=\"=\";return s},k=({name:t,prefix:e,bitsPerChar:n,alphabet:r})=>Bt({prefix:e,name:t,encode(o){return qr(o,r,n)},decode(o){return Mr(o,r,n,t)}}),$r=Bt({prefix:\"\\0\",name:\"identity\",encode:t=>Nr(t),decode:t=>Fr(t)});var kr=Object.freeze({__proto__:null,identity:$r});const Rr=k({prefix:\"0\",name:\"base2\",alphabet:\"01\",bitsPerChar:1});var jr=Object.freeze({__proto__:null,base2:Rr});const Zr=k({prefix:\"7\",name:\"base8\",alphabet:\"01234567\",bitsPerChar:3});var Gr=Object.freeze({__proto__:null,base8:Zr});const Vr=ht({prefix:\"9\",name:\"base10\",alphabet:\"0123456789\"});var Yr=Object.freeze({__proto__:null,base10:Vr});const Jr=k({prefix:\"f\",name:\"base16\",alphabet:\"0123456789abcdef\",bitsPerChar:4}),Kr=k({prefix:\"F\",name:\"base16upper\",alphabet:\"0123456789ABCDEF\",bitsPerChar:4});var Wr=Object.freeze({__proto__:null,base16:Jr,base16upper:Kr});const Xr=k({prefix:\"b\",name:\"base32\",alphabet:\"abcdefghijklmnopqrstuvwxyz234567\",bitsPerChar:5}),Pr=k({prefix:\"B\",name:\"base32upper\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567\",bitsPerChar:5}),Qr=k({prefix:\"c\",name:\"base32pad\",alphabet:\"abcdefghijklmnopqrstuvwxyz234567=\",bitsPerChar:5}),to=k({prefix:\"C\",name:\"base32padupper\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=\",bitsPerChar:5}),eo=k({prefix:\"v\",name:\"base32hex\",alphabet:\"0123456789abcdefghijklmnopqrstuv\",bitsPerChar:5}),no=k({prefix:\"V\",name:\"base32hexupper\",alphabet:\"0123456789ABCDEFGHIJKLMNOPQRSTUV\",bitsPerChar:5}),ro=k({prefix:\"t\",name:\"base32hexpad\",alphabet:\"0123456789abcdefghijklmnopqrstuv=\",bitsPerChar:5}),oo=k({prefix:\"T\",name:\"base32hexpadupper\",alphabet:\"0123456789ABCDEFGHIJKLMNOPQRSTUV=\",bitsPerChar:5}),so=k({prefix:\"h\",name:\"base32z\",alphabet:\"ybndrfg8ejkmcpqxot1uwisza345h769\",bitsPerChar:5});var io=Object.freeze({__proto__:null,base32:Xr,base32upper:Pr,base32pad:Qr,base32padupper:to,base32hex:eo,base32hexupper:no,base32hexpad:ro,base32hexpadupper:oo,base32z:so});const uo=ht({prefix:\"k\",name:\"base36\",alphabet:\"0123456789abcdefghijklmnopqrstuvwxyz\"}),co=ht({prefix:\"K\",name:\"base36upper\",alphabet:\"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\"});var ao=Object.freeze({__proto__:null,base36:uo,base36upper:co});const fo=ht({name:\"base58btc\",prefix:\"z\",alphabet:\"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz\"}),Do=ht({name:\"base58flickr\",prefix:\"Z\",alphabet:\"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ\"});var ho=Object.freeze({__proto__:null,base58btc:fo,base58flickr:Do});const lo=k({prefix:\"m\",name:\"base64\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",bitsPerChar:6}),bo=k({prefix:\"M\",name:\"base64pad\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\",bitsPerChar:6}),po=k({prefix:\"u\",name:\"base64url\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_\",bitsPerChar:6}),wo=k({prefix:\"U\",name:\"base64urlpad\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=\",bitsPerChar:6});var Eo=Object.freeze({__proto__:null,base64:lo,base64pad:bo,base64url:po,base64urlpad:wo});const Me=Array.from(\"\\u{1F680}\\u{1FA90}\\u2604\\u{1F6F0}\\u{1F30C}\\u{1F311}\\u{1F312}\\u{1F313}\\u{1F314}\\u{1F315}\\u{1F316}\\u{1F317}\\u{1F318}\\u{1F30D}\\u{1F30F}\\u{1F30E}\\u{1F409}\\u2600\\u{1F4BB}\\u{1F5A5}\\u{1F4BE}\\u{1F4BF}\\u{1F602}\\u2764\\u{1F60D}\\u{1F923}\\u{1F60A}\\u{1F64F}\\u{1F495}\\u{1F62D}\\u{1F618}\\u{1F44D}\\u{1F605}\\u{1F44F}\\u{1F601}\\u{1F525}\\u{1F970}\\u{1F494}\\u{1F496}\\u{1F499}\\u{1F622}\\u{1F914}\\u{1F606}\\u{1F644}\\u{1F4AA}\\u{1F609}\\u263A\\u{1F44C}\\u{1F917}\\u{1F49C}\\u{1F614}\\u{1F60E}\\u{1F607}\\u{1F339}\\u{1F926}\\u{1F389}\\u{1F49E}\\u270C\\u2728\\u{1F937}\\u{1F631}\\u{1F60C}\\u{1F338}\\u{1F64C}\\u{1F60B}\\u{1F497}\\u{1F49A}\\u{1F60F}\\u{1F49B}\\u{1F642}\\u{1F493}\\u{1F929}\\u{1F604}\\u{1F600}\\u{1F5A4}\\u{1F603}\\u{1F4AF}\\u{1F648}\\u{1F447}\\u{1F3B6}\\u{1F612}\\u{1F92D}\\u2763\\u{1F61C}\\u{1F48B}\\u{1F440}\\u{1F62A}\\u{1F611}\\u{1F4A5}\\u{1F64B}\\u{1F61E}\\u{1F629}\\u{1F621}\\u{1F92A}\\u{1F44A}\\u{1F973}\\u{1F625}\\u{1F924}\\u{1F449}\\u{1F483}\\u{1F633}\\u270B\\u{1F61A}\\u{1F61D}\\u{1F634}\\u{1F31F}\\u{1F62C}\\u{1F643}\\u{1F340}\\u{1F337}\\u{1F63B}\\u{1F613}\\u2B50\\u2705\\u{1F97A}\\u{1F308}\\u{1F608}\\u{1F918}\\u{1F4A6}\\u2714\\u{1F623}\\u{1F3C3}\\u{1F490}\\u2639\\u{1F38A}\\u{1F498}\\u{1F620}\\u261D\\u{1F615}\\u{1F33A}\\u{1F382}\\u{1F33B}\\u{1F610}\\u{1F595}\\u{1F49D}\\u{1F64A}\\u{1F639}\\u{1F5E3}\\u{1F4AB}\\u{1F480}\\u{1F451}\\u{1F3B5}\\u{1F91E}\\u{1F61B}\\u{1F534}\\u{1F624}\\u{1F33C}\\u{1F62B}\\u26BD\\u{1F919}\\u2615\\u{1F3C6}\\u{1F92B}\\u{1F448}\\u{1F62E}\\u{1F646}\\u{1F37B}\\u{1F343}\\u{1F436}\\u{1F481}\\u{1F632}\\u{1F33F}\\u{1F9E1}\\u{1F381}\\u26A1\\u{1F31E}\\u{1F388}\\u274C\\u270A\\u{1F44B}\\u{1F630}\\u{1F928}\\u{1F636}\\u{1F91D}\\u{1F6B6}\\u{1F4B0}\\u{1F353}\\u{1F4A2}\\u{1F91F}\\u{1F641}\\u{1F6A8}\\u{1F4A8}\\u{1F92C}\\u2708\\u{1F380}\\u{1F37A}\\u{1F913}\\u{1F619}\\u{1F49F}\\u{1F331}\\u{1F616}\\u{1F476}\\u{1F974}\\u25B6\\u27A1\\u2753\\u{1F48E}\\u{1F4B8}\\u2B07\\u{1F628}\\u{1F31A}\\u{1F98B}\\u{1F637}\\u{1F57A}\\u26A0\\u{1F645}\\u{1F61F}\\u{1F635}\\u{1F44E}\\u{1F932}\\u{1F920}\\u{1F927}\\u{1F4CC}\\u{1F535}\\u{1F485}\\u{1F9D0}\\u{1F43E}\\u{1F352}\\u{1F617}\\u{1F911}\\u{1F30A}\\u{1F92F}\\u{1F437}\\u260E\\u{1F4A7}\\u{1F62F}\\u{1F486}\\u{1F446}\\u{1F3A4}\\u{1F647}\\u{1F351}\\u2744\\u{1F334}\\u{1F4A3}\\u{1F438}\\u{1F48C}\\u{1F4CD}\\u{1F940}\\u{1F922}\\u{1F445}\\u{1F4A1}\\u{1F4A9}\\u{1F450}\\u{1F4F8}\\u{1F47B}\\u{1F910}\\u{1F92E}\\u{1F3BC}\\u{1F975}\\u{1F6A9}\\u{1F34E}\\u{1F34A}\\u{1F47C}\\u{1F48D}\\u{1F4E3}\\u{1F942}\"),go=Me.reduce((t,e,n)=>(t[n]=e,t),[]),yo=Me.reduce((t,e,n)=>(t[e.codePointAt(0)]=n,t),[]);function xo(t){return t.reduce((e,n)=>(e+=go[n],e),\"\")}function Bo(t){const e=[];for(const n of t){const r=yo[n.codePointAt(0)];if(r===void 0)throw new Error(`Non-base256emoji character: ${n}`);e.push(r)}return new Uint8Array(e)}const Co=Bt({prefix:\"\\u{1F680}\",name:\"base256emoji\",encode:xo,decode:Bo});var Ao=Object.freeze({__proto__:null,base256emoji:Co}),mo=$e,qe=128,_o=127,So=~_o,vo=Math.pow(2,31);function $e(t,e,n){e=e||[],n=n||0;for(var r=n;t>=vo;)e[n++]=t&255|qe,t/=128;for(;t&So;)e[n++]=t&255|qe,t>>>=7;return e[n]=t|0,$e.bytes=n-r+1,e}var Io=Pt,Uo=128,ke=127;function Pt(t,r){var n=0,r=r||0,o=0,s=r,a,u=t.length;do{if(s>=u)throw Pt.bytes=0,new RangeError(\"Could not decode varint\");a=t[s++],n+=o<28?(a&ke)<<o:(a&ke)*Math.pow(2,o),o+=7}while(a>=Uo);return Pt.bytes=s-r,n}var To=Math.pow(2,7),Fo=Math.pow(2,14),No=Math.pow(2,21),Lo=Math.pow(2,28),Oo=Math.pow(2,35),Ho=Math.pow(2,42),zo=Math.pow(2,49),Mo=Math.pow(2,56),qo=Math.pow(2,63),$o=function(t){return t<To?1:t<Fo?2:t<No?3:t<Lo?4:t<Oo?5:t<Ho?6:t<zo?7:t<Mo?8:t<qo?9:10},ko={encode:mo,decode:Io,encodingLength:$o},Re=ko;const je=(t,e,n=0)=>(Re.encode(t,e,n),e),Ze=t=>Re.encodingLength(t),Qt=(t,e)=>{const n=e.byteLength,r=Ze(t),o=r+Ze(n),s=new Uint8Array(o+n);return je(t,s,0),je(n,s,r),s.set(e,o),new Ro(t,n,e,s)};class Ro{constructor(e,n,r,o){this.code=e,this.size=n,this.digest=r,this.bytes=o}}const Ge=({name:t,code:e,encode:n})=>new jo(t,e,n);class jo{constructor(e,n,r){this.name=e,this.code=n,this.encode=r}digest(e){if(e instanceof Uint8Array){const n=this.encode(e);return n instanceof Uint8Array?Qt(this.code,n):n.then(r=>Qt(this.code,r))}else throw Error(\"Unknown type, must be binary type\")}}const Ve=t=>async e=>new Uint8Array(await crypto.subtle.digest(t,e)),Zo=Ge({name:\"sha2-256\",code:18,encode:Ve(\"SHA-256\")}),Go=Ge({name:\"sha2-512\",code:19,encode:Ve(\"SHA-512\")});var Vo=Object.freeze({__proto__:null,sha256:Zo,sha512:Go});const Ye=0,Yo=\"identity\",Je=He,Jo=t=>Qt(Ye,Je(t)),Ko={code:Ye,name:Yo,encode:Je,digest:Jo};var Wo=Object.freeze({__proto__:null,identity:Ko});new TextEncoder,new TextDecoder;const Ke={...kr,...jr,...Gr,...Yr,...Wr,...io,...ao,...ho,...Eo,...Ao};({...Vo,...Wo});function We(t,e,n,r){return{name:t,prefix:e,encoder:{name:t,prefix:e,encode:n},decoder:{decode:r}}}const Xe=We(\"utf8\",\"u\",t=>\"u\"+new TextDecoder(\"utf8\").decode(t),t=>new TextEncoder().encode(t.substring(1))),te=We(\"ascii\",\"a\",t=>{let e=\"a\";for(let n=0;n<t.length;n++)e+=String.fromCharCode(t[n]);return e},t=>{t=t.substring(1);const e=Le(t.length);for(let n=0;n<t.length;n++)e[n]=t.charCodeAt(n);return e}),Pe={utf8:Xe,\"utf-8\":Xe,hex:Ke.base16,latin1:te,ascii:te,binary:te,...Ke};function ct(t,e=\"utf8\"){const n=Pe[e];if(!n)throw new Error(`Unsupported encoding \"${e}\"`);return(e===\"utf8\"||e===\"utf-8\")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(t.buffer,t.byteOffset,t.byteLength).toString(\"utf8\"):n.encoder.encode(t).substring(1)}function rt(t,e=\"utf8\"){const n=Pe[e];if(!n)throw new Error(`Unsupported encoding \"${e}\"`);return(e===\"utf8\"||e===\"utf-8\")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?Xt(globalThis.Buffer.from(t,\"utf-8\")):n.decoder.decode(`${n.prefix}${t}`)}function lt(t){return pn(ct(rt(t,Dt),Gt))}function bt(t){return ct(rt(wn(t),Gt),Dt)}function Qe(t){const e=rt(Wt,dt),n=Kt+ct(Oe([e,t]),dt);return[Yt,Jt,n].join(Vt)}function tn(t){const[e,n,r]=t.split(Vt);if(e!==Yt||n!==Jt)throw new Error('Issuer must be a DID with method \"key\"');if(r.slice(0,1)!==Kt)throw new Error(\"Issuer must be a key in mulicodec format\");const o=rt(r.slice(1),dt);if(ct(o.slice(0,2),dt)!==Wt)throw new Error('Issuer must be a public key with type \"Ed25519\"');const s=o.slice(2);if(s.length!==Fe)throw new Error(\"Issuer must be a public key with length 32 bytes\");return s}function en(t){return ct(t,Dt)}function nn(t){return rt(t,Dt)}function rn(t){return rt([bt(t.header),bt(t.payload)].join(ut),xt)}function Xo(t){const e=ct(t,xt).split(ut),n=lt(e[0]),r=lt(e[1]);return{header:n,payload:r}}function on(t){return[bt(t.header),bt(t.payload),en(t.signature)].join(ut)}function sn(t){const e=t.split(ut),n=lt(e[0]),r=lt(e[1]),o=nn(e[2]),s=rt(e.slice(0,2).join(ut),xt);return{header:n,payload:r,signature:o,data:s}}function Po(t=he(Ne)){const e=Rt.getPublicKey(t);return{secretKey:Oe([t,e]),publicKey:e}}async function Qo(t,e,n,r,o=bn(Date.now())){const s={alg:jt,typ:Zt},a=Qe(r.publicKey),u=o+n,i={iss:a,sub:t,aud:e,iat:o,exp:u},D=rn({header:s,payload:i}),c=Rt.sign(D,r.secretKey.slice(0,32));return on({header:s,payload:i,signature:c})}async function ts(t){const{header:e,payload:n,data:r,signature:o}=sn(t);if(e.alg!==jt||e.typ!==Zt)throw new Error(\"JWT must use EdDSA algorithm\");const s=tn(n.iss);return Rt.verify(o,r,s)}export{xt as DATA_ENCODING,Vt as DID_DELIMITER,Jt as DID_METHOD,Yt as DID_PREFIX,Gt as JSON_ENCODING,ut as JWT_DELIMITER,Dt as JWT_ENCODING,jt as JWT_IRIDIUM_ALG,Zt as JWT_IRIDIUM_TYP,Ne as KEY_PAIR_SEED_LENGTH,Kt as MULTICODEC_ED25519_BASE,dt as MULTICODEC_ED25519_ENCODING,Wt as MULTICODEC_ED25519_HEADER,Fe as MULTICODEC_ED25519_LENGTH,Xo as decodeData,tn as decodeIss,lt as decodeJSON,sn as decodeJWT,nn as decodeSig,rn as encodeData,Qe as encodeIss,bt as encodeJSON,on as encodeJWT,en as encodeSig,Po as generateKeyPair,Qo as signJWT,ts as verifyJWT};\n//# sourceMappingURL=index.es.js.map\n","export function asUint8Array(buf) {\n if (globalThis.Buffer != null) {\n return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength);\n }\n return buf;\n}","import { asUint8Array } from './util/as-uint8array.js';\nexport function alloc(size = 0) {\n if (globalThis.Buffer != null && globalThis.Buffer.alloc != null) {\n return asUint8Array(globalThis.Buffer.alloc(size));\n }\n return new Uint8Array(size);\n}\nexport function allocUnsafe(size = 0) {\n if (globalThis.Buffer != null && globalThis.Buffer.allocUnsafe != null) {\n return asUint8Array(globalThis.Buffer.allocUnsafe(size));\n }\n return new Uint8Array(size);\n}","import { allocUnsafe } from './alloc.js';\nimport { asUint8Array } from './util/as-uint8array.js';\nexport function concat(arrays, length) {\n if (!length) {\n length = arrays.reduce((acc, curr) => acc + curr.length, 0);\n }\n const output = allocUnsafe(length);\n let offset = 0;\n for (const arr of arrays) {\n output.set(arr, offset);\n offset += arr.length;\n }\n return asUint8Array(output);\n}","function base(ALPHABET, name) {\n if (ALPHABET.length >= 255) {\n throw new TypeError('Alphabet too long');\n }\n var BASE_MAP = new Uint8Array(256);\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255;\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i);\n var xc = x.charCodeAt(0);\n if (BASE_MAP[xc] !== 255) {\n throw new TypeError(x + ' is ambiguous');\n }\n BASE_MAP[xc] = i;\n }\n var BASE = ALPHABET.length;\n var LEADER = ALPHABET.charAt(0);\n var FACTOR = Math.log(BASE) / Math.log(256);\n var iFACTOR = Math.log(256) / Math.log(BASE);\n function encode(source) {\n if (source instanceof Uint8Array);\n else if (ArrayBuffer.isView(source)) {\n source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength);\n } else if (Array.isArray(source)) {\n source = Uint8Array.from(source);\n }\n if (!(source instanceof Uint8Array)) {\n throw new TypeError('Expected Uint8Array');\n }\n if (source.length === 0) {\n return '';\n }\n var zeroes = 0;\n var length = 0;\n var pbegin = 0;\n var pend = source.length;\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++;\n zeroes++;\n }\n var size = (pend - pbegin) * iFACTOR + 1 >>> 0;\n var b58 = new Uint8Array(size);\n while (pbegin !== pend) {\n var carry = source[pbegin];\n var i = 0;\n for (var it1 = size - 1; (carry !== 0 || i < length) && it1 !== -1; it1--, i++) {\n carry += 256 * b58[it1] >>> 0;\n b58[it1] = carry % BASE >>> 0;\n carry = carry / BASE >>> 0;\n }\n if (carry !== 0) {\n throw new Error('Non-zero carry');\n }\n length = i;\n pbegin++;\n }\n var it2 = size - length;\n while (it2 !== size && b58[it2] === 0) {\n it2++;\n }\n var str = LEADER.repeat(zeroes);\n for (; it2 < size; ++it2) {\n str += ALPHABET.charAt(b58[it2]);\n }\n return str;\n }\n function decodeUnsafe(source) {\n if (typeof source !== 'string') {\n throw new TypeError('Expected String');\n }\n if (source.length === 0) {\n return new Uint8Array();\n }\n var psz = 0;\n if (source[psz] === ' ') {\n return;\n }\n var zeroes = 0;\n var length = 0;\n while (source[psz] === LEADER) {\n zeroes++;\n psz++;\n }\n var size = (source.length - psz) * FACTOR + 1 >>> 0;\n var b256 = new Uint8Array(size);\n while (source[psz]) {\n var carry = BASE_MAP[source.charCodeAt(psz)];\n if (carry === 255) {\n return;\n }\n var i = 0;\n for (var it3 = size - 1; (carry !== 0 || i < length) && it3 !== -1; it3--, i++) {\n carry += BASE * b256[it3] >>> 0;\n b256[it3] = carry % 256 >>> 0;\n carry = carry / 256 >>> 0;\n }\n if (carry !== 0) {\n throw new Error('Non-zero carry');\n }\n length = i;\n psz++;\n }\n if (source[psz] === ' ') {\n return;\n }\n var it4 = size - length;\n while (it4 !== size && b256[it4] === 0) {\n it4++;\n }\n var vch = new Uint8Array(zeroes + (size - it4));\n var j = zeroes;\n while (it4 !== size) {\n vch[j++] = b256[it4++];\n }\n return vch;\n }\n function decode(string) {\n var buffer = decodeUnsafe(string);\n if (buffer) {\n return buffer;\n }\n throw new Error(`Non-${ name } character`);\n }\n return {\n encode: encode,\n decodeUnsafe: decodeUnsafe,\n decode: decode\n };\n}\nvar src = base;\nvar _brrp__multiformats_scope_baseX = src;\nexport default _brrp__multiformats_scope_baseX;","const empty = new Uint8Array(0);\nconst toHex = d => d.reduce((hex, byte) => hex + byte.toString(16).padStart(2, '0'), '');\nconst fromHex = hex => {\n const hexes = hex.match(/../g);\n return hexes ? new Uint8Array(hexes.map(b => parseInt(b, 16))) : empty;\n};\nconst equals = (aa, bb) => {\n if (aa === bb)\n return true;\n if (aa.byteLength !== bb.byteLength) {\n return false;\n }\n for (let ii = 0; ii < aa.byteLength; ii++) {\n if (aa[ii] !== bb[ii]) {\n return false;\n }\n }\n return true;\n};\nconst coerce = o => {\n if (o instanceof Uint8Array && o.constructor.name === 'Uint8Array')\n return o;\n if (o instanceof ArrayBuffer)\n return new Uint8Array(o);\n if (ArrayBuffer.isView(o)) {\n return new Uint8Array(o.buffer, o.byteOffset, o.byteLength);\n }\n throw new Error('Unknown type, must be binary type');\n};\nconst isBinary = o => o instanceof ArrayBuffer || ArrayBuffer.isView(o);\nconst fromString = str => new TextEncoder().encode(str);\nconst toString = b => new TextDecoder().decode(b);\nexport {\n equals,\n coerce,\n isBinary,\n fromHex,\n toHex,\n fromString,\n toString,\n empty\n};","import basex from '../../vendor/base-x.js';\nimport { coerce } from '../bytes.js';\nclass Encoder {\n constructor(name, prefix, baseEncode) {\n this.name = name;\n this.prefix = prefix;\n this.baseEncode = baseEncode;\n }\n encode(bytes) {\n if (bytes instanceof Uint8Array) {\n return `${ this.prefix }${ this.baseEncode(bytes) }`;\n } else {\n throw Error('Unknown type, must be binary type');\n }\n }\n}\nclass Decoder {\n constructor(name, prefix, baseDecode) {\n this.name = name;\n this.prefix = prefix;\n if (prefix.codePointAt(0) === undefined) {\n throw new Error('Invalid prefix character');\n }\n this.prefixCodePoint = prefix.codePointAt(0);\n this.baseDecode = baseDecode;\n }\n decode(text) {\n if (typeof text === 'string') {\n if (text.codePointAt(0) !== this.prefixCodePoint) {\n throw Error(`Unable to decode multibase string ${ JSON.stringify(text) }, ${ this.name } decoder only supports inputs prefixed with ${ this.prefix }`);\n }\n return this.baseDecode(text.slice(this.prefix.length));\n } else {\n throw Error('Can only multibase decode strings');\n }\n }\n or(decoder) {\n return or(this, decoder);\n }\n}\nclass ComposedDecoder {\n constructor(decoders) {\n this.decoders = decoders;\n }\n or(decoder) {\n return or(this, decoder);\n }\n decode(input) {\n const prefix = input[0];\n const decoder = this.decoders[prefix];\n if (decoder) {\n return decoder.decode(input);\n } else {\n throw RangeError(`Unable to decode multibase string ${ JSON.stringify(input) }, only inputs prefixed with ${ Object.keys(this.decoders) } are supported`);\n }\n }\n}\nexport const or = (left, right) => new ComposedDecoder({\n ...left.decoders || { [left.prefix]: left },\n ...right.decoders || { [right.prefix]: right }\n});\nexport class Codec {\n constructor(name, prefix, baseEncode, baseDecode) {\n this.name = name;\n this.prefix = prefix;\n this.baseEncode = baseEncode;\n this.baseDecode = baseDecode;\n this.encoder = new Encoder(name, prefix, baseEncode);\n this.decoder = new Decoder(name, prefix, baseDecode);\n }\n encode(input) {\n return this.encoder.encode(input);\n }\n decode(input) {\n return this.decoder.decode(input);\n }\n}\nexport const from = ({name, prefix, encode, decode}) => new Codec(name, prefix, encode, decode);\nexport const baseX = ({prefix, name, alphabet}) => {\n const {encode, decode} = basex(alphabet, name);\n return from({\n prefix,\n name,\n encode,\n decode: text => coerce(decode(text))\n });\n};\nconst decode = (string, alphabet, bitsPerChar, name) => {\n const codes = {};\n for (let i = 0; i < alphabet.length; ++i) {\n codes[alphabet[i]] = i;\n }\n let end = string.length;\n while (string[end - 1] === '=') {\n --end;\n }\n const out = new Uint8Array(end * bitsPerChar / 8 | 0);\n let bits = 0;\n let buffer = 0;\n let written = 0;\n for (let i = 0; i < end; ++i) {\n const value = codes[string[i]];\n if (value === undefined) {\n throw new SyntaxError(`Non-${ name } character`);\n }\n buffer = buffer << bitsPerChar | value;\n bits += bitsPerChar;\n if (bits >= 8) {\n bits -= 8;\n out[written++] = 255 & buffer >> bits;\n }\n }\n if (bits >= bitsPerChar || 255 & buffer << 8 - bits) {\n throw new SyntaxError('Unexpected end of data');\n }\n return out;\n};\nconst encode = (data, alphabet, bitsPerChar) => {\n const pad = alphabet[alphabet.length - 1] === '=';\n const mask = (1 << bitsPerChar) - 1;\n let out = '';\n let bits = 0;\n let buffer = 0;\n for (let i = 0; i < data.length; ++i) {\n buffer = buffer << 8 | data[i];\n bits += 8;\n while (bits > bitsPerChar) {\n bits -= bitsPerChar;\n out += alphabet[mask & buffer >> bits];\n }\n }\n if (bits) {\n out += alphabet[mask & buffer << bitsPerChar - bits];\n }\n if (pad) {\n while (out.length * bitsPerChar & 7) {\n out += '=';\n }\n }\n return out;\n};\nexport const rfc4648 = ({name, prefix, bitsPerChar, alphabet}) => {\n return from({\n prefix,\n name,\n encode(input) {\n return encode(input, alphabet, bitsPerChar);\n },\n decode(input) {\n return decode(input, alphabet, bitsPerChar, name);\n }\n });\n};","import { from } from './base.js';\nimport {\n fromString,\n toString\n} from '../bytes.js';\nexport const identity = from({\n prefix: '\\0',\n name: 'identity',\n encode: buf => toString(buf),\n decode: str => fromString(str)\n});","import { rfc4648 } from './base.js';\nexport const base2 = rfc4648({\n prefix: '0',\n name: 'base2',\n alphabet: '01',\n bitsPerChar: 1\n});","import { rfc4648 } from './base.js';\nexport const base8 = rfc4648({\n prefix: '7',\n name: 'base8',\n alphabet: '01234567',\n bitsPerChar: 3\n});","import { baseX } from './base.js';\nexport const base10 = baseX({\n prefix: '9',\n name: 'base10',\n alphabet: '0123456789'\n});","import { rfc4648 } from './base.js';\nexport const base16 = rfc4648({\n prefix: 'f',\n name: 'base16',\n alphabet: '0123456789abcdef',\n bitsPerChar: 4\n});\nexport const base16upper = rfc4648({\n prefix: 'F',\n name: 'base16upper',\n alphabet: '0123456789ABCDEF',\n bitsPerChar: 4\n});","import { rfc4648 } from './base.js';\nexport const base32 = rfc4648({\n prefix: 'b',\n name: 'base32',\n alphabet: 'abcdefghijklmnopqrstuvwxyz234567',\n bitsPerChar: 5\n});\nexport const base32upper = rfc4648({\n prefix: 'B',\n name: 'base32upper',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567',\n bitsPerChar: 5\n});\nexport const base32pad = rfc4648({\n prefix: 'c',\n name: 'base32pad',\n alphabet: 'abcdefghijklmnopqrstuvwxyz234567=',\n bitsPerChar: 5\n});\nexport const base32padupper = rfc4648({\n prefix: 'C',\n name: 'base32padupper',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=',\n bitsPerChar: 5\n});\nexport const base32hex = rfc4648({\n prefix: 'v',\n name: 'base32hex',\n alphabet: '0123456789abcdefghijklmnopqrstuv',\n bitsPerChar: 5\n});\nexport const base32hexupper = rfc4648({\n prefix: 'V',\n name: 'base32hexupper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUV',\n bitsPerChar: 5\n});\nexport const base32hexpad = rfc4648({\n prefix: 't',\n name: 'base32hexpad',\n alphabet: '0123456789abcdefghijklmnopqrstuv=',\n bitsPerChar: 5\n});\nexport const base32hexpadupper = rfc4648({\n prefix: 'T',\n name: 'base32hexpadupper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUV=',\n bitsPerChar: 5\n});\nexport const base32z = rfc4648({\n prefix: 'h',\n name: 'base32z',\n alphabet: 'ybndrfg8ejkmcpqxot1uwisza345h769',\n bitsPerChar: 5\n});","import { baseX } from './base.js';\nexport const base36 = baseX({\n prefix: 'k',\n name: 'base36',\n alphabet: '0123456789abcdefghijklmnopqrstuvwxyz'\n});\nexport const base36upper = baseX({\n prefix: 'K',\n name: 'base36upper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'\n});","import { baseX } from './base.js';\nexport const base58btc = baseX({\n name: 'base58btc',\n prefix: 'z',\n alphabet: '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n});\nexport const base58flickr = baseX({\n name: 'base58flickr',\n prefix: 'Z',\n alphabet: '123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ'\n});","import { rfc4648 } from './base.js';\nexport const base64 = rfc4648({\n prefix: 'm',\n name: 'base64',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n bitsPerChar: 6\n});\nexport const base64pad = rfc4648({\n prefix: 'M',\n name: 'base64pad',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',\n bitsPerChar: 6\n});\nexport const base64url = rfc4648({\n prefix: 'u',\n name: 'base64url',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_',\n bitsPerChar: 6\n});\nexport const base64urlpad = rfc4648({\n prefix: 'U',\n name: 'base64urlpad',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=',\n bitsPerChar: 6\n});","import { from } from './base.js';\nconst alphabet = Array.from('\\uD83D\\uDE80\\uD83E\\uDE90\\u2604\\uD83D\\uDEF0\\uD83C\\uDF0C\\uD83C\\uDF11\\uD83C\\uDF12\\uD83C\\uDF13\\uD83C\\uDF14\\uD83C\\uDF15\\uD83C\\uDF16\\uD83C\\uDF17\\uD83C\\uDF18\\uD83C\\uDF0D\\uD83C\\uDF0F\\uD83C\\uDF0E\\uD83D\\uDC09\\u2600\\uD83D\\uDCBB\\uD83D\\uDDA5\\uD83D\\uDCBE\\uD83D\\uDCBF\\uD83D\\uDE02\\u2764\\uD83D\\uDE0D\\uD83E\\uDD23\\uD83D\\uDE0A\\uD83D\\uDE4F\\uD83D\\uDC95\\uD83D\\uDE2D\\uD83D\\uDE18\\uD83D\\uDC4D\\uD83D\\uDE05\\uD83D\\uDC4F\\uD83D\\uDE01\\uD83D\\uDD25\\uD83E\\uDD70\\uD83D\\uDC94\\uD83D\\uDC96\\uD83D\\uDC99\\uD83D\\uDE22\\uD83E\\uDD14\\uD83D\\uDE06\\uD83D\\uDE44\\uD83D\\uDCAA\\uD83D\\uDE09\\u263A\\uD83D\\uDC4C\\uD83E\\uDD17\\uD83D\\uDC9C\\uD83D\\uDE14\\uD83D\\uDE0E\\uD83D\\uDE07\\uD83C\\uDF39\\uD83E\\uDD26\\uD83C\\uDF89\\uD83D\\uDC9E\\u270C\\u2728\\uD83E\\uDD37\\uD83D\\uDE31\\uD83D\\uDE0C\\uD83C\\uDF38\\uD83D\\uDE4C\\uD83D\\uDE0B\\uD83D\\uDC97\\uD83D\\uDC9A\\uD83D\\uDE0F\\uD83D\\uDC9B\\uD83D\\uDE42\\uD83D\\uDC93\\uD83E\\uDD29\\uD83D\\uDE04\\uD83D\\uDE00\\uD83D\\uDDA4\\uD83D\\uDE03\\uD83D\\uDCAF\\uD83D\\uDE48\\uD83D\\uDC47\\uD83C\\uDFB6\\uD83D\\uDE12\\uD83E\\uDD2D\\u2763\\uD83D\\uDE1C\\uD83D\\uDC8B\\uD83D\\uDC40\\uD83D\\uDE2A\\uD83D\\uDE11\\uD83D\\uDCA5\\uD83D\\uDE4B\\uD83D\\uDE1E\\uD83D\\uDE29\\uD83D\\uDE21\\uD83E\\uDD2A\\uD83D\\uDC4A\\uD83E\\uDD73\\uD83D\\uDE25\\uD83E\\uDD24\\uD83D\\uDC49\\uD83D\\uDC83\\uD83D\\uDE33\\u270B\\uD83D\\uDE1A\\uD83D\\uDE1D\\uD83D\\uDE34\\uD83C\\uDF1F\\uD83D\\uDE2C\\uD83D\\uDE43\\uD83C\\uDF40\\uD83C\\uDF37\\uD83D\\uDE3B\\uD83D\\uDE13\\u2B50\\u2705\\uD83E\\uDD7A\\uD83C\\uDF08\\uD83D\\uDE08\\uD83E\\uDD18\\uD83D\\uDCA6\\u2714\\uD83D\\uDE23\\uD83C\\uDFC3\\uD83D\\uDC90\\u2639\\uD83C\\uDF8A\\uD83D\\uDC98\\uD83D\\uDE20\\u261D\\uD83D\\uDE15\\uD83C\\uDF3A\\uD83C\\uDF82\\uD83C\\uDF3B\\uD83D\\uDE10\\uD83D\\uDD95\\uD83D\\uDC9D\\uD83D\\uDE4A\\uD83D\\uDE39\\uD83D\\uDDE3\\uD83D\\uDCAB\\uD83D\\uDC80\\uD83D\\uDC51\\uD83C\\uDFB5\\uD83E\\uDD1E\\uD83D\\uDE1B\\uD83D\\uDD34\\uD83D\\uDE24\\uD83C\\uDF3C\\uD83D\\uDE2B\\u26BD\\uD83E\\uDD19\\u2615\\uD83C\\uDFC6\\uD83E\\uDD2B\\uD83D\\uDC48\\uD83D\\uDE2E\\uD83D\\uDE46\\uD83C\\uDF7B\\uD83C\\uDF43\\uD83D\\uDC36\\uD83D\\uDC81\\uD83D\\uDE32\\uD83C\\uDF3F\\uD83E\\uDDE1\\uD83C\\uDF81\\u26A1\\uD83C\\uDF1E\\uD83C\\uDF88\\u274C\\u270A\\uD83D\\uDC4B\\uD83D\\uDE30\\uD83E\\uDD28\\uD83D\\uDE36\\uD83E\\uDD1D\\uD83D\\uDEB6\\uD83D\\uDCB0\\uD83C\\uDF53\\uD83D\\uDCA2\\uD83E\\uDD1F\\uD83D\\uDE41\\uD83D\\uDEA8\\uD83D\\uDCA8\\uD83E\\uDD2C\\u2708\\uD83C\\uDF80\\uD83C\\uDF7A\\uD83E\\uDD13\\uD83D\\uDE19\\uD83D\\uDC9F\\uD83C\\uDF31\\uD83D\\uDE16\\uD83D\\uDC76\\uD83E\\uDD74\\u25B6\\u27A1\\u2753\\uD83D\\uDC8E\\uD83D\\uDCB8\\u2B07\\uD83D\\uDE28\\uD83C\\uDF1A\\uD83E\\uDD8B\\uD83D\\uDE37\\uD83D\\uDD7A\\u26A0\\uD83D\\uDE45\\uD83D\\uDE1F\\uD83D\\uDE35\\uD83D\\uDC4E\\uD83E\\uDD32\\uD83E\\uDD20\\uD83E\\uDD27\\uD83D\\uDCCC\\uD83D\\uDD35\\uD83D\\uDC85\\uD83E\\uDDD0\\uD83D\\uDC3E\\uD83C\\uDF52\\uD83D\\uDE17\\uD83E\\uDD11\\uD83C\\uDF0A\\uD83E\\uDD2F\\uD83D\\uDC37\\u260E\\uD83D\\uDCA7\\uD83D\\uDE2F\\uD83D\\uDC86\\uD83D\\uDC46\\uD83C\\uDFA4\\uD83D\\uDE47\\uD83C\\uDF51\\u2744\\uD83C\\uDF34\\uD83D\\uDCA3\\uD83D\\uDC38\\uD83D\\uDC8C\\uD83D\\uDCCD\\uD83E\\uDD40\\uD83E\\uDD22\\uD83D\\uDC45\\uD83D\\uDCA1\\uD83D\\uDCA9\\uD83D\\uDC50\\uD83D\\uDCF8\\uD83D\\uDC7B\\uD83E\\uDD10\\uD83E\\uDD2E\\uD83C\\uDFBC\\uD83E\\uDD75\\uD83D\\uDEA9\\uD83C\\uDF4E\\uD83C\\uDF4A\\uD83D\\uDC7C\\uD83D\\uDC8D\\uD83D\\uDCE3\\uD83E\\uDD42');\nconst alphabetBytesToChars = alphabet.reduce((p, c, i) => {\n p[i] = c;\n return p;\n}, []);\nconst alphabetCharsToBytes = alphabet.reduce((p, c, i) => {\n p[c.codePointAt(0)] = i;\n return p;\n}, []);\nfunction encode(data) {\n return data.reduce((p, c) => {\n p += alphabetBytesToChars[c];\n return p;\n }, '');\n}\nfunction decode(str) {\n const byts = [];\n for (const char of str) {\n const byt = alphabetCharsToBytes[char.codePointAt(0)];\n if (byt === undefined) {\n throw new Error(`Non-base256emoji character: ${ char }`);\n }\n byts.push(byt);\n }\n return new Uint8Array(byts);\n}\nexport const base256emoji = from({\n prefix: '\\uD83D\\uDE80',\n name: 'base256emoji',\n encode,\n decode\n});","const textEncoder = new TextEncoder();\nconst textDecoder = new TextDecoder();\nexport const name = 'json';\nexport const code = 512;\nexport const encode = node => textEncoder.encode(JSON.stringify(node));\nexport const decode = data => JSON.parse(textDecoder.decode(data));","import * as identityBase from './bases/identity.js';\nimport * as base2 from './bases/base2.js';\nimport * as base8 from './bases/base8.js';\nimport * as base10 from './bases/base10.js';\nimport * as base16 from './bases/base16.js';\nimport * as base32 from './bases/base32.js';\nimport * as base36 from './bases/base36.js';\nimport * as base58 from './bases/base58.js';\nimport * as base64 from './bases/base64.js';\nimport * as base256emoji from './bases/base256emoji.js';\nimport * as sha2 from './hashes/sha2.js';\nimport * as identity from './hashes/identity.js';\nimport * as raw from './codecs/raw.js';\nimport * as json from './codecs/json.js';\nimport {\n CID,\n hasher,\n digest,\n varint,\n bytes\n} from './index.js';\nconst bases = {\n ...identityBase,\n ...base2,\n ...base8,\n ...base10,\n ...base16,\n ...base32,\n ...base36,\n ...base58,\n ...base64,\n ...base256emoji\n};\nconst hashes = {\n ...sha2,\n ...identity\n};\nconst codecs = {\n raw,\n json\n};\nexport {\n CID,\n hasher,\n digest,\n varint,\n bytes,\n hashes,\n bases,\n codecs\n};","import { bases } from 'multiformats/basics';\nimport { allocUnsafe } from '../alloc.js';\nfunction createCodec(name, prefix, encode, decode) {\n return {\n name,\n prefix,\n encoder: {\n name,\n prefix,\n encode\n },\n decoder: { decode }\n };\n}\nconst string = createCodec('utf8', 'u', buf => {\n const decoder = new TextDecoder('utf8');\n return 'u' + decoder.decode(buf);\n}, str => {\n const encoder = new TextEncoder();\n return encoder.encode(str.substring(1));\n});\nconst ascii = createCodec('ascii', 'a', buf => {\n let string = 'a';\n for (let i = 0; i < buf.length; i++) {\n string += String.fromCharCode(buf[i]);\n }\n return string;\n}, str => {\n str = str.substring(1);\n const buf = allocUnsafe(str.length);\n for (let i = 0; i < str.length; i++) {\n buf[i] = str.charCodeAt(i);\n }\n return buf;\n});\nconst BASES = {\n utf8: string,\n 'utf-8': string,\n hex: bases.base16,\n latin1: ascii,\n ascii: ascii,\n binary: ascii,\n ...bases\n};\nexport default BASES;","import bases from './util/bases.js';\nimport { asUint8Array } from './util/as-uint8array.js';\nexport function fromString(string, encoding = 'utf8') {\n const base = bases[encoding];\n if (!base) {\n throw new Error(`Unsupported encoding \"${ encoding }\"`);\n }\n if ((encoding === 'utf8' || encoding === 'utf-8') && globalThis.Buffer != null && globalThis.Buffer.from != null) {\n return asUint8Array(globalThis.Buffer.from(string, 'utf-8'));\n }\n return base.decoder.decode(`${ base.prefix }${ string }`);\n}","import bases from './util/bases.js';\nexport function toString(array, encoding = 'utf8') {\n const base = bases[encoding];\n if (!base) {\n throw new Error(`Unsupported encoding \"${ encoding }\"`);\n }\n if ((encoding === 'utf8' || encoding === 'utf-8') && globalThis.Buffer != null && globalThis.Buffer.from != null) {\n return globalThis.Buffer.from(array.buffer, array.byteOffset, array.byteLength).toString('utf8');\n }\n return base.encoder.encode(array).substring(1);\n}","function e(s,r,i=\"string\"){if(!s[r]||typeof s[r]!==i)throw new Error(`Missing or invalid \"${r}\" param`)}function l(s,r){let i=!0;return r.forEach(t=>{t in s||(i=!1)}),i}function f(s,r){return Array.isArray(s)?s.length===r:Object.keys(s).length===r}function w(s,r){return Array.isArray(s)?s.length>=r:Object.keys(s).length>=r}function u(s,r,i){return(i.length?w(s,r.length):f(s,r.length))?l(s,r):!1}function n(s,r,i=\"_\"){const t=s.split(i);return t[t.length-1].trim().toLowerCase()===r.trim().toLowerCase()}function R(s){return b(s.method)&&a(s.params)}function b(s){return n(s,\"subscribe\")}function a(s){return u(s,[\"topic\"],[])}function P(s){return c(s.method)&&h(s.params)}function c(s){return n(s,\"publish\")}function h(s){return u(s,[\"message\",\"topic\",\"ttl\"],[\"prompt\",\"tag\"])}function _(s){return o(s.method)&&p(s.params)}function o(s){return n(s,\"unsubscribe\")}function p(s){return u(s,[\"id\",\"topic\"],[])}function S(s){return m(s.method)&&d(s.params)}function m(s){return n(s,\"subscription\")}function d(s){return u(s,[\"id\",\"data\"],[])}function g(s){if(!b(s.method))throw new Error(\"JSON-RPC Request has invalid subscribe method\");if(!a(s.params))throw new Error(\"JSON-RPC Request has invalid subscribe params\");const r=s.params;return e(r,\"topic\"),r}function q(s){if(!c(s.method))throw new Error(\"JSON-RPC Request has invalid publish method\");if(!h(s.params))throw new Error(\"JSON-RPC Request has invalid publish params\");const r=s.params;return e(r,\"topic\"),e(r,\"message\"),e(r,\"ttl\",\"number\"),r}function E(s){if(!o(s.method))throw new Error(\"JSON-RPC Request has invalid unsubscribe method\");if(!p(s.params))throw new Error(\"JSON-RPC Request has invalid unsubscribe params\");const r=s.params;return e(r,\"id\"),r}function k(s){if(!m(s.method))throw new Error(\"JSON-RPC Request has invalid subscription method\");if(!d(s.params))throw new Error(\"JSON-RPC Request has invalid subscription params\");const r=s.params;return e(r,\"id\"),e(r,\"data\"),r}const C={waku:{publish:\"waku_publish\",batchPublish:\"waku_batchPublish\",subscribe:\"waku_subscribe\",batchSubscribe:\"waku_batchSubscribe\",subscription:\"waku_subscription\",unsubscribe:\"waku_unsubscribe\",batchUnsubscribe:\"waku_batchUnsubscribe\",batchFetchMessages:\"waku_batchFetchMessages\"},irn:{publish:\"irn_publish\",batchPublish:\"irn_batchPublish\",subscribe:\"irn_subscribe\",batchSubscribe:\"irn_batchSubscribe\",subscription:\"irn_subscription\",unsubscribe:\"irn_unsubscribe\",batchUnsubscribe:\"irn_batchUnsubscribe\",batchFetchMessages:\"irn_batchFetchMessages\"},iridium:{publish:\"iridium_publish\",batchPublish:\"iridium_batchPublish\",subscribe:\"iridium_subscribe\",batchSubscribe:\"iridium_batchSubscribe\",subscription:\"iridium_subscription\",unsubscribe:\"iridium_unsubscribe\",batchUnsubscribe:\"iridium_batchUnsubscribe\",batchFetchMessages:\"iridium_batchFetchMessages\"}};export{C as RELAY_JSONRPC,c as isPublishMethod,h as isPublishParams,P as isPublishRequest,b as isSubscribeMethod,a as isSubscribeParams,R as isSubscribeRequest,m as isSubscriptionMethod,d as isSubscriptionParams,S as isSubscriptionRequest,o as isUnsubscribeMethod,p as isUnsubscribeParams,_ as isUnsubscribeRequest,q as parsePublishRequest,g as parseSubscribeRequest,k as parseSubscriptionRequest,E as parseUnsubscribeRequest};\n//# sourceMappingURL=index.es.js.map\n","const ERROR_MSG_INPUT = 'Input must be an string, Buffer or Uint8Array'\n\n// For convenience, let people hash a string, not just a Uint8Array\nfunction normalizeInput (input) {\n let ret\n if (input instanceof Uint8Array) {\n ret = input\n } else if (typeof input === 'string') {\n const encoder = new TextEncoder()\n ret = encoder.encode(input)\n } else {\n throw new Error(ERROR_MSG_INPUT)\n }\n return ret\n}\n\n// Converts a Uint8Array to a hexadecimal string\n// For example, toHex([255, 0, 255]) returns \"ff00ff\"\nfunction toHex (bytes) {\n return Array.prototype.map\n .call(bytes, function (n) {\n return (n < 16 ? '0' : '') + n.toString(16)\n })\n .join('')\n}\n\n// Converts any value in [0...2^32-1] to an 8-character hex string\nfunction uint32ToHex (val) {\n return (0x100000000 + val).toString(16).substring(1)\n}\n\n// For debugging: prints out hash state in the same format as the RFC\n// sample computation exactly, so that you can diff\nfunction debugPrint (label, arr, size) {\n let msg = '\\n' + label + ' = '\n for (let i = 0; i < arr.length; i += 2) {\n if (size === 32) {\n msg += uint32ToHex(arr[i]).toUpperCase()\n msg += ' '\n msg += uint32ToHex(arr[i + 1]).toUpperCase()\n } else if (size === 64) {\n msg += uint32ToHex(arr[i + 1]).toUpperCase()\n msg += uint32ToHex(arr[i]).toUpperCase()\n } else throw new Error('Invalid size ' + size)\n if (i % 6 === 4) {\n msg += '\\n' + new Array(label.length + 4).join(' ')\n } else if (i < arr.length - 2) {\n msg += ' '\n }\n }\n console.log(msg)\n}\n\n// For performance testing: generates N bytes of input, hashes M times\n// Measures and prints MB/second hash performance each time\nfunction testSpeed (hashFn, N, M) {\n let startMs = new Date().getTime()\n\n const input = new Uint8Array(N)\n for (let i = 0; i < N; i++) {\n input[i] = i % 256\n }\n const genMs = new Date().getTime()\n console.log('Generated random input in ' + (genMs - startMs) + 'ms')\n startMs = genMs\n\n for (let i = 0; i < M; i++) {\n const hashHex = hashFn(input)\n const hashMs = new Date().getTime()\n const ms = hashMs - startMs\n startMs = hashMs\n console.log('Hashed in ' + ms + 'ms: ' + hashHex.substring(0, 20) + '...')\n console.log(\n Math.round((N / (1 << 20) / (ms / 1000)) * 100) / 100 + ' MB PER SECOND'\n )\n }\n}\n\nmodule.exports = {\n normalizeInput: normalizeInput,\n toHex: toHex,\n debugPrint: debugPrint,\n testSpeed: testSpeed\n}\n","// Blake2B in pure Javascript\n// Adapted from the reference implementation in RFC7693\n// Ported to Javascript by DC - https://github.com/dcposch\n\nconst util = require('./util')\n\n// 64-bit unsigned addition\n// Sets v[a,a+1] += v[b,b+1]\n// v should be a Uint32Array\nfunction ADD64AA (v, a, b) {\n const o0 = v[a] + v[b]\n let o1 = v[a + 1] + v[b + 1]\n if (o0 >= 0x100000000) {\n o1++\n }\n v[a] = o0\n v[a + 1] = o1\n}\n\n// 64-bit unsigned addition\n// Sets v[a,a+1] += b\n// b0 is the low 32 bits of b, b1 represents the high 32 bits\nfunction ADD64AC (v, a, b0, b1) {\n let o0 = v[a] + b0\n if (b0 < 0) {\n o0 += 0x100000000\n }\n let o1 = v[a + 1] + b1\n if (o0 >= 0x100000000) {\n o1++\n }\n v[a] = o0\n v[a + 1] = o1\n}\n\n// Little-endian byte access\nfunction B2B_GET32 (arr, i) {\n return arr[i] ^ (arr[i + 1] << 8) ^ (arr[i + 2] << 16) ^ (arr[i + 3] << 24)\n}\n\n// G Mixing function\n// The ROTRs are inlined for speed\nfunction B2B_G (a, b, c, d, ix, iy) {\n const x0 = m[ix]\n const x1 = m[ix + 1]\n const y0 = m[iy]\n const y1 = m[iy + 1]\n\n ADD64AA(v, a, b) // v[a,a+1] += v[b,b+1] ... in JS we must store a uint64 as two uint32s\n ADD64AC(v, a, x0, x1) // v[a, a+1] += x ... x0 is the low 32 bits of x, x1 is the high 32 bits\n\n // v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated to the right by 32 bits\n let xor0 = v[d] ^ v[a]\n let xor1 = v[d + 1] ^ v[a + 1]\n v[d] = xor1\n v[d + 1] = xor0\n\n ADD64AA(v, c, d)\n\n // v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 24 bits\n xor0 = v[b] ^ v[c]\n xor1 = v[b + 1] ^ v[c + 1]\n v[b] = (xor0 >>> 24) ^ (xor1 << 8)\n v[b + 1] = (xor1 >>> 24) ^ (xor0 << 8)\n\n ADD64AA(v, a, b)\n ADD64AC(v, a, y0, y1)\n\n // v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated right by 16 bits\n xor0 = v[d] ^ v[a]\n xor1 = v[d + 1] ^ v[a + 1]\n v[d] = (xor0 >>> 16) ^ (xor1 << 16)\n v[d + 1] = (xor1 >>> 16) ^ (xor0 << 16)\n\n ADD64AA(v, c, d)\n\n // v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 63 bits\n xor0 = v[b] ^ v[c]\n xor1 = v[b + 1] ^ v[c + 1]\n v[b] = (xor1 >>> 31) ^ (xor0 << 1)\n v[b + 1] = (xor0 >>> 31) ^ (xor1 << 1)\n}\n\n// Initialization Vector\nconst BLAKE2B_IV32 = new Uint32Array([\n 0xf3bcc908, 0x6a09e667, 0x84caa73b, 0xbb67ae85, 0xfe94f82b, 0x3c6ef372,\n 0x5f1d36f1, 0xa54ff53a, 0xade682d1, 0x510e527f, 0x2b3e6c1f, 0x9b05688c,\n 0xfb41bd6b, 0x1f83d9ab, 0x137e2179, 0x5be0cd19\n])\n\nconst SIGMA8 = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 14, 10, 4, 8, 9, 15, 13,\n 6, 1, 12, 0, 2, 11, 7, 5, 3, 11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1,\n 9, 4, 7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8, 9, 0, 5, 7, 2, 4,\n 10, 15, 14, 1, 11, 12, 6, 8, 3, 13, 2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5,\n 15, 14, 1, 9, 12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11, 13, 11, 7,\n 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10, 6, 15, 14, 9, 11, 3, 0, 8, 12, 2,\n 13, 7, 1, 4, 10, 5, 10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13, 0, 0,\n 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 14, 10, 4, 8, 9, 15, 13, 6,\n 1, 12, 0, 2, 11, 7, 5, 3\n]\n\n// These are offsets into a uint64 buffer.\n// Multiply them all by 2 to make them offsets into a uint32 buffer,\n// because this is Javascript and we don't have uint64s\nconst SIGMA82 = new Uint8Array(\n SIGMA8.map(function (x) {\n return x * 2\n })\n)\n\n// Compression function. 'last' flag indicates last block.\n// Note we're representing 16 uint64s as 32 uint32s\nconst v = new Uint32Array(32)\nconst m = new Uint32Array(32)\nfunction blake2bCompress (ctx, last) {\n let i = 0\n\n // init work variables\n for (i = 0; i < 16; i++) {\n v[i] = ctx.h[i]\n v[i + 16] = BLAKE2B_IV32[i]\n }\n\n // low 64 bits of offset\n v[24] = v[24] ^ ctx.t\n v[25] = v[25] ^ (ctx.t / 0x100000000)\n // high 64 bits not supported, offset may not be higher than 2**53-1\n\n // last block flag set ?\n if (last) {\n v[28] = ~v[28]\n v[29] = ~v[29]\n }\n\n // get little-endian words\n for (i = 0; i < 32; i++) {\n m[i] = B2B_GET32(ctx.b, 4 * i)\n }\n\n // twelve rounds of mixing\n // uncomment the DebugPrint calls to log the computation\n // and match the RFC sample documentation\n // util.debugPrint(' m[16]', m, 64)\n for (i = 0; i < 12; i++) {\n // util.debugPrint(' (i=' + (i < 10 ? ' ' : '') + i + ') v[16]', v, 64)\n B2B_G(0, 8, 16, 24, SIGMA82[i * 16 + 0], SIGMA82[i * 16 + 1])\n B2B_G(2, 10, 18, 26, SIGMA82[i * 16 + 2], SIGMA82[i * 16 + 3])\n B2B_G(4, 12, 20, 28, SIGMA82[i * 16 + 4], SIGMA82[i * 16 + 5])\n B2B_G(6, 14, 22, 30, SIGMA82[i * 16 + 6], SIGMA82[i * 16 + 7])\n B2B_G(0, 10, 20, 30, SIGMA82[i * 16 + 8], SIGMA82[i * 16 + 9])\n B2B_G(2, 12, 22, 24, SIGMA82[i * 16 + 10], SIGMA82[i * 16 + 11])\n B2B_G(4, 14, 16, 26, SIGMA82[i * 16 + 12], SIGMA82[i * 16 + 13])\n B2B_G(6, 8, 18, 28, SIGMA82[i * 16 + 14], SIGMA82[i * 16 + 15])\n }\n // util.debugPrint(' (i=12) v[16]', v, 64)\n\n for (i = 0; i < 16; i++) {\n ctx.h[i] = ctx.h[i] ^ v[i] ^ v[i + 16]\n }\n // util.debugPrint('h[8]', ctx.h, 64)\n}\n\n// reusable parameterBlock\nconst parameterBlock = new Uint8Array([\n 0,\n 0,\n 0,\n 0, // 0: outlen, keylen, fanout, depth\n 0,\n 0,\n 0,\n 0, // 4: leaf length, sequential mode\n 0,\n 0,\n 0,\n 0, // 8: node offset\n 0,\n 0,\n 0,\n 0, // 12: node offset\n 0,\n 0,\n 0,\n 0, // 16: node depth, inner length, rfu\n 0,\n 0,\n 0,\n 0, // 20: rfu\n 0,\n 0,\n 0,\n 0, // 24: rfu\n 0,\n 0,\n 0,\n 0, // 28: rfu\n 0,\n 0,\n 0,\n 0, // 32: salt\n 0,\n 0,\n 0,\n 0, // 36: salt\n 0,\n 0,\n 0,\n 0, // 40: salt\n 0,\n 0,\n 0,\n 0, // 44: salt\n 0,\n 0,\n 0,\n 0, // 48: personal\n 0,\n 0,\n 0,\n 0, // 52: personal\n 0,\n 0,\n 0,\n 0, // 56: personal\n 0,\n 0,\n 0,\n 0 // 60: personal\n])\n\n// Creates a BLAKE2b hashing context\n// Requires an output length between 1 and 64 bytes\n// Takes an optional Uint8Array key\n// Takes an optinal Uint8Array salt\n// Takes an optinal Uint8Array personal\nfunction blake2bInit (outlen, key, salt, personal) {\n if (outlen === 0 || outlen > 64) {\n throw new Error('Illegal output length, expected 0 < length <= 64')\n }\n if (key && key.length > 64) {\n throw new Error('Illegal key, expected Uint8Array with 0 < length <= 64')\n }\n if (salt && salt.length !== 16) {\n throw new Error('Illegal salt, expected Uint8Array with length is 16')\n }\n if (personal && personal.length !== 16) {\n throw new Error('Illegal personal, expected Uint8Array with length is 16')\n }\n\n // state, 'param block'\n const ctx = {\n b: new Uint8Array(128),\n h: new Uint32Array(16),\n t: 0, // input count\n c: 0, // pointer within buffer\n outlen: outlen // output length in bytes\n }\n\n // initialize parameterBlock before usage\n parameterBlock.fill(0)\n parameterBlock[0] = outlen\n if (key) parameterBlock[1] = key.length\n parameterBlock[2] = 1 // fanout\n parameterBlock[3] = 1 // depth\n if (salt) parameterBlock.set(salt, 32)\n if (personal) parameterBlock.set(personal, 48)\n\n // initialize hash state\n for (let i = 0; i < 16; i++) {\n ctx.h[i] = BLAKE2B_IV32[i] ^ B2B_GET32(parameterBlock, i * 4)\n }\n\n // key the hash, if applicable\n if (key) {\n blake2bUpdate(ctx, key)\n // at the end\n ctx.c = 128\n }\n\n return ctx\n}\n\n// Updates a BLAKE2b streaming hash\n// Requires hash context and Uint8Array (byte array)\nfunction blake2bUpdate (ctx, input) {\n for (let i = 0; i < input.length; i++) {\n if (ctx.c === 128) {\n // buffer full ?\n ctx.t += ctx.c // add counters\n blake2bCompress(ctx, false) // compress (not last)\n ctx.c = 0 // counter to zero\n }\n ctx.b[ctx.c++] = input[i]\n }\n}\n\n// Completes a BLAKE2b streaming hash\n// Returns a Uint8Array containing the message digest\nfunction blake2bFinal (ctx) {\n ctx.t += ctx.c // mark last block offset\n\n while (ctx.c < 128) {\n // fill up with zeros\n ctx.b[ctx.c++] = 0\n }\n blake2bCompress(ctx, true) // final block flag = 1\n\n // little endian convert and store\n const out = new Uint8Array(ctx.outlen)\n for (let i = 0; i < ctx.outlen; i++) {\n out[i] = ctx.h[i >> 2] >> (8 * (i & 3))\n }\n return out\n}\n\n// Computes the BLAKE2B hash of a string or byte array, and returns a Uint8Array\n//\n// Returns a n-byte Uint8Array\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer or Uint8Array\n// - key - optional key Uint8Array, up to 64 bytes\n// - outlen - optional output length in bytes, default 64\n// - salt - optional salt bytes, string, Buffer or Uint8Array\n// - personal - optional personal bytes, string, Buffer or Uint8Array\nfunction blake2b (input, key, outlen, salt, personal) {\n // preprocess inputs\n outlen = outlen || 64\n input = util.normalizeInput(input)\n if (salt) {\n salt = util.normalizeInput(salt)\n }\n if (personal) {\n personal = util.normalizeInput(personal)\n }\n\n // do the math\n const ctx = blake2bInit(outlen, key, salt, personal)\n blake2bUpdate(ctx, input)\n return blake2bFinal(ctx)\n}\n\n// Computes the BLAKE2B hash of a string or byte array\n//\n// Returns an n-byte hash in hex, all lowercase\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer, or Uint8Array\n// - key - optional key Uint8Array, up to 64 bytes\n// - outlen - optional output length in bytes, default 64\n// - salt - optional salt bytes, string, Buffer or Uint8Array\n// - personal - optional personal bytes, string, Buffer or Uint8Array\nfunction blake2bHex (input, key, outlen, salt, personal) {\n const output = blake2b(input, key, outlen, salt, personal)\n return util.toHex(output)\n}\n\nmodule.exports = {\n blake2b: blake2b,\n blake2bHex: blake2bHex,\n blake2bInit: blake2bInit,\n blake2bUpdate: blake2bUpdate,\n blake2bFinal: blake2bFinal\n}\n","// BLAKE2s hash function in pure Javascript\n// Adapted from the reference implementation in RFC7693\n// Ported to Javascript by DC - https://github.com/dcposch\n\nconst util = require('./util')\n\n// Little-endian byte access.\n// Expects a Uint8Array and an index\n// Returns the little-endian uint32 at v[i..i+3]\nfunction B2S_GET32 (v, i) {\n return v[i] ^ (v[i + 1] << 8) ^ (v[i + 2] << 16) ^ (v[i + 3] << 24)\n}\n\n// Mixing function G.\nfunction B2S_G (a, b, c, d, x, y) {\n v[a] = v[a] + v[b] + x\n v[d] = ROTR32(v[d] ^ v[a], 16)\n v[c] = v[c] + v[d]\n v[b] = ROTR32(v[b] ^ v[c], 12)\n v[a] = v[a] + v[b] + y\n v[d] = ROTR32(v[d] ^ v[a], 8)\n v[c] = v[c] + v[d]\n v[b] = ROTR32(v[b] ^ v[c], 7)\n}\n\n// 32-bit right rotation\n// x should be a uint32\n// y must be between 1 and 31, inclusive\nfunction ROTR32 (x, y) {\n return (x >>> y) ^ (x << (32 - y))\n}\n\n// Initialization Vector.\nconst BLAKE2S_IV = new Uint32Array([\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19\n])\n\nconst SIGMA = new Uint8Array([\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 14,\n 10,\n 4,\n 8,\n 9,\n 15,\n 13,\n 6,\n 1,\n 12,\n 0,\n 2,\n 11,\n 7,\n 5,\n 3,\n 11,\n 8,\n 12,\n 0,\n 5,\n 2,\n 15,\n 13,\n 10,\n 14,\n 3,\n 6,\n 7,\n 1,\n 9,\n 4,\n 7,\n 9,\n 3,\n 1,\n 13,\n 12,\n 11,\n 14,\n 2,\n 6,\n 5,\n 10,\n 4,\n 0,\n 15,\n 8,\n 9,\n 0,\n 5,\n 7,\n 2,\n 4,\n 10,\n 15,\n 14,\n 1,\n 11,\n 12,\n 6,\n 8,\n 3,\n 13,\n 2,\n 12,\n 6,\n 10,\n 0,\n 11,\n 8,\n 3,\n 4,\n 13,\n 7,\n 5,\n 15,\n 14,\n 1,\n 9,\n 12,\n 5,\n 1,\n 15,\n 14,\n 13,\n 4,\n 10,\n 0,\n 7,\n 6,\n 3,\n 9,\n 2,\n 8,\n 11,\n 13,\n 11,\n 7,\n 14,\n 12,\n 1,\n 3,\n 9,\n 5,\n 0,\n 15,\n 4,\n 8,\n 6,\n 2,\n 10,\n 6,\n 15,\n 14,\n 9,\n 11,\n 3,\n 0,\n 8,\n 12,\n 2,\n 13,\n 7,\n 1,\n 4,\n 10,\n 5,\n 10,\n 2,\n 8,\n 4,\n 7,\n 6,\n 1,\n 5,\n 15,\n 11,\n 9,\n 14,\n 3,\n 12,\n 13,\n 0\n])\n\n// Compression function. \"last\" flag indicates last block\nconst v = new Uint32Array(16)\nconst m = new Uint32Array(16)\nfunction blake2sCompress (ctx, last) {\n let i = 0\n for (i = 0; i < 8; i++) {\n // init work variables\n v[i] = ctx.h[i]\n v[i + 8] = BLAKE2S_IV[i]\n }\n\n v[12] ^= ctx.t // low 32 bits of offset\n v[13] ^= ctx.t / 0x100000000 // high 32 bits\n if (last) {\n // last block flag set ?\n v[14] = ~v[14]\n }\n\n for (i = 0; i < 16; i++) {\n // get little-endian words\n m[i] = B2S_GET32(ctx.b, 4 * i)\n }\n\n // ten rounds of mixing\n // uncomment the DebugPrint calls to log the computation\n // and match the RFC sample documentation\n // util.debugPrint(' m[16]', m, 32)\n for (i = 0; i < 10; i++) {\n // util.debugPrint(' (i=' + i + ') v[16]', v, 32)\n B2S_G(0, 4, 8, 12, m[SIGMA[i * 16 + 0]], m[SIGMA[i * 16 + 1]])\n B2S_G(1, 5, 9, 13, m[SIGMA[i * 16 + 2]], m[SIGMA[i * 16 + 3]])\n B2S_G(2, 6, 10, 14, m[SIGMA[i * 16 + 4]], m[SIGMA[i * 16 + 5]])\n B2S_G(3, 7, 11, 15, m[SIGMA[i * 16 + 6]], m[SIGMA[i * 16 + 7]])\n B2S_G(0, 5, 10, 15, m[SIGMA[i * 16 + 8]], m[SIGMA[i * 16 + 9]])\n B2S_G(1, 6, 11, 12, m[SIGMA[i * 16 + 10]], m[SIGMA[i * 16 + 11]])\n B2S_G(2, 7, 8, 13, m[SIGMA[i * 16 + 12]], m[SIGMA[i * 16 + 13]])\n B2S_G(3, 4, 9, 14, m[SIGMA[i * 16 + 14]], m[SIGMA[i * 16 + 15]])\n }\n // util.debugPrint(' (i=10) v[16]', v, 32)\n\n for (i = 0; i < 8; i++) {\n ctx.h[i] ^= v[i] ^ v[i + 8]\n }\n // util.debugPrint('h[8]', ctx.h, 32)\n}\n\n// Creates a BLAKE2s hashing context\n// Requires an output length between 1 and 32 bytes\n// Takes an optional Uint8Array key\nfunction blake2sInit (outlen, key) {\n if (!(outlen > 0 && outlen <= 32)) {\n throw new Error('Incorrect output length, should be in [1, 32]')\n }\n const keylen = key ? key.length : 0\n if (key && !(keylen > 0 && keylen <= 32)) {\n throw new Error('Incorrect key length, should be in [1, 32]')\n }\n\n const ctx = {\n h: new Uint32Array(BLAKE2S_IV), // hash state\n b: new Uint8Array(64), // input block\n c: 0, // pointer within block\n t: 0, // input count\n outlen: outlen // output length in bytes\n }\n ctx.h[0] ^= 0x01010000 ^ (keylen << 8) ^ outlen\n\n if (keylen > 0) {\n blake2sUpdate(ctx, key)\n ctx.c = 64 // at the end\n }\n\n return ctx\n}\n\n// Updates a BLAKE2s streaming hash\n// Requires hash context and Uint8Array (byte array)\nfunction blake2sUpdate (ctx, input) {\n for (let i = 0; i < input.length; i++) {\n if (ctx.c === 64) {\n // buffer full ?\n ctx.t += ctx.c // add counters\n blake2sCompress(ctx, false) // compress (not last)\n ctx.c = 0 // counter to zero\n }\n ctx.b[ctx.c++] = input[i]\n }\n}\n\n// Completes a BLAKE2s streaming hash\n// Returns a Uint8Array containing the message digest\nfunction blake2sFinal (ctx) {\n ctx.t += ctx.c // mark last block offset\n while (ctx.c < 64) {\n // fill up with zeros\n ctx.b[ctx.c++] = 0\n }\n blake2sCompress(ctx, true) // final block flag = 1\n\n // little endian convert and store\n const out = new Uint8Array(ctx.outlen)\n for (let i = 0; i < ctx.outlen; i++) {\n out[i] = (ctx.h[i >> 2] >> (8 * (i & 3))) & 0xff\n }\n return out\n}\n\n// Computes the BLAKE2S hash of a string or byte array, and returns a Uint8Array\n//\n// Returns a n-byte Uint8Array\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer, or Uint8Array\n// - key - optional key Uint8Array, up to 32 bytes\n// - outlen - optional output length in bytes, default 64\nfunction blake2s (input, key, outlen) {\n // preprocess inputs\n outlen = outlen || 32\n input = util.normalizeInput(input)\n\n // do the math\n const ctx = blake2sInit(outlen, key)\n blake2sUpdate(ctx, input)\n return blake2sFinal(ctx)\n}\n\n// Computes the BLAKE2S hash of a string or byte array\n//\n// Returns an n-byte hash in hex, all lowercase\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer, or Uint8Array\n// - key - optional key Uint8Array, up to 32 bytes\n// - outlen - optional output length in bytes, default 64\nfunction blake2sHex (input, key, outlen) {\n const output = blake2s(input, key, outlen)\n return util.toHex(output)\n}\n\nmodule.exports = {\n blake2s: blake2s,\n blake2sHex: blake2sHex,\n blake2sInit: blake2sInit,\n blake2sUpdate: blake2sUpdate,\n blake2sFinal: blake2sFinal\n}\n","const b2b = require('./blake2b')\nconst b2s = require('./blake2s')\n\nmodule.exports = {\n blake2b: b2b.blake2b,\n blake2bHex: b2b.blake2bHex,\n blake2bInit: b2b.blake2bInit,\n blake2bUpdate: b2b.blake2bUpdate,\n blake2bFinal: b2b.blake2bFinal,\n blake2s: b2s.blake2s,\n blake2sHex: b2s.blake2sHex,\n blake2sInit: b2s.blake2sInit,\n blake2sUpdate: b2s.blake2sUpdate,\n blake2sFinal: b2s.blake2sFinal\n}\n","var b={exports:{}};function se(e){try{return JSON.stringify(e)}catch{return'\"[Circular]\"'}}var ie=oe;function oe(e,t,r){var s=r&&r.stringify||se,i=1;if(typeof e==\"object\"&&e!==null){var f=t.length+i;if(f===1)return e;var h=new Array(f);h[0]=s(e);for(var u=1;u<f;u++)h[u]=s(t[u]);return h.join(\" \")}if(typeof e!=\"string\")return e;var c=t.length;if(c===0)return e;for(var n=\"\",o=1-i,l=-1,L=e&&e.length||0,a=0;a<L;){if(e.charCodeAt(a)===37&&a+1<L){switch(l=l>-1?l:0,e.charCodeAt(a+1)){case 100:case 102:if(o>=c||t[o]==null)break;l<a&&(n+=e.slice(l,a)),n+=Number(t[o]),l=a+2,a++;break;case 105:if(o>=c||t[o]==null)break;l<a&&(n+=e.slice(l,a)),n+=Math.floor(Number(t[o])),l=a+2,a++;break;case 79:case 111:case 106:if(o>=c||t[o]===void 0)break;l<a&&(n+=e.slice(l,a));var _=typeof t[o];if(_===\"string\"){n+=\"'\"+t[o]+\"'\",l=a+2,a++;break}if(_===\"function\"){n+=t[o].name||\"<anonymous>\",l=a+2,a++;break}n+=s(t[o]),l=a+2,a++;break;case 115:if(o>=c)break;l<a&&(n+=e.slice(l,a)),n+=String(t[o]),l=a+2,a++;break;case 37:l<a&&(n+=e.slice(l,a)),n+=\"%\",l=a+2,a++,o--;break}++o}++a}return l===-1?e:(l<L&&(n+=e.slice(l)),n)}const G=ie;b.exports=v;const E=Le().console||{},le={mapHttpRequest:T,mapHttpResponse:T,wrapRequestSerializer:$,wrapResponseSerializer:$,wrapErrorSerializer:$,req:T,res:T,err:U,errWithCause:U};function m(e,t){return e===\"silent\"?1/0:t.levels.values[e]}const A=Symbol(\"pino.logFuncs\"),P=Symbol(\"pino.hierarchy\"),ae={error:\"log\",fatal:\"error\",warn:\"error\",info:\"log\",debug:\"log\",trace:\"log\"};function R(e,t){const r={logger:t,parent:e[P]};t[P]=r}function ue(e,t,r){const s={};t.forEach(i=>{s[i]=r[i]?r[i]:E[i]||E[ae[i]||\"log\"]||z}),e[A]=s}function ce(e,t){return Array.isArray(e)?e.filter(function(s){return s!==\"!stdSerializers.err\"}):e===!0?Object.keys(t):!1}function v(e){e=e||{},e.browser=e.browser||{};const t=e.browser.transmit;if(t&&typeof t.send!=\"function\")throw Error(\"pino: transmit option must have a send function\");const r=e.browser.write||E;e.browser.write&&(e.browser.asObject=!0);const s=e.serializers||{},i=ce(e.browser.serialize,s);let f=e.browser.serialize;Array.isArray(e.browser.serialize)&&e.browser.serialize.indexOf(\"!stdSerializers.err\")>-1&&(f=!1);const h=Object.keys(e.customLevels||{}),u=[\"error\",\"fatal\",\"warn\",\"info\",\"debug\",\"trace\"].concat(h);typeof r==\"function\"&&u.forEach(function(g){r[g]=r}),(e.enabled===!1||e.browser.disabled)&&(e.level=\"silent\");const c=e.level||\"info\",n=Object.create(r);n.log||(n.log=z),ue(n,u,r),R({},n),Object.defineProperty(n,\"levelVal\",{get:l}),Object.defineProperty(n,\"level\",{get:L,set:a});const o={transmit:t,serialize:i,asObject:e.browser.asObject,asObjectBindingsOnly:e.browser.asObjectBindingsOnly,formatters:e.browser.formatters,levels:u,timestamp:ye(e),messageKey:e.messageKey||\"msg\",onChild:e.onChild||z};n.levels=fe(e),n.level=c,n.isLevelEnabled=function(g){return this.levels.values[g]?this.levels.values[g]>=this.levels.values[this.level]:!1},n.setMaxListeners=n.getMaxListeners=n.emit=n.addListener=n.on=n.prependListener=n.once=n.prependOnceListener=n.removeListener=n.removeAllListeners=n.listeners=n.listenerCount=n.eventNames=n.write=n.flush=z,n.serializers=s,n._serialize=i,n._stdErrSerialize=f,n.child=function(...g){return _.call(this,o,...g)},t&&(n._logEvent=N());function l(){return m(this.level,this)}function L(){return this._level}function a(g){if(g!==\"silent\"&&!this.levels.values[g])throw Error(\"unknown level \"+g);this._level=g,O(this,o,n,\"error\"),O(this,o,n,\"fatal\"),O(this,o,n,\"warn\"),O(this,o,n,\"info\"),O(this,o,n,\"debug\"),O(this,o,n,\"trace\"),h.forEach(d=>{O(this,o,n,d)})}function _(g,d,j){if(!d)throw new Error(\"missing bindings for child Pino\");j=j||{},i&&d.serializers&&(j.serializers=d.serializers);const F=j.serializers;if(i&&F){var C=Object.assign({},s,F),M=e.browser.serialize===!0?Object.keys(C):i;delete d.serializers,V([d],M,C,this._stdErrSerialize)}function D(I){this._childLevel=(I._childLevel|0)+1,this.bindings=d,C&&(this.serializers=C,this._serialize=M),t&&(this._logEvent=N([].concat(I._logEvent.bindings,d)))}D.prototype=this;const S=new D(this);return R(this,S),S.child=function(...I){return _.call(this,g,...I)},S.level=j.level||this.level,g.onChild(S),S}return n}function fe(e){const t=e.customLevels||{},r=Object.assign({},v.levels.values,t),s=Object.assign({},v.levels.labels,he(t));return{values:r,labels:s}}function he(e){const t={};return Object.keys(e).forEach(function(r){t[e[r]]=r}),t}v.levels={values:{fatal:60,error:50,warn:40,info:30,debug:20,trace:10},labels:{10:\"trace\",20:\"debug\",30:\"info\",40:\"warn\",50:\"error\",60:\"fatal\"}},v.stdSerializers=le,v.stdTimeFunctions=Object.assign({},{nullTime:X,epochTime:Y,unixTime:pe,isoTime:we});function ge(e){const t=[];e.bindings&&t.push(e.bindings);let r=e[P];for(;r.parent;)r=r.parent,r.logger.bindings&&t.push(r.logger.bindings);return t.reverse()}function O(e,t,r,s){if(Object.defineProperty(e,s,{value:m(e.level,r)>m(s,r)?z:r[A][s],writable:!0,enumerable:!0,configurable:!0}),e[s]===z){if(!t.transmit)return;const f=t.transmit.level||e.level,h=m(f,r);if(m(s,r)<h)return}e[s]=de(e,t,r,s);const i=ge(e);i.length!==0&&(e[s]=be(i,e[s]))}function be(e,t){return function(){return t.apply(this,[...e,...arguments])}}function de(e,t,r,s){return function(i){return function(){const h=t.timestamp(),u=new Array(arguments.length),c=Object.getPrototypeOf&&Object.getPrototypeOf(this)===E?E:this;for(var n=0;n<u.length;n++)u[n]=arguments[n];var o=!1;if(t.serialize&&(V(u,this._serialize,this.serializers,this._stdErrSerialize),o=!0),t.asObject||t.formatters?i.call(c,...ve(this,s,u,h,t)):i.apply(c,u),t.transmit){const l=t.transmit.level||e._level,L=m(l,r),a=m(s,r);if(a<L)return;me(this,{ts:h,methodLevel:s,methodValue:a,transmitLevel:l,transmitValue:r.levels.values[t.transmit.level||e._level],send:t.transmit.send,val:m(e._level,r)},u,o)}}}(e[A][s])}function ve(e,t,r,s,i){const{level:f,log:h=l=>l}=i.formatters||{},u=r.slice();let c=u[0];const n={};let o=(e._childLevel|0)+1;if(o<1&&(o=1),s&&(n.time=s),f){const l=f(t,e.levels.values[t]);Object.assign(n,l)}else n.level=e.levels.values[t];if(i.asObjectBindingsOnly){if(c!==null&&typeof c==\"object\")for(;o--&&typeof u[0]==\"object\";)Object.assign(n,u.shift());return[h(n),...u]}else{if(c!==null&&typeof c==\"object\"){for(;o--&&typeof u[0]==\"object\";)Object.assign(n,u.shift());c=u.length?G(u.shift(),u):void 0}else typeof c==\"string\"&&(c=G(u.shift(),u));return c!==void 0&&(n[i.messageKey]=c),[h(n)]}}function V(e,t,r,s){for(const i in e)if(s&&e[i]instanceof Error)e[i]=v.stdSerializers.err(e[i]);else if(typeof e[i]==\"object\"&&!Array.isArray(e[i])&&t)for(const f in e[i])t.indexOf(f)>-1&&f in r&&(e[i][f]=r[f](e[i][f]))}function me(e,t,r,s=!1){const i=t.send,f=t.ts,h=t.methodLevel,u=t.methodValue,c=t.val,n=e._logEvent.bindings;s||V(r,e._serialize||Object.keys(e.serializers),e.serializers,e._stdErrSerialize===void 0?!0:e._stdErrSerialize),e._logEvent.ts=f,e._logEvent.messages=r.filter(function(o){return n.indexOf(o)===-1}),e._logEvent.level.label=h,e._logEvent.level.value=u,i(h,e._logEvent,c),e._logEvent=N(n)}function N(e){return{ts:0,messages:[],bindings:e||[],level:{label:\"\",value:0}}}function U(e){const t={type:e.constructor.name,msg:e.message,stack:e.stack};for(const r in e)t[r]===void 0&&(t[r]=e[r]);return t}function ye(e){return typeof e.timestamp==\"function\"?e.timestamp:e.timestamp===!1?X:Y}function T(){return{}}function $(e){return e}function z(){}function X(){return!1}function Y(){return Date.now()}function pe(){return Math.round(Date.now()/1e3)}function we(){return new Date(Date.now()).toISOString()}function Le(){function e(t){return typeof t<\"u\"&&t}try{return typeof globalThis<\"u\"||Object.defineProperty(Object.prototype,\"globalThis\",{get:function(){return delete Object.prototype.globalThis,this.globalThis=this},configurable:!0}),globalThis}catch{return e(self)||e(window)||e(this)||{}}}b.exports.default=v;var Oe=b.exports.pino=v;const Z={level:\"info\"},k=\"custom_context\",x=1e3*1024;var ze=Object.defineProperty,_e=(e,t,r)=>t in e?ze(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,y=(e,t,r)=>_e(e,typeof t!=\"symbol\"?t+\"\":t,r);class je{constructor(t){y(this,\"nodeValue\"),y(this,\"sizeInBytes\"),y(this,\"next\"),this.nodeValue=t,this.sizeInBytes=new TextEncoder().encode(this.nodeValue).length,this.next=null}get value(){return this.nodeValue}get size(){return this.sizeInBytes}}class q{constructor(t){y(this,\"lengthInNodes\"),y(this,\"sizeInBytes\"),y(this,\"head\"),y(this,\"tail\"),y(this,\"maxSizeInBytes\"),this.head=null,this.tail=null,this.lengthInNodes=0,this.maxSizeInBytes=t,this.sizeInBytes=0}append(t){const r=new je(t);if(r.size>this.maxSizeInBytes)throw new Error(`[LinkedList] Value too big to insert into list: ${t} with size ${r.size}`);for(;this.size+r.size>this.maxSizeInBytes;)this.shift();this.head?(this.tail&&(this.tail.next=r),this.tail=r):(this.head=r,this.tail=r),this.lengthInNodes++,this.sizeInBytes+=r.size}shift(){if(!this.head)return;const t=this.head;this.head=this.head.next,this.head||(this.tail=null),this.lengthInNodes--,this.sizeInBytes-=t.size}toArray(){const t=[];let r=this.head;for(;r!==null;)t.push(r.value),r=r.next;return t}get length(){return this.lengthInNodes}get size(){return this.sizeInBytes}toOrderedArray(){return Array.from(this)}[Symbol.iterator](){let t=this.head;return{next:()=>{if(!t)return{done:!0,value:null};const r=t.value;return t=t.next,{done:!1,value:r}}}}}const Se=e=>JSON.stringify(e,(t,r)=>typeof r==\"bigint\"?r.toString()+\"n\":r);function K(e){return typeof e==\"string\"?e:Se(e)||\"\"}var Ee=Object.defineProperty,ke=(e,t,r)=>t in e?Ee(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,B=(e,t,r)=>ke(e,typeof t!=\"symbol\"?t+\"\":t,r);class J{constructor(t,r=x){B(this,\"logs\"),B(this,\"level\"),B(this,\"levelValue\"),B(this,\"MAX_LOG_SIZE_IN_BYTES\"),this.level=t??\"error\",this.levelValue=b.exports.levels.values[this.level],this.MAX_LOG_SIZE_IN_BYTES=r,this.logs=new q(this.MAX_LOG_SIZE_IN_BYTES)}forwardToConsole(t,r){r===b.exports.levels.values.error?console.error(t):r===b.exports.levels.values.warn?console.warn(t):r===b.exports.levels.values.debug?console.debug(t):r===b.exports.levels.values.trace?console.trace(t):console.log(t)}appendToLogs(t){this.logs.append(K({timestamp:new Date().toISOString(),log:t}));const r=typeof t==\"string\"?JSON.parse(t).level:t.level;r>=this.levelValue&&this.forwardToConsole(t,r)}getLogs(){return this.logs}clearLogs(){this.logs=new q(this.MAX_LOG_SIZE_IN_BYTES)}getLogArray(){return Array.from(this.logs)}logsToBlob(t){const r=this.getLogArray();return r.push(K({extraMetadata:t})),new Blob(r,{type:\"application/json\"})}}var Ce=Object.defineProperty,Ie=(e,t,r)=>t in e?Ce(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Te=(e,t,r)=>Ie(e,typeof t!=\"symbol\"?t+\"\":t,r);class xe{constructor(t,r=x){Te(this,\"baseChunkLogger\"),this.baseChunkLogger=new J(t,r)}write(t){this.baseChunkLogger.appendToLogs(t)}getLogs(){return this.baseChunkLogger.getLogs()}clearLogs(){this.baseChunkLogger.clearLogs()}getLogArray(){return this.baseChunkLogger.getLogArray()}logsToBlob(t){return this.baseChunkLogger.logsToBlob(t)}downloadLogsBlobInBrowser(t){const r=URL.createObjectURL(this.logsToBlob(t)),s=document.createElement(\"a\");s.href=r,s.download=`walletconnect-logs-${new Date().toISOString()}.txt`,document.body.appendChild(s),s.click(),document.body.removeChild(s),URL.revokeObjectURL(r)}}var Be=Object.defineProperty,Ae=(e,t,r)=>t in e?Be(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Pe=(e,t,r)=>Ae(e,typeof t!=\"symbol\"?t+\"\":t,r);class Ve{constructor(t,r=x){Pe(this,\"baseChunkLogger\"),this.baseChunkLogger=new J(t,r)}write(t){this.baseChunkLogger.appendToLogs(t)}getLogs(){return this.baseChunkLogger.getLogs()}clearLogs(){this.baseChunkLogger.clearLogs()}getLogArray(){return this.baseChunkLogger.getLogArray()}logsToBlob(t){return this.baseChunkLogger.logsToBlob(t)}}var Ne=Object.defineProperty,$e=Object.defineProperties,Fe=Object.getOwnPropertyDescriptors,H=Object.getOwnPropertySymbols,Me=Object.prototype.hasOwnProperty,De=Object.prototype.propertyIsEnumerable,W=(e,t,r)=>t in e?Ne(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,p=(e,t)=>{for(var r in t||(t={}))Me.call(t,r)&&W(e,r,t[r]);if(H)for(var r of H(t))De.call(t,r)&&W(e,r,t[r]);return e},w=(e,t)=>$e(e,Fe(t));function Ge(e){return w(p({},e),{level:e?.level||Z.level})}function Q(e,t,r=k){return e[r]=t,e}function ee(e,t=k){return e[t]||\"\"}function te(e,t,r=k){const s=ee(e,r);return s.trim()?`${s}/${t}`:t}function Re(e,t,r=k){const s=te(e,t,r),i=e.child({context:s});return Q(i,s,r)}function re(e){var t,r;const s=new xe((t=e.opts)==null?void 0:t.level,e.maxSizeInBytes);return{logger:b.exports(w(p({},e.opts),{level:\"trace\",browser:w(p({},(r=e.opts)==null?void 0:r.browser),{write:i=>s.write(i)})})),chunkLoggerController:s}}function ne(e){var t,r;const s=new Ve((t=e.opts)==null?void 0:t.level,e.maxSizeInBytes);return{logger:b.exports(w(p({},e.opts),{level:\"trace\",browser:w(p({},(r=e.opts)==null?void 0:r.browser),{write:i=>s.write(i)})}),s),chunkLoggerController:s}}function Ue(e){var t;if(typeof e.loggerOverride<\"u\"&&typeof e.loggerOverride!=\"string\")return{logger:e.loggerOverride,chunkLoggerController:null};const r=w(p({},e.opts),{level:typeof e.loggerOverride==\"string\"?e.loggerOverride:(t=e.opts)==null?void 0:t.level});return typeof window<\"u\"?re(w(p({},e),{opts:r})):ne(w(p({},e),{opts:r}))}export{x as MAX_LOG_SIZE_IN_BYTES_DEFAULT,k as PINO_CUSTOM_CONTEXT_KEY,Z as PINO_LOGGER_DEFAULTS,te as formatChildLoggerContext,Re as generateChildLogger,re as generateClientLogger,Ue as generatePlatformLogger,ne as generateServerLogger,Ge as getDefaultLoggerOptions,ee as getLoggerContext,Oe as pino,Q as setLoggerContext};\n//# sourceMappingURL=index.es.js.map\n","import{detect as No}from\"detect-browser\";import{FIVE_MINUTES as Jn,fromMiliseconds as Oo,toMiliseconds as We}from\"@walletconnect/time\";import{getLocation as Qn,getDocument as ae,getNavigator as tr}from\"@walletconnect/window-getters\";import{getWindowMetadata as Uo}from\"@walletconnect/window-metadata\";import{Signature as _o,Secp256k1 as Ro}from\"ox\";import{decode as To,encode as $o}from\"@msgpack/msgpack\";import{base58 as ue,base32 as Co}from\"@scure/base\";import{decodeJWT as Lo}from\"@walletconnect/relay-auth\";import{toString as it,fromString as at,concat as le}from\"uint8arrays\";import{RELAY_JSONRPC as jo}from\"@walletconnect/relay-api\";import{blake2b as ko}from\"blakejs\";import{generatePlatformLogger as Ho}from\"@walletconnect/logger\";const Se=\":\";function Je(t){const[e,n]=t.split(Se);return{namespace:e,reference:n}}function er(t){const{namespace:e,reference:n}=t;return[e,n].join(Se)}function Qe(t){const[e,n,r]=t.split(Se);return{namespace:e,reference:n,address:r}}function nr(t){const{namespace:e,reference:n,address:r}=t;return[e,n,r].join(Se)}function tn(t,e){const n=[];return t.forEach(r=>{const s=e(r);n.includes(s)||n.push(s)}),n}function rr(t){const{address:e}=Qe(t);return e}function sr(t){const{namespace:e,reference:n}=Qe(t);return er({namespace:e,reference:n})}function Do(t,e){const{namespace:n,reference:r}=Je(e);return nr({namespace:n,reference:r,address:t})}function Po(t){return tn(t,rr)}function or(t){return tn(t,sr)}function Vo(t,e=[]){const n=[];return Object.keys(t).forEach(r=>{if(e.length&&!e.includes(r))return;const s=t[r];n.push(...s.accounts)}),n}function Mo(t,e=[]){const n=[];return Object.keys(t).forEach(r=>{if(e.length&&!e.includes(r))return;const s=t[r];n.push(...or(s.accounts))}),n}function Ko(t,e=[]){const n=[];return Object.keys(t).forEach(r=>{if(e.length&&!e.includes(r))return;const s=t[r];n.push(...Ie(r,s))}),n}function Ie(t,e){return t.includes(\":\")?[t]:e.chains||[]}const ir={INVALID_METHOD:{message:\"Invalid method.\",code:1001},INVALID_EVENT:{message:\"Invalid event.\",code:1002},INVALID_UPDATE_REQUEST:{message:\"Invalid update request.\",code:1003},INVALID_EXTEND_REQUEST:{message:\"Invalid extend request.\",code:1004},INVALID_SESSION_SETTLE_REQUEST:{message:\"Invalid session settle request.\",code:1005},UNAUTHORIZED_METHOD:{message:\"Unauthorized method.\",code:3001},UNAUTHORIZED_EVENT:{message:\"Unauthorized event.\",code:3002},UNAUTHORIZED_UPDATE_REQUEST:{message:\"Unauthorized update request.\",code:3003},UNAUTHORIZED_EXTEND_REQUEST:{message:\"Unauthorized extend request.\",code:3004},USER_REJECTED:{message:\"User rejected.\",code:5e3},USER_REJECTED_CHAINS:{message:\"User rejected chains.\",code:5001},USER_REJECTED_METHODS:{message:\"User rejected methods.\",code:5002},USER_REJECTED_EVENTS:{message:\"User rejected events.\",code:5003},UNSUPPORTED_CHAINS:{message:\"Unsupported chains.\",code:5100},UNSUPPORTED_METHODS:{message:\"Unsupported methods.\",code:5101},UNSUPPORTED_EVENTS:{message:\"Unsupported events.\",code:5102},UNSUPPORTED_ACCOUNTS:{message:\"Unsupported accounts.\",code:5103},UNSUPPORTED_NAMESPACE_KEY:{message:\"Unsupported namespace key.\",code:5104},USER_DISCONNECTED:{message:\"User disconnected.\",code:6e3},SESSION_SETTLEMENT_FAILED:{message:\"Session settlement failed.\",code:7e3},WC_METHOD_UNSUPPORTED:{message:\"Unsupported wc_ method.\",code:10001}},fr={NOT_INITIALIZED:{message:\"Not initialized.\",code:1},NO_MATCHING_KEY:{message:\"No matching key.\",code:2},RESTORE_WILL_OVERRIDE:{message:\"Restore will override.\",code:3},RESUBSCRIBED:{message:\"Resubscribed.\",code:4},MISSING_OR_INVALID:{message:\"Missing or invalid.\",code:5},EXPIRED:{message:\"Expired.\",code:6},UNKNOWN_TYPE:{message:\"Unknown type.\",code:7},MISMATCHED_TOPIC:{message:\"Mismatched topic.\",code:8},NON_CONFORMING_NAMESPACES:{message:\"Non conforming namespaces.\",code:9}};function bt(t,e){const{message:n,code:r}=fr[t];return{message:e?`${n} ${e}`:n,code:r}}function Vt(t,e){const{message:n,code:r}=ir[t];return{message:e?`${n} ${e}`:n,code:r}}const cr=\"ReactNative\",et={reactNative:\"react-native\",node:\"node\",browser:\"browser\",unknown:\"unknown\"},Ne=\" \",qo=\":\",ar=\"/\",en=2,Fo=1e3,ur=\"js\";function nn(){return typeof process<\"u\"&&typeof process.versions<\"u\"&&typeof process.versions.node<\"u\"}function At(){return!ae()&&!!tr()&&navigator.product===cr}function Zo(){return At()&&typeof global<\"u\"&&typeof global?.Platform<\"u\"&&global?.Platform.OS===\"android\"}function Go(){return At()&&typeof global<\"u\"&&typeof global?.Platform<\"u\"&&global?.Platform.OS===\"ios\"}function Xt(){return!nn()&&!!tr()&&!!ae()}function Mt(){return At()?et.reactNative:nn()?et.node:Xt()?et.browser:et.unknown}function zo(){try{return At()&&typeof global<\"u\"&&typeof global?.Application<\"u\"?global.Application?.applicationId:void 0}catch{return}}function lr(t,e){const n=new URLSearchParams(t);return Object.entries(e).sort(([r],[s])=>r.localeCompare(s)).forEach(([r,s])=>{s!=null&&n.set(r,String(s))}),n.toString()}function Yo(t){const e=dr();try{return t?.url&&e.url&&new URL(t.url).host!==new URL(e.url).host&&(console.warn(`The configured WalletConnect 'metadata.url':${t.url} differs from the actual page url:${e.url}. This is probably unintended and can lead to issues.`),t.url=e.url),t?.icons?.length&&t.icons.length>0&&(t.icons=t.icons.filter(n=>n!==\"\")),{...e,...t,url:t?.url||e.url,name:t?.name||e.name,description:t?.description||e.description,icons:t?.icons?.length&&t.icons.length>0?t.icons:e.icons}}catch(n){return console.warn(\"Error populating app metadata\",n),t||e}}function dr(){return Uo()||{name:\"\",description:\"\",url:\"\",icons:[\"\"]}}function Xo(t,e){const n=Mt(),r={protocol:t,version:e,env:n};return n===\"browser\"&&(r.host=Qn()?.host||\"unknown\"),r}function hr(){if(Mt()===et.reactNative&&typeof global<\"u\"&&typeof global?.Platform<\"u\"){const{OS:n,Version:r}=global.Platform;return[n,r].join(\"-\")}const t=No();if(t===null)return\"unknown\";const e=t.os?t.os.replace(\" \",\"\").toLowerCase():\"unknown\";return t.type===\"browser\"?[e,t.name,t.version].join(\"-\"):[e,t.version].join(\"-\")}function pr(){const t=Mt();return t===et.browser?[t,Qn()?.host||\"unknown\"].join(\":\"):t}function gr(t,e,n){const r=hr(),s=pr();return[[t,e].join(\"-\"),[ur,n].join(\"-\"),r,s].join(\"/\")}function Wo({protocol:t,version:e,relayUrl:n,sdkVersion:r,auth:s,projectId:o,useOnCloseEvent:i,bundleId:f,packageName:c}){const a=n.split(\"?\"),u=gr(t,e,r),l={auth:s,ua:u,projectId:o,useOnCloseEvent:i||void 0,packageName:c||void 0,bundleId:f||void 0},d=lr(a[1]||\"\",l);return a[0]+\"?\"+d}function Jo(t){let e=(t.match(/^[^:]+(?=:\\/\\/)/gi)||[])[0];const n=typeof e<\"u\"?t.split(\"://\")[1]:t;return e=e===\"wss\"?\"https\":\"http\",[e,n].join(\"://\")}function Qo(t,e,n){if(!t[e]||typeof t[e]!==n)throw new Error(`Missing or invalid \"${e}\" param`)}function br(t,e=en){return yr(t.split(ar),e)}function ti(t){return br(t).join(Ne)}function St(t,e){return t.filter(n=>e.includes(n)).length===t.length}function yr(t,e=en){return t.slice(Math.max(t.length-e,0))}function ei(t){return Object.fromEntries(t.entries())}function ni(t){return new Map(Object.entries(t))}function ri(t,e){const n={};return Object.keys(t).forEach(r=>{n[r]=e(t[r])}),n}const si=t=>t;function mr(t){return t.trim().replace(/^\\w/,e=>e.toUpperCase())}function oi(t){return t.split(Ne).map(e=>mr(e)).join(Ne)}function ii(t=Jn,e){const n=We(t||Jn);let r,s,o,i;return{resolve:f=>{o&&r&&(clearTimeout(o),r(f),i=Promise.resolve(f))},reject:f=>{o&&s&&(clearTimeout(o),s(f))},done:()=>new Promise((f,c)=>{if(i)return f(i);o=setTimeout(()=>{const a=bt(\"EXPIRED\"),u=new Error(e||a.message);u.code=a.code,c(u)},n),r=f,s=c})}}function fi(t,e,n){return new Promise(async(r,s)=>{const o=setTimeout(()=>s(new Error(n)),e);try{const i=await t;r(i)}catch(i){s(i)}clearTimeout(o)})}function rn(t,e){if(typeof e==\"string\"&&e.startsWith(`${t}:`))return e;if(t.toLowerCase()===\"topic\"){if(typeof e!=\"string\")throw new Error('Value must be \"string\" for expirer target type: topic');return`topic:${e}`}else if(t.toLowerCase()===\"id\"){if(typeof e!=\"number\")throw new Error('Value must be \"number\" for expirer target type: id');return`id:${e}`}throw new Error(`Unknown expirer target type: ${t}`)}function ci(t){return rn(\"topic\",t)}function ai(t){return rn(\"id\",t)}function ui(t){const[e,n]=t.split(\":\"),r={id:void 0,topic:void 0};if(e===\"topic\"&&typeof n==\"string\")r.topic=n;else if(e===\"id\"&&Number.isInteger(Number(n)))r.id=Number(n);else throw new Error(`Invalid target, expected id:number or topic:string, got ${e}:${n}`);return r}function li(t,e){return Oo((e||Date.now())+We(t))}function di(t){return Date.now()>=We(t)}function hi(t,e){return`${t}${e?`:${e}`:\"\"}`}function ut(t=[],e=[]){return[...new Set([...t,...e])]}async function pi({id:t,topic:e,wcDeepLink:n}){try{if(!n)return;const r=(typeof n==\"string\"?JSON.parse(n):n)?.href;if(typeof r!=\"string\")return;const s=wr(r,t,e),o=Mt();if(o===et.browser){if(!ae()?.hasFocus()){console.warn(\"Document does not have focus, skipping deeplink.\");return}xr(s)}else o===et.reactNative&&typeof global?.Linking<\"u\"&&await global.Linking.openURL(s)}catch(r){console.error(r)}}function wr(t,e,n){const r=`requestId=${e}&sessionTopic=${n}`;t.endsWith(\"/\")&&(t=t.slice(0,-1));let s=`${t}`;if(t.startsWith(\"https://t.me\")){const o=t.includes(\"?\")?\"&startapp=\":\"?startapp=\";s=`${s}${o}${Br(r,!0)}`}else s=`${s}/wc?${r}`;return s}function xr(t){let e=\"_self\";vr()?e=\"_top\":(Er()||t.startsWith(\"https://\")||t.startsWith(\"http://\"))&&(e=\"_blank\"),window.open(t,e,\"noreferrer noopener\")}async function gi(t,e){let n=\"\";try{if(Xt()&&(n=localStorage.getItem(e),n))return n;n=await t.getItem(e)}catch(r){console.error(r)}return n}function sn(t,e){return t.filter(n=>e.includes(n))}function bi(t,e){if(!t.includes(e))return null;const n=t.split(/([&,?,=])/),r=n.indexOf(e);return n[r+2]}function yi(){return typeof crypto<\"u\"&&crypto?.randomUUID?crypto.randomUUID():\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/gu,t=>{const e=Math.random()*16|0;return(t===\"x\"?e:e&3|8).toString(16)})}function mi(){return typeof process<\"u\"&&process.env.IS_VITEST===\"true\"}function Er(){return typeof window<\"u\"&&(!!window.TelegramWebviewProxy||!!window.Telegram||!!window.TelegramWebviewProxyProto)}function vr(){try{return window.self!==window.top}catch{return!1}}function Br(t,e=!1){const n=Buffer.from(t).toString(\"base64\");return e?n.replace(/[=]/g,\"\"):n}function on(t){return Buffer.from(t,\"base64\").toString(\"utf-8\")}function wi(t){return new Promise(e=>setTimeout(e,t))}class xi{constructor({limit:e}){this.limit=e,this.set=new Set}add(e){if(!this.set.has(e)){if(this.set.size>=this.limit){const n=this.set.values().next().value;n&&this.set.delete(n)}this.set.add(e)}}has(e){return this.set.has(e)}}const Oe=BigInt(2**32-1),Ar=BigInt(32);function Sr(t,e=!1){return e?{h:Number(t&Oe),l:Number(t>>Ar&Oe)}:{h:Number(t>>Ar&Oe)|0,l:Number(t&Oe)|0}}function Ir(t,e=!1){const n=t.length;let r=new Uint32Array(n),s=new Uint32Array(n);for(let o=0;o<n;o++){const{h:i,l:f}=Sr(t[o],e);[r[o],s[o]]=[i,f]}return[r,s]}const Nr=(t,e,n)=>t>>>n,Or=(t,e,n)=>t<<32-n|e>>>n,It=(t,e,n)=>t>>>n|e<<32-n,Nt=(t,e,n)=>t<<32-n|e>>>n,de=(t,e,n)=>t<<64-n|e>>>n-32,he=(t,e,n)=>t>>>n-32|e<<64-n,Ei=(t,e)=>e,vi=(t,e)=>t,Bi=(t,e,n)=>t<<n|e>>>32-n,Ai=(t,e,n)=>e<<n|t>>>32-n,Si=(t,e,n)=>e<<n-32|t>>>64-n,Ii=(t,e,n)=>t<<n-32|e>>>64-n;function dt(t,e,n,r){const s=(e>>>0)+(r>>>0);return{h:t+n+(s/2**32|0)|0,l:s|0}}const fn=(t,e,n)=>(t>>>0)+(e>>>0)+(n>>>0),cn=(t,e,n,r)=>e+n+r+(t/2**32|0)|0,Ni=(t,e,n,r)=>(t>>>0)+(e>>>0)+(n>>>0)+(r>>>0),Oi=(t,e,n,r,s)=>e+n+r+s+(t/2**32|0)|0,Ui=(t,e,n,r,s)=>(t>>>0)+(e>>>0)+(n>>>0)+(r>>>0)+(s>>>0),_i=(t,e,n,r,s,o)=>e+n+r+s+o+(t/2**32|0)|0,Wt=typeof globalThis==\"object\"&&\"crypto\"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function Ue(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name===\"Uint8Array\"}function wt(t){if(!Number.isSafeInteger(t)||t<0)throw new Error(\"positive integer expected, got \"+t)}function ht(t,...e){if(!Ue(t))throw new Error(\"Uint8Array expected\");if(e.length>0&&!e.includes(t.length))throw new Error(\"Uint8Array expected of length \"+e+\", got length=\"+t.length)}function _e(t){if(typeof t!=\"function\"||typeof t.create!=\"function\")throw new Error(\"Hash should be wrapped by utils.createHasher\");wt(t.outputLen),wt(t.blockLen)}function Ot(t,e=!0){if(t.destroyed)throw new Error(\"Hash instance has been destroyed\");if(e&&t.finished)throw new Error(\"Hash#digest() has already been called\")}function an(t,e){ht(t);const n=e.outputLen;if(t.length<n)throw new Error(\"digestInto() expects output buffer of length at least \"+n)}function pe(t){return new Uint32Array(t.buffer,t.byteOffset,Math.floor(t.byteLength/4))}function lt(...t){for(let e=0;e<t.length;e++)t[e].fill(0)}function un(t){return new DataView(t.buffer,t.byteOffset,t.byteLength)}function yt(t,e){return t<<32-e|t>>>e}const Ur=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function _r(t){return t<<24&4278190080|t<<8&16711680|t>>>8&65280|t>>>24&255}const xt=Ur?t=>t:t=>_r(t);function Ri(t){for(let e=0;e<t.length;e++)t[e]=_r(t[e]);return t}const Ut=Ur?t=>t:Ri,Rr=typeof Uint8Array.from([]).toHex==\"function\"&&typeof Uint8Array.fromHex==\"function\",Ti=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,\"0\"));function Jt(t){if(ht(t),Rr)return t.toHex();let e=\"\";for(let n=0;n<t.length;n++)e+=Ti[t[n]];return e}const Et={_0:48,_9:57,A:65,F:70,a:97,f:102};function Tr(t){if(t>=Et._0&&t<=Et._9)return t-Et._0;if(t>=Et.A&&t<=Et.F)return t-(Et.A-10);if(t>=Et.a&&t<=Et.f)return t-(Et.a-10)}function Re(t){if(typeof t!=\"string\")throw new Error(\"hex string expected, got \"+typeof t);if(Rr)return Uint8Array.fromHex(t);const e=t.length,n=e/2;if(e%2)throw new Error(\"hex string expected, got unpadded hex of length \"+e);const r=new Uint8Array(n);for(let s=0,o=0;s<n;s++,o+=2){const i=Tr(t.charCodeAt(o)),f=Tr(t.charCodeAt(o+1));if(i===void 0||f===void 0){const c=t[o]+t[o+1];throw new Error('hex string expected, got non-hex character \"'+c+'\" at index '+o)}r[s]=i*16+f}return r}function $r(t){if(typeof t!=\"string\")throw new Error(\"string expected\");return new Uint8Array(new TextEncoder().encode(t))}function pt(t){return typeof t==\"string\"&&(t=$r(t)),ht(t),t}function _t(...t){let e=0;for(let r=0;r<t.length;r++){const s=t[r];ht(s),e+=s.length}const n=new Uint8Array(e);for(let r=0,s=0;r<t.length;r++){const o=t[r];n.set(o,s),s+=o.length}return n}class Te{}function ge(t){const e=r=>t().update(pt(r)).digest(),n=t();return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=()=>t(),e}function $i(t){const e=(r,s)=>t(s).update(pt(r)).digest(),n=t({});return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=r=>t(r),e}function Kt(t=32){if(Wt&&typeof Wt.getRandomValues==\"function\")return Wt.getRandomValues(new Uint8Array(t));if(Wt&&typeof Wt.randomBytes==\"function\")return Uint8Array.from(Wt.randomBytes(t));throw new Error(\"crypto.getRandomValues must be defined\")}const Ci=BigInt(0),be=BigInt(1),Li=BigInt(2),ji=BigInt(7),ki=BigInt(256),Hi=BigInt(113),Cr=[],Lr=[],jr=[];for(let t=0,e=be,n=1,r=0;t<24;t++){[n,r]=[r,(2*n+3*r)%5],Cr.push(2*(5*r+n)),Lr.push((t+1)*(t+2)/2%64);let s=Ci;for(let o=0;o<7;o++)e=(e<<be^(e>>ji)*Hi)%ki,e&Li&&(s^=be<<(be<<BigInt(o))-be);jr.push(s)}const kr=Ir(jr,!0),Di=kr[0],Pi=kr[1],Hr=(t,e,n)=>n>32?Si(t,e,n):Bi(t,e,n),Dr=(t,e,n)=>n>32?Ii(t,e,n):Ai(t,e,n);function Vi(t,e=24){const n=new Uint32Array(10);for(let r=24-e;r<24;r++){for(let i=0;i<10;i++)n[i]=t[i]^t[i+10]^t[i+20]^t[i+30]^t[i+40];for(let i=0;i<10;i+=2){const f=(i+8)%10,c=(i+2)%10,a=n[c],u=n[c+1],l=Hr(a,u,1)^n[f],d=Dr(a,u,1)^n[f+1];for(let h=0;h<50;h+=10)t[i+h]^=l,t[i+h+1]^=d}let s=t[2],o=t[3];for(let i=0;i<24;i++){const f=Lr[i],c=Hr(s,o,f),a=Dr(s,o,f),u=Cr[i];s=t[u],o=t[u+1],t[u]=c,t[u+1]=a}for(let i=0;i<50;i+=10){for(let f=0;f<10;f++)n[f]=t[i+f];for(let f=0;f<10;f++)t[i+f]^=~n[(f+2)%10]&n[(f+4)%10]}t[0]^=Di[r],t[1]^=Pi[r]}lt(n)}class Yn extends Te{constructor(e,n,r,s=!1,o=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=e,this.suffix=n,this.outputLen=r,this.enableXOF=s,this.rounds=o,wt(r),!(0<e&&e<200))throw new Error(\"only keccak-f1600 function is supported\");this.state=new Uint8Array(200),this.state32=pe(this.state)}clone(){return this._cloneInto()}keccak(){Ut(this.state32),Vi(this.state32,this.rounds),Ut(this.state32),this.posOut=0,this.pos=0}update(e){Ot(this),e=pt(e),ht(e);const{blockLen:n,state:r}=this,s=e.length;for(let o=0;o<s;){const i=Math.min(n-this.pos,s-o);for(let f=0;f<i;f++)r[this.pos++]^=e[o++];this.pos===n&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:e,suffix:n,pos:r,blockLen:s}=this;e[r]^=n,(n&128)!==0&&r===s-1&&this.keccak(),e[s-1]^=128,this.keccak()}writeInto(e){Ot(this,!1),ht(e),this.finish();const n=this.state,{blockLen:r}=this;for(let s=0,o=e.length;s<o;){this.posOut>=r&&this.keccak();const i=Math.min(r-this.posOut,o-s);e.set(n.subarray(this.posOut,this.posOut+i),s),this.posOut+=i,s+=i}return e}xofInto(e){if(!this.enableXOF)throw new Error(\"XOF is not possible for this instance\");return this.writeInto(e)}xof(e){return wt(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(an(e,this),this.finished)throw new Error(\"digest() was already called\");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,lt(this.state)}_cloneInto(e){const{blockLen:n,suffix:r,outputLen:s,rounds:o,enableXOF:i}=this;return e||(e=new Yn(n,r,s,i,o)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=o,e.suffix=r,e.outputLen=s,e.enableXOF=i,e.destroyed=this.destroyed,e}}const Mi=(t,e,n)=>ge(()=>new Yn(e,t,n)),Ki=Mi(1,136,256/8);function qi(t,e,n,r){if(typeof t.setBigUint64==\"function\")return t.setBigUint64(e,n,r);const s=BigInt(32),o=BigInt(4294967295),i=Number(n>>s&o),f=Number(n&o),c=r?4:0,a=r?0:4;t.setUint32(e+c,i,r),t.setUint32(e+a,f,r)}function Fi(t,e,n){return t&e^~t&n}function Zi(t,e,n){return t&e^t&n^e&n}class Pr extends Te{constructor(e,n,r,s){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=e,this.outputLen=n,this.padOffset=r,this.isLE=s,this.buffer=new Uint8Array(e),this.view=un(this.buffer)}update(e){Ot(this),e=pt(e),ht(e);const{view:n,buffer:r,blockLen:s}=this,o=e.length;for(let i=0;i<o;){const f=Math.min(s-this.pos,o-i);if(f===s){const c=un(e);for(;s<=o-i;i+=s)this.process(c,i);continue}r.set(e.subarray(i,i+f),this.pos),this.pos+=f,i+=f,this.pos===s&&(this.process(n,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){Ot(this),an(e,this),this.finished=!0;const{buffer:n,view:r,blockLen:s,isLE:o}=this;let{pos:i}=this;n[i++]=128,lt(this.buffer.subarray(i)),this.padOffset>s-i&&(this.process(r,0),i=0);for(let l=i;l<s;l++)n[l]=0;qi(r,s-8,BigInt(this.length*8),o),this.process(r,0);const f=un(e),c=this.outputLen;if(c%4)throw new Error(\"_sha2: outputLen should be aligned to 32bit\");const a=c/4,u=this.get();if(a>u.length)throw new Error(\"_sha2: outputLen bigger than state\");for(let l=0;l<a;l++)f.setUint32(4*l,u[l],o)}digest(){const{buffer:e,outputLen:n}=this;this.digestInto(e);const r=e.slice(0,n);return this.destroy(),r}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());const{blockLen:n,buffer:r,length:s,finished:o,destroyed:i,pos:f}=this;return e.destroyed=i,e.finished=o,e.length=s,e.pos=f,s%n&&e.buffer.set(r),e}clone(){return this._cloneInto()}}const Rt=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),W=Uint32Array.from([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]),J=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]),Gi=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),Tt=new Uint32Array(64);class zi extends Pr{constructor(e=32){super(64,e,8,!1),this.A=Rt[0]|0,this.B=Rt[1]|0,this.C=Rt[2]|0,this.D=Rt[3]|0,this.E=Rt[4]|0,this.F=Rt[5]|0,this.G=Rt[6]|0,this.H=Rt[7]|0}get(){const{A:e,B:n,C:r,D:s,E:o,F:i,G:f,H:c}=this;return[e,n,r,s,o,i,f,c]}set(e,n,r,s,o,i,f,c){this.A=e|0,this.B=n|0,this.C=r|0,this.D=s|0,this.E=o|0,this.F=i|0,this.G=f|0,this.H=c|0}process(e,n){for(let l=0;l<16;l++,n+=4)Tt[l]=e.getUint32(n,!1);for(let l=16;l<64;l++){const d=Tt[l-15],h=Tt[l-2],y=yt(d,7)^yt(d,18)^d>>>3,m=yt(h,17)^yt(h,19)^h>>>10;Tt[l]=m+Tt[l-7]+y+Tt[l-16]|0}let{A:r,B:s,C:o,D:i,E:f,F:c,G:a,H:u}=this;for(let l=0;l<64;l++){const d=yt(f,6)^yt(f,11)^yt(f,25),h=u+d+Fi(f,c,a)+Gi[l]+Tt[l]|0,m=(yt(r,2)^yt(r,13)^yt(r,22))+Zi(r,s,o)|0;u=a,a=c,c=f,f=i+h|0,i=o,o=s,s=r,r=h+m|0}r=r+this.A|0,s=s+this.B|0,o=o+this.C|0,i=i+this.D|0,f=f+this.E|0,c=c+this.F|0,a=a+this.G|0,u=u+this.H|0,this.set(r,s,o,i,f,c,a,u)}roundClean(){lt(Tt)}destroy(){this.set(0,0,0,0,0,0,0,0),lt(this.buffer)}}const Vr=Ir([\"0x428a2f98d728ae22\",\"0x7137449123ef65cd\",\"0xb5c0fbcfec4d3b2f\",\"0xe9b5dba58189dbbc\",\"0x3956c25bf348b538\",\"0x59f111f1b605d019\",\"0x923f82a4af194f9b\",\"0xab1c5ed5da6d8118\",\"0xd807aa98a3030242\",\"0x12835b0145706fbe\",\"0x243185be4ee4b28c\",\"0x550c7dc3d5ffb4e2\",\"0x72be5d74f27b896f\",\"0x80deb1fe3b1696b1\",\"0x9bdc06a725c71235\",\"0xc19bf174cf692694\",\"0xe49b69c19ef14ad2\",\"0xefbe4786384f25e3\",\"0x0fc19dc68b8cd5b5\",\"0x240ca1cc77ac9c65\",\"0x2de92c6f592b0275\",\"0x4a7484aa6ea6e483\",\"0x5cb0a9dcbd41fbd4\",\"0x76f988da831153b5\",\"0x983e5152ee66dfab\",\"0xa831c66d2db43210\",\"0xb00327c898fb213f\",\"0xbf597fc7beef0ee4\",\"0xc6e00bf33da88fc2\",\"0xd5a79147930aa725\",\"0x06ca6351e003826f\",\"0x142929670a0e6e70\",\"0x27b70a8546d22ffc\",\"0x2e1b21385c26c926\",\"0x4d2c6dfc5ac42aed\",\"0x53380d139d95b3df\",\"0x650a73548baf63de\",\"0x766a0abb3c77b2a8\",\"0x81c2c92e47edaee6\",\"0x92722c851482353b\",\"0xa2bfe8a14cf10364\",\"0xa81a664bbc423001\",\"0xc24b8b70d0f89791\",\"0xc76c51a30654be30\",\"0xd192e819d6ef5218\",\"0xd69906245565a910\",\"0xf40e35855771202a\",\"0x106aa07032bbd1b8\",\"0x19a4c116b8d2d0c8\",\"0x1e376c085141ab53\",\"0x2748774cdf8eeb99\",\"0x34b0bcb5e19b48a8\",\"0x391c0cb3c5c95a63\",\"0x4ed8aa4ae3418acb\",\"0x5b9cca4f7763e373\",\"0x682e6ff3d6b2b8a3\",\"0x748f82ee5defb2fc\",\"0x78a5636f43172f60\",\"0x84c87814a1f0ab72\",\"0x8cc702081a6439ec\",\"0x90befffa23631e28\",\"0xa4506cebde82bde9\",\"0xbef9a3f7b2c67915\",\"0xc67178f2e372532b\",\"0xca273eceea26619c\",\"0xd186b8c721c0c207\",\"0xeada7dd6cde0eb1e\",\"0xf57d4f7fee6ed178\",\"0x06f067aa72176fba\",\"0x0a637dc5a2c898a6\",\"0x113f9804bef90dae\",\"0x1b710b35131c471b\",\"0x28db77f523047d84\",\"0x32caab7b40c72493\",\"0x3c9ebe0a15c9bebc\",\"0x431d67c49c100d4c\",\"0x4cc5d4becb3e42b6\",\"0x597f299cfc657e2a\",\"0x5fcb6fab3ad6faec\",\"0x6c44198c4a475817\"].map(t=>BigInt(t))),Yi=Vr[0],Xi=Vr[1],$t=new Uint32Array(80),Ct=new Uint32Array(80);class ln extends Pr{constructor(e=64){super(128,e,16,!1),this.Ah=J[0]|0,this.Al=J[1]|0,this.Bh=J[2]|0,this.Bl=J[3]|0,this.Ch=J[4]|0,this.Cl=J[5]|0,this.Dh=J[6]|0,this.Dl=J[7]|0,this.Eh=J[8]|0,this.El=J[9]|0,this.Fh=J[10]|0,this.Fl=J[11]|0,this.Gh=J[12]|0,this.Gl=J[13]|0,this.Hh=J[14]|0,this.Hl=J[15]|0}get(){const{Ah:e,Al:n,Bh:r,Bl:s,Ch:o,Cl:i,Dh:f,Dl:c,Eh:a,El:u,Fh:l,Fl:d,Gh:h,Gl:y,Hh:m,Hl:E}=this;return[e,n,r,s,o,i,f,c,a,u,l,d,h,y,m,E]}set(e,n,r,s,o,i,f,c,a,u,l,d,h,y,m,E){this.Ah=e|0,this.Al=n|0,this.Bh=r|0,this.Bl=s|0,this.Ch=o|0,this.Cl=i|0,this.Dh=f|0,this.Dl=c|0,this.Eh=a|0,this.El=u|0,this.Fh=l|0,this.Fl=d|0,this.Gh=h|0,this.Gl=y|0,this.Hh=m|0,this.Hl=E|0}process(e,n){for(let _=0;_<16;_++,n+=4)$t[_]=e.getUint32(n),Ct[_]=e.getUint32(n+=4);for(let _=16;_<80;_++){const Z=$t[_-15]|0,F=Ct[_-15]|0,K=It(Z,F,1)^It(Z,F,8)^Nr(Z,F,7),V=Nt(Z,F,1)^Nt(Z,F,8)^Or(Z,F,7),L=$t[_-2]|0,N=Ct[_-2]|0,$=It(L,N,19)^de(L,N,61)^Nr(L,N,6),C=Nt(L,N,19)^he(L,N,61)^Or(L,N,6),U=Ni(V,C,Ct[_-7],Ct[_-16]),p=Oi(U,K,$,$t[_-7],$t[_-16]);$t[_]=p|0,Ct[_]=U|0}let{Ah:r,Al:s,Bh:o,Bl:i,Ch:f,Cl:c,Dh:a,Dl:u,Eh:l,El:d,Fh:h,Fl:y,Gh:m,Gl:E,Hh:R,Hl:q}=this;for(let _=0;_<80;_++){const Z=It(l,d,14)^It(l,d,18)^de(l,d,41),F=Nt(l,d,14)^Nt(l,d,18)^he(l,d,41),K=l&h^~l&m,V=d&y^~d&E,L=Ui(q,F,V,Xi[_],Ct[_]),N=_i(L,R,Z,K,Yi[_],$t[_]),$=L|0,C=It(r,s,28)^de(r,s,34)^de(r,s,39),U=Nt(r,s,28)^he(r,s,34)^he(r,s,39),p=r&o^r&f^o&f,b=s&i^s&c^i&c;R=m|0,q=E|0,m=h|0,E=y|0,h=l|0,y=d|0,{h:l,l:d}=dt(a|0,u|0,N|0,$|0),a=f|0,u=c|0,f=o|0,c=i|0,o=r|0,i=s|0;const g=fn($,U,b);r=cn(g,N,C,p),s=g|0}({h:r,l:s}=dt(this.Ah|0,this.Al|0,r|0,s|0)),{h:o,l:i}=dt(this.Bh|0,this.Bl|0,o|0,i|0),{h:f,l:c}=dt(this.Ch|0,this.Cl|0,f|0,c|0),{h:a,l:u}=dt(this.Dh|0,this.Dl|0,a|0,u|0),{h:l,l:d}=dt(this.Eh|0,this.El|0,l|0,d|0),{h,l:y}=dt(this.Fh|0,this.Fl|0,h|0,y|0),{h:m,l:E}=dt(this.Gh|0,this.Gl|0,m|0,E|0),{h:R,l:q}=dt(this.Hh|0,this.Hl|0,R|0,q|0),this.set(r,s,o,i,f,c,a,u,l,d,h,y,m,E,R,q)}roundClean(){lt($t,Ct)}destroy(){lt(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}class Wi extends ln{constructor(){super(48),this.Ah=W[0]|0,this.Al=W[1]|0,this.Bh=W[2]|0,this.Bl=W[3]|0,this.Ch=W[4]|0,this.Cl=W[5]|0,this.Dh=W[6]|0,this.Dl=W[7]|0,this.Eh=W[8]|0,this.El=W[9]|0,this.Fh=W[10]|0,this.Fl=W[11]|0,this.Gh=W[12]|0,this.Gl=W[13]|0,this.Hh=W[14]|0,this.Hl=W[15]|0}}const Q=Uint32Array.from([573645204,4230739756,2673172387,3360449730,596883563,1867755857,2520282905,1497426621,2519219938,2827943907,3193839141,1401305490,721525244,746961066,246885852,2177182882]);class Ji extends ln{constructor(){super(32),this.Ah=Q[0]|0,this.Al=Q[1]|0,this.Bh=Q[2]|0,this.Bl=Q[3]|0,this.Ch=Q[4]|0,this.Cl=Q[5]|0,this.Dh=Q[6]|0,this.Dl=Q[7]|0,this.Eh=Q[8]|0,this.El=Q[9]|0,this.Fh=Q[10]|0,this.Fl=Q[11]|0,this.Gh=Q[12]|0,this.Gl=Q[13]|0,this.Hh=Q[14]|0,this.Hl=Q[15]|0}}const $e=ge(()=>new zi),Qi=ge(()=>new ln),tf=ge(()=>new Wi),ef=ge(()=>new Ji),nf=Uint8Array.from([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9]),z=Uint32Array.from([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),I=new Uint32Array(32);function Lt(t,e,n,r,s,o){const i=s[o],f=s[o+1];let c=I[2*t],a=I[2*t+1],u=I[2*e],l=I[2*e+1],d=I[2*n],h=I[2*n+1],y=I[2*r],m=I[2*r+1],E=fn(c,u,i);a=cn(E,a,l,f),c=E|0,{Dh:m,Dl:y}={Dh:m^a,Dl:y^c},{Dh:m,Dl:y}={Dh:Ei(m,y),Dl:vi(m)},{h,l:d}=dt(h,d,m,y),{Bh:l,Bl:u}={Bh:l^h,Bl:u^d},{Bh:l,Bl:u}={Bh:It(l,u,24),Bl:Nt(l,u,24)},I[2*t]=c,I[2*t+1]=a,I[2*e]=u,I[2*e+1]=l,I[2*n]=d,I[2*n+1]=h,I[2*r]=y,I[2*r+1]=m}function jt(t,e,n,r,s,o){const i=s[o],f=s[o+1];let c=I[2*t],a=I[2*t+1],u=I[2*e],l=I[2*e+1],d=I[2*n],h=I[2*n+1],y=I[2*r],m=I[2*r+1],E=fn(c,u,i);a=cn(E,a,l,f),c=E|0,{Dh:m,Dl:y}={Dh:m^a,Dl:y^c},{Dh:m,Dl:y}={Dh:It(m,y,16),Dl:Nt(m,y,16)},{h,l:d}=dt(h,d,m,y),{Bh:l,Bl:u}={Bh:l^h,Bl:u^d},{Bh:l,Bl:u}={Bh:de(l,u,63),Bl:he(l,u,63)},I[2*t]=c,I[2*t+1]=a,I[2*e]=u,I[2*e+1]=l,I[2*n]=d,I[2*n+1]=h,I[2*r]=y,I[2*r+1]=m}function rf(t,e={},n,r,s){if(wt(n),t<0||t>n)throw new Error(\"outputLen bigger than keyLen\");const{key:o,salt:i,personalization:f}=e;if(o!==void 0&&(o.length<1||o.length>n))throw new Error(\"key length must be undefined or 1..\"+n);if(i!==void 0&&i.length!==r)throw new Error(\"salt must be undefined or \"+r);if(f!==void 0&&f.length!==s)throw new Error(\"personalization must be undefined or \"+s)}class sf extends Te{constructor(e,n){super(),this.finished=!1,this.destroyed=!1,this.length=0,this.pos=0,wt(e),wt(n),this.blockLen=e,this.outputLen=n,this.buffer=new Uint8Array(e),this.buffer32=pe(this.buffer)}update(e){Ot(this),e=pt(e),ht(e);const{blockLen:n,buffer:r,buffer32:s}=this,o=e.length,i=e.byteOffset,f=e.buffer;for(let c=0;c<o;){this.pos===n&&(Ut(s),this.compress(s,0,!1),Ut(s),this.pos=0);const a=Math.min(n-this.pos,o-c),u=i+c;if(a===n&&!(u%4)&&c+a<o){const l=new Uint32Array(f,u,Math.floor((o-c)/4));Ut(l);for(let d=0;c+n<o;d+=s.length,c+=n)this.length+=n,this.compress(l,d,!1);Ut(l);continue}r.set(e.subarray(c,c+a),this.pos),this.pos+=a,this.length+=a,c+=a}return this}digestInto(e){Ot(this),an(e,this);const{pos:n,buffer32:r}=this;this.finished=!0,lt(this.buffer.subarray(n)),Ut(r),this.compress(r,0,!0),Ut(r);const s=pe(e);this.get().forEach((o,i)=>s[i]=xt(o))}digest(){const{buffer:e,outputLen:n}=this;this.digestInto(e);const r=e.slice(0,n);return this.destroy(),r}_cloneInto(e){const{buffer:n,length:r,finished:s,destroyed:o,outputLen:i,pos:f}=this;return e||(e=new this.constructor({dkLen:i})),e.set(...this.get()),e.buffer.set(n),e.destroyed=o,e.finished=s,e.length=r,e.pos=f,e.outputLen=i,e}clone(){return this._cloneInto()}}class of extends sf{constructor(e={}){const n=e.dkLen===void 0?64:e.dkLen;super(128,n),this.v0l=z[0]|0,this.v0h=z[1]|0,this.v1l=z[2]|0,this.v1h=z[3]|0,this.v2l=z[4]|0,this.v2h=z[5]|0,this.v3l=z[6]|0,this.v3h=z[7]|0,this.v4l=z[8]|0,this.v4h=z[9]|0,this.v5l=z[10]|0,this.v5h=z[11]|0,this.v6l=z[12]|0,this.v6h=z[13]|0,this.v7l=z[14]|0,this.v7h=z[15]|0,rf(n,e,64,16,16);let{key:r,personalization:s,salt:o}=e,i=0;if(r!==void 0&&(r=pt(r),i=r.length),this.v0l^=this.outputLen|i<<8|65536|1<<24,o!==void 0){o=pt(o);const f=pe(o);this.v4l^=xt(f[0]),this.v4h^=xt(f[1]),this.v5l^=xt(f[2]),this.v5h^=xt(f[3])}if(s!==void 0){s=pt(s);const f=pe(s);this.v6l^=xt(f[0]),this.v6h^=xt(f[1]),this.v7l^=xt(f[2]),this.v7h^=xt(f[3])}if(r!==void 0){const f=new Uint8Array(this.blockLen);f.set(r),this.update(f)}}get(){let{v0l:e,v0h:n,v1l:r,v1h:s,v2l:o,v2h:i,v3l:f,v3h:c,v4l:a,v4h:u,v5l:l,v5h:d,v6l:h,v6h:y,v7l:m,v7h:E}=this;return[e,n,r,s,o,i,f,c,a,u,l,d,h,y,m,E]}set(e,n,r,s,o,i,f,c,a,u,l,d,h,y,m,E){this.v0l=e|0,this.v0h=n|0,this.v1l=r|0,this.v1h=s|0,this.v2l=o|0,this.v2h=i|0,this.v3l=f|0,this.v3h=c|0,this.v4l=a|0,this.v4h=u|0,this.v5l=l|0,this.v5h=d|0,this.v6l=h|0,this.v6h=y|0,this.v7l=m|0,this.v7h=E|0}compress(e,n,r){this.get().forEach((c,a)=>I[a]=c),I.set(z,16);let{h:s,l:o}=Sr(BigInt(this.length));I[24]=z[8]^o,I[25]=z[9]^s,r&&(I[28]=~I[28],I[29]=~I[29]);let i=0;const f=nf;for(let c=0;c<12;c++)Lt(0,4,8,12,e,n+2*f[i++]),jt(0,4,8,12,e,n+2*f[i++]),Lt(1,5,9,13,e,n+2*f[i++]),jt(1,5,9,13,e,n+2*f[i++]),Lt(2,6,10,14,e,n+2*f[i++]),jt(2,6,10,14,e,n+2*f[i++]),Lt(3,7,11,15,e,n+2*f[i++]),jt(3,7,11,15,e,n+2*f[i++]),Lt(0,5,10,15,e,n+2*f[i++]),jt(0,5,10,15,e,n+2*f[i++]),Lt(1,6,11,12,e,n+2*f[i++]),jt(1,6,11,12,e,n+2*f[i++]),Lt(2,7,8,13,e,n+2*f[i++]),jt(2,7,8,13,e,n+2*f[i++]),Lt(3,4,9,14,e,n+2*f[i++]),jt(3,4,9,14,e,n+2*f[i++]);this.v0l^=I[0]^I[16],this.v0h^=I[1]^I[17],this.v1l^=I[2]^I[18],this.v1h^=I[3]^I[19],this.v2l^=I[4]^I[20],this.v2h^=I[5]^I[21],this.v3l^=I[6]^I[22],this.v3h^=I[7]^I[23],this.v4l^=I[8]^I[24],this.v4h^=I[9]^I[25],this.v5l^=I[10]^I[26],this.v5h^=I[11]^I[27],this.v6l^=I[12]^I[28],this.v6h^=I[13]^I[29],this.v7l^=I[14]^I[30],this.v7h^=I[15]^I[31],lt(I)}destroy(){this.destroyed=!0,lt(this.buffer32),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}const ff=$i(t=>new of(t)),cf=\"https://rpc.walletconnect.org/v1\";function dn(t){const e=`\u0019Ethereum Signed Message:\n${t.length}`,n=new TextEncoder().encode(e+t);return\"0x\"+Buffer.from(Ki(n)).toString(\"hex\")}async function Mr(t,e,n,r,s,o){switch(n.t){case\"eip191\":return await Kr(t,e,n.s);case\"eip1271\":return await qr(t,e,n.s,r,s,o);default:throw new Error(`verifySignature failed: Attempted to verify CacaoSignature with unknown type: ${n.t}`)}}function Kr(t,e,n){const r=_o.fromHex(n);return Ro.recoverAddress({payload:dn(e),signature:r}).toLowerCase()===t.toLowerCase()}async function qr(t,e,n,r,s,o){const i=Je(r);if(!i.namespace||!i.reference)throw new Error(`isValidEip1271Signature failed: chainId must be in CAIP-2 format, received: ${r}`);try{const f=\"0x1626ba7e\",c=\"0000000000000000000000000000000000000000000000000000000000000040\",a=n.substring(2),u=(a.length/2).toString(16).padStart(64,\"0\"),l=(e.startsWith(\"0x\")?e:dn(e)).substring(2),d=f+l+c+u+a,h=await fetch(`${o||cf}/?chainId=${r}&projectId=${s}`,{headers:{\"Content-Type\":\"application/json\"},method:\"POST\",body:JSON.stringify({id:af(),jsonrpc:\"2.0\",method:\"eth_call\",params:[{to:t,data:d},\"latest\"]})}),{result:y}=await h.json();return y?y.slice(0,f.length).toLowerCase()===f.toLowerCase():!1}catch(f){return console.error(\"isValidEip1271Signature: \",f),!1}}function af(){return Date.now()+Math.floor(Math.random()*1e3)}function uf(t){const e=atob(t),n=new Uint8Array(e.length);for(let i=0;i<e.length;i++)n[i]=e.charCodeAt(i);const r=n[0];if(r===0)throw new Error(\"No signatures found\");const s=1+r*64;if(n.length<s)throw new Error(\"Transaction data too short for claimed signature count\");if(n.length<100)throw new Error(\"Transaction too short\");const o=Buffer.from(t,\"base64\").slice(1,65);return ue.encode(o)}function lf(t){const e=new Uint8Array(Buffer.from(t,\"base64\")),n=Array.from(\"TransactionData::\").map(o=>o.charCodeAt(0)),r=new Uint8Array(n.length+e.length);r.set(n),r.set(e,n.length);const s=ff(r,{dkLen:32});return ue.encode(s)}function df(t){const e=new Uint8Array($e(Fr(t)));return ue.encode(e)}function Fr(t){if(t instanceof Uint8Array)return t;if(Array.isArray(t))return new Uint8Array(t);if(typeof t==\"object\"&&t?.data)return new Uint8Array(Object.values(t.data));if(typeof t==\"object\"&&t)return new Uint8Array(Object.values(t));throw new Error(\"getNearUint8ArrayFromBytes: Unexpected result type from bytes array\")}function hf(t){const e=Buffer.from(t,\"base64\"),n=To(e).txn;if(!n)throw new Error(\"Invalid signed transaction: missing 'txn' field\");const r=$o(n),s=Buffer.from(\"TX\"),o=Buffer.concat([s,Buffer.from(r)]),i=ef(o);return Co.encode(i).replace(/=+$/,\"\")}function hn(t){const e=[];let n=BigInt(t);for(;n>=0x80n;)e.push(Number(n&0x7fn|0x80n)),n>>=7n;return e.push(Number(n)),Buffer.from(e)}function pf(t){const e=Buffer.from(t.signed.bodyBytes,\"base64\"),n=Buffer.from(t.signed.authInfoBytes,\"base64\"),r=Buffer.from(t.signature.signature,\"base64\"),s=[];s.push(Buffer.from([10])),s.push(hn(e.length)),s.push(e),s.push(Buffer.from([18])),s.push(hn(n.length)),s.push(n),s.push(Buffer.from([26])),s.push(hn(r.length)),s.push(r);const o=Buffer.concat(s),i=$e(o);return Buffer.from(i).toString(\"hex\").toUpperCase()}function gf(t){const e=[];try{if(typeof t==\"string\")return e.push(t),e;if(typeof t!=\"object\")return e;t?.id&&e.push(t.id);const n=t?.capabilities?.caip345?.transactionHashes;n&&e.push(...n)}catch(n){console.warn(\"getWalletSendCallsHashes failed: \",n)}return e}const Zr=\"did:pkh:\",bf={eip155:\"Ethereum\",solana:\"Solana\",bip122:\"Bitcoin\"},yf=t=>t?bf[t]||t:\"\",ye=t=>t?.split(\":\"),Gr=t=>{const e=t&&ye(t);if(e)return t.includes(Zr)?e[3]:e[1]},zr=t=>{const e=t&&ye(t);if(e)return t.includes(Zr)?e[2]:e[0]},Yr=t=>{const e=t&&ye(t);if(e)return e[2]+\":\"+e[3]},pn=t=>{const e=t&&ye(t);if(e)return e.pop()};async function mf(t){const{cacao:e,projectId:n}=t,{s:r,p:s}=e,o=Xr(s,s.iss),i=pn(s.iss);return await Mr(i,o,r,Yr(s.iss),n)}const Xr=(t,e)=>{const n=zr(e);if(!n)throw new Error(\"Invalid issuer: \"+e);const r=`${t.domain} wants you to sign in with your ${yf(n)} account:`,s=pn(e);if(!t.aud&&!t.uri)throw new Error(\"Either `aud` or `uri` is required to construct the message\");let o=t.statement||void 0;const i=`URI: ${t.aud||t.uri}`,f=`Version: ${t.version}`,c=`Chain ID: ${Gr(e)}`,a=`Nonce: ${t.nonce}`,u=`Issued At: ${t.iat}`,l=t.exp?`Expiration Time: ${t.exp}`:void 0,d=t.nbf?`Not Before: ${t.nbf}`:void 0,h=t.requestId?`Request ID: ${t.requestId}`:void 0,y=t.resources?`Resources:${t.resources.map(E=>`\n- ${E}`).join(\"\")}`:void 0,m=Le(t.resources);if(m){const E=kt(m);o=yn(o,E)}return[r,s,\"\",o,\"\",i,f,c,a,u,l,d,h,y].filter(E=>E!=null).join(`\n`)};function wf(t,e,n){return n.includes(\"did:pkh:\")||(n=`did:pkh:${n}`),{h:{t:\"caip122\"},p:{iss:n,domain:t.domain,aud:t.aud,version:t.version,nonce:t.nonce,iat:t.iat,statement:t.statement,requestId:t.requestId,resources:t.resources,nbf:t.nbf,exp:t.exp},s:e}}function xf(t){const{authPayload:e,chains:n,methods:r}=t,s=e.statement||\"\";if(!n?.length)return e;const o=e.chains,i=sn(o,n);if(!i?.length)throw new Error(\"No supported chains\");const f=Wr(e.resources);if(!f)return e;mt(f);const c=Jr(f,\"eip155\");let a=e?.resources||[];if(c?.length){const u=Qr(c),l=sn(u,r);if(!l?.length)throw new Error(`Supported methods don't satisfy the requested: ${JSON.stringify(u)}, supported: ${JSON.stringify(r)}`);const d=gn(\"request\",l,{chains:i}),h=rs(f,\"eip155\",d);a=e?.resources?.slice(0,-1)||[],a.push(Ce(h))}return{...e,statement:os(s,Le(a)),chains:i,resources:e?.resources||a.length>0?a:void 0}}function Wr(t){const e=Le(t);if(e&&bn(e))return kt(e)}function Ef(t,e){return t?.att?.hasOwnProperty(e)}function Jr(t,e){return t?.att?.[e]?Object.keys(t?.att?.[e]):[]}function vf(t){return t?.map(e=>Object.keys(e))||[]}function Qr(t){return t?.map(e=>e.split(\"/\")?.[1])||[]}function ts(t){return Buffer.from(JSON.stringify(t)).toString(\"base64\")}function es(t){return JSON.parse(Buffer.from(t,\"base64\").toString(\"utf-8\"))}function mt(t){if(!t)throw new Error(\"No recap provided, value is undefined\");if(!t.att)throw new Error(\"No `att` property found\");const e=Object.keys(t.att);if(!e?.length)throw new Error(\"No resources found in `att` property\");e.forEach(n=>{const r=t.att[n];if(Array.isArray(r))throw new Error(`Resource must be an object: ${n}`);if(typeof r!=\"object\")throw new Error(`Resource must be an object: ${n}`);if(!Object.keys(r).length)throw new Error(`Resource object is empty: ${n}`);Object.keys(r).forEach(s=>{const o=r[s];if(!Array.isArray(o))throw new Error(`Ability limits ${s} must be an array of objects, found: ${o}`);if(!o.length)throw new Error(`Value of ${s} is empty array, must be an array with objects`);o.forEach(i=>{if(typeof i!=\"object\")throw new Error(`Ability limits (${s}) must be an array of objects, found: ${i}`)})})})}function ns(t,e,n,r={}){return n?.sort((s,o)=>s.localeCompare(o)),{att:{[t]:gn(e,n,r)}}}function rs(t,e,n){t.att[e]={...n};const r=Object.keys(t.att)?.sort((o,i)=>o.localeCompare(i)),s={att:{}};return r.reduce((o,i)=>(o.att[i]=t.att[i],o),s)}function gn(t,e,n={}){e=e?.sort((s,o)=>s.localeCompare(o));const r=e.map(s=>({[`${t}/${s}`]:[n]}));return Object.assign({},...r)}function Ce(t){return mt(t),`urn:recap:${ts(t).replace(/=/g,\"\")}`}function kt(t){const e=es(t.replace(\"urn:recap:\",\"\"));return mt(e),e}function Bf(t,e,n){const r=ns(t,e,n);return Ce(r)}function bn(t){return t&&t.includes(\"urn:recap:\")}function Af(t,e){const n=kt(t),r=kt(e),s=ss(n,r);return Ce(s)}function ss(t,e){mt(t),mt(e);const n=Object.keys(t.att).concat(Object.keys(e.att)).sort((s,o)=>s.localeCompare(o)),r={att:{}};return n.forEach(s=>{Object.keys(t.att?.[s]||{}).concat(Object.keys(e.att?.[s]||{})).sort((o,i)=>o.localeCompare(i)).forEach(o=>{r.att[s]={...r.att[s],[o]:t.att[s]?.[o]||e.att[s]?.[o]}})}),r}function yn(t=\"\",e){mt(e);const n=\"I further authorize the stated URI to perform the following actions on my behalf: \";if(t.includes(n))return t;const r=[];let s=0;Object.keys(e.att).forEach(f=>{const c=Object.keys(e.att[f]).map(l=>({ability:l.split(\"/\")[0],action:l.split(\"/\")[1]}));c.sort((l,d)=>l.action.localeCompare(d.action));const a={};c.forEach(l=>{a[l.ability]||(a[l.ability]=[]),a[l.ability].push(l.action)});const u=Object.keys(a).map(l=>(s++,`(${s}) '${l}': '${a[l].join(\"', '\")}' for '${f}'.`));r.push(u.join(\", \").replace(\".,\",\".\"))});const o=r.join(\" \"),i=`${n}${o}`;return`${t?t+\" \":\"\"}${i}`}function Sf(t){const e=kt(t);mt(e);const n=e.att?.eip155;return n?Object.keys(n).map(r=>r.split(\"/\")[1]):[]}function If(t){const e=kt(t);mt(e);const n=[];return Object.values(e.att).forEach(r=>{Object.values(r).forEach(s=>{s?.[0]?.chains&&n.push(s[0].chains)})}),[...new Set(n.flat())]}function os(t,e){if(!e)return t;const n=kt(e);return mt(n),yn(t,n)}function Le(t){if(!t)return;const e=t?.[t.length-1];return bn(e)?e:void 0}/*! noble-ciphers - MIT License (c) 2023 Paul Miller (paulmillr.com) */function is(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name===\"Uint8Array\"}function mn(t){if(typeof t!=\"boolean\")throw new Error(`boolean expected, not ${t}`)}function wn(t){if(!Number.isSafeInteger(t)||t<0)throw new Error(\"positive integer expected, got \"+t)}function st(t,...e){if(!is(t))throw new Error(\"Uint8Array expected\");if(e.length>0&&!e.includes(t.length))throw new Error(\"Uint8Array expected of length \"+e+\", got length=\"+t.length)}function fs(t,e=!0){if(t.destroyed)throw new Error(\"Hash instance has been destroyed\");if(e&&t.finished)throw new Error(\"Hash#digest() has already been called\")}function Nf(t,e){st(t);const n=e.outputLen;if(t.length<n)throw new Error(\"digestInto() expects output buffer of length at least \"+n)}function Ht(t){return new Uint32Array(t.buffer,t.byteOffset,Math.floor(t.byteLength/4))}function Qt(...t){for(let e=0;e<t.length;e++)t[e].fill(0)}function Of(t){return new DataView(t.buffer,t.byteOffset,t.byteLength)}const Uf=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function _f(t){if(typeof t!=\"string\")throw new Error(\"string expected\");return new Uint8Array(new TextEncoder().encode(t))}function xn(t){if(typeof t==\"string\")t=_f(t);else if(is(t))t=En(t);else throw new Error(\"Uint8Array expected, got \"+typeof t);return t}function Rf(t,e){if(e==null||typeof e!=\"object\")throw new Error(\"options must be defined\");return Object.assign(t,e)}function Tf(t,e){if(t.length!==e.length)return!1;let n=0;for(let r=0;r<t.length;r++)n|=t[r]^e[r];return n===0}const $f=(t,e)=>{function n(r,...s){if(st(r),!Uf)throw new Error(\"Non little-endian hardware is not yet supported\");if(t.nonceLength!==void 0){const u=s[0];if(!u)throw new Error(\"nonce / iv required\");t.varSizeNonce?st(u):st(u,t.nonceLength)}const o=t.tagLength;o&&s[1]!==void 0&&st(s[1]);const i=e(r,...s),f=(u,l)=>{if(l!==void 0){if(u!==2)throw new Error(\"cipher output not supported\");st(l)}};let c=!1;return{encrypt(u,l){if(c)throw new Error(\"cannot encrypt() twice with same key + nonce\");return c=!0,st(u),f(i.encrypt.length,l),i.encrypt(u,l)},decrypt(u,l){if(st(u),o&&u.length<o)throw new Error(\"invalid ciphertext length: smaller than tagLength=\"+o);return f(i.decrypt.length,l),i.decrypt(u,l)}}}return Object.assign(n,t),n};function cs(t,e,n=!0){if(e===void 0)return new Uint8Array(t);if(e.length!==t)throw new Error(\"invalid output length, expected \"+t+\", got: \"+e.length);if(n&&!Lf(e))throw new Error(\"invalid output, must be aligned\");return e}function as(t,e,n,r){if(typeof t.setBigUint64==\"function\")return t.setBigUint64(e,n,r);const s=BigInt(32),o=BigInt(4294967295),i=Number(n>>s&o),f=Number(n&o),c=4,a=0;t.setUint32(e+c,i,r),t.setUint32(e+a,f,r)}function Cf(t,e,n){mn(n);const r=new Uint8Array(16),s=Of(r);return as(s,0,BigInt(e),n),as(s,8,BigInt(t),n),r}function Lf(t){return t.byteOffset%4===0}function En(t){return Uint8Array.from(t)}const us=t=>Uint8Array.from(t.split(\"\").map(e=>e.charCodeAt(0))),jf=us(\"expand 16-byte k\"),kf=us(\"expand 32-byte k\"),Hf=Ht(jf),Df=Ht(kf);function P(t,e){return t<<e|t>>>32-e}function vn(t){return t.byteOffset%4===0}const je=64,Pf=16,ls=2**32-1,ds=new Uint32Array;function Vf(t,e,n,r,s,o,i,f){const c=s.length,a=new Uint8Array(je),u=Ht(a),l=vn(s)&&vn(o),d=l?Ht(s):ds,h=l?Ht(o):ds;for(let y=0;y<c;i++){if(t(e,n,r,u,i,f),i>=ls)throw new Error(\"arx: counter overflow\");const m=Math.min(je,c-y);if(l&&m===je){const E=y/4;if(y%4!==0)throw new Error(\"arx: invalid block position\");for(let R=0,q;R<Pf;R++)q=E+R,h[q]=d[q]^u[R];y+=je;continue}for(let E=0,R;E<m;E++)R=y+E,o[R]=s[R]^a[E];y+=m}}function Mf(t,e){const{allowShortKeys:n,extendNonceFn:r,counterLength:s,counterRight:o,rounds:i}=Rf({allowShortKeys:!1,counterLength:8,counterRight:!1,rounds:20},e);if(typeof t!=\"function\")throw new Error(\"core must be a function\");return wn(s),wn(i),mn(o),mn(n),(f,c,a,u,l=0)=>{st(f),st(c),st(a);const d=a.length;if(u===void 0&&(u=new Uint8Array(d)),st(u),wn(l),l<0||l>=ls)throw new Error(\"arx: counter overflow\");if(u.length<d)throw new Error(`arx: output (${u.length}) is shorter than data (${d})`);const h=[];let y=f.length,m,E;if(y===32)h.push(m=En(f)),E=Df;else if(y===16&&n)m=new Uint8Array(32),m.set(f),m.set(f,16),E=Hf,h.push(m);else throw new Error(`arx: invalid 32-byte key, got length=${y}`);vn(c)||h.push(c=En(c));const R=Ht(m);if(r){if(c.length!==24)throw new Error(\"arx: extended nonce must be 24 bytes\");r(E,R,Ht(c.subarray(0,16)),R),c=c.subarray(16)}const q=16-s;if(q!==c.length)throw new Error(`arx: nonce must be ${q} or 16 bytes`);if(q!==12){const Z=new Uint8Array(12);Z.set(c,o?0:12-c.length),c=Z,h.push(c)}const _=Ht(c);return Vf(t,E,R,_,a,u,l,i),Qt(...h),u}}const X=(t,e)=>t[e++]&255|(t[e++]&255)<<8;class Kf{constructor(e){this.blockLen=16,this.outputLen=16,this.buffer=new Uint8Array(16),this.r=new Uint16Array(10),this.h=new Uint16Array(10),this.pad=new Uint16Array(8),this.pos=0,this.finished=!1,e=xn(e),st(e,32);const n=X(e,0),r=X(e,2),s=X(e,4),o=X(e,6),i=X(e,8),f=X(e,10),c=X(e,12),a=X(e,14);this.r[0]=n&8191,this.r[1]=(n>>>13|r<<3)&8191,this.r[2]=(r>>>10|s<<6)&7939,this.r[3]=(s>>>7|o<<9)&8191,this.r[4]=(o>>>4|i<<12)&255,this.r[5]=i>>>1&8190,this.r[6]=(i>>>14|f<<2)&8191,this.r[7]=(f>>>11|c<<5)&8065,this.r[8]=(c>>>8|a<<8)&8191,this.r[9]=a>>>5&127;for(let u=0;u<8;u++)this.pad[u]=X(e,16+2*u)}process(e,n,r=!1){const s=r?0:2048,{h:o,r:i}=this,f=i[0],c=i[1],a=i[2],u=i[3],l=i[4],d=i[5],h=i[6],y=i[7],m=i[8],E=i[9],R=X(e,n+0),q=X(e,n+2),_=X(e,n+4),Z=X(e,n+6),F=X(e,n+8),K=X(e,n+10),V=X(e,n+12),L=X(e,n+14);let N=o[0]+(R&8191),$=o[1]+((R>>>13|q<<3)&8191),C=o[2]+((q>>>10|_<<6)&8191),U=o[3]+((_>>>7|Z<<9)&8191),p=o[4]+((Z>>>4|F<<12)&8191),b=o[5]+(F>>>1&8191),g=o[6]+((F>>>14|K<<2)&8191),x=o[7]+((K>>>11|V<<5)&8191),v=o[8]+((V>>>8|L<<8)&8191),A=o[9]+(L>>>5|s),w=0,B=w+N*f+$*(5*E)+C*(5*m)+U*(5*y)+p*(5*h);w=B>>>13,B&=8191,B+=b*(5*d)+g*(5*l)+x*(5*u)+v*(5*a)+A*(5*c),w+=B>>>13,B&=8191;let S=w+N*c+$*f+C*(5*E)+U*(5*m)+p*(5*y);w=S>>>13,S&=8191,S+=b*(5*h)+g*(5*d)+x*(5*l)+v*(5*u)+A*(5*a),w+=S>>>13,S&=8191;let O=w+N*a+$*c+C*f+U*(5*E)+p*(5*m);w=O>>>13,O&=8191,O+=b*(5*y)+g*(5*h)+x*(5*d)+v*(5*l)+A*(5*u),w+=O>>>13,O&=8191;let k=w+N*u+$*a+C*c+U*f+p*(5*E);w=k>>>13,k&=8191,k+=b*(5*m)+g*(5*y)+x*(5*h)+v*(5*d)+A*(5*l),w+=k>>>13,k&=8191;let j=w+N*l+$*u+C*a+U*c+p*f;w=j>>>13,j&=8191,j+=b*(5*E)+g*(5*m)+x*(5*y)+v*(5*h)+A*(5*d),w+=j>>>13,j&=8191;let T=w+N*d+$*l+C*u+U*a+p*c;w=T>>>13,T&=8191,T+=b*f+g*(5*E)+x*(5*m)+v*(5*y)+A*(5*h),w+=T>>>13,T&=8191;let H=w+N*h+$*d+C*l+U*u+p*a;w=H>>>13,H&=8191,H+=b*c+g*f+x*(5*E)+v*(5*m)+A*(5*y),w+=H>>>13,H&=8191;let M=w+N*y+$*h+C*d+U*l+p*u;w=M>>>13,M&=8191,M+=b*a+g*c+x*f+v*(5*E)+A*(5*m),w+=M>>>13,M&=8191;let G=w+N*m+$*y+C*h+U*d+p*l;w=G>>>13,G&=8191,G+=b*u+g*a+x*c+v*f+A*(5*E),w+=G>>>13,G&=8191;let D=w+N*E+$*m+C*y+U*h+p*d;w=D>>>13,D&=8191,D+=b*l+g*u+x*a+v*c+A*f,w+=D>>>13,D&=8191,w=(w<<2)+w|0,w=w+B|0,B=w&8191,w=w>>>13,S+=w,o[0]=B,o[1]=S,o[2]=O,o[3]=k,o[4]=j,o[5]=T,o[6]=H,o[7]=M,o[8]=G,o[9]=D}finalize(){const{h:e,pad:n}=this,r=new Uint16Array(10);let s=e[1]>>>13;e[1]&=8191;for(let f=2;f<10;f++)e[f]+=s,s=e[f]>>>13,e[f]&=8191;e[0]+=s*5,s=e[0]>>>13,e[0]&=8191,e[1]+=s,s=e[1]>>>13,e[1]&=8191,e[2]+=s,r[0]=e[0]+5,s=r[0]>>>13,r[0]&=8191;for(let f=1;f<10;f++)r[f]=e[f]+s,s=r[f]>>>13,r[f]&=8191;r[9]-=8192;let o=(s^1)-1;for(let f=0;f<10;f++)r[f]&=o;o=~o;for(let f=0;f<10;f++)e[f]=e[f]&o|r[f];e[0]=(e[0]|e[1]<<13)&65535,e[1]=(e[1]>>>3|e[2]<<10)&65535,e[2]=(e[2]>>>6|e[3]<<7)&65535,e[3]=(e[3]>>>9|e[4]<<4)&65535,e[4]=(e[4]>>>12|e[5]<<1|e[6]<<14)&65535,e[5]=(e[6]>>>2|e[7]<<11)&65535,e[6]=(e[7]>>>5|e[8]<<8)&65535,e[7]=(e[8]>>>8|e[9]<<5)&65535;let i=e[0]+n[0];e[0]=i&65535;for(let f=1;f<8;f++)i=(e[f]+n[f]|0)+(i>>>16)|0,e[f]=i&65535;Qt(r)}update(e){fs(this),e=xn(e),st(e);const{buffer:n,blockLen:r}=this,s=e.length;for(let o=0;o<s;){const i=Math.min(r-this.pos,s-o);if(i===r){for(;r<=s-o;o+=r)this.process(e,o);continue}n.set(e.subarray(o,o+i),this.pos),this.pos+=i,o+=i,this.pos===r&&(this.process(n,0,!1),this.pos=0)}return this}destroy(){Qt(this.h,this.r,this.buffer,this.pad)}digestInto(e){fs(this),Nf(e,this),this.finished=!0;const{buffer:n,h:r}=this;let{pos:s}=this;if(s){for(n[s++]=1;s<16;s++)n[s]=0;this.process(n,0,!0)}this.finalize();let o=0;for(let i=0;i<8;i++)e[o++]=r[i]>>>0,e[o++]=r[i]>>>8;return e}digest(){const{buffer:e,outputLen:n}=this;this.digestInto(e);const r=e.slice(0,n);return this.destroy(),r}}function qf(t){const e=(r,s)=>t(s).update(xn(r)).digest(),n=t(new Uint8Array(32));return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=r=>t(r),e}const Ff=qf(t=>new Kf(t));function Zf(t,e,n,r,s,o=20){let i=t[0],f=t[1],c=t[2],a=t[3],u=e[0],l=e[1],d=e[2],h=e[3],y=e[4],m=e[5],E=e[6],R=e[7],q=s,_=n[0],Z=n[1],F=n[2],K=i,V=f,L=c,N=a,$=u,C=l,U=d,p=h,b=y,g=m,x=E,v=R,A=q,w=_,B=Z,S=F;for(let k=0;k<o;k+=2)K=K+$|0,A=P(A^K,16),b=b+A|0,$=P($^b,12),K=K+$|0,A=P(A^K,8),b=b+A|0,$=P($^b,7),V=V+C|0,w=P(w^V,16),g=g+w|0,C=P(C^g,12),V=V+C|0,w=P(w^V,8),g=g+w|0,C=P(C^g,7),L=L+U|0,B=P(B^L,16),x=x+B|0,U=P(U^x,12),L=L+U|0,B=P(B^L,8),x=x+B|0,U=P(U^x,7),N=N+p|0,S=P(S^N,16),v=v+S|0,p=P(p^v,12),N=N+p|0,S=P(S^N,8),v=v+S|0,p=P(p^v,7),K=K+C|0,S=P(S^K,16),x=x+S|0,C=P(C^x,12),K=K+C|0,S=P(S^K,8),x=x+S|0,C=P(C^x,7),V=V+U|0,A=P(A^V,16),v=v+A|0,U=P(U^v,12),V=V+U|0,A=P(A^V,8),v=v+A|0,U=P(U^v,7),L=L+p|0,w=P(w^L,16),b=b+w|0,p=P(p^b,12),L=L+p|0,w=P(w^L,8),b=b+w|0,p=P(p^b,7),N=N+$|0,B=P(B^N,16),g=g+B|0,$=P($^g,12),N=N+$|0,B=P(B^N,8),g=g+B|0,$=P($^g,7);let O=0;r[O++]=i+K|0,r[O++]=f+V|0,r[O++]=c+L|0,r[O++]=a+N|0,r[O++]=u+$|0,r[O++]=l+C|0,r[O++]=d+U|0,r[O++]=h+p|0,r[O++]=y+b|0,r[O++]=m+g|0,r[O++]=E+x|0,r[O++]=R+v|0,r[O++]=q+A|0,r[O++]=_+w|0,r[O++]=Z+B|0,r[O++]=F+S|0}const Gf=Mf(Zf,{counterRight:!1,counterLength:4,allowShortKeys:!1}),zf=new Uint8Array(16),hs=(t,e)=>{t.update(e);const n=e.length%16;n&&t.update(zf.subarray(n))},Yf=new Uint8Array(32);function ps(t,e,n,r,s){const o=t(e,n,Yf),i=Ff.create(o);s&&hs(i,s),hs(i,r);const f=Cf(r.length,s?s.length:0,!0);i.update(f);const c=i.digest();return Qt(o,f),c}const Xf=t=>(e,n,r)=>({encrypt(o,i){const f=o.length;i=cs(f+16,i,!1),i.set(o);const c=i.subarray(0,-16);t(e,n,c,c,1);const a=ps(t,e,n,c,r);return i.set(a,f),Qt(a),i},decrypt(o,i){i=cs(o.length-16,i,!1);const f=o.subarray(0,-16),c=o.subarray(-16),a=ps(t,e,n,f,r);if(!Tf(c,a))throw new Error(\"invalid tag\");return i.set(o.subarray(0,-16)),t(e,n,i,i,1),Qt(a),i}}),gs=$f({blockSize:64,nonceLength:12,tagLength:16},Xf(Gf));class bs extends Te{constructor(e,n){super(),this.finished=!1,this.destroyed=!1,_e(e);const r=pt(n);if(this.iHash=e.create(),typeof this.iHash.update!=\"function\")throw new Error(\"Expected instance of class which extends utils.Hash\");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const s=this.blockLen,o=new Uint8Array(s);o.set(r.length>s?e.create().update(r).digest():r);for(let i=0;i<o.length;i++)o[i]^=54;this.iHash.update(o),this.oHash=e.create();for(let i=0;i<o.length;i++)o[i]^=106;this.oHash.update(o),lt(o)}update(e){return Ot(this),this.iHash.update(e),this}digestInto(e){Ot(this),ht(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){const e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));const{oHash:n,iHash:r,finished:s,destroyed:o,blockLen:i,outputLen:f}=this;return e=e,e.finished=s,e.destroyed=o,e.blockLen=i,e.outputLen=f,e.oHash=n._cloneInto(e.oHash),e.iHash=r._cloneInto(e.iHash),e}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}const ke=(t,e,n)=>new bs(t,e).update(n).digest();ke.create=(t,e)=>new bs(t,e);function Wf(t,e,n){return _e(t),n===void 0&&(n=new Uint8Array(t.outputLen)),ke(t,pt(n),pt(e))}const Bn=Uint8Array.from([0]),ys=Uint8Array.of();function Jf(t,e,n,r=32){_e(t),wt(r);const s=t.outputLen;if(r>255*s)throw new Error(\"Length should be <= 255*HashLen\");const o=Math.ceil(r/s);n===void 0&&(n=ys);const i=new Uint8Array(o*s),f=ke.create(t,e),c=f._cloneInto(),a=new Uint8Array(f.outputLen);for(let u=0;u<o;u++)Bn[0]=u+1,c.update(u===0?ys:a).update(n).update(Bn).digestInto(a),i.set(a,s*u),f._cloneInto(c);return f.destroy(),c.destroy(),lt(a,Bn),i.slice(0,r)}const Qf=(t,e,n,r,s)=>Jf(t,Wf(t,e,n),r,s),He=$e;/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const An=BigInt(0),Sn=BigInt(1);function De(t,e=\"\"){if(typeof t!=\"boolean\"){const n=e&&`\"${e}\"`;throw new Error(n+\"expected boolean, got type=\"+typeof t)}return t}function qt(t,e,n=\"\"){const r=Ue(t),s=t?.length,o=e!==void 0;if(!r||o&&s!==e){const i=n&&`\"${n}\" `,f=o?` of length ${e}`:\"\",c=r?`length=${s}`:`type=${typeof t}`;throw new Error(i+\"expected Uint8Array\"+f+\", got \"+c)}return t}function Pe(t){const e=t.toString(16);return e.length&1?\"0\"+e:e}function ms(t){if(typeof t!=\"string\")throw new Error(\"hex string expected, got \"+typeof t);return t===\"\"?An:BigInt(\"0x\"+t)}function Ve(t){return ms(Jt(t))}function Me(t){return ht(t),ms(Jt(Uint8Array.from(t).reverse()))}function In(t,e){return Re(t.toString(16).padStart(e*2,\"0\"))}function Nn(t,e){return In(t,e).reverse()}function tt(t,e,n){let r;if(typeof e==\"string\")try{r=Re(e)}catch(o){throw new Error(t+\" must be hex string or Uint8Array, cause: \"+o)}else if(Ue(e))r=Uint8Array.from(e);else throw new Error(t+\" must be hex string or Uint8Array\");const s=r.length;if(typeof n==\"number\"&&s!==n)throw new Error(t+\" of length \"+n+\" expected, got \"+s);return r}const On=t=>typeof t==\"bigint\"&&An<=t;function tc(t,e,n){return On(t)&&On(e)&&On(n)&&e<=t&&t<n}function Un(t,e,n,r){if(!tc(e,n,r))throw new Error(\"expected valid \"+t+\": \"+n+\" <= n < \"+r+\", got \"+e)}function ws(t){let e;for(e=0;t>An;t>>=Sn,e+=1);return e}const me=t=>(Sn<<BigInt(t))-Sn;function ec(t,e,n){if(typeof t!=\"number\"||t<2)throw new Error(\"hashLen must be a number\");if(typeof e!=\"number\"||e<2)throw new Error(\"qByteLen must be a number\");if(typeof n!=\"function\")throw new Error(\"hmacFn must be a function\");const r=h=>new Uint8Array(h),s=h=>Uint8Array.of(h);let o=r(t),i=r(t),f=0;const c=()=>{o.fill(1),i.fill(0),f=0},a=(...h)=>n(i,o,...h),u=(h=r(0))=>{i=a(s(0),h),o=a(),h.length!==0&&(i=a(s(1),h),o=a())},l=()=>{if(f++>=1e3)throw new Error(\"drbg: tried 1000 values\");let h=0;const y=[];for(;h<e;){o=a();const m=o.slice();y.push(m),h+=o.length}return _t(...y)};return(h,y)=>{c(),u(h);let m;for(;!(m=y(l()));)u();return c(),m}}function Ke(t,e,n={}){if(!t||typeof t!=\"object\")throw new Error(\"expected valid options object\");function r(s,o,i){const f=t[s];if(i&&f===void 0)return;const c=typeof f;if(c!==o||f===null)throw new Error(`param \"${s}\" is invalid: expected ${o}, got ${c}`)}Object.entries(e).forEach(([s,o])=>r(s,o,!1)),Object.entries(n).forEach(([s,o])=>r(s,o,!0))}function xs(t){const e=new WeakMap;return(n,...r)=>{const s=e.get(n);if(s!==void 0)return s;const o=t(n,...r);return e.set(n,o),o}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const ot=BigInt(0),nt=BigInt(1),Ft=BigInt(2),Es=BigInt(3),vs=BigInt(4),Bs=BigInt(5),nc=BigInt(7),As=BigInt(8),rc=BigInt(9),Ss=BigInt(16);function ft(t,e){const n=t%e;return n>=ot?n:e+n}function gt(t,e,n){let r=t;for(;e-- >ot;)r*=r,r%=n;return r}function Is(t,e){if(t===ot)throw new Error(\"invert: expected non-zero number\");if(e<=ot)throw new Error(\"invert: expected positive modulus, got \"+e);let n=ft(t,e),r=e,s=ot,o=nt;for(;n!==ot;){const f=r/n,c=r%n,a=s-o*f;r=n,n=c,s=o,o=a}if(r!==nt)throw new Error(\"invert: does not exist\");return ft(s,e)}function _n(t,e,n){if(!t.eql(t.sqr(e),n))throw new Error(\"Cannot find square root\")}function Ns(t,e){const n=(t.ORDER+nt)/vs,r=t.pow(e,n);return _n(t,r,e),r}function sc(t,e){const n=(t.ORDER-Bs)/As,r=t.mul(e,Ft),s=t.pow(r,n),o=t.mul(e,s),i=t.mul(t.mul(o,Ft),s),f=t.mul(o,t.sub(i,t.ONE));return _n(t,f,e),f}function oc(t){const e=Dt(t),n=Os(t),r=n(e,e.neg(e.ONE)),s=n(e,r),o=n(e,e.neg(r)),i=(t+nc)/Ss;return(f,c)=>{let a=f.pow(c,i),u=f.mul(a,r);const l=f.mul(a,s),d=f.mul(a,o),h=f.eql(f.sqr(u),c),y=f.eql(f.sqr(l),c);a=f.cmov(a,u,h),u=f.cmov(d,l,y);const m=f.eql(f.sqr(u),c),E=f.cmov(a,u,m);return _n(f,E,c),E}}function Os(t){if(t<Es)throw new Error(\"sqrt is not defined for small field\");let e=t-nt,n=0;for(;e%Ft===ot;)e/=Ft,n++;let r=Ft;const s=Dt(t);for(;_s(s,r)===1;)if(r++>1e3)throw new Error(\"Cannot find square root: probably non-prime P\");if(n===1)return Ns;let o=s.pow(r,e);const i=(e+nt)/Ft;return function(c,a){if(c.is0(a))return a;if(_s(c,a)!==1)throw new Error(\"Cannot find square root\");let u=n,l=c.mul(c.ONE,o),d=c.pow(a,e),h=c.pow(a,i);for(;!c.eql(d,c.ONE);){if(c.is0(d))return c.ZERO;let y=1,m=c.sqr(d);for(;!c.eql(m,c.ONE);)if(y++,m=c.sqr(m),y===u)throw new Error(\"Cannot find square root\");const E=nt<<BigInt(u-y-1),R=c.pow(l,E);u=y,l=c.sqr(R),d=c.mul(d,l),h=c.mul(h,R)}return h}}function ic(t){return t%vs===Es?Ns:t%As===Bs?sc:t%Ss===rc?oc(t):Os(t)}const fc=[\"create\",\"isValid\",\"is0\",\"neg\",\"inv\",\"sqrt\",\"sqr\",\"eql\",\"add\",\"sub\",\"mul\",\"pow\",\"div\",\"addN\",\"subN\",\"mulN\",\"sqrN\"];function cc(t){const e={ORDER:\"bigint\",MASK:\"bigint\",BYTES:\"number\",BITS:\"number\"},n=fc.reduce((r,s)=>(r[s]=\"function\",r),e);return Ke(t,n),t}function ac(t,e,n){if(n<ot)throw new Error(\"invalid exponent, negatives unsupported\");if(n===ot)return t.ONE;if(n===nt)return e;let r=t.ONE,s=e;for(;n>ot;)n&nt&&(r=t.mul(r,s)),s=t.sqr(s),n>>=nt;return r}function Us(t,e,n=!1){const r=new Array(e.length).fill(n?t.ZERO:void 0),s=e.reduce((i,f,c)=>t.is0(f)?i:(r[c]=i,t.mul(i,f)),t.ONE),o=t.inv(s);return e.reduceRight((i,f,c)=>t.is0(f)?i:(r[c]=t.mul(i,r[c]),t.mul(i,f)),o),r}function _s(t,e){const n=(t.ORDER-nt)/Ft,r=t.pow(e,n),s=t.eql(r,t.ONE),o=t.eql(r,t.ZERO),i=t.eql(r,t.neg(t.ONE));if(!s&&!o&&!i)throw new Error(\"invalid Legendre symbol result\");return s?1:o?0:-1}function Rs(t,e){e!==void 0&&wt(e);const n=e!==void 0?e:t.toString(2).length,r=Math.ceil(n/8);return{nBitLength:n,nByteLength:r}}function Dt(t,e,n=!1,r={}){if(t<=ot)throw new Error(\"invalid field: expected ORDER > 0, got \"+t);let s,o,i=!1,f;if(typeof e==\"object\"&&e!=null){if(r.sqrt||n)throw new Error(\"cannot specify opts in two arguments\");const d=e;d.BITS&&(s=d.BITS),d.sqrt&&(o=d.sqrt),typeof d.isLE==\"boolean\"&&(n=d.isLE),typeof d.modFromBytes==\"boolean\"&&(i=d.modFromBytes),f=d.allowedLengths}else typeof e==\"number\"&&(s=e),r.sqrt&&(o=r.sqrt);const{nBitLength:c,nByteLength:a}=Rs(t,s);if(a>2048)throw new Error(\"invalid field: expected ORDER of <= 2048 bytes\");let u;const l=Object.freeze({ORDER:t,isLE:n,BITS:c,BYTES:a,MASK:me(c),ZERO:ot,ONE:nt,allowedLengths:f,create:d=>ft(d,t),isValid:d=>{if(typeof d!=\"bigint\")throw new Error(\"invalid field element: expected bigint, got \"+typeof d);return ot<=d&&d<t},is0:d=>d===ot,isValidNot0:d=>!l.is0(d)&&l.isValid(d),isOdd:d=>(d&nt)===nt,neg:d=>ft(-d,t),eql:(d,h)=>d===h,sqr:d=>ft(d*d,t),add:(d,h)=>ft(d+h,t),sub:(d,h)=>ft(d-h,t),mul:(d,h)=>ft(d*h,t),pow:(d,h)=>ac(l,d,h),div:(d,h)=>ft(d*Is(h,t),t),sqrN:d=>d*d,addN:(d,h)=>d+h,subN:(d,h)=>d-h,mulN:(d,h)=>d*h,inv:d=>Is(d,t),sqrt:o||(d=>(u||(u=ic(t)),u(l,d))),toBytes:d=>n?Nn(d,a):In(d,a),fromBytes:(d,h=!0)=>{if(f){if(!f.includes(d.length)||d.length>a)throw new Error(\"Field.fromBytes: expected \"+f+\" bytes, got \"+d.length);const m=new Uint8Array(a);m.set(d,n?0:m.length-d.length),d=m}if(d.length!==a)throw new Error(\"Field.fromBytes: expected \"+a+\" bytes, got \"+d.length);let y=n?Me(d):Ve(d);if(i&&(y=ft(y,t)),!h&&!l.isValid(y))throw new Error(\"invalid field element: outside of range 0..ORDER\");return y},invertBatch:d=>Us(l,d),cmov:(d,h,y)=>y?h:d});return Object.freeze(l)}function Ts(t){if(typeof t!=\"bigint\")throw new Error(\"field order must be bigint\");const e=t.toString(2).length;return Math.ceil(e/8)}function $s(t){const e=Ts(t);return e+Math.ceil(e/2)}function uc(t,e,n=!1){const r=t.length,s=Ts(e),o=$s(e);if(r<16||r<o||r>1024)throw new Error(\"expected \"+o+\"-1024 bytes of input, got \"+r);const i=n?Me(t):Ve(t),f=ft(i,e-nt)+nt;return n?Nn(f,s):In(f,s)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const te=BigInt(0),Zt=BigInt(1);function qe(t,e){const n=e.negate();return t?n:e}function Rn(t,e){const n=Us(t.Fp,e.map(r=>r.Z));return e.map((r,s)=>t.fromAffine(r.toAffine(n[s])))}function Cs(t,e){if(!Number.isSafeInteger(t)||t<=0||t>e)throw new Error(\"invalid window size, expected [1..\"+e+\"], got W=\"+t)}function Tn(t,e){Cs(t,e);const n=Math.ceil(e/t)+1,r=2**(t-1),s=2**t,o=me(t),i=BigInt(t);return{windows:n,windowSize:r,mask:o,maxNumber:s,shiftBy:i}}function Ls(t,e,n){const{windowSize:r,mask:s,maxNumber:o,shiftBy:i}=n;let f=Number(t&s),c=t>>i;f>r&&(f-=o,c+=Zt);const a=e*r,u=a+Math.abs(f)-1,l=f===0,d=f<0,h=e%2!==0;return{nextN:c,offset:u,isZero:l,isNeg:d,isNegF:h,offsetF:a}}function lc(t,e){if(!Array.isArray(t))throw new Error(\"array expected\");t.forEach((n,r)=>{if(!(n instanceof e))throw new Error(\"invalid point at index \"+r)})}function dc(t,e){if(!Array.isArray(t))throw new Error(\"array of scalars expected\");t.forEach((n,r)=>{if(!e.isValid(n))throw new Error(\"invalid scalar at index \"+r)})}const $n=new WeakMap,js=new WeakMap;function Cn(t){return js.get(t)||1}function ks(t){if(t!==te)throw new Error(\"invalid wNAF\")}class hc{constructor(e,n){this.BASE=e.BASE,this.ZERO=e.ZERO,this.Fn=e.Fn,this.bits=n}_unsafeLadder(e,n,r=this.ZERO){let s=e;for(;n>te;)n&Zt&&(r=r.add(s)),s=s.double(),n>>=Zt;return r}precomputeWindow(e,n){const{windows:r,windowSize:s}=Tn(n,this.bits),o=[];let i=e,f=i;for(let c=0;c<r;c++){f=i,o.push(f);for(let a=1;a<s;a++)f=f.add(i),o.push(f);i=f.double()}return o}wNAF(e,n,r){if(!this.Fn.isValid(r))throw new Error(\"invalid scalar\");let s=this.ZERO,o=this.BASE;const i=Tn(e,this.bits);for(let f=0;f<i.windows;f++){const{nextN:c,offset:a,isZero:u,isNeg:l,isNegF:d,offsetF:h}=Ls(r,f,i);r=c,u?o=o.add(qe(d,n[h])):s=s.add(qe(l,n[a]))}return ks(r),{p:s,f:o}}wNAFUnsafe(e,n,r,s=this.ZERO){const o=Tn(e,this.bits);for(let i=0;i<o.windows&&r!==te;i++){const{nextN:f,offset:c,isZero:a,isNeg:u}=Ls(r,i,o);if(r=f,!a){const l=n[c];s=s.add(u?l.negate():l)}}return ks(r),s}getPrecomputes(e,n,r){let s=$n.get(n);return s||(s=this.precomputeWindow(n,e),e!==1&&(typeof r==\"function\"&&(s=r(s)),$n.set(n,s))),s}cached(e,n,r){const s=Cn(e);return this.wNAF(s,this.getPrecomputes(s,e,r),n)}unsafe(e,n,r,s){const o=Cn(e);return o===1?this._unsafeLadder(e,n,s):this.wNAFUnsafe(o,this.getPrecomputes(o,e,r),n,s)}createCache(e,n){Cs(n,this.bits),js.set(e,n),$n.delete(e)}hasCache(e){return Cn(e)!==1}}function pc(t,e,n,r){let s=e,o=t.ZERO,i=t.ZERO;for(;n>te||r>te;)n&Zt&&(o=o.add(s)),r&Zt&&(i=i.add(s)),s=s.double(),n>>=Zt,r>>=Zt;return{p1:o,p2:i}}function gc(t,e,n,r){lc(n,t),dc(r,e);const s=n.length,o=r.length;if(s!==o)throw new Error(\"arrays of points and scalars must have equal length\");const i=t.ZERO,f=ws(BigInt(s));let c=1;f>12?c=f-3:f>4?c=f-2:f>0&&(c=2);const a=me(c),u=new Array(Number(a)+1).fill(i),l=Math.floor((e.BITS-1)/c)*c;let d=i;for(let h=l;h>=0;h-=c){u.fill(i);for(let m=0;m<o;m++){const E=r[m],R=Number(E>>BigInt(h)&a);u[R]=u[R].add(n[m])}let y=i;for(let m=u.length-1,E=i;m>0;m--)E=E.add(u[m]),y=y.add(E);if(d=d.add(y),h!==0)for(let m=0;m<c;m++)d=d.double()}return d}function Hs(t,e,n){if(e){if(e.ORDER!==t)throw new Error(\"Field.ORDER must match order: Fp == p, Fn == n\");return cc(e),e}else return Dt(t,{isLE:n})}function bc(t,e,n={},r){if(r===void 0&&(r=t===\"edwards\"),!e||typeof e!=\"object\")throw new Error(`expected valid ${t} CURVE object`);for(const c of[\"p\",\"n\",\"h\"]){const a=e[c];if(!(typeof a==\"bigint\"&&a>te))throw new Error(`CURVE.${c} must be positive bigint`)}const s=Hs(e.p,n.Fp,r),o=Hs(e.n,n.Fn,r),f=[\"Gx\",\"Gy\",\"a\",\"b\"];for(const c of f)if(!s.isValid(e[c]))throw new Error(`CURVE.${c} must be valid field element of CURVE.Fp`);return e=Object.freeze(Object.assign({},e)),{CURVE:e,Fp:s,Fn:o}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */BigInt(0),BigInt(1),BigInt(2),BigInt(8),$r(\"HashToScalar-\");/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const we=BigInt(0),ee=BigInt(1),Fe=BigInt(2);function yc(t){return Ke(t,{adjustScalarBytes:\"function\",powPminus2:\"function\"}),Object.freeze({...t})}function mc(t){const e=yc(t),{P:n,type:r,adjustScalarBytes:s,powPminus2:o,randomBytes:i}=e,f=r===\"x25519\";if(!f&&r!==\"x448\")throw new Error(\"invalid type\");const c=i||Kt,a=f?255:448,u=f?32:56,l=BigInt(f?9:5),d=BigInt(f?121665:39081),h=f?Fe**BigInt(254):Fe**BigInt(447),y=f?BigInt(8)*Fe**BigInt(251)-ee:BigInt(4)*Fe**BigInt(445)-ee,m=h+y+ee,E=p=>ft(p,n),R=q(l);function q(p){return Nn(E(p),u)}function _(p){const b=tt(\"u coordinate\",p,u);return f&&(b[31]&=127),E(Me(b))}function Z(p){return Me(s(tt(\"scalar\",p,u)))}function F(p,b){const g=L(_(b),Z(p));if(g===we)throw new Error(\"invalid private or public key received\");return q(g)}function K(p){return F(p,R)}function V(p,b,g){const x=E(p*(b-g));return b=E(b-x),g=E(g+x),{x_2:b,x_3:g}}function L(p,b){Un(\"u\",p,we,n),Un(\"scalar\",b,h,m);const g=b,x=p;let v=ee,A=we,w=p,B=ee,S=we;for(let k=BigInt(a-1);k>=we;k--){const j=g>>k&ee;S^=j,{x_2:v,x_3:w}=V(S,v,w),{x_2:A,x_3:B}=V(S,A,B),S=j;const T=v+A,H=E(T*T),M=v-A,G=E(M*M),D=H-G,Y=w+B,Yt=w-B,fe=E(Yt*T),ce=E(Y*M),Xn=fe+ce,Wn=fe-ce;w=E(Xn*Xn),B=E(x*E(Wn*Wn)),v=E(H*G),A=E(D*(H+E(d*D)))}({x_2:v,x_3:w}=V(S,v,w)),{x_2:A,x_3:B}=V(S,A,B);const O=o(A);return E(v*O)}const N={secretKey:u,publicKey:u,seed:u},$=(p=c(u))=>(ht(p,N.seed),p);function C(p){const b=$(p);return{secretKey:b,publicKey:K(b)}}return{keygen:C,getSharedSecret:(p,b)=>F(p,b),getPublicKey:p=>K(p),scalarMult:F,scalarMultBase:K,utils:{randomSecretKey:$,randomPrivateKey:$},GuBytes:R.slice(),lengths:N}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const wc=BigInt(1),Ds=BigInt(2),xc=BigInt(3),Ec=BigInt(5),vc=BigInt(8),Ps=BigInt(\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed\"),Bc={p:Ps,n:BigInt(\"0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed\"),h:vc,a:BigInt(\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec\"),d:BigInt(\"0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3\"),Gx:BigInt(\"0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a\"),Gy:BigInt(\"0x6666666666666666666666666666666666666666666666666666666666666658\")};function Ac(t){const e=BigInt(10),n=BigInt(20),r=BigInt(40),s=BigInt(80),o=Ps,f=t*t%o*t%o,c=gt(f,Ds,o)*f%o,a=gt(c,wc,o)*t%o,u=gt(a,Ec,o)*a%o,l=gt(u,e,o)*u%o,d=gt(l,n,o)*l%o,h=gt(d,r,o)*d%o,y=gt(h,s,o)*h%o,m=gt(y,s,o)*h%o,E=gt(m,e,o)*u%o;return{pow_p_5_8:gt(E,Ds,o)*t%o,b2:f}}function Sc(t){return t[0]&=248,t[31]&=127,t[31]|=64,t}const Ic=Dt(Bc.p,{isLE:!0}),Ln=(()=>{const t=Ic.ORDER;return mc({P:t,type:\"x25519\",powPminus2:e=>{const{pow_p_5_8:n,b2:r}=Ac(e);return ft(gt(n,xc,t)*r,t)},adjustScalarBytes:Sc})})();/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Vs=(t,e)=>(t+(t>=0?e:-e)/Ms)/e;function Nc(t,e,n){const[[r,s],[o,i]]=e,f=Vs(i*t,n),c=Vs(-s*t,n);let a=t-f*r-c*o,u=-f*s-c*i;const l=a<Bt,d=u<Bt;l&&(a=-a),d&&(u=-u);const h=me(Math.ceil(ws(n)/2))+ne;if(a<Bt||a>=h||u<Bt||u>=h)throw new Error(\"splitScalar (endomorphism): failed, k=\"+t);return{k1neg:l,k1:a,k2neg:d,k2:u}}function jn(t){if(![\"compact\",\"recovered\",\"der\"].includes(t))throw new Error('Signature format must be \"compact\", \"recovered\", or \"der\"');return t}function kn(t,e){const n={};for(let r of Object.keys(e))n[r]=t[r]===void 0?e[r]:t[r];return De(n.lowS,\"lowS\"),De(n.prehash,\"prehash\"),n.format!==void 0&&jn(n.format),n}class Oc extends Error{constructor(e=\"\"){super(e)}}const vt={Err:Oc,_tlv:{encode:(t,e)=>{const{Err:n}=vt;if(t<0||t>256)throw new n(\"tlv.encode: wrong tag\");if(e.length&1)throw new n(\"tlv.encode: unpadded data\");const r=e.length/2,s=Pe(r);if(s.length/2&128)throw new n(\"tlv.encode: long form length too big\");const o=r>127?Pe(s.length/2|128):\"\";return Pe(t)+o+s+e},decode(t,e){const{Err:n}=vt;let r=0;if(t<0||t>256)throw new n(\"tlv.encode: wrong tag\");if(e.length<2||e[r++]!==t)throw new n(\"tlv.decode: wrong tlv\");const s=e[r++],o=!!(s&128);let i=0;if(!o)i=s;else{const c=s&127;if(!c)throw new n(\"tlv.decode(long): indefinite length not supported\");if(c>4)throw new n(\"tlv.decode(long): byte length is too big\");const a=e.subarray(r,r+c);if(a.length!==c)throw new n(\"tlv.decode: length bytes not complete\");if(a[0]===0)throw new n(\"tlv.decode(long): zero leftmost byte\");for(const u of a)i=i<<8|u;if(r+=c,i<128)throw new n(\"tlv.decode(long): not minimal encoding\")}const f=e.subarray(r,r+i);if(f.length!==i)throw new n(\"tlv.decode: wrong value length\");return{v:f,l:e.subarray(r+i)}}},_int:{encode(t){const{Err:e}=vt;if(t<Bt)throw new e(\"integer: negative integers are not allowed\");let n=Pe(t);if(Number.parseInt(n[0],16)&8&&(n=\"00\"+n),n.length&1)throw new e(\"unexpected DER parsing assertion: unpadded hex\");return n},decode(t){const{Err:e}=vt;if(t[0]&128)throw new e(\"invalid signature integer: negative\");if(t[0]===0&&!(t[1]&128))throw new e(\"invalid signature integer: unnecessary leading zero\");return Ve(t)}},toSig(t){const{Err:e,_int:n,_tlv:r}=vt,s=tt(\"signature\",t),{v:o,l:i}=r.decode(48,s);if(i.length)throw new e(\"invalid signature: left bytes after parsing\");const{v:f,l:c}=r.decode(2,o),{v:a,l:u}=r.decode(2,c);if(u.length)throw new e(\"invalid signature: left bytes after parsing\");return{r:n.decode(f),s:n.decode(a)}},hexFromSig(t){const{_tlv:e,_int:n}=vt,r=e.encode(2,n.encode(t.r)),s=e.encode(2,n.encode(t.s)),o=r+s;return e.encode(48,o)}},Bt=BigInt(0),ne=BigInt(1),Ms=BigInt(2),Ze=BigInt(3),Uc=BigInt(4);function re(t,e){const{BYTES:n}=t;let r;if(typeof e==\"bigint\")r=e;else{let s=tt(\"private key\",e);try{r=t.fromBytes(s)}catch{throw new Error(`invalid private key: expected ui8a of size ${n}, got ${typeof e}`)}}if(!t.isValidNot0(r))throw new Error(\"invalid private key: out of range [1..N-1]\");return r}function _c(t,e={}){const n=bc(\"weierstrass\",t,e),{Fp:r,Fn:s}=n;let o=n.CURVE;const{h:i,n:f}=o;Ke(e,{},{allowInfinityPoint:\"boolean\",clearCofactor:\"function\",isTorsionFree:\"function\",fromBytes:\"function\",toBytes:\"function\",endo:\"object\",wrapPrivateKey:\"boolean\"});const{endo:c}=e;if(c&&(!r.is0(o.a)||typeof c.beta!=\"bigint\"||!Array.isArray(c.basises)))throw new Error('invalid endo: expected \"beta\": bigint and \"basises\": array');const a=qs(r,s);function u(){if(!r.isOdd)throw new Error(\"compression is not supported: Field does not have .isOdd()\")}function l(U,p,b){const{x:g,y:x}=p.toAffine(),v=r.toBytes(g);if(De(b,\"isCompressed\"),b){u();const A=!r.isOdd(x);return _t(Ks(A),v)}else return _t(Uint8Array.of(4),v,r.toBytes(x))}function d(U){qt(U,void 0,\"Point\");const{publicKey:p,publicKeyUncompressed:b}=a,g=U.length,x=U[0],v=U.subarray(1);if(g===p&&(x===2||x===3)){const A=r.fromBytes(v);if(!r.isValid(A))throw new Error(\"bad point: is not on curve, wrong x\");const w=m(A);let B;try{B=r.sqrt(w)}catch(k){const j=k instanceof Error?\": \"+k.message:\"\";throw new Error(\"bad point: is not on curve, sqrt error\"+j)}u();const S=r.isOdd(B);return(x&1)===1!==S&&(B=r.neg(B)),{x:A,y:B}}else if(g===b&&x===4){const A=r.BYTES,w=r.fromBytes(v.subarray(0,A)),B=r.fromBytes(v.subarray(A,A*2));if(!E(w,B))throw new Error(\"bad point: is not on curve\");return{x:w,y:B}}else throw new Error(`bad point: got length ${g}, expected compressed=${p} or uncompressed=${b}`)}const h=e.toBytes||l,y=e.fromBytes||d;function m(U){const p=r.sqr(U),b=r.mul(p,U);return r.add(r.add(b,r.mul(U,o.a)),o.b)}function E(U,p){const b=r.sqr(p),g=m(U);return r.eql(b,g)}if(!E(o.Gx,o.Gy))throw new Error(\"bad curve params: generator point\");const R=r.mul(r.pow(o.a,Ze),Uc),q=r.mul(r.sqr(o.b),BigInt(27));if(r.is0(r.add(R,q)))throw new Error(\"bad curve params: a or b\");function _(U,p,b=!1){if(!r.isValid(p)||b&&r.is0(p))throw new Error(`bad point coordinate ${U}`);return p}function Z(U){if(!(U instanceof N))throw new Error(\"ProjectivePoint expected\")}function F(U){if(!c||!c.basises)throw new Error(\"no endo\");return Nc(U,c.basises,s.ORDER)}const K=xs((U,p)=>{const{X:b,Y:g,Z:x}=U;if(r.eql(x,r.ONE))return{x:b,y:g};const v=U.is0();p==null&&(p=v?r.ONE:r.inv(x));const A=r.mul(b,p),w=r.mul(g,p),B=r.mul(x,p);if(v)return{x:r.ZERO,y:r.ZERO};if(!r.eql(B,r.ONE))throw new Error(\"invZ was invalid\");return{x:A,y:w}}),V=xs(U=>{if(U.is0()){if(e.allowInfinityPoint&&!r.is0(U.Y))return;throw new Error(\"bad point: ZERO\")}const{x:p,y:b}=U.toAffine();if(!r.isValid(p)||!r.isValid(b))throw new Error(\"bad point: x or y not field elements\");if(!E(p,b))throw new Error(\"bad point: equation left != right\");if(!U.isTorsionFree())throw new Error(\"bad point: not in prime-order subgroup\");return!0});function L(U,p,b,g,x){return b=new N(r.mul(b.X,U),b.Y,b.Z),p=qe(g,p),b=qe(x,b),p.add(b)}class N{constructor(p,b,g){this.X=_(\"x\",p),this.Y=_(\"y\",b,!0),this.Z=_(\"z\",g),Object.freeze(this)}static CURVE(){return o}static fromAffine(p){const{x:b,y:g}=p||{};if(!p||!r.isValid(b)||!r.isValid(g))throw new Error(\"invalid affine point\");if(p instanceof N)throw new Error(\"projective point not allowed\");return r.is0(b)&&r.is0(g)?N.ZERO:new N(b,g,r.ONE)}static fromBytes(p){const b=N.fromAffine(y(qt(p,void 0,\"point\")));return b.assertValidity(),b}static fromHex(p){return N.fromBytes(tt(\"pointHex\",p))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(p=8,b=!0){return C.createCache(this,p),b||this.multiply(Ze),this}assertValidity(){V(this)}hasEvenY(){const{y:p}=this.toAffine();if(!r.isOdd)throw new Error(\"Field doesn't support isOdd\");return!r.isOdd(p)}equals(p){Z(p);const{X:b,Y:g,Z:x}=this,{X:v,Y:A,Z:w}=p,B=r.eql(r.mul(b,w),r.mul(v,x)),S=r.eql(r.mul(g,w),r.mul(A,x));return B&&S}negate(){return new N(this.X,r.neg(this.Y),this.Z)}double(){const{a:p,b}=o,g=r.mul(b,Ze),{X:x,Y:v,Z:A}=this;let w=r.ZERO,B=r.ZERO,S=r.ZERO,O=r.mul(x,x),k=r.mul(v,v),j=r.mul(A,A),T=r.mul(x,v);return T=r.add(T,T),S=r.mul(x,A),S=r.add(S,S),w=r.mul(p,S),B=r.mul(g,j),B=r.add(w,B),w=r.sub(k,B),B=r.add(k,B),B=r.mul(w,B),w=r.mul(T,w),S=r.mul(g,S),j=r.mul(p,j),T=r.sub(O,j),T=r.mul(p,T),T=r.add(T,S),S=r.add(O,O),O=r.add(S,O),O=r.add(O,j),O=r.mul(O,T),B=r.add(B,O),j=r.mul(v,A),j=r.add(j,j),O=r.mul(j,T),w=r.sub(w,O),S=r.mul(j,k),S=r.add(S,S),S=r.add(S,S),new N(w,B,S)}add(p){Z(p);const{X:b,Y:g,Z:x}=this,{X:v,Y:A,Z:w}=p;let B=r.ZERO,S=r.ZERO,O=r.ZERO;const k=o.a,j=r.mul(o.b,Ze);let T=r.mul(b,v),H=r.mul(g,A),M=r.mul(x,w),G=r.add(b,g),D=r.add(v,A);G=r.mul(G,D),D=r.add(T,H),G=r.sub(G,D),D=r.add(b,x);let Y=r.add(v,w);return D=r.mul(D,Y),Y=r.add(T,M),D=r.sub(D,Y),Y=r.add(g,x),B=r.add(A,w),Y=r.mul(Y,B),B=r.add(H,M),Y=r.sub(Y,B),O=r.mul(k,D),B=r.mul(j,M),O=r.add(B,O),B=r.sub(H,O),O=r.add(H,O),S=r.mul(B,O),H=r.add(T,T),H=r.add(H,T),M=r.mul(k,M),D=r.mul(j,D),H=r.add(H,M),M=r.sub(T,M),M=r.mul(k,M),D=r.add(D,M),T=r.mul(H,D),S=r.add(S,T),T=r.mul(Y,D),B=r.mul(G,B),B=r.sub(B,T),T=r.mul(G,H),O=r.mul(Y,O),O=r.add(O,T),new N(B,S,O)}subtract(p){return this.add(p.negate())}is0(){return this.equals(N.ZERO)}multiply(p){const{endo:b}=e;if(!s.isValidNot0(p))throw new Error(\"invalid scalar: out of range\");let g,x;const v=A=>C.cached(this,A,w=>Rn(N,w));if(b){const{k1neg:A,k1:w,k2neg:B,k2:S}=F(p),{p:O,f:k}=v(w),{p:j,f:T}=v(S);x=k.add(T),g=L(b.beta,O,j,A,B)}else{const{p:A,f:w}=v(p);g=A,x=w}return Rn(N,[g,x])[0]}multiplyUnsafe(p){const{endo:b}=e,g=this;if(!s.isValid(p))throw new Error(\"invalid scalar: out of range\");if(p===Bt||g.is0())return N.ZERO;if(p===ne)return g;if(C.hasCache(this))return this.multiply(p);if(b){const{k1neg:x,k1:v,k2neg:A,k2:w}=F(p),{p1:B,p2:S}=pc(N,g,v,w);return L(b.beta,B,S,x,A)}else return C.unsafe(g,p)}multiplyAndAddUnsafe(p,b,g){const x=this.multiplyUnsafe(b).add(p.multiplyUnsafe(g));return x.is0()?void 0:x}toAffine(p){return K(this,p)}isTorsionFree(){const{isTorsionFree:p}=e;return i===ne?!0:p?p(N,this):C.unsafe(this,f).is0()}clearCofactor(){const{clearCofactor:p}=e;return i===ne?this:p?p(N,this):this.multiplyUnsafe(i)}isSmallOrder(){return this.multiplyUnsafe(i).is0()}toBytes(p=!0){return De(p,\"isCompressed\"),this.assertValidity(),h(N,this,p)}toHex(p=!0){return Jt(this.toBytes(p))}toString(){return`<Point ${this.is0()?\"ZERO\":this.toHex()}>`}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(p=!0){return this.toBytes(p)}_setWindowSize(p){this.precompute(p)}static normalizeZ(p){return Rn(N,p)}static msm(p,b){return gc(N,s,p,b)}static fromPrivateKey(p){return N.BASE.multiply(re(s,p))}}N.BASE=new N(o.Gx,o.Gy,r.ONE),N.ZERO=new N(r.ZERO,r.ONE,r.ZERO),N.Fp=r,N.Fn=s;const $=s.BITS,C=new hc(N,e.endo?Math.ceil($/2):$);return N.BASE.precompute(8),N}function Ks(t){return Uint8Array.of(t?2:3)}function qs(t,e){return{secretKey:e.BYTES,publicKey:1+t.BYTES,publicKeyUncompressed:1+2*t.BYTES,publicKeyHasPrefix:!0,signature:2*e.BYTES}}function Rc(t,e={}){const{Fn:n}=t,r=e.randomBytes||Kt,s=Object.assign(qs(t.Fp,n),{seed:$s(n.ORDER)});function o(h){try{return!!re(n,h)}catch{return!1}}function i(h,y){const{publicKey:m,publicKeyUncompressed:E}=s;try{const R=h.length;return y===!0&&R!==m||y===!1&&R!==E?!1:!!t.fromBytes(h)}catch{return!1}}function f(h=r(s.seed)){return uc(qt(h,s.seed,\"seed\"),n.ORDER)}function c(h,y=!0){return t.BASE.multiply(re(n,h)).toBytes(y)}function a(h){const y=f(h);return{secretKey:y,publicKey:c(y)}}function u(h){if(typeof h==\"bigint\")return!1;if(h instanceof t)return!0;const{secretKey:y,publicKey:m,publicKeyUncompressed:E}=s;if(n.allowedLengths||y===m)return;const R=tt(\"key\",h).length;return R===m||R===E}function l(h,y,m=!0){if(u(h)===!0)throw new Error(\"first arg must be private key\");if(u(y)===!1)throw new Error(\"second arg must be public key\");const E=re(n,h);return t.fromHex(y).multiply(E).toBytes(m)}return Object.freeze({getPublicKey:c,getSharedSecret:l,keygen:a,Point:t,utils:{isValidSecretKey:o,isValidPublicKey:i,randomSecretKey:f,isValidPrivateKey:o,randomPrivateKey:f,normPrivateKeyToScalar:h=>re(n,h),precompute(h=8,y=t.BASE){return y.precompute(h,!1)}},lengths:s})}function Tc(t,e,n={}){_e(e),Ke(n,{},{hmac:\"function\",lowS:\"boolean\",randomBytes:\"function\",bits2int:\"function\",bits2int_modN:\"function\"});const r=n.randomBytes||Kt,s=n.hmac||((b,...g)=>ke(e,b,_t(...g))),{Fp:o,Fn:i}=t,{ORDER:f,BITS:c}=i,{keygen:a,getPublicKey:u,getSharedSecret:l,utils:d,lengths:h}=Rc(t,n),y={prehash:!1,lowS:typeof n.lowS==\"boolean\"?n.lowS:!1,format:void 0,extraEntropy:!1},m=\"compact\";function E(b){const g=f>>ne;return b>g}function R(b,g){if(!i.isValidNot0(g))throw new Error(`invalid signature ${b}: out of range 1..Point.Fn.ORDER`);return g}function q(b,g){jn(g);const x=h.signature,v=g===\"compact\"?x:g===\"recovered\"?x+1:void 0;return qt(b,v,`${g} signature`)}class _{constructor(g,x,v){this.r=R(\"r\",g),this.s=R(\"s\",x),v!=null&&(this.recovery=v),Object.freeze(this)}static fromBytes(g,x=m){q(g,x);let v;if(x===\"der\"){const{r:S,s:O}=vt.toSig(qt(g));return new _(S,O)}x===\"recovered\"&&(v=g[0],x=\"compact\",g=g.subarray(1));const A=i.BYTES,w=g.subarray(0,A),B=g.subarray(A,A*2);return new _(i.fromBytes(w),i.fromBytes(B),v)}static fromHex(g,x){return this.fromBytes(Re(g),x)}addRecoveryBit(g){return new _(this.r,this.s,g)}recoverPublicKey(g){const x=o.ORDER,{r:v,s:A,recovery:w}=this;if(w==null||![0,1,2,3].includes(w))throw new Error(\"recovery id invalid\");if(f*Ms<x&&w>1)throw new Error(\"recovery id is ambiguous for h>1 curve\");const S=w===2||w===3?v+f:v;if(!o.isValid(S))throw new Error(\"recovery id 2 or 3 invalid\");const O=o.toBytes(S),k=t.fromBytes(_t(Ks((w&1)===0),O)),j=i.inv(S),T=F(tt(\"msgHash\",g)),H=i.create(-T*j),M=i.create(A*j),G=t.BASE.multiplyUnsafe(H).add(k.multiplyUnsafe(M));if(G.is0())throw new Error(\"point at infinify\");return G.assertValidity(),G}hasHighS(){return E(this.s)}toBytes(g=m){if(jn(g),g===\"der\")return Re(vt.hexFromSig(this));const x=i.toBytes(this.r),v=i.toBytes(this.s);if(g===\"recovered\"){if(this.recovery==null)throw new Error(\"recovery bit must be present\");return _t(Uint8Array.of(this.recovery),x,v)}return _t(x,v)}toHex(g){return Jt(this.toBytes(g))}assertValidity(){}static fromCompact(g){return _.fromBytes(tt(\"sig\",g),\"compact\")}static fromDER(g){return _.fromBytes(tt(\"sig\",g),\"der\")}normalizeS(){return this.hasHighS()?new _(this.r,i.neg(this.s),this.recovery):this}toDERRawBytes(){return this.toBytes(\"der\")}toDERHex(){return Jt(this.toBytes(\"der\"))}toCompactRawBytes(){return this.toBytes(\"compact\")}toCompactHex(){return Jt(this.toBytes(\"compact\"))}}const Z=n.bits2int||function(g){if(g.length>8192)throw new Error(\"input is too large\");const x=Ve(g),v=g.length*8-c;return v>0?x>>BigInt(v):x},F=n.bits2int_modN||function(g){return i.create(Z(g))},K=me(c);function V(b){return Un(\"num < 2^\"+c,b,Bt,K),i.toBytes(b)}function L(b,g){return qt(b,void 0,\"message\"),g?qt(e(b),void 0,\"prehashed message\"):b}function N(b,g,x){if([\"recovered\",\"canonical\"].some(H=>H in x))throw new Error(\"sign() legacy options not supported\");const{lowS:v,prehash:A,extraEntropy:w}=kn(x,y);b=L(b,A);const B=F(b),S=re(i,g),O=[V(S),V(B)];if(w!=null&&w!==!1){const H=w===!0?r(h.secretKey):w;O.push(tt(\"extraEntropy\",H))}const k=_t(...O),j=B;function T(H){const M=Z(H);if(!i.isValidNot0(M))return;const G=i.inv(M),D=t.BASE.multiply(M).toAffine(),Y=i.create(D.x);if(Y===Bt)return;const Yt=i.create(G*i.create(j+Y*S));if(Yt===Bt)return;let fe=(D.x===Y?0:2)|Number(D.y&ne),ce=Yt;return v&&E(Yt)&&(ce=i.neg(Yt),fe^=1),new _(Y,ce,fe)}return{seed:k,k2sig:T}}function $(b,g,x={}){b=tt(\"message\",b);const{seed:v,k2sig:A}=N(b,g,x);return ec(e.outputLen,i.BYTES,s)(v,A)}function C(b){let g;const x=typeof b==\"string\"||Ue(b),v=!x&&b!==null&&typeof b==\"object\"&&typeof b.r==\"bigint\"&&typeof b.s==\"bigint\";if(!x&&!v)throw new Error(\"invalid signature, expected Uint8Array, hex string or Signature instance\");if(v)g=new _(b.r,b.s);else if(x){try{g=_.fromBytes(tt(\"sig\",b),\"der\")}catch(A){if(!(A instanceof vt.Err))throw A}if(!g)try{g=_.fromBytes(tt(\"sig\",b),\"compact\")}catch{return!1}}return g||!1}function U(b,g,x,v={}){const{lowS:A,prehash:w,format:B}=kn(v,y);if(x=tt(\"publicKey\",x),g=L(tt(\"message\",g),w),\"strict\"in v)throw new Error(\"options.strict was renamed to lowS\");const S=B===void 0?C(b):_.fromBytes(tt(\"sig\",b),B);if(S===!1)return!1;try{const O=t.fromBytes(x);if(A&&S.hasHighS())return!1;const{r:k,s:j}=S,T=F(g),H=i.inv(j),M=i.create(T*H),G=i.create(k*H),D=t.BASE.multiplyUnsafe(M).add(O.multiplyUnsafe(G));return D.is0()?!1:i.create(D.x)===k}catch{return!1}}function p(b,g,x={}){const{prehash:v}=kn(x,y);return g=L(g,v),_.fromBytes(b,\"recovered\").recoverPublicKey(g).toBytes()}return Object.freeze({keygen:a,getPublicKey:u,getSharedSecret:l,utils:d,lengths:h,Point:t,sign:$,verify:U,recoverPublicKey:p,Signature:_,hash:e})}function $c(t){const e={a:t.a,b:t.b,p:t.Fp.ORDER,n:t.n,h:t.h,Gx:t.Gx,Gy:t.Gy},n=t.Fp;let r=t.allowedPrivateKeyLengths?Array.from(new Set(t.allowedPrivateKeyLengths.map(i=>Math.ceil(i/2)))):void 0;const s=Dt(e.n,{BITS:t.nBitLength,allowedLengths:r,modFromBytes:t.wrapPrivateKey}),o={Fp:n,Fn:s,allowInfinityPoint:t.allowInfinityPoint,endo:t.endo,isTorsionFree:t.isTorsionFree,clearCofactor:t.clearCofactor,fromBytes:t.fromBytes,toBytes:t.toBytes};return{CURVE:e,curveOpts:o}}function Cc(t){const{CURVE:e,curveOpts:n}=$c(t),r={hmac:t.hmac,randomBytes:t.randomBytes,lowS:t.lowS,bits2int:t.bits2int,bits2int_modN:t.bits2int_modN};return{CURVE:e,curveOpts:n,hash:t.hash,ecdsaOpts:r}}function Lc(t,e){const n=e.Point;return Object.assign({},e,{ProjectivePoint:n,CURVE:Object.assign({},t,Rs(n.Fn.ORDER,n.Fn.BITS))})}function jc(t){const{CURVE:e,curveOpts:n,hash:r,ecdsaOpts:s}=Cc(t),o=_c(e,n),i=Tc(o,r,s);return Lc(t,i)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function Hn(t,e){const n=r=>jc({...t,hash:r});return{...n(e),create:n}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Fs={p:BigInt(\"0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff\"),n:BigInt(\"0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551\"),h:BigInt(1),a:BigInt(\"0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc\"),b:BigInt(\"0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b\"),Gx:BigInt(\"0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296\"),Gy:BigInt(\"0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5\")},Zs={p:BigInt(\"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff\"),n:BigInt(\"0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973\"),h:BigInt(1),a:BigInt(\"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc\"),b:BigInt(\"0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef\"),Gx:BigInt(\"0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7\"),Gy:BigInt(\"0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f\")},Gs={p:BigInt(\"0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"),n:BigInt(\"0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409\"),h:BigInt(1),a:BigInt(\"0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc\"),b:BigInt(\"0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00\"),Gx:BigInt(\"0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66\"),Gy:BigInt(\"0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650\")},kc=Dt(Fs.p),Hc=Dt(Zs.p),Dc=Dt(Gs.p),Pc=Hn({...Fs,Fp:kc,lowS:!1},$e);Hn({...Zs,Fp:Hc,lowS:!1},tf),Hn({...Gs,Fp:Dc,lowS:!1,allowedPrivateKeyLengths:[130,131,132]},Qi);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Vc=Pc,Dn=\"base10\",rt=\"base16\",se=\"base64pad\",Ge=\"base64url\",oe=\"utf8\",Pn=0,ie=1,xe=2,Mc=0,zs=1,Ee=12,Vn=32;function Kc(){const t=Ln.utils.randomPrivateKey(),e=Ln.getPublicKey(t);return{privateKey:it(t,rt),publicKey:it(e,rt)}}function qc(){const t=Kt(Vn);return it(t,rt)}function Fc(t,e){const n=Ln.getSharedSecret(at(t,rt),at(e,rt)),r=Qf(He,n,void 0,void 0,Vn);return it(r,rt)}function Zc(t){const e=He(at(t,rt));return it(e,rt)}function Gc(t){const e=He(at(t,oe));return it(e,rt)}function Mn(t){return at(`${t}`,Dn)}function Gt(t){return Number(it(t,Dn))}function Ys(t){return t.replace(/\\+/g,\"-\").replace(/\\//g,\"_\").replace(/=/g,\"\")}function Xs(t){const e=t.replace(/-/g,\"+\").replace(/_/g,\"/\"),n=(4-e.length%4)%4;return e+\"=\".repeat(n)}function zc(t){const e=Mn(typeof t.type<\"u\"?t.type:Pn);if(Gt(e)===ie&&typeof t.senderPublicKey>\"u\")throw new Error(\"Missing sender public key for type 1 envelope\");const n=typeof t.senderPublicKey<\"u\"?at(t.senderPublicKey,rt):void 0,r=typeof t.iv<\"u\"?at(t.iv,rt):Kt(Ee),s=at(t.symKey,rt),o=gs(s,r).encrypt(at(t.message,oe)),i=Kn({type:e,sealed:o,iv:r,senderPublicKey:n});return t.encoding===Ge?Ys(i):i}function Yc(t){const e=at(t.symKey,rt),{sealed:n,iv:r}=ze({encoded:t.encoded,encoding:t.encoding}),s=gs(e,r).decrypt(n);if(s===null)throw new Error(\"Failed to decrypt\");return it(s,oe)}function Xc(t,e){const n=Mn(xe),r=Kt(Ee),s=at(t,oe),o=Kn({type:n,sealed:s,iv:r});return e===Ge?Ys(o):o}function Wc(t,e){const{sealed:n}=ze({encoded:t,encoding:e});return it(n,oe)}function Kn(t){if(Gt(t.type)===xe)return it(le([t.type,t.sealed]),se);if(Gt(t.type)===ie){if(typeof t.senderPublicKey>\"u\")throw new Error(\"Missing sender public key for type 1 envelope\");return it(le([t.type,t.senderPublicKey,t.iv,t.sealed]),se)}return it(le([t.type,t.iv,t.sealed]),se)}function ze(t){const e=(t.encoding||se)===Ge?Xs(t.encoded):t.encoded,n=at(e,se),r=n.slice(Mc,zs),s=zs;if(Gt(r)===ie){const c=s+Vn,a=c+Ee,u=n.slice(s,c),l=n.slice(c,a),d=n.slice(a);return{type:r,sealed:d,iv:l,senderPublicKey:u}}if(Gt(r)===xe){const c=n.slice(s),a=Kt(Ee);return{type:r,sealed:c,iv:a}}const o=s+Ee,i=n.slice(s,o),f=n.slice(o);return{type:r,sealed:f,iv:i}}function Jc(t,e){const n=ze({encoded:t,encoding:e?.encoding});return Ws({type:Gt(n.type),senderPublicKey:typeof n.senderPublicKey<\"u\"?it(n.senderPublicKey,rt):void 0,receiverPublicKey:e?.receiverPublicKey})}function Ws(t){const e=t?.type||Pn;if(e===ie){if(typeof t?.senderPublicKey>\"u\")throw new Error(\"missing sender public key\");if(typeof t?.receiverPublicKey>\"u\")throw new Error(\"missing receiver public key\")}return{type:e,senderPublicKey:t?.senderPublicKey,receiverPublicKey:t?.receiverPublicKey}}function Qc(t){return t.type===ie&&typeof t.senderPublicKey==\"string\"&&typeof t.receiverPublicKey==\"string\"}function ta(t){return t.type===xe}function Js(t){const e=Buffer.from(t.x,\"base64\"),n=Buffer.from(t.y,\"base64\");return le([new Uint8Array([4]),e,n])}function ea(t,e){const[n,r,s]=t.split(\".\"),o=Buffer.from(Xs(s),\"base64\");if(o.length!==64)throw new Error(\"Invalid signature length\");const i=o.slice(0,32),f=o.slice(32,64),c=`${n}.${r}`,a=He(c),u=Js(e);if(!Vc.verify(le([i,f]),a,u))throw new Error(\"Invalid signature\");return Lo(t).payload}const Qs=\"irn\";function na(t){return t?.relay||{protocol:Qs}}function ra(t){const e=jo[t];if(typeof e>\"u\")throw new Error(`Relay Protocol not supported: ${t}`);return e}function to(t,e=\"-\"){const n={},r=\"relay\"+e;return Object.keys(t).forEach(s=>{if(s.startsWith(r)){const o=s.replace(r,\"\"),i=t[s];n[o]=i}}),n}function sa(t){if(!t.includes(\"wc:\")){const a=on(t);a?.includes(\"wc:\")&&(t=a)}t=t.includes(\"wc://\")?t.replace(\"wc://\",\"\"):t,t=t.includes(\"wc:\")?t.replace(\"wc:\",\"\"):t;const e=t.indexOf(\":\"),n=t.indexOf(\"?\")!==-1?t.indexOf(\"?\"):void 0,r=t.substring(0,e),s=t.substring(e+1,n).split(\"@\"),o=typeof n<\"u\"?t.substring(n):\"\",i=new URLSearchParams(o),f=Object.fromEntries(i.entries()),c=typeof f.methods==\"string\"?f.methods.split(\",\"):void 0;return{protocol:r,topic:eo(s[0]),version:parseInt(s[1],10),symKey:f.symKey,relay:to(f),methods:c,expiryTimestamp:f.expiryTimestamp?parseInt(f.expiryTimestamp,10):void 0}}function eo(t){return t.startsWith(\"//\")?t.substring(2):t}function no(t,e=\"-\"){const n=\"relay\",r={};return Object.keys(t).forEach(s=>{const o=s,i=n+e+o;t[o]&&(r[i]=t[o])}),r}function oa(t){const e=new URLSearchParams,n={...no(t.relay),symKey:t.symKey,...t.expiryTimestamp&&{expiryTimestamp:t.expiryTimestamp.toString()},...t.methods&&{methods:t.methods.join(\",\")}};return Object.entries(n).sort(([r],[s])=>r.localeCompare(s)).forEach(([r,s])=>{s!==void 0&&e.append(r,String(s))}),`${t.protocol}:${t.topic}@${t.version}?${e}`}function ia(t,e,n){return`${t}?wc_ev=${n}&topic=${e}`}function zt(t){const e=[];return t.forEach(n=>{const[r,s]=n.split(\":\");e.push(`${r}:${s}`)}),e}function ro(t){const e=[];return Object.values(t).forEach(n=>{e.push(...zt(n.accounts))}),[...new Set(e)]}function fa(t){const e=[];return Object.values(t).forEach(n=>{e.push(...n.methods)}),[...new Set(e)]}function ca(t){const e=[];return Object.values(t).forEach(n=>{e.push(...n.events)}),[...new Set(e)]}function so(t,e){const n=[];return Object.values(t).forEach(r=>{zt(r.accounts).includes(e)&&n.push(...r.methods)}),n}function oo(t,e){const n=[];return Object.values(t).forEach(r=>{zt(r.accounts).includes(e)&&n.push(...r.events)}),n}function aa(t,e){const n=go(t,e);if(n)throw new Error(n.message);const r={};for(const[s,o]of Object.entries(t))r[s]={methods:o.methods,events:o.events,chains:o.accounts.map(i=>`${i.split(\":\")[0]}:${i.split(\":\")[1]}`)};return r}function ua(t){const{proposal:{requiredNamespaces:e,optionalNamespaces:n={}},supportedNamespaces:r}=t,s=ve(e),o=ve(n),i={};Object.keys(r).forEach(a=>{const u=r[a].chains,l=r[a].methods,d=r[a].events,h=r[a].accounts;u.forEach(y=>{if(!h.some(m=>m.includes(y)))throw new Error(`No accounts provided for chain ${y} in namespace ${a}`)}),i[a]={chains:u,methods:l,events:d,accounts:h}});const f=yo(e,i,\"approve()\");if(f)throw new Error(f.message);const c={};if(!Object.keys(e).length&&!Object.keys(n).length)return i;Object.keys(s).forEach(a=>{const u=r[a].chains.filter(y=>s[a]?.chains?.includes(y)),l=r[a].methods.filter(y=>s[a]?.methods?.includes(y)),d=r[a].events.filter(y=>s[a]?.events?.includes(y)),h=u.map(y=>r[a].accounts.filter(m=>m.includes(`${y}:`))).flat();c[a]={chains:u,methods:l,events:d,accounts:h}}),Object.keys(o).forEach(a=>{if(!r[a])return;const u=o[a]?.chains?.filter(y=>r[a].chains.includes(y)),l=r[a].methods.filter(y=>o[a]?.methods?.includes(y)),d=r[a].events.filter(y=>o[a]?.events?.includes(y)),h=u?.map(y=>r[a].accounts.filter(m=>m.includes(`${y}:`))).flat();c[a]={chains:ut(c[a]?.chains,u),methods:ut(c[a]?.methods,l),events:ut(c[a]?.events,d),accounts:ut(c[a]?.accounts,h)}});for(const[a,u]of Object.entries(c))(u.accounts.length===0||u?.chains?.length===0)&&delete c[a];return c}function qn(t){return t.includes(\":\")}function io(t){return qn(t)?t.split(\":\")[0]:t}function ve(t){const e={};if(!Ye(t))return e;for(const[n,r]of Object.entries(t)){const s=qn(n)?[n]:r.chains,o=r.methods||[],i=r.events||[],f=io(n);e[f]={...e[f],chains:ut(s,e[f]?.chains),methods:ut(o,e[f]?.methods),events:ut(i,e[f]?.events)}}return e}function fo(t){const e={};return t?.forEach(n=>{const[r,s]=n.split(\":\");e[r]||(e[r]={accounts:[],chains:[],events:[],methods:[]}),e[r].accounts.push(n),e[r].chains?.push(`${r}:${s}`)}),e}function la(t,e){e=e.map(r=>r.replace(\"did:pkh:\",\"\"));const n=fo(e);for(const[r,s]of Object.entries(n))s.methods?s.methods=ut(s.methods,t):s.methods=t,s.events=[\"chainChanged\",\"accountsChanged\"];return n}function da(t,e){const n=ve(t),r=ve(e),s={},o=Object.keys(n).concat(Object.keys(r));for(const i of o)s[i]={chains:ut(n[i]?.chains,r[i]?.chains),methods:ut(n[i]?.methods,r[i]?.methods),events:ut(n[i]?.events,r[i]?.events)};return s}function Be(t,e){return Array.isArray(t)?typeof e<\"u\"&&t.length?t.every(e):!0:!1}function Ye(t){return Object.getPrototypeOf(t)===Object.prototype&&Object.keys(t).length}function Pt(t){return typeof t>\"u\"}function ct(t,e){return e&&Pt(t)?!0:typeof t==\"string\"&&!!t.trim().length}function Xe(t,e){return e&&Pt(t)?!0:typeof t==\"number\"&&!isNaN(t)}function ha(t,e){const{requiredNamespaces:n}=e,r=Object.keys(t.namespaces),s=Object.keys(n);let o=!0;return St(s,r)?(r.forEach(i=>{const{accounts:f,methods:c,events:a}=t.namespaces[i],u=zt(f),l=n[i];(!St(Ie(i,l),u)||!St(l.methods,c)||!St(l.events,a))&&(o=!1)}),o):!1}function Ae(t){return ct(t,!1)&&t.includes(\":\")?t.split(\":\").length===2:!1}function co(t){if(ct(t,!1)&&t.includes(\":\")){const e=t.split(\":\");if(e.length===3){const n=e[0]+\":\"+e[1];return!!e[2]&&Ae(n)}}return!1}function pa(t){function e(n){try{return typeof new URL(n)<\"u\"}catch{return!1}}try{if(ct(t,!1)){if(e(t))return!0;const n=on(t);return e(n)}}catch{}return!1}function ga(t){return t?.proposer?.publicKey}function ba(t){return t?.topic}function ya(t,e){let n=null;return ct(t?.publicKey,!1)||(n=bt(\"MISSING_OR_INVALID\",`${e} controller public key should be a string`)),n}function Fn(t){let e=!0;return Be(t)?t.length&&(e=t.every(n=>ct(n,!1))):e=!1,e}function ao(t,e,n){let r=null;return Be(e)&&e.length?e.forEach(s=>{r||Ae(s)||(r=Vt(\"UNSUPPORTED_CHAINS\",`${n}, chain ${s} should be a string and conform to \"namespace:chainId\" format`))}):Ae(t)||(r=Vt(\"UNSUPPORTED_CHAINS\",`${n}, chains must be defined as \"namespace:chainId\" e.g. \"eip155:1\": {...} in the namespace key OR as an array of CAIP-2 chainIds e.g. eip155: { chains: [\"eip155:1\", \"eip155:5\"] }`)),r}function uo(t,e,n){let r=null;return Object.entries(t).forEach(([s,o])=>{if(r)return;const i=ao(s,Ie(s,o),`${e} ${n}`);i&&(r=i)}),r}function lo(t,e){let n=null;return Be(t)?t.forEach(r=>{n||co(r)||(n=Vt(\"UNSUPPORTED_ACCOUNTS\",`${e}, account ${r} should be a string and conform to \"namespace:chainId:address\" format`))}):n=Vt(\"UNSUPPORTED_ACCOUNTS\",`${e}, accounts should be an array of strings conforming to \"namespace:chainId:address\" format`),n}function ho(t,e){let n=null;return Object.values(t).forEach(r=>{if(n)return;const s=lo(r?.accounts,`${e} namespace`);s&&(n=s)}),n}function po(t,e){let n=null;return Fn(t?.methods)?Fn(t?.events)||(n=Vt(\"UNSUPPORTED_EVENTS\",`${e}, events should be an array of strings or empty array for no events`)):n=Vt(\"UNSUPPORTED_METHODS\",`${e}, methods should be an array of strings or empty array for no methods`),n}function Zn(t,e){let n=null;return Object.values(t).forEach(r=>{if(n)return;const s=po(r,`${e}, namespace`);s&&(n=s)}),n}function ma(t,e,n){let r=null;if(t&&Ye(t)){const s=Zn(t,e);s&&(r=s);const o=uo(t,e,n);o&&(r=o)}else r=bt(\"MISSING_OR_INVALID\",`${e}, ${n} should be an object with data`);return r}function go(t,e){let n=null;if(t&&Ye(t)){const r=Zn(t,e);r&&(n=r);const s=ho(t,e);s&&(n=s)}else n=bt(\"MISSING_OR_INVALID\",`${e}, namespaces should be an object with data`);return n}function bo(t){return ct(t.protocol,!0)}function wa(t,e){let n=!1;return e&&!t?n=!0:t&&Be(t)&&t.length&&t.forEach(r=>{n=bo(r)}),n}function xa(t){return typeof t==\"number\"}function Ea(t){return typeof t<\"u\"&&typeof t!==null}function va(t){return!(!t||typeof t!=\"object\"||!t.code||!Xe(t.code,!1)||!t.message||!ct(t.message,!1))}function Ba(t){return!(Pt(t)||!ct(t.method,!1))}function Aa(t){return!(Pt(t)||Pt(t.result)&&Pt(t.error)||!Xe(t.id,!1)||!ct(t.jsonrpc,!1))}function Sa(t){return!(Pt(t)||!ct(t.name,!1))}function Ia(t,e){return!(!Ae(e)||!ro(t).includes(e))}function Na(t,e,n){return ct(n,!1)?so(t,e).includes(n):!1}function Oa(t,e,n){return ct(n,!1)?oo(t,e).includes(n):!1}function yo(t,e,n){let r=null;const s=Ua(t),o=_a(e),i=Object.keys(s),f=Object.keys(o),c=mo(Object.keys(t)),a=mo(Object.keys(e)),u=c.filter(l=>!a.includes(l));return u.length&&(r=bt(\"NON_CONFORMING_NAMESPACES\",`${n} namespaces keys don't satisfy requiredNamespaces.\n Required: ${u.toString()}\n Received: ${Object.keys(e).toString()}`)),St(i,f)||(r=bt(\"NON_CONFORMING_NAMESPACES\",`${n} namespaces chains don't satisfy required namespaces.\n Required: ${i.toString()}\n Approved: ${f.toString()}`)),Object.keys(e).forEach(l=>{if(!l.includes(\":\")||r)return;const d=zt(e[l].accounts);d.includes(l)||(r=bt(\"NON_CONFORMING_NAMESPACES\",`${n} namespaces accounts don't satisfy namespace accounts for ${l}\n Required: ${l}\n Approved: ${d.toString()}`))}),i.forEach(l=>{r||(St(s[l].methods,o[l].methods)?St(s[l].events,o[l].events)||(r=bt(\"NON_CONFORMING_NAMESPACES\",`${n} namespaces events don't satisfy namespace events for ${l}`)):r=bt(\"NON_CONFORMING_NAMESPACES\",`${n} namespaces methods don't satisfy namespace methods for ${l}`))}),r}function Ua(t){const e={};return Object.keys(t).forEach(n=>{n.includes(\":\")?e[n]=t[n]:t[n].chains?.forEach(r=>{e[r]={methods:t[n].methods,events:t[n].events}})}),e}function mo(t){return[...new Set(t.map(e=>e.includes(\":\")?e.split(\":\")[0]:e))]}function _a(t){const e={};return Object.keys(t).forEach(n=>{n.includes(\":\")?e[n]=t[n]:zt(t[n].accounts)?.forEach(r=>{e[r]={accounts:t[n].accounts.filter(s=>s.includes(`${r}:`)),methods:t[n].methods,events:t[n].events}})}),e}function Ra(t,e){return Xe(t,!1)&&t<=e.max&&t>=e.min}function Ta(){const t=Mt();return new Promise(e=>{switch(t){case et.browser:e(wo());break;case et.reactNative:e(xo());break;case et.node:e(Eo());break;default:e(!0)}})}function wo(){return Xt()&&navigator?.onLine}async function xo(){return At()&&typeof global<\"u\"&&global?.NetInfo?(await global?.NetInfo.fetch())?.isConnected:!0}function Eo(){return!0}function $a(t){switch(Mt()){case et.browser:vo(t);break;case et.reactNative:Bo(t);break;case et.node:break}}function vo(t){!At()&&Xt()&&(window.addEventListener(\"online\",()=>t(!0)),window.addEventListener(\"offline\",()=>t(!1)))}function Bo(t){At()&&typeof global<\"u\"&&global?.NetInfo&&global?.NetInfo.addEventListener(e=>t(e?.isConnected))}function Ca(){return Xt()&&ae()?ae()?.visibilityState===\"visible\":!0}const Gn={};class La{static get(e){return Gn[e]}static set(e,n){Gn[e]=n}static delete(e){delete Gn[e]}}function Ao(t){const e=ue.decode(t);if(e.length<33)throw new Error(\"Too short to contain a public key\");return e.slice(1,33)}function So({publicKey:t,signature:e,payload:n}){const r=zn(n.method),s=128|parseInt(n.version?.toString()||\"4\"),o=ka(n.address),i=n.era===\"00\"?new Uint8Array([0]):zn(n.era);if(i.length!==1&&i.length!==2)throw new Error(\"Invalid era length\");const f=parseInt(n.nonce,16),c=new Uint8Array([f&255,f>>8&255]),a=BigInt(`0x${ja(n.tip)}`),u=Da(a),l=new Uint8Array([0,...t,o,...e,...i,...c,...u,...r]),d=Ha(l.length+1);return new Uint8Array([...d,s,...l])}function Io(t){const e=zn(t),n=ko(e,void 0,32);return\"0x\"+Buffer.from(n).toString(\"hex\")}function zn(t){return new Uint8Array(t.replace(/^0x/,\"\").match(/.{1,2}/g).map(e=>parseInt(e,16)))}function ja(t){return t.startsWith(\"0x\")?t.slice(2):t}function ka(t){const e=ue.decode(t)[0];return e===42?0:e===60?2:1}function Ha(t){if(t<64)return new Uint8Array([t<<2]);if(t<16384){const e=t<<2|1;return new Uint8Array([e&255,e>>8&255])}else if(t<1<<30){const e=t<<2|2;return new Uint8Array([e&255,e>>8&255,e>>16&255,e>>24&255])}else throw new Error(\"Compact encoding > 2^30 not supported\")}function Da(t){if(t<1n<<6n)return new Uint8Array([Number(t<<2n)]);if(t<1n<<14n){const e=t<<2n|0x01n;return new Uint8Array([Number(e&0xffn),Number(e>>8n&0xffn)])}else if(t<1n<<30n){const e=t<<2n|0x02n;return new Uint8Array([Number(e&0xffn),Number(e>>8n&0xffn),Number(e>>16n&0xffn),Number(e>>24n&0xffn)])}else throw new Error(\"BigInt compact encoding not supported > 2^30\")}function Pa(t){const e=Uint8Array.from(Buffer.from(t.signature,\"hex\")),n=Ao(t.transaction.address),r=So({publicKey:n,signature:e,payload:t.transaction}),s=Buffer.from(r).toString(\"hex\");return Io(s)}function Va({logger:t,name:e}){const n=typeof t==\"string\"?Ho({opts:{level:t,name:e}}).logger:t;return n.level=typeof t==\"string\"?t:t.level,n}export{Dn as BASE10,rt as BASE16,se as BASE64,Ge as BASE64URL,qo as COLON,en as DEFAULT_DEPTH,Ne as EMPTY_SPACE,et as ENV_MAP,fr as INTERNAL_ERRORS,xi as LimitedSet,La as MemoryStore,Fo as ONE_THOUSAND,cr as REACT_NATIVE_PRODUCT,Qs as RELAYER_DEFAULT_PROTOCOL,ir as SDK_ERRORS,ur as SDK_TYPE,ar as SLASH,Pn as TYPE_0,ie as TYPE_1,xe as TYPE_2,oe as UTF8,rs as addResourceToRecap,So as addSignatureToExtrinsic,lr as appendToQueryString,Qo as assertType,gn as assignAbilityToActions,es as base64Decode,ts as base64Encode,ua as buildApprovedNamespaces,wf as buildAuthObject,la as buildNamespacesFromAuth,os as buildRecapStatement,Pa as buildSignedExtrinsicHash,li as calcExpiry,oi as capitalize,mr as capitalizeWord,ii as createDelayedPromise,Bf as createEncodedRecap,fi as createExpiringPromise,Va as createLogger,ns as createRecap,kt as decodeRecap,Gt as decodeTypeByte,Wc as decodeTypeTwoEnvelope,Yc as decrypt,Io as deriveExtrinsicHash,Fc as deriveSymKey,ze as deserialize,Ce as encodeRecap,Mn as encodeTypeByte,Xc as encodeTypeTwoEnvelope,zc as encrypt,hi as engineEvent,si as enumify,uf as extractSolanaTransactionId,nr as formatAccountId,Do as formatAccountWithChain,er as formatChainId,wr as formatDeeplinkUrl,rn as formatExpirerTarget,ai as formatIdTarget,Xr as formatMessage,ti as formatMessageContext,no as formatRelayParams,Wo as formatRelayRpcUrl,yn as formatStatementFromRecap,ci as formatTopicTarget,gr as formatUA,oa as formatUri,on as fromBase64,Kc as generateKeyPair,qc as generateRandomBytes32,zt as getAccountsChains,Vo as getAccountsFromNamespaces,rr as getAddressFromAccount,Po as getAddressesFromAccounts,hf as getAlgorandTransactionId,zo as getAppId,dr as getAppMetadata,wo as getBrowserOnlineStatus,sr as getChainFromAccount,or as getChainsFromAccounts,Ie as getChainsFromNamespace,Mo as getChainsFromNamespaces,If as getChainsFromRecap,Ko as getChainsFromRequiredNamespaces,sn as getCommonValuesInArrays,Js as getCryptoKeyFromKeyData,Wr as getDecodedRecapFromResources,gi as getDeepLink,pn as getDidAddress,zr as getDidAddressNamespace,ye as getDidAddressSegments,Gr as getDidChainId,Mt as getEnvironment,Jo as getHttpUrl,bt as getInternalError,pr as getJavascriptID,hr as getJavascriptOS,yr as getLastItems,ia as getLinkModeURL,Sf as getMethodsFromRecap,Yr as getNamespacedDidChainId,ro as getNamespacesChains,ca as getNamespacesEvents,oo as getNamespacesEventsForChainId,fo as getNamespacesFromAccounts,fa as getNamespacesMethods,so as getNamespacesMethodsForChainId,df as getNearTransactionIdFromSignedTransaction,Fr as getNearUint8ArrayFromBytes,Eo as getNodeOnlineStatus,Qr as getReCapActions,xo as getReactNativeOnlineStatus,vf as getRecapAbilitiesFromResource,Le as getRecapFromResources,Jr as getRecapResource,Xo as getRelayClientMetadata,ra as getRelayProtocolApi,na as getRelayProtocolName,aa as getRequiredNamespacesFromNamespaces,Vt as getSdkError,bi as getSearchParamFromURL,pf as getSignDirectHash,lf as getSuiDigest,tn as getUniqueValues,gf as getWalletSendCallsHashes,pi as handleDeeplinkRedirect,St as hasOverlap,dn as hashEthereumMessage,Zc as hashKey,Gc as hashMessage,Zo as isAndroid,Ca as isAppVisible,Xt as isBrowser,qn as isCaipNamespace,yo as isConformingNamespaces,di as isExpired,vr as isIframe,Go as isIos,nn as isNode,Ta as isOnline,ga as isProposalStruct,At as isReactNative,bn as isRecap,ha as isSessionCompatible,ba as isSessionStruct,Er as isTelegram,mi as isTestRun,Qc as isTypeOneEnvelope,ta as isTypeTwoEnvelope,Pt as isUndefined,co as isValidAccountId,lo as isValidAccounts,po as isValidActions,Be as isValidArray,Ae as isValidChainId,ao as isValidChains,ya as isValidController,qr as isValidEip1271Signature,Kr as isValidEip191Signature,va as isValidErrorReason,Sa as isValidEvent,xa as isValidId,ho as isValidNamespaceAccounts,Zn as isValidNamespaceActions,uo as isValidNamespaceChains,Fn as isValidNamespaceMethodsOrEvents,go as isValidNamespaces,Ia as isValidNamespacesChainId,Oa as isValidNamespacesEvent,Na as isValidNamespacesRequest,Xe as isValidNumber,Ye as isValidObject,Ea as isValidParams,mt as isValidRecap,bo as isValidRelay,wa as isValidRelays,Ba as isValidRequest,Ra as isValidRequestExpiry,ma as isValidRequiredNamespaces,Aa as isValidResponse,ct as isValidString,pa as isValidUrl,ri as mapEntries,ei as mapToObj,ut as mergeArrays,Af as mergeEncodedRecaps,ss as mergeRecaps,da as mergeRequiredAndOptionalNamespaces,ve as normalizeNamespaces,ni as objToMap,xr as openDeeplink,Qe as parseAccountId,Je as parseChainId,br as parseContextNames,ui as parseExpirerTarget,io as parseNamespaceKey,to as parseRelayParams,eo as parseTopic,sa as parseUri,Yo as populateAppMetadata,xf as populateAuthPayload,Ef as recapHasResource,Kn as serialize,wi as sleep,Ao as ss58AddressToPublicKey,vo as subscribeToBrowserNetworkChange,$a as subscribeToNetworkChange,Bo as subscribeToReactNativeNetworkChange,Br as toBase64,yi as uuidv4,Jc as validateDecoding,Ws as validateEncoding,mf as validateSignedCacao,ea as verifyP256Jwt,Mr as verifySignature};\n//# sourceMappingURL=index.js.map\n","export class IEvents {\n}\n//# sourceMappingURL=events.js.map","import{EventEmitter as a}from\"events\";import{FIVE_SECONDS as o,toMiliseconds as l}from\"@walletconnect/time\";import{IEvents as v}from\"@walletconnect/events\";class n extends v{constructor(e){super()}}const s=o,r={pulse:\"heartbeat_pulse\"};class i extends n{constructor(e){super(e),this.events=new a,this.interval=s,this.interval=e?.interval||s}static async init(e){const t=new i(e);return await t.init(),t}async init(){await this.initialize()}stop(){clearInterval(this.intervalRef)}on(e,t){this.events.on(e,t)}once(e,t){this.events.once(e,t)}off(e,t){this.events.off(e,t)}removeListener(e,t){this.events.removeListener(e,t)}async initialize(){this.intervalRef=setInterval(()=>this.pulse(),l(this.interval))}pulse(){this.events.emit(r.pulse)}}export{r as HEARTBEAT_EVENTS,s as HEARTBEAT_INTERVAL,i as HeartBeat,n as IHeartBeat};\n//# sourceMappingURL=index.es.js.map\n","const suspectProtoRx = /\"(?:_|\\\\u0{2}5[Ff]){2}(?:p|\\\\u0{2}70)(?:r|\\\\u0{2}72)(?:o|\\\\u0{2}6[Ff])(?:t|\\\\u0{2}74)(?:o|\\\\u0{2}6[Ff])(?:_|\\\\u0{2}5[Ff]){2}\"\\s*:/;\nconst suspectConstructorRx = /\"(?:c|\\\\u0063)(?:o|\\\\u006[Ff])(?:n|\\\\u006[Ee])(?:s|\\\\u0073)(?:t|\\\\u0074)(?:r|\\\\u0072)(?:u|\\\\u0075)(?:c|\\\\u0063)(?:t|\\\\u0074)(?:o|\\\\u006[Ff])(?:r|\\\\u0072)\"\\s*:/;\nconst JsonSigRx = /^\\s*[\"[{]|^\\s*-?\\d{1,16}(\\.\\d{1,17})?([Ee][+-]?\\d+)?\\s*$/;\nfunction jsonParseTransform(key, value) {\n if (key === \"__proto__\" || key === \"constructor\" && value && typeof value === \"object\" && \"prototype\" in value) {\n warnKeyDropped(key);\n return;\n }\n return value;\n}\nfunction warnKeyDropped(key) {\n console.warn(`[destr] Dropping \"${key}\" key to prevent prototype pollution.`);\n}\nfunction destr(value, options = {}) {\n if (typeof value !== \"string\") {\n return value;\n }\n if (value[0] === '\"' && value[value.length - 1] === '\"' && value.indexOf(\"\\\\\") === -1) {\n return value.slice(1, -1);\n }\n const _value = value.trim();\n if (_value.length <= 9) {\n switch (_value.toLowerCase()) {\n case \"true\": {\n return true;\n }\n case \"false\": {\n return false;\n }\n case \"undefined\": {\n return void 0;\n }\n case \"null\": {\n return null;\n }\n case \"nan\": {\n return Number.NaN;\n }\n case \"infinity\": {\n return Number.POSITIVE_INFINITY;\n }\n case \"-infinity\": {\n return Number.NEGATIVE_INFINITY;\n }\n }\n }\n if (!JsonSigRx.test(value)) {\n if (options.strict) {\n throw new SyntaxError(\"[destr] Invalid JSON\");\n }\n return value;\n }\n try {\n if (suspectProtoRx.test(value) || suspectConstructorRx.test(value)) {\n if (options.strict) {\n throw new Error(\"[destr] Possible prototype pollution\");\n }\n return JSON.parse(value, jsonParseTransform);\n }\n return JSON.parse(value);\n } catch (error) {\n if (options.strict) {\n throw error;\n }\n return value;\n }\n}\nfunction safeDestr(value, options = {}) {\n return destr(value, { ...options, strict: true });\n}\n\nexport { destr as default, destr, safeDestr };\n","function wrapToPromise(value) {\n if (!value || typeof value.then !== \"function\") {\n return Promise.resolve(value);\n }\n return value;\n}\nfunction asyncCall(function_, ...arguments_) {\n try {\n return wrapToPromise(function_(...arguments_));\n } catch (error) {\n return Promise.reject(error);\n }\n}\nfunction isPrimitive(value) {\n const type = typeof value;\n return value === null || type !== \"object\" && type !== \"function\";\n}\nfunction isPureObject(value) {\n const proto = Object.getPrototypeOf(value);\n return !proto || proto.isPrototypeOf(Object);\n}\nfunction stringify(value) {\n if (isPrimitive(value)) {\n return String(value);\n }\n if (isPureObject(value) || Array.isArray(value)) {\n return JSON.stringify(value);\n }\n if (typeof value.toJSON === \"function\") {\n return stringify(value.toJSON());\n }\n throw new Error(\"[unstorage] Cannot stringify value!\");\n}\nconst BASE64_PREFIX = \"base64:\";\nfunction serializeRaw(value) {\n if (typeof value === \"string\") {\n return value;\n }\n return BASE64_PREFIX + base64Encode(value);\n}\nfunction deserializeRaw(value) {\n if (typeof value !== \"string\") {\n return value;\n }\n if (!value.startsWith(BASE64_PREFIX)) {\n return value;\n }\n return base64Decode(value.slice(BASE64_PREFIX.length));\n}\nfunction base64Decode(input) {\n if (globalThis.Buffer) {\n return Buffer.from(input, \"base64\");\n }\n return Uint8Array.from(\n globalThis.atob(input),\n (c) => c.codePointAt(0)\n );\n}\nfunction base64Encode(input) {\n if (globalThis.Buffer) {\n return Buffer.from(input).toString(\"base64\");\n }\n return globalThis.btoa(String.fromCodePoint(...input));\n}\n\nconst storageKeyProperties = [\n \"has\",\n \"hasItem\",\n \"get\",\n \"getItem\",\n \"getItemRaw\",\n \"set\",\n \"setItem\",\n \"setItemRaw\",\n \"del\",\n \"remove\",\n \"removeItem\",\n \"getMeta\",\n \"setMeta\",\n \"removeMeta\",\n \"getKeys\",\n \"clear\",\n \"mount\",\n \"unmount\"\n];\nfunction prefixStorage(storage, base) {\n base = normalizeBaseKey(base);\n if (!base) {\n return storage;\n }\n const nsStorage = { ...storage };\n for (const property of storageKeyProperties) {\n nsStorage[property] = (key = \"\", ...args) => (\n // @ts-ignore\n storage[property](base + key, ...args)\n );\n }\n nsStorage.getKeys = (key = \"\", ...arguments_) => storage.getKeys(base + key, ...arguments_).then((keys) => keys.map((key2) => key2.slice(base.length)));\n nsStorage.keys = nsStorage.getKeys;\n nsStorage.getItems = async (items, commonOptions) => {\n const prefixedItems = items.map(\n (item) => typeof item === \"string\" ? base + item : { ...item, key: base + item.key }\n );\n const results = await storage.getItems(prefixedItems, commonOptions);\n return results.map((entry) => ({\n key: entry.key.slice(base.length),\n value: entry.value\n }));\n };\n nsStorage.setItems = async (items, commonOptions) => {\n const prefixedItems = items.map((item) => ({\n key: base + item.key,\n value: item.value,\n options: item.options\n }));\n return storage.setItems(prefixedItems, commonOptions);\n };\n return nsStorage;\n}\nfunction normalizeKey(key) {\n if (!key) {\n return \"\";\n }\n return key.split(\"?\")[0]?.replace(/[/\\\\]/g, \":\").replace(/:+/g, \":\").replace(/^:|:$/g, \"\") || \"\";\n}\nfunction joinKeys(...keys) {\n return normalizeKey(keys.join(\":\"));\n}\nfunction normalizeBaseKey(base) {\n base = normalizeKey(base);\n return base ? base + \":\" : \"\";\n}\nfunction filterKeyByDepth(key, depth) {\n if (depth === void 0) {\n return true;\n }\n let substrCount = 0;\n let index = key.indexOf(\":\");\n while (index > -1) {\n substrCount++;\n index = key.indexOf(\":\", index + 1);\n }\n return substrCount <= depth;\n}\nfunction filterKeyByBase(key, base) {\n if (base) {\n return key.startsWith(base) && key[key.length - 1] !== \"$\";\n }\n return key[key.length - 1] !== \"$\";\n}\n\nexport { normalizeKey as a, asyncCall as b, filterKeyByBase as c, stringify as d, deserializeRaw as e, filterKeyByDepth as f, joinKeys as j, normalizeBaseKey as n, prefixStorage as p, serializeRaw as s };\n","import destr from 'destr';\nimport { n as normalizeBaseKey, a as normalizeKey, b as asyncCall, f as filterKeyByDepth, c as filterKeyByBase, s as serializeRaw, d as stringify, e as deserializeRaw, j as joinKeys } from './shared/unstorage.zVDD2mZo.mjs';\nexport { p as prefixStorage } from './shared/unstorage.zVDD2mZo.mjs';\n\nfunction defineDriver(factory) {\n return factory;\n}\n\nconst DRIVER_NAME = \"memory\";\nconst memory = defineDriver(() => {\n const data = /* @__PURE__ */ new Map();\n return {\n name: DRIVER_NAME,\n getInstance: () => data,\n hasItem(key) {\n return data.has(key);\n },\n getItem(key) {\n return data.get(key) ?? null;\n },\n getItemRaw(key) {\n return data.get(key) ?? null;\n },\n setItem(key, value) {\n data.set(key, value);\n },\n setItemRaw(key, value) {\n data.set(key, value);\n },\n removeItem(key) {\n data.delete(key);\n },\n getKeys() {\n return [...data.keys()];\n },\n clear() {\n data.clear();\n },\n dispose() {\n data.clear();\n }\n };\n});\n\nfunction createStorage(options = {}) {\n const context = {\n mounts: { \"\": options.driver || memory() },\n mountpoints: [\"\"],\n watching: false,\n watchListeners: [],\n unwatch: {}\n };\n const getMount = (key) => {\n for (const base of context.mountpoints) {\n if (key.startsWith(base)) {\n return {\n base,\n relativeKey: key.slice(base.length),\n driver: context.mounts[base]\n };\n }\n }\n return {\n base: \"\",\n relativeKey: key,\n driver: context.mounts[\"\"]\n };\n };\n const getMounts = (base, includeParent) => {\n return context.mountpoints.filter(\n (mountpoint) => mountpoint.startsWith(base) || includeParent && base.startsWith(mountpoint)\n ).map((mountpoint) => ({\n relativeBase: base.length > mountpoint.length ? base.slice(mountpoint.length) : void 0,\n mountpoint,\n driver: context.mounts[mountpoint]\n }));\n };\n const onChange = (event, key) => {\n if (!context.watching) {\n return;\n }\n key = normalizeKey(key);\n for (const listener of context.watchListeners) {\n listener(event, key);\n }\n };\n const startWatch = async () => {\n if (context.watching) {\n return;\n }\n context.watching = true;\n for (const mountpoint in context.mounts) {\n context.unwatch[mountpoint] = await watch(\n context.mounts[mountpoint],\n onChange,\n mountpoint\n );\n }\n };\n const stopWatch = async () => {\n if (!context.watching) {\n return;\n }\n for (const mountpoint in context.unwatch) {\n await context.unwatch[mountpoint]();\n }\n context.unwatch = {};\n context.watching = false;\n };\n const runBatch = (items, commonOptions, cb) => {\n const batches = /* @__PURE__ */ new Map();\n const getBatch = (mount) => {\n let batch = batches.get(mount.base);\n if (!batch) {\n batch = {\n driver: mount.driver,\n base: mount.base,\n items: []\n };\n batches.set(mount.base, batch);\n }\n return batch;\n };\n for (const item of items) {\n const isStringItem = typeof item === \"string\";\n const key = normalizeKey(isStringItem ? item : item.key);\n const value = isStringItem ? void 0 : item.value;\n const options2 = isStringItem || !item.options ? commonOptions : { ...commonOptions, ...item.options };\n const mount = getMount(key);\n getBatch(mount).items.push({\n key,\n value,\n relativeKey: mount.relativeKey,\n options: options2\n });\n }\n return Promise.all([...batches.values()].map((batch) => cb(batch))).then(\n (r) => r.flat()\n );\n };\n const storage = {\n // Item\n hasItem(key, opts = {}) {\n key = normalizeKey(key);\n const { relativeKey, driver } = getMount(key);\n return asyncCall(driver.hasItem, relativeKey, opts);\n },\n getItem(key, opts = {}) {\n key = normalizeKey(key);\n const { relativeKey, driver } = getMount(key);\n return asyncCall(driver.getItem, relativeKey, opts).then(\n (value) => destr(value)\n );\n },\n getItems(items, commonOptions = {}) {\n return runBatch(items, commonOptions, (batch) => {\n if (batch.driver.getItems) {\n return asyncCall(\n batch.driver.getItems,\n batch.items.map((item) => ({\n key: item.relativeKey,\n options: item.options\n })),\n commonOptions\n ).then(\n (r) => r.map((item) => ({\n key: joinKeys(batch.base, item.key),\n value: destr(item.value)\n }))\n );\n }\n return Promise.all(\n batch.items.map((item) => {\n return asyncCall(\n batch.driver.getItem,\n item.relativeKey,\n item.options\n ).then((value) => ({\n key: item.key,\n value: destr(value)\n }));\n })\n );\n });\n },\n getItemRaw(key, opts = {}) {\n key = normalizeKey(key);\n const { relativeKey, driver } = getMount(key);\n if (driver.getItemRaw) {\n return asyncCall(driver.getItemRaw, relativeKey, opts);\n }\n return asyncCall(driver.getItem, relativeKey, opts).then(\n (value) => deserializeRaw(value)\n );\n },\n async setItem(key, value, opts = {}) {\n if (value === void 0) {\n return storage.removeItem(key);\n }\n key = normalizeKey(key);\n const { relativeKey, driver } = getMount(key);\n if (!driver.setItem) {\n return;\n }\n await asyncCall(driver.setItem, relativeKey, stringify(value), opts);\n if (!driver.watch) {\n onChange(\"update\", key);\n }\n },\n async setItems(items, commonOptions) {\n await runBatch(items, commonOptions, async (batch) => {\n if (batch.driver.setItems) {\n return asyncCall(\n batch.driver.setItems,\n batch.items.map((item) => ({\n key: item.relativeKey,\n value: stringify(item.value),\n options: item.options\n })),\n commonOptions\n );\n }\n if (!batch.driver.setItem) {\n return;\n }\n await Promise.all(\n batch.items.map((item) => {\n return asyncCall(\n batch.driver.setItem,\n item.relativeKey,\n stringify(item.value),\n item.options\n );\n })\n );\n });\n },\n async setItemRaw(key, value, opts = {}) {\n if (value === void 0) {\n return storage.removeItem(key, opts);\n }\n key = normalizeKey(key);\n const { relativeKey, driver } = getMount(key);\n if (driver.setItemRaw) {\n await asyncCall(driver.setItemRaw, relativeKey, value, opts);\n } else if (driver.setItem) {\n await asyncCall(driver.setItem, relativeKey, serializeRaw(value), opts);\n } else {\n return;\n }\n if (!driver.watch) {\n onChange(\"update\", key);\n }\n },\n async removeItem(key, opts = {}) {\n if (typeof opts === \"boolean\") {\n opts = { removeMeta: opts };\n }\n key = normalizeKey(key);\n const { relativeKey, driver } = getMount(key);\n if (!driver.removeItem) {\n return;\n }\n await asyncCall(driver.removeItem, relativeKey, opts);\n if (opts.removeMeta || opts.removeMata) {\n await asyncCall(driver.removeItem, relativeKey + \"$\", opts);\n }\n if (!driver.watch) {\n onChange(\"remove\", key);\n }\n },\n // Meta\n async getMeta(key, opts = {}) {\n if (typeof opts === \"boolean\") {\n opts = { nativeOnly: opts };\n }\n key = normalizeKey(key);\n const { relativeKey, driver } = getMount(key);\n const meta = /* @__PURE__ */ Object.create(null);\n if (driver.getMeta) {\n Object.assign(meta, await asyncCall(driver.getMeta, relativeKey, opts));\n }\n if (!opts.nativeOnly) {\n const value = await asyncCall(\n driver.getItem,\n relativeKey + \"$\",\n opts\n ).then((value_) => destr(value_));\n if (value && typeof value === \"object\") {\n if (typeof value.atime === \"string\") {\n value.atime = new Date(value.atime);\n }\n if (typeof value.mtime === \"string\") {\n value.mtime = new Date(value.mtime);\n }\n Object.assign(meta, value);\n }\n }\n return meta;\n },\n setMeta(key, value, opts = {}) {\n return this.setItem(key + \"$\", value, opts);\n },\n removeMeta(key, opts = {}) {\n return this.removeItem(key + \"$\", opts);\n },\n // Keys\n async getKeys(base, opts = {}) {\n base = normalizeBaseKey(base);\n const mounts = getMounts(base, true);\n let maskedMounts = [];\n const allKeys = [];\n let allMountsSupportMaxDepth = true;\n for (const mount of mounts) {\n if (!mount.driver.flags?.maxDepth) {\n allMountsSupportMaxDepth = false;\n }\n const rawKeys = await asyncCall(\n mount.driver.getKeys,\n mount.relativeBase,\n opts\n );\n for (const key of rawKeys) {\n const fullKey = mount.mountpoint + normalizeKey(key);\n if (!maskedMounts.some((p) => fullKey.startsWith(p))) {\n allKeys.push(fullKey);\n }\n }\n maskedMounts = [\n mount.mountpoint,\n ...maskedMounts.filter((p) => !p.startsWith(mount.mountpoint))\n ];\n }\n const shouldFilterByDepth = opts.maxDepth !== void 0 && !allMountsSupportMaxDepth;\n return allKeys.filter(\n (key) => (!shouldFilterByDepth || filterKeyByDepth(key, opts.maxDepth)) && filterKeyByBase(key, base)\n );\n },\n // Utils\n async clear(base, opts = {}) {\n base = normalizeBaseKey(base);\n await Promise.all(\n getMounts(base, false).map(async (m) => {\n if (m.driver.clear) {\n return asyncCall(m.driver.clear, m.relativeBase, opts);\n }\n if (m.driver.removeItem) {\n const keys = await m.driver.getKeys(m.relativeBase || \"\", opts);\n return Promise.all(\n keys.map((key) => m.driver.removeItem(key, opts))\n );\n }\n })\n );\n },\n async dispose() {\n await Promise.all(\n Object.values(context.mounts).map((driver) => dispose(driver))\n );\n },\n async watch(callback) {\n await startWatch();\n context.watchListeners.push(callback);\n return async () => {\n context.watchListeners = context.watchListeners.filter(\n (listener) => listener !== callback\n );\n if (context.watchListeners.length === 0) {\n await stopWatch();\n }\n };\n },\n async unwatch() {\n context.watchListeners = [];\n await stopWatch();\n },\n // Mount\n mount(base, driver) {\n base = normalizeBaseKey(base);\n if (base && context.mounts[base]) {\n throw new Error(`already mounted at ${base}`);\n }\n if (base) {\n context.mountpoints.push(base);\n context.mountpoints.sort((a, b) => b.length - a.length);\n }\n context.mounts[base] = driver;\n if (context.watching) {\n Promise.resolve(watch(driver, onChange, base)).then((unwatcher) => {\n context.unwatch[base] = unwatcher;\n }).catch(console.error);\n }\n return storage;\n },\n async unmount(base, _dispose = true) {\n base = normalizeBaseKey(base);\n if (!base || !context.mounts[base]) {\n return;\n }\n if (context.watching && base in context.unwatch) {\n context.unwatch[base]?.();\n delete context.unwatch[base];\n }\n if (_dispose) {\n await dispose(context.mounts[base]);\n }\n context.mountpoints = context.mountpoints.filter((key) => key !== base);\n delete context.mounts[base];\n },\n getMount(key = \"\") {\n key = normalizeKey(key) + \":\";\n const m = getMount(key);\n return {\n driver: m.driver,\n base: m.base\n };\n },\n getMounts(base = \"\", opts = {}) {\n base = normalizeKey(base);\n const mounts = getMounts(base, opts.parents);\n return mounts.map((m) => ({\n driver: m.driver,\n base: m.mountpoint\n }));\n },\n // Aliases\n keys: (base, opts = {}) => storage.getKeys(base, opts),\n get: (key, opts = {}) => storage.getItem(key, opts),\n set: (key, value, opts = {}) => storage.setItem(key, value, opts),\n has: (key, opts = {}) => storage.hasItem(key, opts),\n del: (key, opts = {}) => storage.removeItem(key, opts),\n remove: (key, opts = {}) => storage.removeItem(key, opts)\n };\n return storage;\n}\nasync function snapshot(storage, base) {\n base = normalizeBaseKey(base);\n const keys = await storage.getKeys(base);\n const snapshot2 = {};\n await Promise.all(\n keys.map(async (key) => {\n snapshot2[key.slice(base.length)] = await storage.getItem(key);\n })\n );\n return snapshot2;\n}\nasync function restoreSnapshot(driver, snapshot2, base = \"\") {\n base = normalizeBaseKey(base);\n await Promise.all(\n Object.entries(snapshot2).map((e) => driver.setItem(base + e[0], e[1]))\n );\n}\nfunction watch(driver, onChange, base) {\n return driver.watch ? driver.watch((event, key) => onChange(event, base + key)) : () => {\n };\n}\nasync function dispose(driver) {\n if (typeof driver.dispose === \"function\") {\n await asyncCall(driver.dispose);\n }\n}\n\nconst builtinDrivers = {\n \"azure-app-configuration\": \"unstorage/drivers/azure-app-configuration\",\n \"azureAppConfiguration\": \"unstorage/drivers/azure-app-configuration\",\n \"azure-cosmos\": \"unstorage/drivers/azure-cosmos\",\n \"azureCosmos\": \"unstorage/drivers/azure-cosmos\",\n \"azure-key-vault\": \"unstorage/drivers/azure-key-vault\",\n \"azureKeyVault\": \"unstorage/drivers/azure-key-vault\",\n \"azure-storage-blob\": \"unstorage/drivers/azure-storage-blob\",\n \"azureStorageBlob\": \"unstorage/drivers/azure-storage-blob\",\n \"azure-storage-table\": \"unstorage/drivers/azure-storage-table\",\n \"azureStorageTable\": \"unstorage/drivers/azure-storage-table\",\n \"capacitor-preferences\": \"unstorage/drivers/capacitor-preferences\",\n \"capacitorPreferences\": \"unstorage/drivers/capacitor-preferences\",\n \"cloudflare-kv-binding\": \"unstorage/drivers/cloudflare-kv-binding\",\n \"cloudflareKVBinding\": \"unstorage/drivers/cloudflare-kv-binding\",\n \"cloudflare-kv-http\": \"unstorage/drivers/cloudflare-kv-http\",\n \"cloudflareKVHttp\": \"unstorage/drivers/cloudflare-kv-http\",\n \"cloudflare-r2-binding\": \"unstorage/drivers/cloudflare-r2-binding\",\n \"cloudflareR2Binding\": \"unstorage/drivers/cloudflare-r2-binding\",\n \"db0\": \"unstorage/drivers/db0\",\n \"deno-kv-node\": \"unstorage/drivers/deno-kv-node\",\n \"denoKVNode\": \"unstorage/drivers/deno-kv-node\",\n \"deno-kv\": \"unstorage/drivers/deno-kv\",\n \"denoKV\": \"unstorage/drivers/deno-kv\",\n \"fs-lite\": \"unstorage/drivers/fs-lite\",\n \"fsLite\": \"unstorage/drivers/fs-lite\",\n \"fs\": \"unstorage/drivers/fs\",\n \"github\": \"unstorage/drivers/github\",\n \"http\": \"unstorage/drivers/http\",\n \"indexedb\": \"unstorage/drivers/indexedb\",\n \"localstorage\": \"unstorage/drivers/localstorage\",\n \"lru-cache\": \"unstorage/drivers/lru-cache\",\n \"lruCache\": \"unstorage/drivers/lru-cache\",\n \"memory\": \"unstorage/drivers/memory\",\n \"mongodb\": \"unstorage/drivers/mongodb\",\n \"netlify-blobs\": \"unstorage/drivers/netlify-blobs\",\n \"netlifyBlobs\": \"unstorage/drivers/netlify-blobs\",\n \"null\": \"unstorage/drivers/null\",\n \"overlay\": \"unstorage/drivers/overlay\",\n \"planetscale\": \"unstorage/drivers/planetscale\",\n \"redis\": \"unstorage/drivers/redis\",\n \"s3\": \"unstorage/drivers/s3\",\n \"session-storage\": \"unstorage/drivers/session-storage\",\n \"sessionStorage\": \"unstorage/drivers/session-storage\",\n \"uploadthing\": \"unstorage/drivers/uploadthing\",\n \"upstash\": \"unstorage/drivers/upstash\",\n \"vercel-blob\": \"unstorage/drivers/vercel-blob\",\n \"vercelBlob\": \"unstorage/drivers/vercel-blob\",\n \"vercel-kv\": \"unstorage/drivers/vercel-kv\",\n \"vercelKV\": \"unstorage/drivers/vercel-kv\",\n \"vercel-runtime-cache\": \"unstorage/drivers/vercel-runtime-cache\",\n \"vercelRuntimeCache\": \"unstorage/drivers/vercel-runtime-cache\"\n};\n\nexport { builtinDrivers, createStorage, defineDriver, filterKeyByBase, filterKeyByDepth, joinKeys, normalizeBaseKey, normalizeKey, restoreSnapshot, snapshot };\n","function promisifyRequest(request) {\n return new Promise((resolve, reject) => {\n // @ts-ignore - file size hacks\n request.oncomplete = request.onsuccess = () => resolve(request.result);\n // @ts-ignore - file size hacks\n request.onabort = request.onerror = () => reject(request.error);\n });\n}\nfunction createStore(dbName, storeName) {\n const request = indexedDB.open(dbName);\n request.onupgradeneeded = () => request.result.createObjectStore(storeName);\n const dbp = promisifyRequest(request);\n return (txMode, callback) => dbp.then((db) => callback(db.transaction(storeName, txMode).objectStore(storeName)));\n}\nlet defaultGetStoreFunc;\nfunction defaultGetStore() {\n if (!defaultGetStoreFunc) {\n defaultGetStoreFunc = createStore('keyval-store', 'keyval');\n }\n return defaultGetStoreFunc;\n}\n/**\n * Get a value by its key.\n *\n * @param key\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction get(key, customStore = defaultGetStore()) {\n return customStore('readonly', (store) => promisifyRequest(store.get(key)));\n}\n/**\n * Set a value with a key.\n *\n * @param key\n * @param value\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction set(key, value, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n store.put(value, key);\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Set multiple values at once. This is faster than calling set() multiple times.\n * It's also atomic – if one of the pairs can't be added, none will be added.\n *\n * @param entries Array of entries, where each entry is an array of `[key, value]`.\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction setMany(entries, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n entries.forEach((entry) => store.put(entry[1], entry[0]));\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Get multiple values by their keys\n *\n * @param keys\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction getMany(keys, customStore = defaultGetStore()) {\n return customStore('readonly', (store) => Promise.all(keys.map((key) => promisifyRequest(store.get(key)))));\n}\n/**\n * Update a value. This lets you see the old value and update it as an atomic operation.\n *\n * @param key\n * @param updater A callback that takes the old value and returns a new value.\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction update(key, updater, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => \n // Need to create the promise manually.\n // If I try to chain promises, the transaction closes in browsers\n // that use a promise polyfill (IE10/11).\n new Promise((resolve, reject) => {\n store.get(key).onsuccess = function () {\n try {\n store.put(updater(this.result), key);\n resolve(promisifyRequest(store.transaction));\n }\n catch (err) {\n reject(err);\n }\n };\n }));\n}\n/**\n * Delete a particular key from the store.\n *\n * @param key\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction del(key, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n store.delete(key);\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Delete multiple keys at once.\n *\n * @param keys List of keys to delete.\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction delMany(keys, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n keys.forEach((key) => store.delete(key));\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Clear all values in the store.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction clear(customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n store.clear();\n return promisifyRequest(store.transaction);\n });\n}\nfunction eachCursor(store, callback) {\n store.openCursor().onsuccess = function () {\n if (!this.result)\n return;\n callback(this.result);\n this.result.continue();\n };\n return promisifyRequest(store.transaction);\n}\n/**\n * Get all keys in the store.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction keys(customStore = defaultGetStore()) {\n return customStore('readonly', (store) => {\n // Fast path for modern browsers\n if (store.getAllKeys) {\n return promisifyRequest(store.getAllKeys());\n }\n const items = [];\n return eachCursor(store, (cursor) => items.push(cursor.key)).then(() => items);\n });\n}\n/**\n * Get all values in the store.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction values(customStore = defaultGetStore()) {\n return customStore('readonly', (store) => {\n // Fast path for modern browsers\n if (store.getAll) {\n return promisifyRequest(store.getAll());\n }\n const items = [];\n return eachCursor(store, (cursor) => items.push(cursor.value)).then(() => items);\n });\n}\n/**\n * Get all entries in the store. Each entry is an array of `[key, value]`.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction entries(customStore = defaultGetStore()) {\n return customStore('readonly', (store) => {\n // Fast path for modern browsers\n // (although, hopefully we'll get a simpler path some day)\n if (store.getAll && store.getAllKeys) {\n return Promise.all([\n promisifyRequest(store.getAllKeys()),\n promisifyRequest(store.getAll()),\n ]).then(([keys, values]) => keys.map((key, i) => [key, values[i]]));\n }\n const items = [];\n return customStore('readonly', (store) => eachCursor(store, (cursor) => items.push([cursor.key, cursor.value])).then(() => items));\n });\n}\n\nexport { clear, createStore, del, delMany, entries, get, getMany, keys, promisifyRequest, set, setMany, update, values };\n","import{createStorage as w}from\"unstorage\";import{createStore as I,get as u,set as p,del as b,keys as v,clear as S}from\"idb-keyval\";import{safeJsonStringify as g,safeJsonParse as d}from\"@walletconnect/safe-json\";function C(i){return i}const x=\"idb-keyval\";var z=(i={})=>{const t=i.base&&i.base.length>0?`${i.base}:`:\"\",e=s=>t+s;let n;return i.dbName&&i.storeName&&(n=I(i.dbName,i.storeName)),{name:x,options:i,async hasItem(s){return!(typeof await u(e(s),n)>\"u\")},async getItem(s){return await u(e(s),n)??null},setItem(s,a){return p(e(s),a,n)},removeItem(s){return b(e(s),n)},getKeys(){return v(n)},clear(){return S(n)}}};const D=\"WALLET_CONNECT_V2_INDEXED_DB\",E=\"keyvaluestorage\";class _{constructor(){this.indexedDb=w({driver:z({dbName:D,storeName:E})})}async getKeys(){return this.indexedDb.getKeys()}async getEntries(){return(await this.indexedDb.getItems(await this.indexedDb.getKeys())).map(t=>[t.key,t.value])}async getItem(t){const e=await this.indexedDb.getItem(t);if(e!==null)return e}async setItem(t,e){await this.indexedDb.setItem(t,g(e))}async removeItem(t){await this.indexedDb.removeItem(t)}}var l=typeof globalThis<\"u\"?globalThis:typeof window<\"u\"?window:typeof global<\"u\"?global:typeof self<\"u\"?self:{},c={exports:{}};(function(){let i;function t(){}i=t,i.prototype.getItem=function(e){return this.hasOwnProperty(e)?String(this[e]):null},i.prototype.setItem=function(e,n){this[e]=String(n)},i.prototype.removeItem=function(e){delete this[e]},i.prototype.clear=function(){const e=this;Object.keys(e).forEach(function(n){e[n]=void 0,delete e[n]})},i.prototype.key=function(e){return e=e||0,Object.keys(this)[e]},i.prototype.__defineGetter__(\"length\",function(){return Object.keys(this).length}),typeof l<\"u\"&&l.localStorage?c.exports=l.localStorage:typeof window<\"u\"&&window.localStorage?c.exports=window.localStorage:c.exports=new t})();function k(i){var t;return[i[0],d((t=i[1])!=null?t:\"\")]}class K{constructor(){this.localStorage=c.exports}async getKeys(){return Object.keys(this.localStorage)}async getEntries(){return Object.entries(this.localStorage).map(k)}async getItem(t){const e=this.localStorage.getItem(t);if(e!==null)return d(e)}async setItem(t,e){this.localStorage.setItem(t,g(e))}async removeItem(t){this.localStorage.removeItem(t)}}const N=\"wc_storage_version\",y=1,O=async(i,t,e)=>{const n=N,s=await t.getItem(n);if(s&&s>=y){e(t);return}const a=await i.getKeys();if(!a.length){e(t);return}const m=[];for(;a.length;){const r=a.shift();if(!r)continue;const o=r.toLowerCase();if(o.includes(\"wc@\")||o.includes(\"walletconnect\")||o.includes(\"wc_\")||o.includes(\"wallet_connect\")){const f=await i.getItem(r);await t.setItem(r,f),m.push(r)}}await t.setItem(n,y),e(t),j(i,m)},j=async(i,t)=>{t.length&&t.forEach(async e=>{await i.removeItem(e)})};class h{constructor(){this.initialized=!1,this.setInitialized=e=>{this.storage=e,this.initialized=!0};const t=new K;this.storage=t;try{const e=new _;O(t,e,this.setInitialized)}catch{this.initialized=!0}}async getKeys(){return await this.initialize(),this.storage.getKeys()}async getEntries(){return await this.initialize(),this.storage.getEntries()}async getItem(t){return await this.initialize(),this.storage.getItem(t)}async setItem(t,e){return await this.initialize(),this.storage.setItem(t,e)}async removeItem(t){return await this.initialize(),this.storage.removeItem(t)}async initialize(){this.initialized||await new Promise(t=>{const e=setInterval(()=>{this.initialized&&(clearInterval(e),t())},20)})}}export{h as KeyValueStorage,h as default};\n//# sourceMappingURL=index.es.js.map\n","import{IEvents as o}from\"@walletconnect/events\";import c,{EventEmitter as i}from\"events\";class n extends o{constructor(s){super(),this.opts=s,this.protocol=\"wc\",this.version=2}}class l{constructor(s,t,e){this.core=s,this.logger=t}}class h extends o{constructor(s,t){super(),this.core=s,this.logger=t,this.records=new Map}}class a{constructor(s,t){this.logger=s,this.core=t}}class g extends o{constructor(s,t){super(),this.relayer=s,this.logger=t}}class u extends o{constructor(s){super()}}class p{constructor(s,t,e,f){this.core=s,this.logger=t,this.name=e}}class I{constructor(){this.map=new Map}}class d extends o{constructor(s,t){super(),this.relayer=s,this.logger=t}}class E{constructor(s,t){this.core=s,this.logger=t}}class x extends o{constructor(s,t){super(),this.core=s,this.logger=t}}class m{constructor(s,t){this.logger=s,this.core=t}}class y{constructor(s,t,e){this.core=s,this.logger=t,this.store=e}}class v{constructor(s,t){this.projectId=s,this.logger=t}}class C{constructor(s,t,e){this.core=s,this.logger=t,this.telemetryEnabled=e}}class b extends c{constructor(){super()}}class S{constructor(s){this.opts=s,this.protocol=\"wc\",this.version=2}}class w extends i{constructor(){super()}}class M{constructor(s){this.client=s}}export{n as ICore,l as ICrypto,v as IEchoClient,M as IEngine,w as IEngineEvents,C as IEventClient,x as IExpirer,h as IJsonRpcHistory,E as IKeyChain,a as IMessageTracker,m as IPairing,g as IPublisher,u as IRelayer,S as ISignClient,b as ISignClientEvents,p as IStore,d as ISubscriber,I as ISubscriberTopicMap,y as IVerify};\n//# sourceMappingURL=index.js.map\n","export const PARSE_ERROR = \"PARSE_ERROR\";\nexport const INVALID_REQUEST = \"INVALID_REQUEST\";\nexport const METHOD_NOT_FOUND = \"METHOD_NOT_FOUND\";\nexport const INVALID_PARAMS = \"INVALID_PARAMS\";\nexport const INTERNAL_ERROR = \"INTERNAL_ERROR\";\nexport const SERVER_ERROR = \"SERVER_ERROR\";\nexport const RESERVED_ERROR_CODES = [-32700, -32600, -32601, -32602, -32603];\nexport const SERVER_ERROR_CODE_RANGE = [-32000, -32099];\nexport const STANDARD_ERROR_MAP = {\n [PARSE_ERROR]: { code: -32700, message: \"Parse error\" },\n [INVALID_REQUEST]: { code: -32600, message: \"Invalid Request\" },\n [METHOD_NOT_FOUND]: { code: -32601, message: \"Method not found\" },\n [INVALID_PARAMS]: { code: -32602, message: \"Invalid params\" },\n [INTERNAL_ERROR]: { code: -32603, message: \"Internal error\" },\n [SERVER_ERROR]: { code: -32000, message: \"Server error\" },\n};\nexport const DEFAULT_ERROR = SERVER_ERROR;\n//# sourceMappingURL=constants.js.map","import { SERVER_ERROR_CODE_RANGE, RESERVED_ERROR_CODES, STANDARD_ERROR_MAP, DEFAULT_ERROR, } from \"./constants\";\nexport function isServerErrorCode(code) {\n return code <= SERVER_ERROR_CODE_RANGE[0] && code >= SERVER_ERROR_CODE_RANGE[1];\n}\nexport function isReservedErrorCode(code) {\n return RESERVED_ERROR_CODES.includes(code);\n}\nexport function isValidErrorCode(code) {\n return typeof code === \"number\";\n}\nexport function getError(type) {\n if (!Object.keys(STANDARD_ERROR_MAP).includes(type)) {\n return STANDARD_ERROR_MAP[DEFAULT_ERROR];\n }\n return STANDARD_ERROR_MAP[type];\n}\nexport function getErrorByCode(code) {\n const match = Object.values(STANDARD_ERROR_MAP).find(e => e.code === code);\n if (!match) {\n return STANDARD_ERROR_MAP[DEFAULT_ERROR];\n }\n return match;\n}\nexport function validateJsonRpcError(response) {\n if (typeof response.error.code === \"undefined\") {\n return { valid: false, error: \"Missing code for JSON-RPC error\" };\n }\n if (typeof response.error.message === \"undefined\") {\n return { valid: false, error: \"Missing message for JSON-RPC error\" };\n }\n if (!isValidErrorCode(response.error.code)) {\n return {\n valid: false,\n error: `Invalid error code type for JSON-RPC: ${response.error.code}`,\n };\n }\n if (isReservedErrorCode(response.error.code)) {\n const error = getErrorByCode(response.error.code);\n if (error.message !== STANDARD_ERROR_MAP[DEFAULT_ERROR].message &&\n response.error.message === error.message) {\n return {\n valid: false,\n error: `Invalid error code message for JSON-RPC: ${response.error.code}`,\n };\n }\n }\n return { valid: true };\n}\nexport function parseConnectionError(e, url, type) {\n return e.message.includes(\"getaddrinfo ENOTFOUND\") || e.message.includes(\"connect ECONNREFUSED\")\n ? new Error(`Unavailable ${type} RPC url at ${url}`)\n : e;\n}\n//# sourceMappingURL=error.js.map","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isBrowserCryptoAvailable = exports.getSubtleCrypto = exports.getBrowerCrypto = void 0;\nfunction getBrowerCrypto() {\n return (global === null || global === void 0 ? void 0 : global.crypto) || (global === null || global === void 0 ? void 0 : global.msCrypto) || {};\n}\nexports.getBrowerCrypto = getBrowerCrypto;\nfunction getSubtleCrypto() {\n const browserCrypto = getBrowerCrypto();\n return browserCrypto.subtle || browserCrypto.webkitSubtle;\n}\nexports.getSubtleCrypto = getSubtleCrypto;\nfunction isBrowserCryptoAvailable() {\n return !!getBrowerCrypto() && !!getSubtleCrypto();\n}\nexports.isBrowserCryptoAvailable = isBrowserCryptoAvailable;\n//# sourceMappingURL=crypto.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isBrowser = exports.isNode = exports.isReactNative = void 0;\nfunction isReactNative() {\n return (typeof document === \"undefined\" &&\n typeof navigator !== \"undefined\" &&\n navigator.product === \"ReactNative\");\n}\nexports.isReactNative = isReactNative;\nfunction isNode() {\n return (typeof process !== \"undefined\" &&\n typeof process.versions !== \"undefined\" &&\n typeof process.versions.node !== \"undefined\");\n}\nexports.isNode = isNode;\nfunction isBrowser() {\n return !isReactNative() && !isNode();\n}\nexports.isBrowser = isBrowser;\n//# sourceMappingURL=env.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./crypto\"), exports);\ntslib_1.__exportStar(require(\"./env\"), exports);\n//# sourceMappingURL=index.js.map","import { getError, getErrorByCode, isReservedErrorCode } from \"./error\";\nimport { INTERNAL_ERROR, SERVER_ERROR } from \"./constants\";\nexport function payloadId(entropy = 3) {\n const date = Date.now() * Math.pow(10, entropy);\n const extra = Math.floor(Math.random() * Math.pow(10, entropy));\n return date + extra;\n}\nexport function getBigIntRpcId(entropy = 6) {\n return BigInt(payloadId(entropy));\n}\nexport function formatJsonRpcRequest(method, params, id) {\n return {\n id: id || payloadId(),\n jsonrpc: \"2.0\",\n method,\n params,\n };\n}\nexport function formatJsonRpcResult(id, result) {\n return {\n id,\n jsonrpc: \"2.0\",\n result,\n };\n}\nexport function formatJsonRpcError(id, error, data) {\n return {\n id,\n jsonrpc: \"2.0\",\n error: formatErrorMessage(error, data),\n };\n}\nexport function formatErrorMessage(error, data) {\n if (typeof error === \"undefined\") {\n return getError(INTERNAL_ERROR);\n }\n if (typeof error === \"string\") {\n error = Object.assign(Object.assign({}, getError(SERVER_ERROR)), { message: error });\n }\n if (typeof data !== \"undefined\") {\n error.data = data;\n }\n if (isReservedErrorCode(error.code)) {\n error = getErrorByCode(error.code);\n }\n return error;\n}\n//# sourceMappingURL=format.js.map","class e{}class o extends e{constructor(c){super()}}class n extends e{constructor(){super()}}class r extends n{constructor(c){super()}}export{n as IBaseJsonRpcProvider,e as IEvents,o as IJsonRpcConnection,r as IJsonRpcProvider};\n//# sourceMappingURL=index.es.js.map\n","const HTTP_REGEX = \"^https?:\";\nconst WS_REGEX = \"^wss?:\";\nfunction getUrlProtocol(url) {\n const matches = url.match(new RegExp(/^\\w+:/, \"gi\"));\n if (!matches || !matches.length)\n return;\n return matches[0];\n}\nfunction matchRegexProtocol(url, regex) {\n const protocol = getUrlProtocol(url);\n if (typeof protocol === \"undefined\")\n return false;\n return new RegExp(regex).test(protocol);\n}\nexport function isHttpUrl(url) {\n return matchRegexProtocol(url, HTTP_REGEX);\n}\nexport function isWsUrl(url) {\n return matchRegexProtocol(url, WS_REGEX);\n}\nexport function isLocalhostUrl(url) {\n return new RegExp(\"wss?://localhost(:d{2,5})?\").test(url);\n}\n//# sourceMappingURL=url.js.map","export function isJsonRpcPayload(payload) {\n return (typeof payload === \"object\" &&\n \"id\" in payload &&\n \"jsonrpc\" in payload &&\n payload.jsonrpc === \"2.0\");\n}\nexport function isJsonRpcRequest(payload) {\n return isJsonRpcPayload(payload) && \"method\" in payload;\n}\nexport function isJsonRpcResponse(payload) {\n return isJsonRpcPayload(payload) && (isJsonRpcResult(payload) || isJsonRpcError(payload));\n}\nexport function isJsonRpcResult(payload) {\n return \"result\" in payload;\n}\nexport function isJsonRpcError(payload) {\n return \"error\" in payload;\n}\nexport function isJsonRpcValidationInvalid(validation) {\n return \"error\" in validation && validation.valid === false;\n}\n//# sourceMappingURL=validators.js.map","import{EventEmitter as c}from\"events\";import{IJsonRpcProvider as r,formatJsonRpcRequest as h,getBigIntRpcId as a,isJsonRpcError as d,isJsonRpcResponse as v}from\"@walletconnect/jsonrpc-utils\";class o extends r{constructor(t){super(t),this.events=new c,this.hasRegisteredEventListeners=!1,this.connection=this.setConnection(t),this.connection.connected&&this.registerEventListeners()}async connect(t=this.connection){await this.open(t)}async disconnect(){await this.close()}on(t,e){this.events.on(t,e)}once(t,e){this.events.once(t,e)}off(t,e){this.events.off(t,e)}removeListener(t,e){this.events.removeListener(t,e)}async request(t,e){return this.requestStrict(h(t.method,t.params||[],t.id||a().toString()),e)}async requestStrict(t,e){return new Promise(async(i,s)=>{if(!this.connection.connected)try{await this.open()}catch(n){s(n)}this.events.on(`${t.id}`,n=>{d(n)?s(n.error):i(n.result)});try{await this.connection.send(t,e)}catch(n){s(n)}})}setConnection(t=this.connection){return t}onPayload(t){this.events.emit(\"payload\",t),v(t)?this.events.emit(`${t.id}`,t):this.events.emit(\"message\",{type:t.method,data:t.params})}onClose(t){t&&t.code===3e3&&this.events.emit(\"error\",new Error(`WebSocket connection closed abnormally with code: ${t.code} ${t.reason?`(${t.reason})`:\"\"}`)),this.events.emit(\"disconnect\")}async open(t=this.connection){this.connection===t&&this.connection.connected||(this.connection.connected&&this.close(),typeof t==\"string\"&&(await this.connection.open(t),t=this.connection),this.connection=this.setConnection(t),await this.connection.open(),this.registerEventListeners(),this.events.emit(\"connect\"))}async close(){await this.connection.close()}registerEventListeners(){this.hasRegisteredEventListeners||(this.connection.on(\"payload\",t=>this.onPayload(t)),this.connection.on(\"close\",t=>this.onClose(t)),this.connection.on(\"error\",t=>this.events.emit(\"error\",t)),this.connection.on(\"register_error\",t=>this.onClose()),this.hasRegisteredEventListeners=!0)}}export{o as JsonRpcProvider,o as default};\n//# sourceMappingURL=index.es.js.map\n","import{EventEmitter as l}from\"events\";import{safeJsonStringify as u,safeJsonParse as p}from\"@walletconnect/safe-json\";import{isWsUrl as c,isReactNative as g,isLocalhostUrl as y,formatJsonRpcError as k,parseConnectionError as m}from\"@walletconnect/jsonrpc-utils\";const v=()=>typeof WebSocket<\"u\"?WebSocket:typeof global<\"u\"&&typeof global.WebSocket<\"u\"?global.WebSocket:typeof window<\"u\"&&typeof window.WebSocket<\"u\"?window.WebSocket:typeof self<\"u\"&&typeof self.WebSocket<\"u\"?self.WebSocket:require(\"ws\"),w=()=>typeof WebSocket<\"u\"||typeof global<\"u\"&&typeof global.WebSocket<\"u\"||typeof window<\"u\"&&typeof window.WebSocket<\"u\"||typeof self<\"u\"&&typeof self.WebSocket<\"u\",d=r=>r.split(\"?\")[0],h=10,b=v();class f{constructor(e){if(this.url=e,this.events=new l,this.registering=!1,!c(e))throw new Error(`Provided URL is not compatible with WebSocket connection: ${e}`);this.url=e}get connected(){return typeof this.socket<\"u\"}get connecting(){return this.registering}on(e,t){this.events.on(e,t)}once(e,t){this.events.once(e,t)}off(e,t){this.events.off(e,t)}removeListener(e,t){this.events.removeListener(e,t)}async open(e=this.url){await this.register(e)}async close(){return new Promise((e,t)=>{if(typeof this.socket>\"u\"){t(new Error(\"Connection already closed\"));return}this.socket.onclose=n=>{this.onClose(n),e()},this.socket.close()})}async send(e){typeof this.socket>\"u\"&&(this.socket=await this.register());try{this.socket.send(u(e))}catch(t){this.onError(e.id,t)}}register(e=this.url){if(!c(e))throw new Error(`Provided URL is not compatible with WebSocket connection: ${e}`);if(this.registering){const t=this.events.getMaxListeners();return(this.events.listenerCount(\"register_error\")>=t||this.events.listenerCount(\"open\")>=t)&&this.events.setMaxListeners(t+1),new Promise((n,s)=>{this.events.once(\"register_error\",o=>{this.resetMaxListeners(),s(o)}),this.events.once(\"open\",()=>{if(this.resetMaxListeners(),typeof this.socket>\"u\")return s(new Error(\"WebSocket connection is missing or invalid\"));n(this.socket)})})}return this.url=e,this.registering=!0,new Promise((t,n)=>{const s=g()?void 0:{rejectUnauthorized:!y(e)},o=new b(e,[],s);w()?o.onerror=i=>{const a=i;n(this.emitError(a.error))}:o.on(\"error\",i=>{n(this.emitError(i))}),o.onopen=()=>{this.onOpen(o),t(o)}})}onOpen(e){e.onmessage=t=>this.onPayload(t),e.onclose=t=>this.onClose(t),this.socket=e,this.registering=!1,this.events.emit(\"open\")}onClose(e){this.socket=void 0,this.registering=!1,this.events.emit(\"close\",e)}onPayload(e){if(typeof e.data>\"u\")return;const t=typeof e.data==\"string\"?p(e.data):e.data;this.events.emit(\"payload\",t)}onError(e,t){const n=this.parseError(t),s=n.message||n.toString(),o=k(e,s);this.events.emit(\"payload\",o)}parseError(e,t=this.url){return m(e,d(t),\"WS\")}resetMaxListeners(){this.events.getMaxListeners()>h&&this.events.setMaxListeners(h)}emitError(e){const t=this.parseError(new Error(e?.message||`WebSocket connection failed for host: ${d(this.url)}`));return this.events.emit(\"register_error\",t),t}}export{f as WsConnection,f as default};\n//# sourceMappingURL=index.es.js.map\n","import Xt,{EventEmitter as M}from\"events\";import{HEARTBEAT_EVENTS as B,HeartBeat as Zt}from\"@walletconnect/heartbeat\";import Qt from\"@walletconnect/keyvaluestorage\";import{generateChildLogger as S,getLoggerContext as A,getDefaultLoggerOptions as ei,generatePlatformLogger as ti}from\"@walletconnect/logger\";import{IMessageTracker as ii,IPublisher as si,ISubscriber as ri,IRelayer as ni,IStore as oi,IJsonRpcHistory as ai,IExpirer as ci,IVerify as hi,IEchoClient as li,IEventClient as ui,ICore as gi}from\"@walletconnect/types\";import{ONE_DAY as j,SIX_HOURS as pi,THIRTY_DAYS as le,FIVE_SECONDS as ue,THIRTY_SECONDS as re,toMiliseconds as w,ONE_MINUTE as Te,ONE_SECOND as $,FIVE_MINUTES as W,fromMiliseconds as Ce}from\"@walletconnect/time\";import{safeJsonStringify as di,safeJsonParse as Pe}from\"@walletconnect/safe-json\";import*as ne from\"@walletconnect/relay-auth\";import{decodeJWT as Se}from\"@walletconnect/relay-auth\";import\"crypto\";import{getInternalError as y,mapToObj as ge,objToMap as pe,generateRandomBytes32 as de,generateKeyPair as yi,deriveSymKey as mi,hashKey as Di,validateEncoding as fi,isTypeTwoEnvelope as Re,encodeTypeTwoEnvelope as bi,isTypeOneEnvelope as Ae,encrypt as _i,validateDecoding as Ei,decodeTypeTwoEnvelope as wi,decrypt as vi,BASE64 as xe,deserialize as Oe,decodeTypeByte as Ii,BASE16 as Ti,hashMessage as oe,getRelayProtocolApi as q,getRelayProtocolName as ae,isUndefined as Y,createExpiringPromise as k,getSdkError as H,sleep as Ci,isNode as Ne,createLogger as Pi,isAndroid as Si,getAppId as ze,isIos as Ri,isOnline as ke,calcExpiry as J,formatRelayRpcUrl as Ai,subscribeToNetworkChange as xi,isAppVisible as Oi,isProposalStruct as Ni,isSessionStruct as zi,TYPE_1 as ki,formatUri as Le,parseUri as Fe,createDelayedPromise as Li,engineEvent as ye,isExpired as Ue,isValidParams as me,isValidUrl as Fi,isValidString as Ui,parseExpirerTarget as $i,formatTopicTarget as Ki,formatIdTarget as Mi,isBrowser as Bi,verifyP256Jwt as ji,isTestRun as $e,formatUA as qi,uuidv4 as Ke,getAppMetadata as Vi}from\"@walletconnect/utils\";import{toString as Gi}from\"uint8arrays\";import{JsonRpcProvider as Wi}from\"@walletconnect/jsonrpc-provider\";import{getBigIntRpcId as De,isJsonRpcRequest as Me,isJsonRpcResponse as Be,formatJsonRpcResult as je,formatJsonRpcRequest as qe,formatJsonRpcError as Yi,isJsonRpcResult as Hi,isJsonRpcError as Ve}from\"@walletconnect/jsonrpc-utils\";import Ji from\"@walletconnect/jsonrpc-ws-connection\";import{getDocument as Xi}from\"@walletconnect/window-getters\";const fe=\"wc\",be=2,X=\"core\",N=`${fe}@2:${X}:`,Ge={name:X,logger:\"error\"},We={database:\":memory:\"},Ye=\"crypto\",_e=\"client_ed25519_seed\",He=j,Je=\"keychain\",Xe=\"0.3\",Ze=\"messages\",Qe=\"0.3\",et=pi,tt=\"publisher\",it=\"irn\",st=\"error\",Ee=\"wss://relay.walletconnect.org\",rt=\"relayer\",f={message:\"relayer_message\",message_ack:\"relayer_message_ack\",connect:\"relayer_connect\",disconnect:\"relayer_disconnect\",error:\"relayer_error\",connection_stalled:\"relayer_connection_stalled\",transport_closed:\"relayer_transport_closed\",publish:\"relayer_publish\"},nt=\"_subscription\",R={payload:\"payload\",connect:\"connect\",disconnect:\"disconnect\",error:\"error\"},ot=.1,Zi={database:\":memory:\"},ce=\"2.23.8\",Qi=1e4,K={link_mode:\"link_mode\",relay:\"relay\"},Z={inbound:\"inbound\",outbound:\"outbound\"},at=\"0.3\",ct=\"WALLETCONNECT_CLIENT_ID\",we=\"WALLETCONNECT_LINK_MODE_APPS\",P={created:\"subscription_created\",deleted:\"subscription_deleted\",expired:\"subscription_expired\",disabled:\"subscription_disabled\",sync:\"subscription_sync\",resubscribed:\"subscription_resubscribed\"},es=le,ht=\"subscription\",lt=\"0.3\",ts=ue*1e3,ut=\"pairing\",gt=\"0.3\",is=le,V={wc_pairingDelete:{req:{ttl:j,prompt:!1,tag:1e3},res:{ttl:j,prompt:!1,tag:1001}},wc_pairingPing:{req:{ttl:re,prompt:!1,tag:1002},res:{ttl:re,prompt:!1,tag:1003}},unregistered_method:{req:{ttl:j,prompt:!1,tag:0},res:{ttl:j,prompt:!1,tag:0}}},G={create:\"pairing_create\",expire:\"pairing_expire\",delete:\"pairing_delete\",ping:\"pairing_ping\"},x={created:\"history_created\",updated:\"history_updated\",deleted:\"history_deleted\",sync:\"history_sync\"},pt=\"history\",dt=\"0.3\",yt=\"expirer\",O={created:\"expirer_created\",deleted:\"expirer_deleted\",expired:\"expirer_expired\",sync:\"expirer_sync\"},mt=\"0.3\",ss=j,Dt=\"verify-api\",rs=\"https://verify.walletconnect.com\",ft=\"https://verify.walletconnect.org\",Q=ft,bt=`${Q}/v3`,_t=[rs,ft],Et=\"echo\",wt=\"https://echo.walletconnect.com\",ns=\"event-client\",L={pairing_started:\"pairing_started\",pairing_uri_validation_success:\"pairing_uri_validation_success\",pairing_uri_not_expired:\"pairing_uri_not_expired\",store_new_pairing:\"store_new_pairing\",subscribing_pairing_topic:\"subscribing_pairing_topic\",subscribe_pairing_topic_success:\"subscribe_pairing_topic_success\",existing_pairing:\"existing_pairing\",pairing_not_expired:\"pairing_not_expired\",emit_inactive_pairing:\"emit_inactive_pairing\",emit_session_proposal:\"emit_session_proposal\",subscribing_to_pairing_topic:\"subscribing_to_pairing_topic\"},U={no_wss_connection:\"no_wss_connection\",no_internet_connection:\"no_internet_connection\",malformed_pairing_uri:\"malformed_pairing_uri\",active_pairing_already_exists:\"active_pairing_already_exists\",subscribe_pairing_topic_failure:\"subscribe_pairing_topic_failure\",pairing_expired:\"pairing_expired\",proposal_expired:\"proposal_expired\",proposal_listener_not_found:\"proposal_listener_not_found\"},os={session_approve_started:\"session_approve_started\",proposal_not_expired:\"proposal_not_expired\",session_namespaces_validation_success:\"session_namespaces_validation_success\",create_session_topic:\"create_session_topic\",subscribing_session_topic:\"subscribing_session_topic\",subscribe_session_topic_success:\"subscribe_session_topic_success\",publishing_session_approve:\"publishing_session_approve\",session_approve_publish_success:\"session_approve_publish_success\",store_session:\"store_session\",publishing_session_settle:\"publishing_session_settle\",session_settle_publish_success:\"session_settle_publish_success\",session_request_response_started:\"session_request_response_started\",session_request_response_validation_success:\"session_request_response_validation_success\",session_request_response_publish_started:\"session_request_response_publish_started\"},as={no_internet_connection:\"no_internet_connection\",no_wss_connection:\"no_wss_connection\",proposal_expired:\"proposal_expired\",subscribe_session_topic_failure:\"subscribe_session_topic_failure\",session_approve_publish_failure:\"session_approve_publish_failure\",session_settle_publish_failure:\"session_settle_publish_failure\",session_approve_namespace_validation_failure:\"session_approve_namespace_validation_failure\",proposal_not_found:\"proposal_not_found\",session_request_response_validation_failure:\"session_request_response_validation_failure\",session_request_response_publish_failure:\"session_request_response_publish_failure\"},cs={authenticated_session_approve_started:\"authenticated_session_approve_started\",authenticated_session_not_expired:\"authenticated_session_not_expired\",chains_caip2_compliant:\"chains_caip2_compliant\",chains_evm_compliant:\"chains_evm_compliant\",create_authenticated_session_topic:\"create_authenticated_session_topic\",cacaos_verified:\"cacaos_verified\",store_authenticated_session:\"store_authenticated_session\",subscribing_authenticated_session_topic:\"subscribing_authenticated_session_topic\",subscribe_authenticated_session_topic_success:\"subscribe_authenticated_session_topic_success\",publishing_authenticated_session_approve:\"publishing_authenticated_session_approve\",authenticated_session_approve_publish_success:\"authenticated_session_approve_publish_success\"},hs={no_internet_connection:\"no_internet_connection\",no_wss_connection:\"no_wss_connection\",missing_session_authenticate_request:\"missing_session_authenticate_request\",session_authenticate_request_expired:\"session_authenticate_request_expired\",chains_caip2_compliant_failure:\"chains_caip2_compliant_failure\",chains_evm_compliant_failure:\"chains_evm_compliant_failure\",invalid_cacao:\"invalid_cacao\",subscribe_authenticated_session_topic_failure:\"subscribe_authenticated_session_topic_failure\",authenticated_session_approve_publish_failure:\"authenticated_session_approve_publish_failure\",authenticated_session_pending_request_not_found:\"authenticated_session_pending_request_not_found\"},vt=.1,It=\"event-client\",Tt=86400,Ct=\"https://pulse.walletconnect.org/batch\";function ls(o,e){if(o.length>=255)throw new TypeError(\"Alphabet too long\");for(var s=new Uint8Array(256),i=0;i<s.length;i++)s[i]=255;for(var t=0;t<o.length;t++){var r=o.charAt(t),n=r.charCodeAt(0);if(s[n]!==255)throw new TypeError(r+\" is ambiguous\");s[n]=t}var a=o.length,c=o.charAt(0),h=Math.log(a)/Math.log(256),u=Math.log(256)/Math.log(a);function g(l){if(l instanceof Uint8Array||(ArrayBuffer.isView(l)?l=new Uint8Array(l.buffer,l.byteOffset,l.byteLength):Array.isArray(l)&&(l=Uint8Array.from(l))),!(l instanceof Uint8Array))throw new TypeError(\"Expected Uint8Array\");if(l.length===0)return\"\";for(var p=0,I=0,m=0,D=l.length;m!==D&&l[m]===0;)m++,p++;for(var _=(D-m)*u+1>>>0,C=new Uint8Array(_);m!==D;){for(var E=l[m],z=0,T=_-1;(E!==0||z<I)&&T!==-1;T--,z++)E+=256*C[T]>>>0,C[T]=E%a>>>0,E=E/a>>>0;if(E!==0)throw new Error(\"Non-zero carry\");I=z,m++}for(var F=_-I;F!==_&&C[F]===0;)F++;for(var se=c.repeat(p);F<_;++F)se+=o.charAt(C[F]);return se}function d(l){if(typeof l!=\"string\")throw new TypeError(\"Expected String\");if(l.length===0)return new Uint8Array;var p=0;if(l[p]!==\" \"){for(var I=0,m=0;l[p]===c;)I++,p++;for(var D=(l.length-p)*h+1>>>0,_=new Uint8Array(D);l[p];){var C=s[l.charCodeAt(p)];if(C===255)return;for(var E=0,z=D-1;(C!==0||E<m)&&z!==-1;z--,E++)C+=a*_[z]>>>0,_[z]=C%256>>>0,C=C/256>>>0;if(C!==0)throw new Error(\"Non-zero carry\");m=E,p++}if(l[p]!==\" \"){for(var T=D-m;T!==D&&_[T]===0;)T++;for(var F=new Uint8Array(I+(D-T)),se=I;T!==D;)F[se++]=_[T++];return F}}}function b(l){var p=d(l);if(p)return p;throw new Error(`Non-${e} character`)}return{encode:g,decodeUnsafe:d,decode:b}}var us=ls,gs=us;const ps=o=>{if(o instanceof Uint8Array&&o.constructor.name===\"Uint8Array\")return o;if(o instanceof ArrayBuffer)return new Uint8Array(o);if(ArrayBuffer.isView(o))return new Uint8Array(o.buffer,o.byteOffset,o.byteLength);throw new Error(\"Unknown type, must be binary type\")},ds=o=>new TextEncoder().encode(o),ys=o=>new TextDecoder().decode(o);class ms{constructor(e,s,i){this.name=e,this.prefix=s,this.baseEncode=i}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error(\"Unknown type, must be binary type\")}}class Ds{constructor(e,s,i){if(this.name=e,this.prefix=s,s.codePointAt(0)===void 0)throw new Error(\"Invalid prefix character\");this.prefixCodePoint=s.codePointAt(0),this.baseDecode=i}decode(e){if(typeof e==\"string\"){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}else throw Error(\"Can only multibase decode strings\")}or(e){return Pt(this,e)}}class fs{constructor(e){this.decoders=e}or(e){return Pt(this,e)}decode(e){const s=e[0],i=this.decoders[s];if(i)return i.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}}const Pt=(o,e)=>new fs({...o.decoders||{[o.prefix]:o},...e.decoders||{[e.prefix]:e}});class bs{constructor(e,s,i,t){this.name=e,this.prefix=s,this.baseEncode=i,this.baseDecode=t,this.encoder=new ms(e,s,i),this.decoder=new Ds(e,s,t)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}}const he=({name:o,prefix:e,encode:s,decode:i})=>new bs(o,e,s,i),ee=({prefix:o,name:e,alphabet:s})=>{const{encode:i,decode:t}=gs(s,e);return he({prefix:o,name:e,encode:i,decode:r=>ps(t(r))})},_s=(o,e,s,i)=>{const t={};for(let u=0;u<e.length;++u)t[e[u]]=u;let r=o.length;for(;o[r-1]===\"=\";)--r;const n=new Uint8Array(r*s/8|0);let a=0,c=0,h=0;for(let u=0;u<r;++u){const g=t[o[u]];if(g===void 0)throw new SyntaxError(`Non-${i} character`);c=c<<s|g,a+=s,a>=8&&(a-=8,n[h++]=255&c>>a)}if(a>=s||255&c<<8-a)throw new SyntaxError(\"Unexpected end of data\");return n},Es=(o,e,s)=>{const i=e[e.length-1]===\"=\",t=(1<<s)-1;let r=\"\",n=0,a=0;for(let c=0;c<o.length;++c)for(a=a<<8|o[c],n+=8;n>s;)n-=s,r+=e[t&a>>n];if(n&&(r+=e[t&a<<s-n]),i)for(;r.length*s&7;)r+=\"=\";return r},v=({name:o,prefix:e,bitsPerChar:s,alphabet:i})=>he({prefix:e,name:o,encode(t){return Es(t,i,s)},decode(t){return _s(t,i,s,o)}}),ws=he({prefix:\"\\0\",name:\"identity\",encode:o=>ys(o),decode:o=>ds(o)});var vs=Object.freeze({__proto__:null,identity:ws});const Is=v({prefix:\"0\",name:\"base2\",alphabet:\"01\",bitsPerChar:1});var Ts=Object.freeze({__proto__:null,base2:Is});const Cs=v({prefix:\"7\",name:\"base8\",alphabet:\"01234567\",bitsPerChar:3});var Ps=Object.freeze({__proto__:null,base8:Cs});const Ss=ee({prefix:\"9\",name:\"base10\",alphabet:\"0123456789\"});var Rs=Object.freeze({__proto__:null,base10:Ss});const As=v({prefix:\"f\",name:\"base16\",alphabet:\"0123456789abcdef\",bitsPerChar:4}),xs=v({prefix:\"F\",name:\"base16upper\",alphabet:\"0123456789ABCDEF\",bitsPerChar:4});var Os=Object.freeze({__proto__:null,base16:As,base16upper:xs});const Ns=v({prefix:\"b\",name:\"base32\",alphabet:\"abcdefghijklmnopqrstuvwxyz234567\",bitsPerChar:5}),zs=v({prefix:\"B\",name:\"base32upper\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567\",bitsPerChar:5}),ks=v({prefix:\"c\",name:\"base32pad\",alphabet:\"abcdefghijklmnopqrstuvwxyz234567=\",bitsPerChar:5}),Ls=v({prefix:\"C\",name:\"base32padupper\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=\",bitsPerChar:5}),Fs=v({prefix:\"v\",name:\"base32hex\",alphabet:\"0123456789abcdefghijklmnopqrstuv\",bitsPerChar:5}),Us=v({prefix:\"V\",name:\"base32hexupper\",alphabet:\"0123456789ABCDEFGHIJKLMNOPQRSTUV\",bitsPerChar:5}),$s=v({prefix:\"t\",name:\"base32hexpad\",alphabet:\"0123456789abcdefghijklmnopqrstuv=\",bitsPerChar:5}),Ks=v({prefix:\"T\",name:\"base32hexpadupper\",alphabet:\"0123456789ABCDEFGHIJKLMNOPQRSTUV=\",bitsPerChar:5}),Ms=v({prefix:\"h\",name:\"base32z\",alphabet:\"ybndrfg8ejkmcpqxot1uwisza345h769\",bitsPerChar:5});var Bs=Object.freeze({__proto__:null,base32:Ns,base32hex:Fs,base32hexpad:$s,base32hexpadupper:Ks,base32hexupper:Us,base32pad:ks,base32padupper:Ls,base32upper:zs,base32z:Ms});const js=ee({prefix:\"k\",name:\"base36\",alphabet:\"0123456789abcdefghijklmnopqrstuvwxyz\"}),qs=ee({prefix:\"K\",name:\"base36upper\",alphabet:\"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\"});var Vs=Object.freeze({__proto__:null,base36:js,base36upper:qs});const Gs=ee({name:\"base58btc\",prefix:\"z\",alphabet:\"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz\"}),Ws=ee({name:\"base58flickr\",prefix:\"Z\",alphabet:\"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ\"});var Ys=Object.freeze({__proto__:null,base58btc:Gs,base58flickr:Ws});const Hs=v({prefix:\"m\",name:\"base64\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",bitsPerChar:6}),Js=v({prefix:\"M\",name:\"base64pad\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\",bitsPerChar:6}),Xs=v({prefix:\"u\",name:\"base64url\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_\",bitsPerChar:6}),Zs=v({prefix:\"U\",name:\"base64urlpad\",alphabet:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=\",bitsPerChar:6});var Qs=Object.freeze({__proto__:null,base64:Hs,base64pad:Js,base64url:Xs,base64urlpad:Zs});const St=Array.from(\"\\u{1F680}\\u{1FA90}\\u2604\\u{1F6F0}\\u{1F30C}\\u{1F311}\\u{1F312}\\u{1F313}\\u{1F314}\\u{1F315}\\u{1F316}\\u{1F317}\\u{1F318}\\u{1F30D}\\u{1F30F}\\u{1F30E}\\u{1F409}\\u2600\\u{1F4BB}\\u{1F5A5}\\u{1F4BE}\\u{1F4BF}\\u{1F602}\\u2764\\u{1F60D}\\u{1F923}\\u{1F60A}\\u{1F64F}\\u{1F495}\\u{1F62D}\\u{1F618}\\u{1F44D}\\u{1F605}\\u{1F44F}\\u{1F601}\\u{1F525}\\u{1F970}\\u{1F494}\\u{1F496}\\u{1F499}\\u{1F622}\\u{1F914}\\u{1F606}\\u{1F644}\\u{1F4AA}\\u{1F609}\\u263A\\u{1F44C}\\u{1F917}\\u{1F49C}\\u{1F614}\\u{1F60E}\\u{1F607}\\u{1F339}\\u{1F926}\\u{1F389}\\u{1F49E}\\u270C\\u2728\\u{1F937}\\u{1F631}\\u{1F60C}\\u{1F338}\\u{1F64C}\\u{1F60B}\\u{1F497}\\u{1F49A}\\u{1F60F}\\u{1F49B}\\u{1F642}\\u{1F493}\\u{1F929}\\u{1F604}\\u{1F600}\\u{1F5A4}\\u{1F603}\\u{1F4AF}\\u{1F648}\\u{1F447}\\u{1F3B6}\\u{1F612}\\u{1F92D}\\u2763\\u{1F61C}\\u{1F48B}\\u{1F440}\\u{1F62A}\\u{1F611}\\u{1F4A5}\\u{1F64B}\\u{1F61E}\\u{1F629}\\u{1F621}\\u{1F92A}\\u{1F44A}\\u{1F973}\\u{1F625}\\u{1F924}\\u{1F449}\\u{1F483}\\u{1F633}\\u270B\\u{1F61A}\\u{1F61D}\\u{1F634}\\u{1F31F}\\u{1F62C}\\u{1F643}\\u{1F340}\\u{1F337}\\u{1F63B}\\u{1F613}\\u2B50\\u2705\\u{1F97A}\\u{1F308}\\u{1F608}\\u{1F918}\\u{1F4A6}\\u2714\\u{1F623}\\u{1F3C3}\\u{1F490}\\u2639\\u{1F38A}\\u{1F498}\\u{1F620}\\u261D\\u{1F615}\\u{1F33A}\\u{1F382}\\u{1F33B}\\u{1F610}\\u{1F595}\\u{1F49D}\\u{1F64A}\\u{1F639}\\u{1F5E3}\\u{1F4AB}\\u{1F480}\\u{1F451}\\u{1F3B5}\\u{1F91E}\\u{1F61B}\\u{1F534}\\u{1F624}\\u{1F33C}\\u{1F62B}\\u26BD\\u{1F919}\\u2615\\u{1F3C6}\\u{1F92B}\\u{1F448}\\u{1F62E}\\u{1F646}\\u{1F37B}\\u{1F343}\\u{1F436}\\u{1F481}\\u{1F632}\\u{1F33F}\\u{1F9E1}\\u{1F381}\\u26A1\\u{1F31E}\\u{1F388}\\u274C\\u270A\\u{1F44B}\\u{1F630}\\u{1F928}\\u{1F636}\\u{1F91D}\\u{1F6B6}\\u{1F4B0}\\u{1F353}\\u{1F4A2}\\u{1F91F}\\u{1F641}\\u{1F6A8}\\u{1F4A8}\\u{1F92C}\\u2708\\u{1F380}\\u{1F37A}\\u{1F913}\\u{1F619}\\u{1F49F}\\u{1F331}\\u{1F616}\\u{1F476}\\u{1F974}\\u25B6\\u27A1\\u2753\\u{1F48E}\\u{1F4B8}\\u2B07\\u{1F628}\\u{1F31A}\\u{1F98B}\\u{1F637}\\u{1F57A}\\u26A0\\u{1F645}\\u{1F61F}\\u{1F635}\\u{1F44E}\\u{1F932}\\u{1F920}\\u{1F927}\\u{1F4CC}\\u{1F535}\\u{1F485}\\u{1F9D0}\\u{1F43E}\\u{1F352}\\u{1F617}\\u{1F911}\\u{1F30A}\\u{1F92F}\\u{1F437}\\u260E\\u{1F4A7}\\u{1F62F}\\u{1F486}\\u{1F446}\\u{1F3A4}\\u{1F647}\\u{1F351}\\u2744\\u{1F334}\\u{1F4A3}\\u{1F438}\\u{1F48C}\\u{1F4CD}\\u{1F940}\\u{1F922}\\u{1F445}\\u{1F4A1}\\u{1F4A9}\\u{1F450}\\u{1F4F8}\\u{1F47B}\\u{1F910}\\u{1F92E}\\u{1F3BC}\\u{1F975}\\u{1F6A9}\\u{1F34E}\\u{1F34A}\\u{1F47C}\\u{1F48D}\\u{1F4E3}\\u{1F942}\"),er=St.reduce((o,e,s)=>(o[s]=e,o),[]),tr=St.reduce((o,e,s)=>(o[e.codePointAt(0)]=s,o),[]);function ir(o){return o.reduce((e,s)=>(e+=er[s],e),\"\")}function sr(o){const e=[];for(const s of o){const i=tr[s.codePointAt(0)];if(i===void 0)throw new Error(`Non-base256emoji character: ${s}`);e.push(i)}return new Uint8Array(e)}const rr=he({prefix:\"\\u{1F680}\",name:\"base256emoji\",encode:ir,decode:sr});var nr=Object.freeze({__proto__:null,base256emoji:rr});new TextEncoder,new TextDecoder;const Rt={...vs,...Ts,...Ps,...Rs,...Os,...Bs,...Vs,...Ys,...Qs,...nr};function At(o){return globalThis.Buffer!=null?new Uint8Array(o.buffer,o.byteOffset,o.byteLength):o}function or(o=0){return globalThis.Buffer!=null&&globalThis.Buffer.allocUnsafe!=null?At(globalThis.Buffer.allocUnsafe(o)):new Uint8Array(o)}function xt(o,e,s,i){return{name:o,prefix:e,encoder:{name:o,prefix:e,encode:s},decoder:{decode:i}}}const Ot=xt(\"utf8\",\"u\",o=>\"u\"+new TextDecoder(\"utf8\").decode(o),o=>new TextEncoder().encode(o.substring(1))),ve=xt(\"ascii\",\"a\",o=>{let e=\"a\";for(let s=0;s<o.length;s++)e+=String.fromCharCode(o[s]);return e},o=>{o=o.substring(1);const e=or(o.length);for(let s=0;s<o.length;s++)e[s]=o.charCodeAt(s);return e}),ar={utf8:Ot,\"utf-8\":Ot,hex:Rt.base16,latin1:ve,ascii:ve,binary:ve,...Rt};function cr(o,e=\"utf8\"){const s=ar[e];if(!s)throw new Error(`Unsupported encoding \"${e}\"`);return(e===\"utf8\"||e===\"utf-8\")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?At(globalThis.Buffer.from(o,\"utf-8\")):s.decoder.decode(`${s.prefix}${o}`)}class Nt{constructor(e,s){this.core=e,this.logger=s,this.keychain=new Map,this.name=Je,this.version=Xe,this.initialized=!1,this.storagePrefix=N,this.init=async()=>{if(!this.initialized){const i=await this.getKeyChain();typeof i<\"u\"&&(this.keychain=i),this.initialized=!0}},this.has=i=>(this.isInitialized(),this.keychain.has(i)),this.set=async(i,t)=>{this.isInitialized(),this.keychain.set(i,t),await this.persist()},this.get=i=>{this.isInitialized();const t=this.keychain.get(i);if(typeof t>\"u\"){const{message:r}=y(\"NO_MATCHING_KEY\",`${this.name}: ${i}`);throw new Error(r)}return t},this.del=async i=>{this.isInitialized(),this.keychain.delete(i),await this.persist()},this.core=e,this.logger=S(s,this.name)}get context(){return A(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+\"//\"+this.name}async setKeyChain(e){await this.core.storage.setItem(this.storageKey,ge(e))}async getKeyChain(){const e=await this.core.storage.getItem(this.storageKey);return typeof e<\"u\"?pe(e):void 0}async persist(){await this.setKeyChain(this.keychain)}isInitialized(){if(!this.initialized){const{message:e}=y(\"NOT_INITIALIZED\",this.name);throw new Error(e)}}}class zt{constructor(e,s,i){this.core=e,this.logger=s,this.name=Ye,this.randomSessionIdentifier=de(),this.initialized=!1,this.init=async()=>{this.initialized||(await this.keychain.init(),this.initialized=!0)},this.hasKeys=t=>(this.isInitialized(),this.keychain.has(t)),this.getClientId=async()=>{if(this.isInitialized(),this.clientId)return this.clientId;const t=await this.getClientSeed(),r=ne.generateKeyPair(t),n=ne.encodeIss(r.publicKey);return this.clientId=n,n},this.generateKeyPair=()=>{this.isInitialized();const t=yi();return this.setPrivateKey(t.publicKey,t.privateKey)},this.signJWT=async t=>{this.isInitialized();const r=await this.getClientSeed(),n=ne.generateKeyPair(r),a=this.randomSessionIdentifier,c=He;return await ne.signJWT(a,t,c,n)},this.generateSharedKey=(t,r,n)=>{this.isInitialized();const a=this.getPrivateKey(t),c=mi(a,r);return this.setSymKey(c,n)},this.setSymKey=async(t,r)=>{this.isInitialized();const n=r||Di(t);return await this.keychain.set(n,t),n},this.deleteKeyPair=async t=>{this.isInitialized(),await this.keychain.del(t)},this.deleteSymKey=async t=>{this.isInitialized(),await this.keychain.del(t)},this.encode=async(t,r,n)=>{this.isInitialized();const a=fi(n),c=di(r);if(Re(a))return bi(c,n?.encoding);if(Ae(a)){const d=a.senderPublicKey,b=a.receiverPublicKey;t=await this.generateSharedKey(d,b)}const h=this.getSymKey(t),{type:u,senderPublicKey:g}=a;return _i({type:u,symKey:h,message:c,senderPublicKey:g,encoding:n?.encoding})},this.decode=async(t,r,n)=>{this.isInitialized();const a=Ei(r,n);if(Re(a)){const c=wi(r,n?.encoding);return Pe(c)}if(Ae(a)){const c=a.receiverPublicKey,h=a.senderPublicKey;t=await this.generateSharedKey(c,h)}try{const c=this.getSymKey(t),h=vi({symKey:c,encoded:r,encoding:n?.encoding});return Pe(h)}catch(c){this.logger.error(`Failed to decode message from topic: '${t}', clientId: '${await this.getClientId()}'`),this.logger.error(c)}},this.getPayloadType=(t,r=xe)=>{const n=Oe({encoded:t,encoding:r});return Ii(n.type)},this.getPayloadSenderPublicKey=(t,r=xe)=>{const n=Oe({encoded:t,encoding:r});return n.senderPublicKey?Gi(n.senderPublicKey,Ti):void 0},this.core=e,this.logger=S(s,this.name),this.keychain=i||new Nt(this.core,this.logger)}get context(){return A(this.logger)}async setPrivateKey(e,s){return await this.keychain.set(e,s),e}getPrivateKey(e){return this.keychain.get(e)}async getClientSeed(){let e=\"\";try{e=this.keychain.get(_e)}catch{e=de(),await this.keychain.set(_e,e)}return cr(e,\"base16\")}getSymKey(e){return this.keychain.get(e)}isInitialized(){if(!this.initialized){const{message:e}=y(\"NOT_INITIALIZED\",this.name);throw new Error(e)}}}class kt extends ii{constructor(e,s){super(e,s),this.logger=e,this.core=s,this.messages=new Map,this.messagesWithoutClientAck=new Map,this.name=Ze,this.version=Qe,this.initialized=!1,this.storagePrefix=N,this.init=async()=>{if(!this.initialized){this.logger.trace(\"Initialized\");try{const i=await this.getRelayerMessages();typeof i<\"u\"&&(this.messages=i);const t=await this.getRelayerMessagesWithoutClientAck();typeof t<\"u\"&&(this.messagesWithoutClientAck=t),this.logger.debug(`Successfully Restored records for ${this.name}`),this.logger.trace({type:\"method\",method:\"restore\",size:this.messages.size})}catch(i){this.logger.debug(`Failed to Restore records for ${this.name}`),this.logger.error(i)}finally{this.initialized=!0}}},this.set=async(i,t,r)=>{this.isInitialized();const n=oe(t);let a=this.messages.get(i);if(typeof a>\"u\"&&(a={}),typeof a[n]<\"u\")return n;if(a[n]=t,this.messages.set(i,a),r===Z.inbound){const c=this.messagesWithoutClientAck.get(i)||{};this.messagesWithoutClientAck.set(i,{...c,[n]:t})}return await this.persist(),n},this.get=i=>{this.isInitialized();let t=this.messages.get(i);return typeof t>\"u\"&&(t={}),t},this.getWithoutAck=i=>{this.isInitialized();const t={};for(const r of i){const n=this.messagesWithoutClientAck.get(r)||{};t[r]=Object.values(n)}return t},this.has=(i,t)=>{this.isInitialized();const r=this.get(i),n=oe(t);return typeof r[n]<\"u\"},this.ack=async(i,t)=>{this.isInitialized();const r=this.messagesWithoutClientAck.get(i);if(typeof r>\"u\")return;const n=oe(t);delete r[n],Object.keys(r).length===0?this.messagesWithoutClientAck.delete(i):this.messagesWithoutClientAck.set(i,r),await this.persist()},this.del=async i=>{this.isInitialized(),this.messages.delete(i),this.messagesWithoutClientAck.delete(i),await this.persist()},this.logger=S(e,this.name),this.core=s}get context(){return A(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+\"//\"+this.name}get storageKeyWithoutClientAck(){return this.storagePrefix+this.version+this.core.customStoragePrefix+\"//\"+this.name+\"_withoutClientAck\"}async setRelayerMessages(e){await this.core.storage.setItem(this.storageKey,ge(e))}async setRelayerMessagesWithoutClientAck(e){await this.core.storage.setItem(this.storageKeyWithoutClientAck,ge(e))}async getRelayerMessages(){const e=await this.core.storage.getItem(this.storageKey);return typeof e<\"u\"?pe(e):void 0}async getRelayerMessagesWithoutClientAck(){const e=await this.core.storage.getItem(this.storageKeyWithoutClientAck);return typeof e<\"u\"?pe(e):void 0}async persist(){await this.setRelayerMessages(this.messages),await this.setRelayerMessagesWithoutClientAck(this.messagesWithoutClientAck)}isInitialized(){if(!this.initialized){const{message:e}=y(\"NOT_INITIALIZED\",this.name);throw new Error(e)}}}class hr extends si{constructor(e,s){super(e,s),this.relayer=e,this.logger=s,this.events=new M,this.name=tt,this.queue=new Map,this.publishTimeout=w(Te),this.initialPublishTimeout=w($*15),this.needsTransportRestart=!1,this.publish=async(i,t,r)=>{this.logger.debug(\"Publishing Payload\"),this.logger.trace({type:\"method\",method:\"publish\",params:{topic:i,message:t,opts:r}});const n=r?.ttl||et,a=r?.prompt||!1,c=r?.tag||0,h=r?.id||De().toString(),u=q(ae().protocol),g={id:h,method:r?.publishMethod||u.publish,params:{topic:i,message:t,ttl:n,prompt:a,tag:c,attestation:r?.attestation,...r?.tvf}},d=`Failed to publish payload, please try again. id:${h} tag:${c}`;try{Y(g.params?.prompt)&&delete g.params?.prompt,Y(g.params?.tag)&&delete g.params?.tag;const b=new Promise(async l=>{const p=({id:m})=>{g.id?.toString()===m.toString()&&(this.removeRequestFromQueue(m),this.relayer.events.removeListener(f.publish,p),l())};this.relayer.events.on(f.publish,p);const I=k(new Promise((m,D)=>{this.rpcPublish(g,r).then(m).catch(_=>{this.logger.warn(_,_?.message),D(_)})}),this.initialPublishTimeout,`Failed initial publish, retrying.... id:${h} tag:${c}`);try{await I,this.events.removeListener(f.publish,p)}catch(m){this.queue.set(h,{request:g,opts:r,attempt:1}),this.logger.warn(m,m?.message)}});this.logger.trace({type:\"method\",method:\"publish\",params:{id:h,topic:i,message:t,opts:r}}),await k(b,this.publishTimeout,d)}catch(b){if(this.logger.debug(\"Failed to Publish Payload\"),this.logger.error(b),r?.internal?.throwOnFailedPublish)throw b}finally{this.queue.delete(h)}},this.publishCustom=async i=>{this.logger.debug(\"Publishing custom payload\"),this.logger.trace({type:\"method\",method:\"publishCustom\",params:i});const{payload:t,opts:r={}}=i,{attestation:n,tvf:a,publishMethod:c,prompt:h,tag:u,ttl:g=W}=r,d=r.id||De().toString(),b=q(ae().protocol),l=c||b.publish,p={id:d,method:l,params:{...t,ttl:g,prompt:h,tag:u,attestation:n,...a}},I=`Failed to publish custom payload, please try again. id:${d} tag:${u}`;try{Y(p.params?.prompt)&&delete p.params?.prompt,Y(p.params?.tag)&&delete p.params?.tag;const m=new Promise(async D=>{const _=({id:E})=>{p.id?.toString()===E.toString()&&(this.removeRequestFromQueue(E),this.relayer.events.removeListener(f.publish,_),D())};this.relayer.events.on(f.publish,_);const C=k(new Promise((E,z)=>{this.rpcPublish(p,r).then(E).catch(T=>{this.logger.warn(T,T?.message),z(T)})}),this.initialPublishTimeout,`Failed initial custom payload publish, retrying.... method:${l} id:${d} tag:${u}`);try{await C,this.events.removeListener(f.publish,_)}catch(E){this.queue.set(d,{request:p,opts:r,attempt:1}),this.logger.warn(E,E?.message)}});this.logger.trace({type:\"method\",method:\"publish\",params:{id:d,payload:t,opts:r}}),await k(m,this.publishTimeout,I)}catch(m){if(this.logger.debug(\"Failed to Publish Payload\"),this.logger.error(m),r?.internal?.throwOnFailedPublish)throw m}finally{this.queue.delete(d)}},this.on=(i,t)=>{this.events.on(i,t)},this.once=(i,t)=>{this.events.once(i,t)},this.off=(i,t)=>{this.events.off(i,t)},this.removeListener=(i,t)=>{this.events.removeListener(i,t)},this.relayer=e,this.logger=S(s,this.name),this.registerEventListeners()}get context(){return A(this.logger)}async rpcPublish(e,s){this.logger.debug(\"Outgoing Relay Payload\"),this.logger.trace({type:\"message\",direction:\"outgoing\",request:e});const i=await this.relayer.request(e);return this.relayer.events.emit(f.publish,{...e,...s}),this.logger.debug(\"Successfully Published Payload\"),i}removeRequestFromQueue(e){this.queue.delete(e)}checkQueue(){this.queue.forEach(async(e,s)=>{const i=e.attempt+1;this.queue.set(s,{...e,attempt:i}),this.logger.warn({},`Publisher: queue->publishing: ${e.request.id}, tag: ${e.request.params?.tag}, attempt: ${i}`),await this.rpcPublish(e.request,e.opts),this.logger.warn({},`Publisher: queue->published: ${e.request.id}`)})}registerEventListeners(){this.relayer.core.heartbeat.on(B.pulse,()=>{if(this.needsTransportRestart){this.needsTransportRestart=!1,this.relayer.events.emit(f.connection_stalled);return}this.checkQueue()}),this.relayer.on(f.message_ack,e=>{this.removeRequestFromQueue(e.id.toString())})}}class lr{constructor(){this.map=new Map,this.set=(e,s)=>{const i=this.get(e);this.exists(e,s)||this.map.set(e,[...i,s])},this.get=e=>this.map.get(e)||[],this.exists=(e,s)=>this.get(e).includes(s),this.delete=(e,s)=>{if(typeof s>\"u\"){this.map.delete(e);return}if(!this.map.has(e))return;const i=this.get(e);if(!this.exists(e,s))return;const t=i.filter(r=>r!==s);if(!t.length){this.map.delete(e);return}this.map.set(e,t)},this.clear=()=>{this.map.clear()}}get topics(){return Array.from(this.map.keys())}}class Lt extends ri{constructor(e,s){super(e,s),this.relayer=e,this.logger=s,this.subscriptions=new Map,this.topicMap=new lr,this.events=new M,this.name=ht,this.version=lt,this.pending=new Map,this.cached=[],this.initialized=!1,this.storagePrefix=N,this.subscribeTimeout=w(Te),this.initialSubscribeTimeout=w($*15),this.batchSubscribeTopicsLimit=500,this.init=async()=>{this.initialized||(this.logger.trace(\"Initialized\"),this.registerEventListeners(),await this.restore()),this.initialized=!0},this.subscribe=async(i,t)=>{this.isInitialized(),this.logger.debug(\"Subscribing Topic\"),this.logger.trace({type:\"method\",method:\"subscribe\",params:{topic:i,opts:t}});try{const r=ae(t),n={topic:i,relay:r,transportType:t?.transportType};t?.internal?.skipSubscribe||this.pending.set(i,n);const a=await this.rpcSubscribe(i,r,t);return typeof a==\"string\"&&(this.onSubscribe(a,n),this.logger.debug(\"Successfully Subscribed Topic\"),this.logger.trace({type:\"method\",method:\"subscribe\",params:{topic:i,opts:t}})),a}catch(r){throw this.logger.debug(\"Failed to Subscribe Topic\"),this.logger.error(r),r}},this.unsubscribe=async(i,t)=>{this.isInitialized(),typeof t?.id<\"u\"?await this.unsubscribeById(i,t.id,t):await this.unsubscribeByTopic(i,t)},this.isSubscribed=i=>new Promise(t=>{t(this.topicMap.topics.includes(i))}),this.isKnownTopic=i=>new Promise(t=>{t(this.topicMap.topics.includes(i)||this.pending.has(i)||this.cached.some(r=>r.topic===i))}),this.on=(i,t)=>{this.events.on(i,t)},this.once=(i,t)=>{this.events.once(i,t)},this.off=(i,t)=>{this.events.off(i,t)},this.removeListener=(i,t)=>{this.events.removeListener(i,t)},this.start=async()=>{await this.onConnect()},this.stop=async()=>{await this.onDisconnect()},this.restart=async()=>{await this.restore(),await this.onRestart()},this.checkPending=async()=>{if(this.pending.size===0&&(!this.initialized||!this.relayer.connected))return;const i=[];this.pending.forEach(t=>{i.push(t)}),await this.batchSubscribe(i)},this.registerEventListeners=()=>{this.relayer.core.heartbeat.on(B.pulse,async()=>{await this.checkPending()}),this.events.on(P.created,async i=>{const t=P.created;this.logger.info(`Emitting ${t}`),this.logger.debug({type:\"event\",event:t,data:i}),await this.persist()}),this.events.on(P.deleted,async i=>{const t=P.deleted;this.logger.info(`Emitting ${t}`),this.logger.debug({type:\"event\",event:t,data:i}),await this.persist()})},this.relayer=e,this.logger=S(s,this.name),this.clientId=\"\"}get context(){return A(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.relayer.core.customStoragePrefix+\"//\"+this.name}get length(){return this.subscriptions.size}get ids(){return Array.from(this.subscriptions.keys())}get values(){return Array.from(this.subscriptions.values())}get topics(){return this.topicMap.topics}get hasAnyTopics(){return this.topicMap.topics.length>0||this.pending.size>0||this.cached.length>0||this.subscriptions.size>0}hasSubscription(e,s){let i=!1;try{i=this.getSubscription(e).topic===s}catch{}return i}reset(){this.cached=[],this.initialized=!0}onDisable(){this.values.length>0&&(this.cached=this.values),this.subscriptions.clear(),this.topicMap.clear()}async unsubscribeByTopic(e,s){const i=this.topicMap.get(e);await Promise.all(i.map(async t=>await this.unsubscribeById(e,t,s)))}async unsubscribeById(e,s,i){this.logger.debug(\"Unsubscribing Topic\"),this.logger.trace({type:\"method\",method:\"unsubscribe\",params:{topic:e,id:s,opts:i}});try{const t=ae(i);await this.restartToComplete({topic:e,id:s,relay:t}),await this.rpcUnsubscribe(e,s,t);const r=H(\"USER_DISCONNECTED\",`${this.name}, ${e}`);await this.onUnsubscribe(e,s,r),this.logger.debug(\"Successfully Unsubscribed Topic\"),this.logger.trace({type:\"method\",method:\"unsubscribe\",params:{topic:e,id:s,opts:i}})}catch(t){throw this.logger.debug(\"Failed to Unsubscribe Topic\"),this.logger.error(t),t}}async rpcSubscribe(e,s,i){const t=await this.getSubscriptionId(e);if(i?.internal?.skipSubscribe)return t;(!i||i?.transportType===K.relay)&&await this.restartToComplete({topic:e,id:e,relay:s});const r={method:q(s.protocol).subscribe,params:{topic:e}};this.logger.debug(\"Outgoing Relay Payload\"),this.logger.trace({type:\"payload\",direction:\"outgoing\",request:r});const n=i?.internal?.throwOnFailedPublish;try{if(i?.transportType===K.link_mode)return setTimeout(()=>{(this.relayer.connected||this.relayer.connecting)&&this.relayer.request(r).catch(h=>this.logger.warn(h))},w($)),t;const a=new Promise(async h=>{const u=g=>{g.topic===e&&(this.events.removeListener(P.created,u),h(g.id))};this.events.on(P.created,u);try{const g=await k(new Promise((d,b)=>{this.relayer.request(r).catch(l=>{this.logger.warn(l,l?.message),b(l)}).then(d)}),this.initialSubscribeTimeout,`Subscribing to ${e} failed, please try again`);this.events.removeListener(P.created,u),h(g)}catch{}}),c=await k(a,this.subscribeTimeout,`Subscribing to ${e} failed, please try again`);if(!c&&n)throw new Error(`Subscribing to ${e} failed, please try again`);return c?t:null}catch(a){if(this.logger.debug(\"Outgoing Relay Subscribe Payload stalled\"),this.relayer.events.emit(f.connection_stalled),n)throw a}return null}async rpcBatchSubscribe(e){if(!e.length)return!0;const s=e[0].relay,i={method:q(s.protocol).batchSubscribe,params:{topics:e.map(t=>t.topic)}};this.logger.debug(\"Outgoing Relay Payload\"),this.logger.trace({type:\"payload\",direction:\"outgoing\",request:i});try{return await k(new Promise((t,r)=>{this.relayer.request(i).then(t).catch(n=>{this.logger.warn(n),r(n)})}),this.subscribeTimeout,\"rpcBatchSubscribe failed, please try again\"),!0}catch{return this.relayer.events.emit(f.connection_stalled),!1}}async rpcBatchFetchMessages(e){if(!e.length)return;const s=e[0].relay,i={method:q(s.protocol).batchFetchMessages,params:{topics:e.map(r=>r.topic)}};this.logger.debug(\"Outgoing Relay Payload\"),this.logger.trace({type:\"payload\",direction:\"outgoing\",request:i});let t;try{t=await await k(new Promise((r,n)=>{this.relayer.request(i).catch(a=>{this.logger.warn(a),n(a)}).then(r)}),this.subscribeTimeout,\"rpcBatchFetchMessages failed, please try again\")}catch{this.relayer.events.emit(f.connection_stalled)}return t}rpcUnsubscribe(e,s,i){const t={method:q(i.protocol).unsubscribe,params:{topic:e,id:s}};return this.logger.debug(\"Outgoing Relay Payload\"),this.logger.trace({type:\"payload\",direction:\"outgoing\",request:t}),this.relayer.request(t)}onSubscribe(e,s){this.setSubscription(e,{...s,id:e}),this.pending.delete(s.topic)}onBatchSubscribe(e){e.length&&e.forEach(s=>{this.setSubscription(s.id,{...s}),this.pending.delete(s.topic)})}async onUnsubscribe(e,s,i){this.events.removeAllListeners(s),this.hasSubscription(s,e)&&this.deleteSubscription(s,i),await this.relayer.messages.del(e)}async setRelayerSubscriptions(e){await this.relayer.core.storage.setItem(this.storageKey,e)}async getRelayerSubscriptions(){return await this.relayer.core.storage.getItem(this.storageKey)}setSubscription(e,s){this.logger.debug(\"Setting subscription\"),this.logger.trace({type:\"method\",method:\"setSubscription\",id:e,subscription:s}),this.addSubscription(e,s)}addSubscription(e,s){this.subscriptions.set(e,{...s}),this.topicMap.set(s.topic,e),this.events.emit(P.created,s)}getSubscription(e){this.logger.debug(\"Getting subscription\"),this.logger.trace({type:\"method\",method:\"getSubscription\",id:e});const s=this.subscriptions.get(e);if(!s){const{message:i}=y(\"NO_MATCHING_KEY\",`${this.name}: ${e}`);throw new Error(i)}return s}deleteSubscription(e,s){this.logger.debug(\"Deleting subscription\"),this.logger.trace({type:\"method\",method:\"deleteSubscription\",id:e,reason:s});const i=this.getSubscription(e);this.subscriptions.delete(e),this.topicMap.delete(i.topic,e),this.events.emit(P.deleted,{...i,reason:s})}async persist(){await this.setRelayerSubscriptions(this.values),this.events.emit(P.sync)}async onRestart(){if(this.cached.length){const e=[...this.cached],s=Math.ceil(this.cached.length/this.batchSubscribeTopicsLimit);for(let i=0;i<s;i++){const t=e.splice(0,this.batchSubscribeTopicsLimit);await this.batchSubscribe(t)}}this.events.emit(P.resubscribed)}async restore(){try{const e=await this.getRelayerSubscriptions();if(typeof e>\"u\"||!e.length)return;if(this.subscriptions.size&&!e.every(s=>s.topic===this.subscriptions.get(s.id)?.topic)){const{message:s}=y(\"RESTORE_WILL_OVERRIDE\",this.name);throw this.logger.error(s),this.logger.error(`${this.name}: ${JSON.stringify(this.values)}`),new Error(s)}this.cached=e,this.logger.debug(`Successfully Restored subscriptions for ${this.name}`),this.logger.trace({type:\"method\",method:\"restore\",subscriptions:this.values})}catch(e){this.logger.debug(`Failed to Restore subscriptions for ${this.name}`),this.logger.error(e)}}async batchSubscribe(e){if(e.length){if(!await this.rpcBatchSubscribe(e)){this.logger.warn(`Batch subscribe failed for ${e.length} topics, adding to pending for retry`),e.forEach(s=>{this.pending.set(s.topic,s)});return}this.onBatchSubscribe(await Promise.all(e.map(async s=>({...s,id:await this.getSubscriptionId(s.topic)}))))}}async batchFetchMessages(e){if(!e.length)return;this.logger.trace(`Fetching batch messages for ${e.length} subscriptions`);const s=await this.rpcBatchFetchMessages(e);s&&s.messages&&(await Ci(w($)),await this.relayer.handleBatchMessageEvents(s.messages))}async onConnect(){await this.restart(),this.reset()}onDisconnect(){this.onDisable()}isInitialized(){if(!this.initialized){const{message:e}=y(\"NOT_INITIALIZED\",this.name);throw new Error(e)}}async restartToComplete(e){!this.relayer.connected&&!this.relayer.connecting&&(this.cached.push(e),await this.relayer.transportOpen())}async getClientId(){return this.clientId||(this.clientId=await this.relayer.core.crypto.getClientId()),this.clientId}async getSubscriptionId(e){return oe(e+await this.getClientId())}}class Ft extends ni{constructor(e){super(e),this.protocol=\"wc\",this.version=2,this.events=new M,this.name=rt,this.transportExplicitlyClosed=!1,this.initialized=!1,this.connectionAttemptInProgress=!1,this.hasExperiencedNetworkDisruption=!1,this.heartBeatTimeout=w(re+ue),this.reconnectInProgress=!1,this.requestsInFlight=[],this.connectTimeout=w($*15),this.stalledRestartInProgress=!1,this.stalledRestartBackoff=0,this.stalledRestartBaseInterval=w($*2),this.stalledRestartMaxInterval=w(re),this.request=async s=>{this.logger.debug(\"Publishing Request Payload\");const i=s.id||De().toString();await this.toEstablishConnection();try{this.logger.trace({id:i,method:s.method,topic:s.params?.topic},\"relayer.request - publishing...\");const t=`${i}:${s.params?.tag||\"\"}`;this.requestsInFlight.push(t);const r=await this.provider.request(s);return this.requestsInFlight=this.requestsInFlight.filter(n=>n!==t),r}catch(t){throw this.logger.debug(`Failed to Publish Request: ${i}`),t}},this.resetPingTimeout=()=>{Ne()&&(clearTimeout(this.pingTimeout),this.pingTimeout=setTimeout(()=>{try{this.logger.debug({},\"pingTimeout: Connection stalled, terminating...\"),this.provider?.connection?.socket?.terminate?.()}catch(s){this.logger.warn(s,s?.message)}},this.heartBeatTimeout))},this.onPayloadHandler=s=>{this.onProviderPayload(s),this.resetPingTimeout()},this.onConnectHandler=()=>{this.logger.warn({},\"Relayer connected \\u{1F6DC}\"),this.startPingTimeout(),this.events.emit(f.connect)},this.onDisconnectHandler=()=>{this.logger.warn({},\"Relayer disconnected \\u{1F6D1}\"),this.requestsInFlight=[],this.onProviderDisconnect()},this.onProviderErrorHandler=s=>{this.logger.fatal(`Fatal socket error: ${s.message}`),this.events.emit(f.error,s),this.logger.fatal(\"Fatal socket error received, closing transport\"),this.transportExplicitlyClosed=!0,clearTimeout(this.reconnectTimeout),this.reconnectTimeout=void 0,this.reconnectInProgress=!1,this.transportClose().catch(i=>this.logger.warn(i))},this.registerProviderListeners=()=>{this.provider.on(R.payload,this.onPayloadHandler),this.provider.on(R.connect,this.onConnectHandler),this.provider.on(R.disconnect,this.onDisconnectHandler),this.provider.on(R.error,this.onProviderErrorHandler)},this.core=e.core,this.logger=Pi({logger:e.logger??st,name:this.name}),this.messages=new kt(this.logger,e.core),this.subscriber=new Lt(this,this.logger),this.publisher=new hr(this,this.logger),this.projectId=e?.projectId,this.relayUrl=e?.relayUrl||Ee,Si()?this.packageName=ze():Ri()&&(this.bundleId=ze()),this.provider={}}async init(){this.logger.trace(\"Initialized\"),this.registerEventListeners(),await Promise.all([this.messages.init(),this.subscriber.init()]),this.initialized=!0,this.transportOpen().catch(e=>this.logger.warn(e,e?.message))}get context(){return A(this.logger)}get connected(){return this.provider?.connection?.socket?.readyState===1||!1}get connecting(){return this.provider?.connection?.socket?.readyState===0||this.connectPromise!==void 0||!1}async publish(e,s,i){this.isInitialized(),await this.publisher.publish(e,s,i),await this.recordMessageEvent({topic:e,message:s,publishedAt:Date.now(),transportType:K.relay},Z.outbound)}async publishCustom(e){this.isInitialized(),await this.publisher.publishCustom(e)}async subscribe(e,s){this.isInitialized(),(!s?.transportType||s?.transportType===\"relay\")&&await this.toEstablishConnection();const i=typeof s?.internal?.throwOnFailedPublish>\"u\"?!0:s?.internal?.throwOnFailedPublish;let t=this.subscriber.topicMap.get(e)?.[0]||\"\",r;const n=a=>{a.topic===e&&(this.subscriber.off(P.created,n),r())};return await Promise.all([new Promise(a=>{r=a,this.subscriber.on(P.created,n)}),new Promise(async(a,c)=>{t=await this.subscriber.subscribe(e,{internal:{throwOnFailedPublish:i},...s}).catch(h=>{i&&c(h)})||t,a()})]),t}async unsubscribe(e,s){this.isInitialized(),await this.subscriber.unsubscribe(e,s)}on(e,s){this.events.on(e,s)}once(e,s){this.events.once(e,s)}off(e,s){this.events.off(e,s)}removeListener(e,s){this.events.removeListener(e,s)}async transportDisconnect(){this.provider.disconnect&&(this.hasExperiencedNetworkDisruption||this.connected)?await k(this.provider.disconnect(),2e3,\"provider.disconnect()\").catch(()=>this.onProviderDisconnect()):this.onProviderDisconnect()}async transportClose(){this.transportExplicitlyClosed=!0,clearTimeout(this.stalledRestartTimeout),this.stalledRestartInProgress=!1,this.stalledRestartBackoff=0,await this.resetTransport()}async transportOpen(e){if(!this.subscriber.hasAnyTopics){this.logger.info(\"Starting WS connection skipped because the client has no topics to work with.\");return}if(this.connectPromise?(this.logger.debug({},\"Waiting for existing connection attempt to resolve...\"),await this.connectPromise,this.logger.debug({},\"Existing connection attempt resolved\")):(this.connectPromise=new Promise(async(s,i)=>{await this.connect(e).then(s).catch(i).finally(()=>{this.connectPromise=void 0})}),await this.connectPromise),!this.connected)throw new Error(`Couldn't establish socket connection to the relay server: ${this.relayUrl}`)}async restartTransport(e){this.logger.debug({},\"Restarting transport...\"),!this.connectionAttemptInProgress&&(this.relayUrl=e||this.relayUrl,await this.confirmOnlineStateOrThrow(),await this.resetTransport(),await this.transportOpen())}async resetTransport(){this.reconnectInProgress=!0,clearTimeout(this.reconnectTimeout),this.reconnectTimeout=void 0,await this.transportDisconnect(),await this.subscriber.stop(),this.reconnectInProgress=!1}async confirmOnlineStateOrThrow(){if(!await ke())throw new Error(\"No internet connection detected. Please restart your network and try again.\")}async handleBatchMessageEvents(e){if(e?.length===0){this.logger.trace(\"Batch message events is empty. Ignoring...\");return}const s=e.sort((i,t)=>i.publishedAt-t.publishedAt);this.logger.debug(`Batch of ${s.length} message events sorted`);for(const i of s)try{await this.onMessageEvent(i)}catch(t){this.logger.warn(t,\"Error while processing batch message event: \"+t?.message)}this.logger.trace(`Batch of ${s.length} message events processed`)}async onLinkMessageEvent(e,s){const{topic:i}=e;if(!s.sessionExists){const t=J(W),r={topic:i,expiry:t,relay:{protocol:\"irn\"},active:!1};await this.core.pairing.pairings.set(i,r)}this.events.emit(f.message,e),await this.recordMessageEvent(e,Z.inbound)}async connect(e){await this.confirmOnlineStateOrThrow(),e&&e!==this.relayUrl&&(this.relayUrl=e,await this.transportDisconnect()),this.connectionAttemptInProgress=!0,this.transportExplicitlyClosed=!1;let s=1;for(;s<6;){try{if(this.transportExplicitlyClosed)break;this.logger.debug({},`Connecting to ${this.relayUrl}, attempt: ${s}...`),await this.createProvider(),await new Promise(async(i,t)=>{const r=()=>{t(new Error(\"Connection interrupted while trying to connect\"))};this.provider.once(R.disconnect,r),await k(new Promise((n,a)=>{this.provider.connect().then(n).catch(a)}),this.connectTimeout,`Socket stalled when trying to connect to ${this.relayUrl}`).catch(n=>{t(n)}).finally(()=>{this.provider.off(R.disconnect,r),clearTimeout(this.reconnectTimeout)}),await new Promise(async(n,a)=>{const c=()=>{t(new Error(\"Connection interrupted while trying to subscribe\"))};this.provider.once(R.disconnect,c),await this.subscriber.start().then(n).catch(a).finally(()=>{this.provider.off(R.disconnect,c)})}),this.hasExperiencedNetworkDisruption=!1,i()})}catch(i){await this.subscriber.stop();const t=i;this.logger.warn({},t.message),this.hasExperiencedNetworkDisruption=!0}finally{this.connectionAttemptInProgress=!1}if(this.connected){this.logger.debug({},`Connected to ${this.relayUrl} successfully on attempt: ${s}`);break}await new Promise(i=>setTimeout(i,w(s*1))),s++}}startPingTimeout(){if(Ne())try{this.provider?.connection?.socket&&this.provider?.connection?.socket?.on(\"ping\",()=>{this.resetPingTimeout()}),this.resetPingTimeout()}catch(e){this.logger.warn(e,e?.message)}}async createProvider(){this.provider.connection&&this.unregisterProviderListeners();const e=await this.core.crypto.signJWT(this.relayUrl);this.provider=new Wi(new Ji(Ai({sdkVersion:ce,protocol:this.protocol,version:this.version,relayUrl:this.relayUrl,projectId:this.projectId,auth:e,useOnCloseEvent:!0,bundleId:this.bundleId,packageName:this.packageName}))),this.registerProviderListeners()}async recordMessageEvent(e,s){const{topic:i,message:t}=e;await this.messages.set(i,t,s)}async shouldIgnoreMessageEvent(e){const{topic:s,message:i}=e;if(!i||i.length===0)return this.logger.warn(`Ignoring invalid/empty message: ${i}`),!0;if(!await this.subscriber.isKnownTopic(s))return this.logger.warn(`Ignoring message for unknown topic ${s}`),!0;const t=this.messages.has(s,i);return t&&this.logger.warn(`Ignoring duplicate message: ${i}`),t}async onProviderPayload(e){if(this.logger.debug(\"Incoming Relay Payload\"),this.logger.trace({type:\"payload\",direction:\"incoming\",payload:e}),Me(e)){if(!e.method.endsWith(nt))return;const s=e.params,{topic:i,message:t,publishedAt:r,attestation:n}=s.data,a={topic:i,message:t,publishedAt:r,transportType:K.relay,attestation:n};this.logger.debug(\"Emitting Relayer Payload\"),this.logger.trace({type:\"event\",event:s.id,...a}),this.events.emit(s.id,a),await this.acknowledgePayload(e),await this.onMessageEvent(a)}else Be(e)&&this.events.emit(f.message_ack,e)}async onMessageEvent(e){await this.shouldIgnoreMessageEvent(e)||(await this.recordMessageEvent(e,Z.inbound),this.events.emit(f.message,e))}async acknowledgePayload(e){const s=je(e.id,!0);await this.provider.connection.send(s)}unregisterProviderListeners(){this.provider.off(R.payload,this.onPayloadHandler),this.provider.off(R.connect,this.onConnectHandler),this.provider.off(R.disconnect,this.onDisconnectHandler),this.provider.off(R.error,this.onProviderErrorHandler),clearTimeout(this.pingTimeout)}async registerEventListeners(){let e=await ke();xi(async s=>{e!==s&&(e=s,s?await this.transportOpen().catch(i=>this.logger.error(i,i?.message)):(this.hasExperiencedNetworkDisruption=!0,await this.transportDisconnect(),this.transportExplicitlyClosed=!1))}),this.core.heartbeat.on(B.pulse,async()=>{if(!this.transportExplicitlyClosed&&!this.connected&&Oi())try{await this.confirmOnlineStateOrThrow(),await this.transportOpen()}catch(s){this.logger.warn(s,s?.message)}}),this.events.on(f.connection_stalled,()=>{if(this.transportExplicitlyClosed||this.stalledRestartInProgress)return;this.stalledRestartInProgress=!0;const s=this.stalledRestartBackoff===0?0:Math.min(Math.pow(2,this.stalledRestartBackoff-1)*this.stalledRestartBaseInterval,this.stalledRestartMaxInterval);this.stalledRestartBackoff++,this.logger.warn(`Connection stalled, restarting transport${s?` in ${s}ms`:\"\"}...`),this.stalledRestartTimeout=setTimeout(async()=>{try{if(this.transportExplicitlyClosed)return;await this.restartTransport()}catch(i){this.logger.error(i,i?.message)}finally{this.stalledRestartInProgress=!1}},s)})}async onProviderDisconnect(){clearTimeout(this.pingTimeout),this.events.emit(f.disconnect),this.connectionAttemptInProgress=!1,!this.reconnectInProgress&&(this.reconnectInProgress=!0,await this.subscriber.stop(),this.subscriber.hasAnyTopics&&(this.transportExplicitlyClosed||(this.reconnectTimeout=setTimeout(async()=>{await this.transportOpen().catch(e=>this.logger.error(e,e?.message)),this.reconnectTimeout=void 0,this.reconnectInProgress=!1},w(ot)))))}isInitialized(){if(!this.initialized){const{message:e}=y(\"NOT_INITIALIZED\",this.name);throw new Error(e)}}async toEstablishConnection(){if(await this.confirmOnlineStateOrThrow(),!this.connected){if(this.connectPromise){await this.connectPromise;return}await this.connect()}}}function ur(o,e){return o===e||Number.isNaN(o)&&Number.isNaN(e)}function Ut(o){return Object.getOwnPropertySymbols(o).filter(e=>Object.prototype.propertyIsEnumerable.call(o,e))}function $t(o){return o==null?o===void 0?\"[object Undefined]\":\"[object Null]\":Object.prototype.toString.call(o)}const gr=\"[object RegExp]\",pr=\"[object String]\",dr=\"[object Number]\",yr=\"[object Boolean]\",Kt=\"[object Arguments]\",mr=\"[object Symbol]\",Dr=\"[object Date]\",fr=\"[object Map]\",br=\"[object Set]\",_r=\"[object Array]\",Er=\"[object Function]\",wr=\"[object ArrayBuffer]\",Ie=\"[object Object]\",vr=\"[object Error]\",Ir=\"[object DataView]\",Tr=\"[object Uint8Array]\",Cr=\"[object Uint8ClampedArray]\",Pr=\"[object Uint16Array]\",Sr=\"[object Uint32Array]\",Rr=\"[object BigUint64Array]\",Ar=\"[object Int8Array]\",xr=\"[object Int16Array]\",Or=\"[object Int32Array]\",Nr=\"[object BigInt64Array]\",zr=\"[object Float32Array]\",kr=\"[object Float64Array]\";function Mt(o){if(!o||typeof o!=\"object\")return!1;const e=Object.getPrototypeOf(o);return e===null||e===Object.prototype||Object.getPrototypeOf(e)===null?Object.prototype.toString.call(o)===\"[object Object]\":!1}function Lr(o,e,s){return te(o,e,void 0,void 0,void 0,void 0,s)}function te(o,e,s,i,t,r,n){const a=n(o,e,s,i,t,r);if(a!==void 0)return a;if(typeof o==typeof e)switch(typeof o){case\"bigint\":case\"string\":case\"boolean\":case\"symbol\":case\"undefined\":return o===e;case\"number\":return o===e||Object.is(o,e);case\"function\":return o===e;case\"object\":return ie(o,e,r,n)}return ie(o,e,r,n)}function ie(o,e,s,i){if(Object.is(o,e))return!0;let t=$t(o),r=$t(e);if(t===Kt&&(t=Ie),r===Kt&&(r=Ie),t!==r)return!1;switch(t){case pr:return o.toString()===e.toString();case dr:{const c=o.valueOf(),h=e.valueOf();return ur(c,h)}case yr:case Dr:case mr:return Object.is(o.valueOf(),e.valueOf());case gr:return o.source===e.source&&o.flags===e.flags;case Er:return o===e}s=s??new Map;const n=s.get(o),a=s.get(e);if(n!=null&&a!=null)return n===e;s.set(o,e),s.set(e,o);try{switch(t){case fr:{if(o.size!==e.size)return!1;for(const[c,h]of o.entries())if(!e.has(c)||!te(h,e.get(c),c,o,e,s,i))return!1;return!0}case br:{if(o.size!==e.size)return!1;const c=Array.from(o.values()),h=Array.from(e.values());for(let u=0;u<c.length;u++){const g=c[u],d=h.findIndex(b=>te(g,b,void 0,o,e,s,i));if(d===-1)return!1;h.splice(d,1)}return!0}case _r:case Tr:case Cr:case Pr:case Sr:case Rr:case Ar:case xr:case Or:case Nr:case zr:case kr:{if(typeof Buffer<\"u\"&&Buffer.isBuffer(o)!==Buffer.isBuffer(e)||o.length!==e.length)return!1;for(let c=0;c<o.length;c++)if(!te(o[c],e[c],c,o,e,s,i))return!1;return!0}case wr:return o.byteLength!==e.byteLength?!1:ie(new Uint8Array(o),new Uint8Array(e),s,i);case Ir:return o.byteLength!==e.byteLength||o.byteOffset!==e.byteOffset?!1:ie(new Uint8Array(o),new Uint8Array(e),s,i);case vr:return o.name===e.name&&o.message===e.message;case Ie:{if(!(ie(o.constructor,e.constructor,s,i)||Mt(o)&&Mt(e)))return!1;const h=[...Object.keys(o),...Ut(o)],u=[...Object.keys(e),...Ut(e)];if(h.length!==u.length)return!1;for(let g=0;g<h.length;g++){const d=h[g],b=o[d];if(!Object.hasOwn(e,d))return!1;const l=e[d];if(!te(b,l,d,o,e,s,i))return!1}return!0}default:return!1}}finally{s.delete(o),s.delete(e)}}function Fr(){}function Ur(o,e){return Lr(o,e,Fr)}class Bt extends oi{constructor(e,s,i,t=N,r=void 0){super(e,s,i,t),this.core=e,this.logger=s,this.name=i,this.map=new Map,this.version=at,this.cached=[],this.initialized=!1,this.storagePrefix=N,this.recentlyDeleted=[],this.recentlyDeletedLimit=200,this.init=async()=>{this.initialized||(this.logger.trace(\"Initialized\"),await this.restore(),this.cached.forEach(n=>{this.getKey&&n!==null&&!Y(n)?this.map.set(this.getKey(n),n):Ni(n)?this.map.set(n.id,n):zi(n)&&this.map.set(n.topic,n)}),this.cached=[],this.initialized=!0)},this.set=async(n,a)=>{this.isInitialized(),this.map.has(n)?await this.update(n,a):(this.logger.debug(\"Setting value\"),this.logger.trace({type:\"method\",method:\"set\",key:n,value:a}),this.map.set(n,a),await this.persist())},this.get=n=>(this.isInitialized(),this.logger.debug(\"Getting value\"),this.logger.trace({type:\"method\",method:\"get\",key:n}),this.getData(n)),this.getAll=n=>(this.isInitialized(),n?this.values.filter(a=>Object.keys(n).every(c=>Ur(a[c],n[c]))):this.values),this.update=async(n,a)=>{this.isInitialized(),this.logger.debug(\"Updating value\"),this.logger.trace({type:\"method\",method:\"update\",key:n,update:a});const c={...this.getData(n),...a};this.map.set(n,c),await this.persist()},this.delete=async(n,a)=>{this.isInitialized(),this.map.has(n)&&(this.logger.debug(\"Deleting value\"),this.logger.trace({type:\"method\",method:\"delete\",key:n,reason:a}),this.map.delete(n),this.addToRecentlyDeleted(n),await this.persist())},this.logger=S(s,this.name),this.storagePrefix=t,this.getKey=r}get context(){return A(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+\"//\"+this.name}get length(){return this.map.size}get keys(){return Array.from(this.map.keys())}get values(){return Array.from(this.map.values())}addToRecentlyDeleted(e){this.recentlyDeleted.push(e),this.recentlyDeleted.length>=this.recentlyDeletedLimit&&this.recentlyDeleted.splice(0,this.recentlyDeletedLimit/2)}async setDataStore(e){await this.core.storage.setItem(this.storageKey,e)}async getDataStore(){return await this.core.storage.getItem(this.storageKey)}getData(e){const s=this.map.get(e);if(!s){if(this.recentlyDeleted.includes(e)){const{message:t}=y(\"MISSING_OR_INVALID\",`Record was recently deleted - ${this.name}: ${e}`);throw this.logger.error(t),new Error(t)}const{message:i}=y(\"NO_MATCHING_KEY\",`${this.name}: ${e}`);throw this.logger.error(i),new Error(i)}return s}async persist(){await this.setDataStore(this.values)}async restore(){try{const e=await this.getDataStore();if(typeof e>\"u\"||!e.length)return;if(this.map.size){const{message:s}=y(\"RESTORE_WILL_OVERRIDE\",this.name);throw this.logger.error(s),new Error(s)}this.cached=e,this.logger.debug(`Successfully Restored value for ${this.name}`),this.logger.trace({type:\"method\",method:\"restore\",value:this.values})}catch(e){this.logger.debug(`Failed to Restore value for ${this.name}`),this.logger.error(e)}}isInitialized(){if(!this.initialized){const{message:e}=y(\"NOT_INITIALIZED\",this.name);throw new Error(e)}}}class jt{constructor(e,s){this.core=e,this.logger=s,this.name=ut,this.version=gt,this.events=new Xt,this.initialized=!1,this.storagePrefix=N,this.ignoredPayloadTypes=[ki],this.registeredMethods=[],this.init=async()=>{this.initialized||(await this.pairings.init(),await this.cleanup(),this.registerRelayerEvents(),this.registerExpirerEvents(),this.initialized=!0,this.logger.trace(\"Initialized\"))},this.register=({methods:i})=>{this.isInitialized(),this.registeredMethods=[...new Set([...this.registeredMethods,...i])]},this.create=async i=>{this.isInitialized();const t=de(),r=await this.core.crypto.setSymKey(t),n=J(W),a={protocol:it},c={topic:r,expiry:n,relay:a,active:!1,methods:i?.methods},h=Le({protocol:this.core.protocol,version:this.core.version,topic:r,symKey:t,relay:a,expiryTimestamp:n,methods:i?.methods});return this.events.emit(G.create,c),this.core.expirer.set(r,n),await this.pairings.set(r,c),await this.core.relayer.subscribe(r,{transportType:i?.transportType,internal:i?.internal}),{topic:r,uri:h}},this.pair=async i=>{this.isInitialized();const t=this.core.eventClient.createEvent({properties:{topic:i?.uri,trace:[L.pairing_started]}});this.isValidPair(i,t);const{topic:r,symKey:n,relay:a,expiryTimestamp:c,methods:h}=Fe(i.uri);t.props.properties.topic=r,t.addTrace(L.pairing_uri_validation_success),t.addTrace(L.pairing_uri_not_expired);let u;if(this.pairings.keys.includes(r)){if(u=this.pairings.get(r),t.addTrace(L.existing_pairing),u.active)throw t.setError(U.active_pairing_already_exists),new Error(`Pairing already exists: ${r}. Please try again with a new connection URI.`);t.addTrace(L.pairing_not_expired)}const g=c||J(W),d={topic:r,relay:a,expiry:g,active:!1,methods:h};this.core.expirer.set(r,g),await this.pairings.set(r,d),t.addTrace(L.store_new_pairing),i.activatePairing&&await this.activate({topic:r}),this.events.emit(G.create,d),t.addTrace(L.emit_inactive_pairing),this.core.crypto.keychain.has(r)||await this.core.crypto.setSymKey(n,r),t.addTrace(L.subscribing_pairing_topic);try{await this.core.relayer.confirmOnlineStateOrThrow()}catch{t.setError(U.no_internet_connection)}try{await this.core.relayer.subscribe(r,{relay:a})}catch(b){throw t.setError(U.subscribe_pairing_topic_failure),b}return t.addTrace(L.subscribe_pairing_topic_success),d},this.activate=async({topic:i})=>{this.isInitialized();const t=J(W);this.core.expirer.set(i,t),await this.pairings.update(i,{active:!0,expiry:t})},this.ping=async i=>{this.isInitialized(),await this.isValidPing(i),this.logger.warn(\"ping() is deprecated and will be removed in the next major release.\");const{topic:t}=i;if(this.pairings.keys.includes(t)){const r=await this.sendRequest(t,\"wc_pairingPing\",{}),{done:n,resolve:a,reject:c}=Li();this.events.once(ye(\"pairing_ping\",r),({error:h})=>{h?c(h):a()}),await n()}},this.updateExpiry=async({topic:i,expiry:t})=>{this.isInitialized(),await this.pairings.update(i,{expiry:t})},this.updateMetadata=async({topic:i,metadata:t})=>{this.isInitialized(),await this.pairings.update(i,{peerMetadata:t})},this.getPairings=()=>(this.isInitialized(),this.pairings.values),this.disconnect=async i=>{this.isInitialized(),await this.isValidDisconnect(i);const{topic:t}=i;this.pairings.keys.includes(t)&&(await this.sendRequest(t,\"wc_pairingDelete\",H(\"USER_DISCONNECTED\")),await this.deletePairing(t))},this.formatUriFromPairing=i=>{this.isInitialized();const{topic:t,relay:r,expiry:n,methods:a}=i,c=this.core.crypto.keychain.get(t);return Le({protocol:this.core.protocol,version:this.core.version,topic:t,symKey:c,relay:r,expiryTimestamp:n,methods:a})},this.sendRequest=async(i,t,r)=>{const n=qe(t,r),a=await this.core.crypto.encode(i,n),c=V[t].req;return this.core.history.set(i,n),this.core.relayer.publish(i,a,c),n.id},this.sendResult=async(i,t,r)=>{const n=je(i,r),a=await this.core.crypto.encode(t,n),c=(await this.core.history.get(t,i)).request.method,h=V[c].res;await this.core.relayer.publish(t,a,h),await this.core.history.resolve(n)},this.sendError=async(i,t,r)=>{const n=Yi(i,r),a=await this.core.crypto.encode(t,n),c=(await this.core.history.get(t,i)).request.method,h=V[c]?V[c].res:V.unregistered_method.res;await this.core.relayer.publish(t,a,h),await this.core.history.resolve(n)},this.deletePairing=async(i,t)=>{await this.core.relayer.unsubscribe(i),await Promise.all([this.pairings.delete(i,H(\"USER_DISCONNECTED\")),this.core.crypto.deleteSymKey(i),t?Promise.resolve():this.core.expirer.del(i)])},this.cleanup=async()=>{const i=this.pairings.getAll().filter(t=>Ue(t.expiry));await Promise.all(i.map(t=>this.deletePairing(t.topic)))},this.onRelayEventRequest=async i=>{const{topic:t,payload:r}=i;switch(r.method){case\"wc_pairingPing\":return await this.onPairingPingRequest(t,r);case\"wc_pairingDelete\":return await this.onPairingDeleteRequest(t,r);default:return await this.onUnknownRpcMethodRequest(t,r)}},this.onRelayEventResponse=async i=>{const{topic:t,payload:r}=i,n=(await this.core.history.get(t,r.id)).request.method;switch(n){case\"wc_pairingPing\":return this.onPairingPingResponse(t,r);default:return this.onUnknownRpcMethodResponse(n)}},this.onPairingPingRequest=async(i,t)=>{const{id:r}=t;try{this.isValidPing({topic:i}),await this.sendResult(r,i,!0),this.events.emit(G.ping,{id:r,topic:i})}catch(n){await this.sendError(r,i,n),this.logger.error(n)}},this.onPairingPingResponse=(i,t)=>{const{id:r}=t;setTimeout(()=>{Hi(t)?this.events.emit(ye(\"pairing_ping\",r),{}):Ve(t)&&this.events.emit(ye(\"pairing_ping\",r),{error:t.error})},500)},this.onPairingDeleteRequest=async(i,t)=>{const{id:r}=t;try{this.isValidDisconnect({topic:i}),await this.deletePairing(i),this.events.emit(G.delete,{id:r,topic:i})}catch(n){await this.sendError(r,i,n),this.logger.error(n)}},this.onUnknownRpcMethodRequest=async(i,t)=>{const{id:r,method:n}=t;try{if(this.registeredMethods.includes(n))return;const a=H(\"WC_METHOD_UNSUPPORTED\",n);await this.sendError(r,i,a),this.logger.error(a)}catch(a){await this.sendError(r,i,a),this.logger.error(a)}},this.onUnknownRpcMethodResponse=i=>{this.registeredMethods.includes(i)||this.logger.error(H(\"WC_METHOD_UNSUPPORTED\",i))},this.isValidPair=(i,t)=>{if(!me(i)){const{message:n}=y(\"MISSING_OR_INVALID\",`pair() params: ${i}`);throw t.setError(U.malformed_pairing_uri),new Error(n)}if(!Fi(i.uri)){const{message:n}=y(\"MISSING_OR_INVALID\",`pair() uri: ${i.uri}`);throw t.setError(U.malformed_pairing_uri),new Error(n)}const r=Fe(i?.uri);if(!r?.relay?.protocol){const{message:n}=y(\"MISSING_OR_INVALID\",\"pair() uri#relay-protocol\");throw t.setError(U.malformed_pairing_uri),new Error(n)}if(!r?.symKey){const{message:n}=y(\"MISSING_OR_INVALID\",\"pair() uri#symKey\");throw t.setError(U.malformed_pairing_uri),new Error(n)}if(r?.expiryTimestamp&&w(r?.expiryTimestamp)<Date.now()){t.setError(U.pairing_expired);const{message:n}=y(\"EXPIRED\",\"pair() URI has expired. Please try again with a new connection URI.\");throw new Error(n)}},this.isValidPing=async i=>{if(!me(i)){const{message:r}=y(\"MISSING_OR_INVALID\",`ping() params: ${i}`);throw new Error(r)}const{topic:t}=i;await this.isValidPairingTopic(t)},this.isValidDisconnect=async i=>{if(!me(i)){const{message:r}=y(\"MISSING_OR_INVALID\",`disconnect() params: ${i}`);throw new Error(r)}const{topic:t}=i;await this.isValidPairingTopic(t)},this.isValidPairingTopic=async i=>{if(!Ui(i,!1)){const{message:t}=y(\"MISSING_OR_INVALID\",`pairing topic should be a string: ${i}`);throw new Error(t)}if(!this.pairings.keys.includes(i)){const{message:t}=y(\"NO_MATCHING_KEY\",`pairing topic doesn't exist: ${i}`);throw new Error(t)}if(Ue(this.pairings.get(i).expiry)){await this.deletePairing(i);const{message:t}=y(\"EXPIRED\",`pairing topic: ${i}`);throw new Error(t)}},this.core=e,this.logger=S(s,this.name),this.pairings=new Bt(this.core,this.logger,this.name,this.storagePrefix)}get context(){return A(this.logger)}isInitialized(){if(!this.initialized){const{message:e}=y(\"NOT_INITIALIZED\",this.name);throw new Error(e)}}registerRelayerEvents(){this.core.relayer.on(f.message,async e=>{const{topic:s,message:i,transportType:t}=e;if(this.pairings.keys.includes(s)&&t!==K.link_mode&&!this.ignoredPayloadTypes.includes(this.core.crypto.getPayloadType(i)))try{const r=await this.core.crypto.decode(s,i);Me(r)?(this.core.history.set(s,r),await this.onRelayEventRequest({topic:s,payload:r})):Be(r)&&(await this.core.history.resolve(r),await this.onRelayEventResponse({topic:s,payload:r}),this.core.history.delete(s,r.id)),await this.core.relayer.messages.ack(s,i)}catch(r){this.logger.error(r)}})}registerExpirerEvents(){this.core.expirer.on(O.expired,async e=>{const{topic:s}=$i(e.target);s&&this.pairings.keys.includes(s)&&(await this.deletePairing(s,!0),this.events.emit(G.expire,{topic:s}))})}}class qt extends ai{constructor(e,s){super(e,s),this.core=e,this.logger=s,this.records=new Map,this.events=new M,this.name=pt,this.version=dt,this.cached=[],this.initialized=!1,this.storagePrefix=N,this.init=async()=>{this.initialized||(this.logger.trace(\"Initialized\"),await this.restore(),this.cached.forEach(i=>this.records.set(i.id,i)),this.cached=[],this.registerEventListeners(),this.initialized=!0)},this.set=(i,t,r)=>{if(this.isInitialized(),this.logger.debug(\"Setting JSON-RPC request history record\"),this.logger.trace({type:\"method\",method:\"set\",topic:i,request:t,chainId:r}),this.records.has(t.id))return;const n={id:t.id,topic:i,request:{method:t.method,params:t.params||null},chainId:r,expiry:J(le)};this.records.set(n.id,n),this.persist(),this.events.emit(x.created,n)},this.resolve=async i=>{if(this.isInitialized(),this.logger.debug(\"Updating JSON-RPC response history record\"),this.logger.trace({type:\"method\",method:\"update\",response:i}),!this.records.has(i.id))return;const t=await this.getRecord(i.id);typeof t.response<\"u\"||(t.response=Ve(i)?{error:i.error}:{result:i.result},this.records.set(t.id,t),this.persist(),this.events.emit(x.updated,t))},this.get=async(i,t)=>(this.isInitialized(),this.logger.debug(\"Getting record\"),this.logger.trace({type:\"method\",method:\"get\",topic:i,id:t}),await this.getRecord(t)),this.delete=(i,t)=>{this.isInitialized(),this.logger.debug(\"Deleting record\"),this.logger.trace({type:\"method\",method:\"delete\",id:t}),this.values.forEach(r=>{if(r.topic===i){if(typeof t<\"u\"&&r.id!==t)return;this.records.delete(r.id),this.events.emit(x.deleted,r)}}),this.persist()},this.exists=async(i,t)=>(this.isInitialized(),this.records.has(t)?(await this.getRecord(t)).topic===i:!1),this.on=(i,t)=>{this.events.on(i,t)},this.once=(i,t)=>{this.events.once(i,t)},this.off=(i,t)=>{this.events.off(i,t)},this.removeListener=(i,t)=>{this.events.removeListener(i,t)},this.logger=S(s,this.name)}get context(){return A(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+\"//\"+this.name}get size(){return this.records.size}get keys(){return Array.from(this.records.keys())}get values(){return Array.from(this.records.values())}get pending(){const e=[];return this.values.forEach(s=>{if(typeof s.response<\"u\")return;const i={topic:s.topic,request:qe(s.request.method,s.request.params,s.id),chainId:s.chainId};return e.push(i)}),e}async setJsonRpcRecords(e){await this.core.storage.setItem(this.storageKey,e)}async getJsonRpcRecords(){return await this.core.storage.getItem(this.storageKey)}getRecord(e){this.isInitialized();const s=this.records.get(e);if(!s){const{message:i}=y(\"NO_MATCHING_KEY\",`${this.name}: ${e}`);throw new Error(i)}return s}async persist(){await this.setJsonRpcRecords(this.values),this.events.emit(x.sync)}async restore(){try{const e=await this.getJsonRpcRecords();if(typeof e>\"u\"||!e.length)return;if(this.records.size){const{message:s}=y(\"RESTORE_WILL_OVERRIDE\",this.name);throw this.logger.error(s),new Error(s)}this.cached=e,this.logger.debug(`Successfully Restored records for ${this.name}`),this.logger.trace({type:\"method\",method:\"restore\",records:this.values})}catch(e){this.logger.debug(`Failed to Restore records for ${this.name}`),this.logger.error(e)}}registerEventListeners(){this.events.on(x.created,e=>{const s=x.created;this.logger.info(`Emitting ${s}`),this.logger.debug({type:\"event\",event:s,record:e})}),this.events.on(x.updated,e=>{const s=x.updated;this.logger.info(`Emitting ${s}`),this.logger.debug({type:\"event\",event:s,record:e})}),this.events.on(x.deleted,e=>{const s=x.deleted;this.logger.info(`Emitting ${s}`),this.logger.debug({type:\"event\",event:s,record:e})}),this.core.heartbeat.on(B.pulse,()=>{this.cleanup()})}cleanup(){try{this.isInitialized();let e=!1;this.records.forEach(s=>{w(s.expiry||0)-Date.now()<=0&&(this.logger.info(`Deleting expired history log: ${s.id}`),this.records.delete(s.id),this.events.emit(x.deleted,s,!1),e=!0)}),e&&this.persist()}catch(e){this.logger.warn(e)}}isInitialized(){if(!this.initialized){const{message:e}=y(\"NOT_INITIALIZED\",this.name);throw new Error(e)}}}class Vt extends ci{constructor(e,s){super(e,s),this.core=e,this.logger=s,this.expirations=new Map,this.events=new M,this.name=yt,this.version=mt,this.cached=[],this.initialized=!1,this.storagePrefix=N,this.init=async()=>{this.initialized||(this.logger.trace(\"Initialized\"),await this.restore(),this.cached.forEach(i=>this.expirations.set(i.target,i)),this.cached=[],this.registerEventListeners(),this.initialized=!0)},this.has=i=>{try{const t=this.formatTarget(i);return typeof this.getExpiration(t)<\"u\"}catch{return!1}},this.set=(i,t)=>{this.isInitialized();const r=this.formatTarget(i),n={target:r,expiry:t};this.expirations.set(r,n),this.checkExpiry(r,n),this.events.emit(O.created,{target:r,expiration:n})},this.get=i=>{this.isInitialized();const t=this.formatTarget(i);return this.getExpiration(t)},this.del=i=>{if(this.isInitialized(),this.has(i)){const t=this.formatTarget(i),r=this.getExpiration(t);this.expirations.delete(t),this.events.emit(O.deleted,{target:t,expiration:r})}},this.on=(i,t)=>{this.events.on(i,t)},this.once=(i,t)=>{this.events.once(i,t)},this.off=(i,t)=>{this.events.off(i,t)},this.removeListener=(i,t)=>{this.events.removeListener(i,t)},this.logger=S(s,this.name)}get context(){return A(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+\"//\"+this.name}get length(){return this.expirations.size}get keys(){return Array.from(this.expirations.keys())}get values(){return Array.from(this.expirations.values())}formatTarget(e){if(typeof e==\"string\")return Ki(e);if(typeof e==\"number\")return Mi(e);const{message:s}=y(\"UNKNOWN_TYPE\",`Target type: ${typeof e}`);throw new Error(s)}async setExpirations(e){await this.core.storage.setItem(this.storageKey,e)}async getExpirations(){return await this.core.storage.getItem(this.storageKey)}async persist(){await this.setExpirations(this.values),this.events.emit(O.sync)}async restore(){try{const e=await this.getExpirations();if(typeof e>\"u\"||!e.length)return;if(this.expirations.size){const{message:s}=y(\"RESTORE_WILL_OVERRIDE\",this.name);throw this.logger.error(s),new Error(s)}this.cached=e,this.logger.debug(`Successfully Restored expirations for ${this.name}`),this.logger.trace({type:\"method\",method:\"restore\",expirations:this.values})}catch(e){this.logger.debug(`Failed to Restore expirations for ${this.name}`),this.logger.error(e)}}getExpiration(e){const s=this.expirations.get(e);if(!s){const{message:i}=y(\"NO_MATCHING_KEY\",`${this.name}: ${e}`);throw this.logger.warn(i),new Error(i)}return s}checkExpiry(e,s){const{expiry:i}=s;w(i)-Date.now()<=0&&this.expire(e,s)}expire(e,s){this.expirations.delete(e),this.events.emit(O.expired,{target:e,expiration:s})}checkExpirations(){this.core.relayer.connected&&this.expirations.forEach((e,s)=>this.checkExpiry(s,e))}registerEventListeners(){this.core.heartbeat.on(B.pulse,()=>this.checkExpirations()),this.events.on(O.created,e=>{const s=O.created;this.logger.info(`Emitting ${s}`),this.logger.debug({type:\"event\",event:s,data:e}),this.persist()}),this.events.on(O.expired,e=>{const s=O.expired;this.logger.info(`Emitting ${s}`),this.logger.debug({type:\"event\",event:s,data:e}),this.persist()}),this.events.on(O.deleted,e=>{const s=O.deleted;this.logger.info(`Emitting ${s}`),this.logger.debug({type:\"event\",event:s,data:e}),this.persist()})}isInitialized(){if(!this.initialized){const{message:e}=y(\"NOT_INITIALIZED\",this.name);throw new Error(e)}}}class Gt extends hi{constructor(e,s,i){super(e,s,i),this.core=e,this.logger=s,this.store=i,this.name=Dt,this.verifyUrlV3=bt,this.storagePrefix=N,this.version=be,this.init=async()=>{this.isDevEnv||(this.publicKey=await this.store.getItem(this.storeKey),this.publicKey&&w(this.publicKey?.expiresAt)<Date.now()&&(this.logger.debug(\"verify v2 public key expired\"),await this.removePublicKey()))},this.register=async t=>{if(!Bi()||this.isDevEnv)return;const r=window.location.origin,{id:n,decryptedId:a}=t,c=`${this.verifyUrlV3}/attestation?projectId=${this.core.projectId}&origin=${r}&id=${n}&decryptedId=${a}`;try{const h=Xi(),u=this.startAbortTimer($*5),g=await new Promise((d,b)=>{const l=()=>{window.removeEventListener(\"message\",I),h.body.removeChild(p),b(\"attestation aborted\")};this.abortController.signal.addEventListener(\"abort\",l);const p=h.createElement(\"iframe\");p.src=c,p.style.display=\"none\",p.addEventListener(\"error\",l,{signal:this.abortController.signal});const I=m=>{if(m.data&&typeof m.data==\"string\")try{const D=JSON.parse(m.data);if(D.type===\"verify_attestation\"){if(Se(D.attestation).payload.id!==n)return;clearInterval(u),h.body.removeChild(p),this.abortController.signal.removeEventListener(\"abort\",l),window.removeEventListener(\"message\",I),d(D.attestation===null?\"\":D.attestation)}}catch(D){this.logger.warn(D)}};h.body.appendChild(p),window.addEventListener(\"message\",I,{signal:this.abortController.signal})});return this.logger.debug(g,\"jwt attestation\"),g}catch(h){this.logger.warn(h)}return\"\"},this.resolve=async t=>{if(this.isDevEnv)return\"\";const{attestationId:r,hash:n,encryptedId:a}=t;if(r===\"\"){this.logger.debug(\"resolve: attestationId is empty, skipping\");return}if(r){if(Se(r).payload.id!==a)return;const h=await this.isValidJwtAttestation(r);if(h){if(!h.isVerified){this.logger.warn(\"resolve: jwt attestation: origin url not verified\");return}return h}}if(!n)return;const c=this.getVerifyUrl(t?.verifyUrl);return this.fetchAttestation(n,c)},this.fetchAttestation=async(t,r)=>{this.logger.debug(`resolving attestation: ${t} from url: ${r}`);const n=this.startAbortTimer($*5),a=await fetch(`${r}/attestation/${t}?v2Supported=true`,{signal:this.abortController.signal});return clearTimeout(n),a.status===200?await a.json():void 0},this.getVerifyUrl=t=>{let r=t||Q;return _t.includes(r)||(this.logger.info(`verify url: ${r}, not included in trusted list, assigning default: ${Q}`),r=Q),r},this.fetchPublicKey=async()=>{try{this.logger.debug(`fetching public key from: ${this.verifyUrlV3}`);const t=this.startAbortTimer(ue),r=await fetch(`${this.verifyUrlV3}/public-key`,{signal:this.abortController.signal});return clearTimeout(t),await r.json()}catch(t){this.logger.warn(t)}},this.persistPublicKey=async t=>{this.logger.debug(t,\"persisting public key to local storage\"),await this.store.setItem(this.storeKey,t),this.publicKey=t},this.removePublicKey=async()=>{this.logger.debug(\"removing verify v2 public key from storage\"),await this.store.removeItem(this.storeKey),this.publicKey=void 0},this.isValidJwtAttestation=async t=>{const r=await this.getPublicKey();try{if(r)return this.validateAttestation(t,r)}catch(a){this.logger.error(a),this.logger.warn(\"error validating attestation\")}const n=await this.fetchAndPersistPublicKey();try{if(n)return this.validateAttestation(t,n)}catch(a){this.logger.error(a),this.logger.warn(\"error validating attestation\")}},this.getPublicKey=async()=>this.publicKey?this.publicKey:await this.fetchAndPersistPublicKey(),this.fetchAndPersistPublicKey=async()=>{if(this.fetchPromise)return await this.fetchPromise,this.publicKey;this.fetchPromise=new Promise(async r=>{const n=await this.fetchPublicKey();n&&(await this.persistPublicKey(n),r(n))});const t=await this.fetchPromise;return this.fetchPromise=void 0,t},this.validateAttestation=(t,r)=>{const n=ji(t,r.publicKey),a={hasExpired:w(n.exp)<Date.now(),payload:n};if(a.hasExpired)throw this.logger.warn(\"resolve: jwt attestation expired\"),new Error(\"JWT attestation expired\");return{origin:a.payload.origin,isScam:a.payload.isScam,isVerified:a.payload.isVerified}},this.logger=S(s,this.name),this.abortController=new AbortController,this.isDevEnv=$e(),this.init()}get storeKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+\"//verify:public:key\"}get context(){return A(this.logger)}startAbortTimer(e){return this.abortController=new AbortController,setTimeout(()=>this.abortController.abort(),w(e))}}class Wt extends li{constructor(e,s){super(e,s),this.projectId=e,this.logger=s,this.context=Et,this.registerDeviceToken=async i=>{const{clientId:t,token:r,notificationType:n,enableEncrypted:a=!1}=i,c=`${wt}/${this.projectId}/clients`;await fetch(c,{method:\"POST\",headers:{\"Content-Type\":\"application/json\"},body:JSON.stringify({client_id:t,type:n,token:r,always_raw:a})})},this.logger=S(s,this.context)}}class Yt extends ui{constructor(e,s,i=!0){super(e,s,i),this.core=e,this.logger=s,this.context=It,this.storagePrefix=N,this.storageVersion=vt,this.events=new Map,this.shouldPersist=!1,this.init=async()=>{if(!$e())try{const t={eventId:Ke(),timestamp:Date.now(),domain:this.getAppDomain(),props:{event:\"INIT\",type:\"\",properties:{client_id:await this.core.crypto.getClientId(),user_agent:qi(this.core.relayer.protocol,this.core.relayer.version,ce)}}};await this.sendEvent([t])}catch(t){this.logger.warn(t)}},this.createEvent=t=>{const{event:r=\"ERROR\",type:n=\"\",properties:{topic:a,trace:c}}=t,h=Ke(),u=this.core.projectId||\"\",g=Date.now(),d={eventId:h,timestamp:g,props:{event:r,type:n,properties:{topic:a,trace:c}},bundleId:u,domain:this.getAppDomain(),...this.setMethods(h)};return this.telemetryEnabled&&(this.events.set(h,d),this.shouldPersist=!0),d},this.getEvent=t=>{const{eventId:r,topic:n}=t;if(r)return this.events.get(r);const a=Array.from(this.events.values()).find(c=>c.props.properties.topic===n);if(a)return{...a,...this.setMethods(a.eventId)}},this.deleteEvent=t=>{const{eventId:r}=t;this.events.delete(r),this.shouldPersist=!0},this.setEventListeners=()=>{this.core.heartbeat.on(B.pulse,async()=>{this.shouldPersist&&await this.persist(),this.events.forEach(t=>{Ce(Date.now())-Ce(t.timestamp)>Tt&&(this.events.delete(t.eventId),this.shouldPersist=!0)})})},this.setMethods=t=>({addTrace:r=>this.addTrace(t,r),setError:r=>this.setError(t,r)}),this.addTrace=(t,r)=>{const n=this.events.get(t);n&&(n.props.properties.trace.push(r),this.events.set(t,n),this.shouldPersist=!0)},this.setError=(t,r)=>{const n=this.events.get(t);n&&(n.props.type=r,n.timestamp=Date.now(),this.events.set(t,n),this.shouldPersist=!0)},this.persist=async()=>{await this.core.storage.setItem(this.storageKey,Array.from(this.events.values())),this.shouldPersist=!1},this.restore=async()=>{try{const t=await this.core.storage.getItem(this.storageKey)||[];if(!t.length)return;t.forEach(r=>{this.events.set(r.eventId,{...r,...this.setMethods(r.eventId)})})}catch(t){this.logger.warn(t)}},this.submit=async()=>{if(!this.telemetryEnabled||this.events.size===0)return;const t=[];for(const[r,n]of this.events)n.props.type&&t.push(n);if(t.length!==0)try{if((await this.sendEvent(t)).ok)for(const r of t)this.events.delete(r.eventId),this.shouldPersist=!0}catch(r){this.logger.warn(r)}},this.sendEvent=async t=>{const r=this.getAppDomain()?\"\":\"&sp=desktop\";return await fetch(`${Ct}?projectId=${this.core.projectId}&st=events_sdk&sv=js-${ce}${r}`,{method:\"POST\",body:JSON.stringify(t)})},this.getAppDomain=()=>Vi().url,this.logger=S(s,this.context),this.telemetryEnabled=i,i?this.restore().then(async()=>{await this.submit(),this.setEventListeners()}):this.persist()}get storageKey(){return this.storagePrefix+this.storageVersion+this.core.customStoragePrefix+\"//\"+this.context}}let Ht=class Jt extends gi{constructor(e){super(e),this.protocol=fe,this.version=be,this.name=X,this.events=new M,this.initialized=!1,this.on=(n,a)=>this.events.on(n,a),this.once=(n,a)=>this.events.once(n,a),this.off=(n,a)=>this.events.off(n,a),this.removeListener=(n,a)=>this.events.removeListener(n,a),this.dispatchEnvelope=({topic:n,message:a,sessionExists:c})=>{if(!n||!a)return;const h={topic:n,message:a,publishedAt:Date.now(),transportType:K.link_mode};this.relayer.onLinkMessageEvent(h,{sessionExists:c})};const s=this.getGlobalCore(e?.customStoragePrefix);if(s)try{return this.customStoragePrefix=s.customStoragePrefix,this.logger=s.logger,this.heartbeat=s.heartbeat,this.crypto=s.crypto,this.history=s.history,this.expirer=s.expirer,this.storage=s.storage,this.relayer=s.relayer,this.pairing=s.pairing,this.verify=s.verify,this.echoClient=s.echoClient,this.linkModeSupportedApps=s.linkModeSupportedApps,this.eventClient=s.eventClient,this.initialized=s.initialized,this.logChunkController=s.logChunkController,s}catch(n){console.warn(\"Failed to copy global core\",n)}this.projectId=e?.projectId,this.relayUrl=e?.relayUrl||Ee,this.customStoragePrefix=e?.customStoragePrefix?`:${e.customStoragePrefix}`:\"\";const i=ei({level:typeof e?.logger==\"string\"&&e.logger?e.logger:Ge.logger,name:X}),{logger:t,chunkLoggerController:r}=ti({opts:i,maxSizeInBytes:e?.maxLogBlobSizeInBytes,loggerOverride:e?.logger});this.logChunkController=r,this.logChunkController?.downloadLogsBlobInBrowser&&(window.downloadLogsBlobInBrowser=async()=>{this.logChunkController?.downloadLogsBlobInBrowser&&this.logChunkController?.downloadLogsBlobInBrowser({clientId:await this.crypto.getClientId()})}),this.logger=S(t,this.name),this.heartbeat=new Zt,this.crypto=new zt(this,this.logger,e?.keychain),this.history=new qt(this,this.logger),this.expirer=new Vt(this,this.logger),this.storage=e?.storage?e.storage:new Qt({...We,...e?.storageOptions}),this.relayer=new Ft({core:this,logger:this.logger,relayUrl:this.relayUrl,projectId:this.projectId}),this.pairing=new jt(this,this.logger),this.verify=new Gt(this,this.logger,this.storage),this.echoClient=new Wt(this.projectId||\"\",this.logger),this.linkModeSupportedApps=[],this.eventClient=new Yt(this,this.logger,e?.telemetryEnabled),this.setGlobalCore(this)}static async init(e){const s=new Jt(e);await s.initialize();const i=await s.crypto.getClientId();return await s.storage.setItem(ct,i),s}get context(){return A(this.logger)}async start(){this.initialized||await this.initialize()}async getLogsBlob(){return this.logChunkController?.logsToBlob({clientId:await this.crypto.getClientId()})}async addLinkModeSupportedApp(e){this.linkModeSupportedApps.includes(e)||(this.linkModeSupportedApps.push(e),await this.storage.setItem(we,this.linkModeSupportedApps))}async initialize(){this.logger.trace(\"Initialized\");try{await this.crypto.init(),await this.history.init(),await this.expirer.init(),await this.relayer.init(),await this.heartbeat.init(),await this.pairing.init(),this.linkModeSupportedApps=await this.storage.getItem(we)||[],this.initialized=!0,this.logger.info(\"Core Initialization Success\")}catch(e){throw this.logger.warn(e,`Core Initialization Failure at epoch ${Date.now()}`),this.logger.error(e.message),e}}getGlobalCore(e=\"\"){try{if(this.isGlobalCoreDisabled())return;const s=`_walletConnectCore_${e}`,i=`${s}_count`;return globalThis[i]=(globalThis[i]||0)+1,globalThis[i]>1&&console.warn(`WalletConnect Core is already initialized. This is probably a mistake and can lead to unexpected behavior. Init() was called ${globalThis[i]} times.`),globalThis[s]}catch(s){console.warn(\"Failed to get global WalletConnect core\",s);return}}setGlobalCore(e){try{if(this.isGlobalCoreDisabled())return;const s=`_walletConnectCore_${e.opts?.customStoragePrefix||\"\"}`;globalThis[s]=e}catch(s){console.warn(\"Failed to set global WalletConnect core\",s)}}isGlobalCoreDisabled(){try{return typeof process<\"u\"&&process.env.DISABLE_GLOBAL_CORE===\"true\"}catch{return!0}}};const $r=Ht;export{X as CORE_CONTEXT,Ge as CORE_DEFAULT,fe as CORE_PROTOCOL,We as CORE_STORAGE_OPTIONS,N as CORE_STORAGE_PREFIX,be as CORE_VERSION,_e as CRYPTO_CLIENT_SEED,Ye as CRYPTO_CONTEXT,He as CRYPTO_JWT_TTL,$r as Core,zt as Crypto,Et as ECHO_CONTEXT,wt as ECHO_URL,Ct as EVENTS_CLIENT_API_URL,Tt as EVENTS_STORAGE_CLEANUP_INTERVAL,It as EVENTS_STORAGE_CONTEXT,vt as EVENTS_STORAGE_VERSION,hs as EVENT_CLIENT_AUTHENTICATE_ERRORS,cs as EVENT_CLIENT_AUTHENTICATE_TRACES,ns as EVENT_CLIENT_CONTEXT,U as EVENT_CLIENT_PAIRING_ERRORS,L as EVENT_CLIENT_PAIRING_TRACES,as as EVENT_CLIENT_SESSION_ERRORS,os as EVENT_CLIENT_SESSION_TRACES,yt as EXPIRER_CONTEXT,ss as EXPIRER_DEFAULT_TTL,O as EXPIRER_EVENTS,mt as EXPIRER_STORAGE_VERSION,Wt as EchoClient,Yt as EventClient,Vt as Expirer,pt as HISTORY_CONTEXT,x as HISTORY_EVENTS,dt as HISTORY_STORAGE_VERSION,qt as JsonRpcHistory,Je as KEYCHAIN_CONTEXT,Xe as KEYCHAIN_STORAGE_VERSION,Nt as KeyChain,Ze as MESSAGES_CONTEXT,Qe as MESSAGES_STORAGE_VERSION,Z as MESSAGE_DIRECTION,kt as MessageTracker,ut as PAIRING_CONTEXT,is as PAIRING_DEFAULT_TTL,G as PAIRING_EVENTS,V as PAIRING_RPC_OPTS,gt as PAIRING_STORAGE_VERSION,ts as PENDING_SUB_RESOLUTION_TIMEOUT,tt as PUBLISHER_CONTEXT,et as PUBLISHER_DEFAULT_TTL,jt as Pairing,rt as RELAYER_CONTEXT,st as RELAYER_DEFAULT_LOGGER,it as RELAYER_DEFAULT_PROTOCOL,Ee as RELAYER_DEFAULT_RELAY_URL,f as RELAYER_EVENTS,R as RELAYER_PROVIDER_EVENTS,ot as RELAYER_RECONNECT_TIMEOUT,ce as RELAYER_SDK_VERSION,Zi as RELAYER_STORAGE_OPTIONS,nt as RELAYER_SUBSCRIBER_SUFFIX,Qi as RELAYER_TRANSPORT_CUTOFF,Ft as Relayer,at as STORE_STORAGE_VERSION,ht as SUBSCRIBER_CONTEXT,es as SUBSCRIBER_DEFAULT_TTL,P as SUBSCRIBER_EVENTS,lt as SUBSCRIBER_STORAGE_VERSION,Bt as Store,Lt as Subscriber,K as TRANSPORT_TYPES,_t as TRUSTED_VERIFY_URLS,Dt as VERIFY_CONTEXT,Q as VERIFY_SERVER,bt as VERIFY_SERVER_V3,Gt as Verify,ct as WALLETCONNECT_CLIENT_ID,we as WALLETCONNECT_LINK_MODE_APPS,Ht as default};\n//# sourceMappingURL=index.js.map\n","import wt,{EventEmitter as _t}from\"events\";import{RELAYER_DEFAULT_PROTOCOL as ft,EVENT_CLIENT_SESSION_TRACES as x,EVENT_CLIENT_SESSION_ERRORS as H,TRANSPORT_TYPES as R,EVENT_CLIENT_AUTHENTICATE_TRACES as Q,EVENT_CLIENT_AUTHENTICATE_ERRORS as ce,EVENT_CLIENT_PAIRING_ERRORS as St,EVENT_CLIENT_PAIRING_TRACES as Et,VERIFY_SERVER as Rt,RELAYER_EVENTS as It,EXPIRER_EVENTS as qt,PAIRING_EVENTS as Le,Store as Z,Core as Tt}from\"@walletconnect/core\";import{IEngine as vt,ISignClient as Pt}from\"@walletconnect/types\";import{LimitedSet as Nt,mergeRequiredAndOptionalNamespaces as Ot,getInternalError as d,calcExpiry as P,engineEvent as f,createDelayedPromise as ee,getSdkError as b,getDeepLink as At,handleDeeplinkRedirect as xt,isSessionCompatible as bt,hashKey as Te,parseChainId as ve,createEncodedRecap as Ct,getRecapFromResources as Pe,mergeEncodedRecaps as Vt,BASE64URL as pe,TYPE_2 as kt,getLinkModeURL as me,validateSignedCacao as Me,TYPE_1 as Ne,getNamespacedDidChainId as $e,getDidAddress as Ke,getMethodsFromRecap as Ue,getChainsFromRecap as Ge,buildNamespacesFromAuth as Fe,formatMessage as Dt,BASE64 as z,hashMessage as L,isExpired as te,MemoryStore as le,isValidParams as C,isUndefined as Y,isValidRelays as Lt,isValidObject as je,isValidRequiredNamespaces as Mt,isValidNamespaces as Oe,isConformingNamespaces as He,isValidString as J,isValidErrorReason as $t,isValidRelay as Kt,isValidController as Ut,isValidNamespacesChainId as Qe,isValidRequest as Gt,isValidNamespacesRequest as Ft,isValidResponse as jt,isValidEvent as Ht,isValidNamespacesEvent as Qt,getSearchParamFromURL as ze,isTestRun as zt,isReactNative as Yt,getNamespacesChains as Jt,getNamespacesMethods as Xt,getNamespacesEvents as Bt,getSuiDigest as Wt,getNearTransactionIdFromSignedTransaction as Ye,buildSignedExtrinsicHash as Zt,isValidArray as Je,getAlgorandTransactionId as Xe,getSignDirectHash as es,getWalletSendCallsHashes as ts,extractSolanaTransactionId as ss,parseExpirerTarget as is,isValidId as rs,isValidRequestExpiry as ns,populateAppMetadata as os,createLogger as as}from\"@walletconnect/utils\";import{getLoggerContext as cs}from\"@walletconnect/logger\";import{THIRTY_DAYS as ps,SEVEN_DAYS as Be,FIVE_MINUTES as q,ONE_HOUR as We,ONE_DAY as M,ONE_SECOND as ls,toMiliseconds as Ze}from\"@walletconnect/time\";import{payloadId as $,getBigIntRpcId as we,isJsonRpcResult as K,isJsonRpcError as U,formatJsonRpcRequest as se,formatJsonRpcResult as et,formatJsonRpcError as hs,isJsonRpcRequest as ds,isJsonRpcResponse as us}from\"@walletconnect/jsonrpc-utils\";const Ae=\"wc\",xe=2,be=\"client\",_e=`${Ae}@${xe}:${be}:`,fe={name:be,logger:\"error\",controller:!1,relayUrl:\"wss://relay.walletconnect.org\"},gs={session_proposal:\"session_proposal\",session_update:\"session_update\",session_extend:\"session_extend\",session_ping:\"session_ping\",session_delete:\"session_delete\",session_expire:\"session_expire\",session_request:\"session_request\",session_request_sent:\"session_request_sent\",session_event:\"session_event\",proposal_expire:\"proposal_expire\",session_authenticate:\"session_authenticate\",session_request_expire:\"session_request_expire\",session_connect:\"session_connect\"},ys={database:\":memory:\"},Ce=\"WALLETCONNECT_DEEPLINK_CHOICE\",ms={created:\"history_created\",updated:\"history_updated\",deleted:\"history_deleted\",sync:\"history_sync\"},ws=\"history\",_s=\"0.3\",tt=\"proposal\",fs=ps,Ve=\"Proposal expired\",st=\"session\",X=Be,it=\"engine\",I={wc_sessionPropose:{req:{ttl:q,prompt:!0,tag:1100},res:{ttl:q,prompt:!1,tag:1101},reject:{ttl:q,prompt:!1,tag:1120},autoReject:{ttl:q,prompt:!1,tag:1121}},wc_sessionSettle:{req:{ttl:q,prompt:!1,tag:1102},res:{ttl:q,prompt:!1,tag:1103}},wc_sessionUpdate:{req:{ttl:M,prompt:!1,tag:1104},res:{ttl:M,prompt:!1,tag:1105}},wc_sessionExtend:{req:{ttl:M,prompt:!1,tag:1106},res:{ttl:M,prompt:!1,tag:1107}},wc_sessionRequest:{req:{ttl:q*3,prompt:!0,tag:1108},res:{ttl:q*3,prompt:!1,tag:1109}},wc_sessionEvent:{req:{ttl:q,prompt:!0,tag:1110},res:{ttl:q,prompt:!1,tag:1111}},wc_sessionDelete:{req:{ttl:M,prompt:!1,tag:1112},res:{ttl:M,prompt:!1,tag:1113}},wc_sessionPing:{req:{ttl:M,prompt:!1,tag:1114},res:{ttl:M,prompt:!1,tag:1115}},wc_sessionAuthenticate:{req:{ttl:We,prompt:!0,tag:1116},res:{ttl:We,prompt:!1,tag:1117},reject:{ttl:q,prompt:!1,tag:1118},autoReject:{ttl:q,prompt:!1,tag:1119}}},Se={min:q,max:Be},V={idle:\"IDLE\",active:\"ACTIVE\"},rt={eth_sendTransaction:{key:\"\"},eth_sendRawTransaction:{key:\"\"},wallet_sendCalls:{key:\"\"},solana_signTransaction:{key:\"signature\"},solana_signAllTransactions:{key:\"transactions\"},solana_signAndSendTransaction:{key:\"signature\"},sui_signAndExecuteTransaction:{key:\"digest\"},sui_signTransaction:{key:\"\"},hedera_signAndExecuteTransaction:{key:\"transactionId\"},hedera_executeTransaction:{key:\"transactionId\"},near_signTransaction:{key:\"\"},near_signTransactions:{key:\"\"},tron_signTransaction:{key:\"txID\"},xrpl_signTransaction:{key:\"\"},xrpl_signTransactionFor:{key:\"\"},algo_signTxn:{key:\"\"},sendTransfer:{key:\"txid\"},stacks_stxTransfer:{key:\"txId\"},polkadot_signTransaction:{key:\"\"},cosmos_signDirect:{key:\"\"}},nt=\"request\",ot=[\"wc_sessionPropose\",\"wc_sessionRequest\",\"wc_authRequest\",\"wc_sessionAuthenticate\"],at=\"wc\",Ss=1.5,ct=\"auth\",pt=\"authKeys\",lt=\"pairingTopics\",ht=\"requests\",he=`${at}@${1.5}:${ct}:`,de=`${he}:PUB_KEY`;class Es extends vt{constructor(a){super(a),this.name=it,this.events=new wt,this.initialized=!1,this.requestQueue={state:V.idle,queue:[]},this.sessionRequestQueue={state:V.idle,queue:[]},this.emittedSessionRequests=new Nt({limit:500}),this.requestQueueDelay=ls,this.expectedPairingMethodMap=new Map,this.recentlyDeletedMap=new Map,this.recentlyDeletedLimit=200,this.relayMessageCache=[],this.pendingSessions=new Map,this.init=async()=>{this.initialized||(await this.cleanup(),this.registerRelayerEvents(),this.registerExpirerEvents(),this.registerPairingEvents(),await this.registerLinkModeListeners(),this.client.core.pairing.register({methods:Object.keys(I)}),this.initialized=!0,setTimeout(async()=>{await this.processPendingMessageEvents(),this.sessionRequestQueue.queue=this.getPendingSessionRequests(),this.processSessionRequestQueue()},Ze(this.requestQueueDelay)))},this.connect=async t=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();const e={...t,requiredNamespaces:t.requiredNamespaces||{},optionalNamespaces:t.optionalNamespaces||{}};await this.isValidConnect(e),e.optionalNamespaces=Ot(e.requiredNamespaces,e.optionalNamespaces),e.requiredNamespaces={};const{pairingTopic:s,requiredNamespaces:i,optionalNamespaces:r,sessionProperties:n,scopedProperties:o,relays:c,authentication:p,walletPay:l}=e,g=p?.[0]?.ttl||I.wc_sessionPropose.req.ttl||q;this.validateRequestExpiry(g);let y=s,u,w=!1;try{if(y){const E=this.client.core.pairing.pairings.get(y);this.client.logger.warn(\"connect() with existing pairing topic is deprecated and will be removed in the next major release.\"),w=E.active}}catch(E){throw this.client.logger.error(`connect() -> pairing.get(${y}) failed`),E}if(!y||!w){const{topic:E,uri:D}=await this.client.core.pairing.create({internal:{skipSubscribe:!0}});y=E,u=D}if(!y){const{message:E}=d(\"NO_MATCHING_KEY\",`connect() pairing topic: ${y}`);throw new Error(E)}const h=await this.client.core.crypto.generateKeyPair(),m=P(g),_={requiredNamespaces:i,optionalNamespaces:r,relays:c??[{protocol:ft}],proposer:{publicKey:h,metadata:this.client.metadata},expiryTimestamp:m,pairingTopic:y,...n&&{sessionProperties:n},...o&&{scopedProperties:o},id:$(),...(p||l)&&{requests:{authentication:p?.map(E=>{const{domain:D,chains:ue,nonce:ie,uri:F,exp:B,nbf:re,type:W,statement:ne,requestId:ge,resources:v,signatureTypes:O}=E;return{domain:D,chains:ue,nonce:ie,type:W??\"caip122\",aud:F,version:\"1\",iat:new Date().toISOString(),exp:B,nbf:re,statement:ne,requestId:ge,resources:v,signatureTypes:O}}),walletPay:l}}},S=f(\"session_connect\",_.id),{reject:A,resolve:N,done:k}=ee(g,Ve),T=({id:E})=>{E===_.id&&(this.client.events.off(\"proposal_expire\",T),this.pendingSessions.delete(_.id),this.events.emit(S,{error:{message:Ve,code:0}}))};return this.client.events.on(\"proposal_expire\",T),this.events.once(S,({error:E,session:D})=>{this.client.events.off(\"proposal_expire\",T),E?A(E):D&&N(D)}),await this.setProposal(_.id,_),await this.sendProposeSession({proposal:_,publishOpts:{internal:{throwOnFailedPublish:!0},tvf:{correlationId:_.id}}}).catch(E=>{throw this.deleteProposal(_.id),E}),{uri:u,approval:k}},this.pair=async t=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{return await this.client.core.pairing.pair(t)}catch(e){throw this.client.logger.error(\"pair() failed\"),e}},this.approve=async t=>{const e=this.client.core.eventClient.createEvent({properties:{topic:t?.id?.toString(),trace:[x.session_approve_started]}});try{this.isInitialized(),await this.confirmOnlineStateOrThrow()}catch(T){throw e.setError(H.no_internet_connection),T}try{await this.isValidProposalId(t?.id)}catch(T){throw this.client.logger.error(`approve() -> proposal.get(${t?.id}) failed`),e.setError(H.proposal_not_found),T}try{await this.isValidApprove(t)}catch(T){throw this.client.logger.error(\"approve() -> isValidApprove() failed\"),e.setError(H.session_approve_namespace_validation_failure),T}const{id:s,relayProtocol:i,namespaces:r,sessionProperties:n,scopedProperties:o,sessionConfig:c,proposalRequestsResponses:p}=t,l=this.client.proposal.get(s);this.client.core.eventClient.deleteEvent({eventId:e.eventId});const{pairingTopic:g,proposer:y,requiredNamespaces:u,optionalNamespaces:w}=l;let h=this.client.core.eventClient?.getEvent({topic:g});h||(h=this.client.core.eventClient?.createEvent({type:x.session_approve_started,properties:{topic:g,trace:[x.session_approve_started,x.session_namespaces_validation_success]}}));const m=await this.client.core.crypto.generateKeyPair(),_=y.publicKey,S=await this.client.core.crypto.generateSharedKey(m,_),A={relay:{protocol:i??\"irn\"},namespaces:r,controller:{publicKey:m,metadata:this.client.metadata},expiry:P(X),...n&&{sessionProperties:n},...o&&{scopedProperties:o},...c&&{sessionConfig:c},proposalRequestsResponses:p},N=R.relay;h.addTrace(x.subscribing_session_topic);try{await this.client.core.relayer.subscribe(S,{transportType:N,internal:{skipSubscribe:!0}})}catch(T){throw h.setError(H.subscribe_session_topic_failure),T}h.addTrace(x.subscribe_session_topic_success);const k={...A,topic:S,requiredNamespaces:u,optionalNamespaces:w,pairingTopic:g,acknowledged:!1,self:A.controller,peer:{publicKey:y.publicKey,metadata:y.metadata},controller:m,transportType:R.relay,authentication:p?.authentication,walletPayResult:p?.walletPay};await this.client.session.set(S,k),h.addTrace(x.store_session);try{await this.sendApproveSession({sessionTopic:S,proposal:l,pairingProposalResponse:{relay:{protocol:i??\"irn\"},responderPublicKey:m},sessionSettleRequest:A,publishOpts:{internal:{throwOnFailedPublish:!0},tvf:{correlationId:s,...this.getTVFApproveParams(k)}}}),h.addTrace(x.session_approve_publish_success)}catch(T){throw this.client.logger.error(T),this.client.session.delete(S,b(\"USER_DISCONNECTED\")),await this.client.core.relayer.unsubscribe(S),T}return this.client.core.eventClient.deleteEvent({eventId:h.eventId}),await this.client.core.pairing.updateMetadata({topic:g,metadata:y.metadata}),await this.deleteProposal(s),await this.client.core.pairing.activate({topic:g}),await this.setExpiry(S,P(X)),{topic:S,acknowledged:()=>Promise.resolve(this.client.session.get(S))}},this.reject=async t=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidReject(t)}catch(r){throw this.client.logger.error(\"reject() -> isValidReject() failed\"),r}const{id:e,reason:s}=t;let i;try{i=this.client.proposal.get(e).pairingTopic}catch(r){throw this.client.logger.error(`reject() -> proposal.get(${e}) failed`),r}i&&await this.sendError({id:e,topic:i,error:s,rpcOpts:I.wc_sessionPropose.reject}),await this.deleteProposal(e)},this.update=async t=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidUpdate(t)}catch(l){throw this.client.logger.error(\"update() -> isValidUpdate() failed\"),l}const{topic:e,namespaces:s}=t,{done:i,resolve:r,reject:n}=ee(q,\"Session update request expired without receiving any acknowledgement\"),o=$(),c=we().toString(),p=this.client.session.get(e).namespaces;return this.events.once(f(\"session_update\",o),({error:l})=>{l?n(l):r()}),await this.client.session.update(e,{namespaces:s}),await this.sendRequest({topic:e,method:\"wc_sessionUpdate\",params:{namespaces:s},throwOnFailedPublish:!0,clientRpcId:o,relayRpcId:c}).catch(l=>{this.client.logger.error(l),this.client.session.update(e,{namespaces:p}),n(l)}),{acknowledged:i}},this.extend=async t=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidExtend(t)}catch(o){throw this.client.logger.error(\"extend() -> isValidExtend() failed\"),o}const{topic:e}=t,s=$(),{done:i,resolve:r,reject:n}=ee(q,\"Session extend request expired without receiving any acknowledgement\");return this.events.once(f(\"session_extend\",s),({error:o})=>{o?n(o):r()}),await this.setExpiry(e,P(X)),this.sendRequest({topic:e,method:\"wc_sessionExtend\",params:{},clientRpcId:s,throwOnFailedPublish:!0}).catch(o=>{n(o)}),{acknowledged:i}},this.request=async t=>{this.isInitialized();try{await this.isValidRequest(t)}catch(h){throw this.client.logger.error(\"request() -> isValidRequest() failed\"),h}const{chainId:e,request:s,topic:i,expiry:r=I.wc_sessionRequest.req.ttl}=t,n=this.client.session.get(i);n?.transportType===R.relay&&await this.confirmOnlineStateOrThrow();const o=$(),c=we().toString(),{done:p,resolve:l,reject:g}=ee(r,\"Request expired. Please try again.\");this.events.once(f(\"session_request\",o),({error:h,result:m})=>{h?g(h):l(m)});const y=\"wc_sessionRequest\",u=this.getAppLinkIfEnabled(n.peer.metadata,n.transportType);if(u)return await this.sendRequest({clientRpcId:o,relayRpcId:c,topic:i,method:y,params:{request:{...s,expiryTimestamp:P(r)},chainId:e},expiry:r,throwOnFailedPublish:!0,appLink:u}).catch(h=>g(h)),this.client.events.emit(\"session_request_sent\",{topic:i,request:s,chainId:e,id:o}),await p();const w={request:{...s,expiryTimestamp:P(r)},chainId:e};return await Promise.all([new Promise(async h=>{await this.sendRequest({clientRpcId:o,relayRpcId:c,topic:i,method:y,params:w,expiry:r,throwOnFailedPublish:!0,tvf:this.getTVFParams(o,w)}).catch(m=>g(m)),this.client.events.emit(\"session_request_sent\",{topic:i,request:s,chainId:e,id:o}),h()}),new Promise(async h=>{if(!n.sessionConfig?.disableDeepLink){const m=await At(this.client.core.storage,Ce);await xt({id:o,topic:i,wcDeepLink:m})}h()}),p()]).then(h=>h[2])},this.respond=async t=>{this.isInitialized();const e=this.client.core.eventClient.createEvent({properties:{topic:t?.topic||t?.response?.id?.toString(),trace:[x.session_request_response_started]}});try{await this.isValidRespond(t)}catch(c){throw e.addTrace(c?.message),e.setError(H.session_request_response_validation_failure),c}e.addTrace(x.session_request_response_validation_success);const{topic:s,response:i}=t,{id:r}=i,n=this.client.session.get(s);n.transportType===R.relay&&await this.confirmOnlineStateOrThrow();const o=this.getAppLinkIfEnabled(n.peer.metadata,n.transportType);try{e.addTrace(x.session_request_response_publish_started),K(i)?await this.sendResult({id:r,topic:s,result:i.result,throwOnFailedPublish:!0,appLink:o}):U(i)&&await this.sendError({id:r,topic:s,error:i.error,appLink:o}),this.cleanupAfterResponse(t)}catch(c){throw e.addTrace(c?.message),e.setError(H.session_request_response_publish_failure),c}},this.ping=async t=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidPing(t)}catch(s){throw this.client.logger.error(\"ping() -> isValidPing() failed\"),s}const{topic:e}=t;if(this.client.session.keys.includes(e)){const s=$(),i=we().toString(),{done:r,resolve:n,reject:o}=ee(q,\"Ping request expired without receiving any acknowledgement\");this.events.once(f(\"session_ping\",s),({error:c})=>{c?o(c):n()}),await Promise.all([this.sendRequest({topic:e,method:\"wc_sessionPing\",params:{},throwOnFailedPublish:!0,clientRpcId:s,relayRpcId:i}),r()])}else this.client.core.pairing.pairings.keys.includes(e)&&(this.client.logger.warn(\"ping() on pairing topic is deprecated and will be removed in the next major release.\"),await this.client.core.pairing.ping({topic:e}))},this.emit=async t=>{this.isInitialized(),await this.confirmOnlineStateOrThrow(),await this.isValidEmit(t);const{topic:e,event:s,chainId:i}=t,r=we().toString(),n=$();await this.sendRequest({topic:e,method:\"wc_sessionEvent\",params:{event:s,chainId:i},throwOnFailedPublish:!0,relayRpcId:r,clientRpcId:n})},this.disconnect=async t=>{this.isInitialized(),await this.confirmOnlineStateOrThrow(),await this.isValidDisconnect(t);const{topic:e}=t;if(this.client.session.keys.includes(e))await this.sendRequest({topic:e,method:\"wc_sessionDelete\",params:b(\"USER_DISCONNECTED\"),throwOnFailedPublish:!0}),await this.deleteSession({topic:e,emitEvent:!1});else if(this.client.core.pairing.pairings.keys.includes(e))await this.client.core.pairing.disconnect({topic:e});else{const{message:s}=d(\"MISMATCHED_TOPIC\",`Session or pairing topic not found: ${e}`);throw new Error(s)}},this.find=t=>(this.isInitialized(),this.client.session.getAll().filter(e=>bt(e,t))),this.getPendingSessionRequests=()=>this.client.pendingRequest.getAll(),this.authenticate=async(t,e)=>{this.isInitialized(),this.isValidAuthenticate(t);const s=e&&this.client.core.linkModeSupportedApps.includes(e)&&this.client.metadata.redirect?.linkMode,i=s?R.link_mode:R.relay;i===R.relay&&await this.confirmOnlineStateOrThrow();const{chains:r,statement:n=\"\",uri:o,domain:c,nonce:p,type:l,exp:g,nbf:y,methods:u=[],expiry:w}=t,h=[...t.resources||[]],{topic:m,uri:_}=await this.client.core.pairing.create({methods:[\"wc_sessionAuthenticate\"],transportType:i});this.client.logger.info({message:\"Generated new pairing\",pairing:{topic:m,uri:_}});const S=await this.client.core.crypto.generateKeyPair(),A=Te(S);if(await Promise.all([this.client.auth.authKeys.set(de,{responseTopic:A,publicKey:S}),this.client.auth.pairingTopics.set(A,{topic:A,pairingTopic:m})]),await this.client.core.relayer.subscribe(A,{transportType:i}),this.client.logger.info(`sending request to new pairing topic: ${m}`),u.length>0){const{namespace:v}=ve(r[0]);let O=Ct(v,\"request\",u);Pe(h)&&(O=Vt(O,h.pop())),h.push(O)}const N=w&&w>I.wc_sessionAuthenticate.req.ttl?w:I.wc_sessionAuthenticate.req.ttl,k={authPayload:{type:l??\"caip122\",chains:r,statement:n,aud:o,domain:c,version:\"1\",nonce:p,iat:new Date().toISOString(),exp:g,nbf:y,resources:h},requester:{publicKey:S,metadata:this.client.metadata},expiryTimestamp:P(N)},T={eip155:{chains:r,methods:[...new Set([\"personal_sign\",...u])],events:[\"chainChanged\",\"accountsChanged\"]}},E={requiredNamespaces:{},optionalNamespaces:T,relays:[{protocol:\"irn\"}],pairingTopic:m,proposer:{publicKey:S,metadata:this.client.metadata},expiryTimestamp:P(I.wc_sessionPropose.req.ttl),id:$()},{done:D,resolve:ue,reject:ie}=ee(N,\"Request expired\"),F=$(),B=f(\"session_connect\",E.id),re=f(\"session_request\",F),W=async({error:v,session:O})=>{this.events.off(re,ne),v?ie(v):O&&ue({session:O})},ne=async v=>{if(await this.deletePendingAuthRequest(F,{message:\"fulfilled\",code:0}),v.error){const ae=b(\"WC_METHOD_UNSUPPORTED\",\"wc_sessionAuthenticate\");return v.error.code===ae.code?void 0:(this.events.off(B,W),ie(v.error.message))}await this.deleteProposal(E.id),this.events.off(B,W);const{cacaos:O,responder:j}=v.result,Ee=[],ke=[];for(const ae of O){await Me({cacao:ae,projectId:this.client.core.projectId})||(this.client.logger.error(ae,\"Signature verification failed\"),ie(b(\"SESSION_SETTLEMENT_FAILED\",\"Signature verification failed\")));const{p:Re}=ae,Ie=Pe(Re.resources),De=[$e(Re.iss)],yt=Ke(Re.iss);if(Ie){const qe=Ue(Ie),mt=Ge(Ie);Ee.push(...qe),De.push(...mt)}for(const qe of De)ke.push(`${qe}:${yt}`)}const oe=await this.client.core.crypto.generateSharedKey(S,j.publicKey);let ye;Ee.length>0&&(ye={topic:oe,acknowledged:!0,self:{publicKey:S,metadata:this.client.metadata},peer:j,controller:j.publicKey,expiry:P(X),requiredNamespaces:{},optionalNamespaces:{},relay:{protocol:\"irn\"},pairingTopic:m,namespaces:Fe([...new Set(Ee)],[...new Set(ke)]),transportType:i},await this.client.core.relayer.subscribe(oe,{transportType:i}),await this.client.session.set(oe,ye),m&&await this.client.core.pairing.updateMetadata({topic:m,metadata:j.metadata}),ye=this.client.session.get(oe)),this.client.metadata.redirect?.linkMode&&j.metadata.redirect?.linkMode&&j.metadata.redirect?.universal&&e&&(this.client.core.addLinkModeSupportedApp(j.metadata.redirect.universal),this.client.session.update(oe,{transportType:R.link_mode})),ue({auths:O,session:ye})};this.events.once(B,W),this.events.once(re,ne);let ge;try{if(s){const v=se(\"wc_sessionAuthenticate\",k,F);this.client.core.history.set(m,v);const O=await this.client.core.crypto.encode(\"\",v,{type:kt,encoding:pe});ge=me(e,m,O)}else await Promise.all([this.sendRequest({topic:m,method:\"wc_sessionAuthenticate\",params:k,expiry:t.expiry,throwOnFailedPublish:!0,clientRpcId:F}),this.sendRequest({topic:m,method:\"wc_sessionPropose\",params:E,expiry:I.wc_sessionPropose.req.ttl,throwOnFailedPublish:!0,clientRpcId:E.id})])}catch(v){throw this.events.off(B,W),this.events.off(re,ne),v}return await this.setProposal(E.id,E),await this.setAuthRequest(F,{request:{...k,verifyContext:{}},pairingTopic:m,transportType:i}),{uri:ge??_,response:D}},this.approveSessionAuthenticate=async t=>{const{id:e,auths:s}=t,i=this.client.core.eventClient.createEvent({properties:{topic:e.toString(),trace:[Q.authenticated_session_approve_started]}});try{this.isInitialized()}catch(h){throw i.setError(ce.no_internet_connection),h}const r=this.getPendingAuthRequest(e);if(!r)throw i.setError(ce.authenticated_session_pending_request_not_found),new Error(`Could not find pending auth request with id ${e}`);const n=r.transportType||R.relay;n===R.relay&&await this.confirmOnlineStateOrThrow();const o=r.requester.publicKey,c=await this.client.core.crypto.generateKeyPair(),p=Te(o),l={type:Ne,receiverPublicKey:o,senderPublicKey:c},g=[],y=[];for(const h of s){if(!await Me({cacao:h,projectId:this.client.core.projectId})){i.setError(ce.invalid_cacao);const N=b(\"SESSION_SETTLEMENT_FAILED\",\"Signature verification failed\");throw await this.sendError({id:e,topic:p,error:N,encodeOpts:l}),new Error(N.message)}i.addTrace(Q.cacaos_verified);const{p:m}=h,_=Pe(m.resources),S=[$e(m.iss)],A=Ke(m.iss);if(_){const N=Ue(_),k=Ge(_);g.push(...N),S.push(...k)}for(const N of S)y.push(`${N}:${A}`)}const u=await this.client.core.crypto.generateSharedKey(c,o);i.addTrace(Q.create_authenticated_session_topic);let w;if(g?.length>0){w={topic:u,acknowledged:!0,self:{publicKey:c,metadata:this.client.metadata},peer:{publicKey:o,metadata:r.requester.metadata},controller:o,expiry:P(X),authentication:s,requiredNamespaces:{},optionalNamespaces:{},relay:{protocol:\"irn\"},pairingTopic:r.pairingTopic,namespaces:Fe([...new Set(g)],[...new Set(y)]),transportType:n},i.addTrace(Q.subscribing_authenticated_session_topic);try{await this.client.core.relayer.subscribe(u,{transportType:n})}catch(h){throw i.setError(ce.subscribe_authenticated_session_topic_failure),h}i.addTrace(Q.subscribe_authenticated_session_topic_success),await this.client.session.set(u,w),i.addTrace(Q.store_authenticated_session),await this.client.core.pairing.updateMetadata({topic:r.pairingTopic,metadata:r.requester.metadata})}i.addTrace(Q.publishing_authenticated_session_approve);try{await this.sendResult({topic:p,id:e,result:{cacaos:s,responder:{publicKey:c,metadata:this.client.metadata}},encodeOpts:l,throwOnFailedPublish:!0,appLink:this.getAppLinkIfEnabled(r.requester.metadata,n)})}catch(h){throw i.setError(ce.authenticated_session_approve_publish_failure),h}return await this.client.auth.requests.delete(e,{message:\"fulfilled\",code:0}),await this.client.core.pairing.activate({topic:r.pairingTopic}),this.client.core.eventClient.deleteEvent({eventId:i.eventId}),{session:w}},this.rejectSessionAuthenticate=async t=>{this.isInitialized();const{id:e,reason:s}=t,i=this.getPendingAuthRequest(e);if(!i)throw new Error(`Could not find pending auth request with id ${e}`);i.transportType===R.relay&&await this.confirmOnlineStateOrThrow();const r=i.requester.publicKey,n=await this.client.core.crypto.generateKeyPair(),o=Te(r),c={type:Ne,receiverPublicKey:r,senderPublicKey:n};await this.sendError({id:e,topic:o,error:s,encodeOpts:c,rpcOpts:I.wc_sessionAuthenticate.reject,appLink:this.getAppLinkIfEnabled(i.requester.metadata,i.transportType)}),await this.client.auth.requests.delete(e,{message:\"rejected\",code:0}),await this.deleteProposal(e)},this.formatAuthMessage=t=>{this.isInitialized();const{request:e,iss:s}=t;return Dt(e,s)},this.processRelayMessageCache=()=>{setTimeout(async()=>{if(this.relayMessageCache.length!==0)for(;this.relayMessageCache.length>0;)try{const t=this.relayMessageCache.shift();t&&await this.onRelayMessage(t)}catch(t){this.client.logger.error(t)}},50)},this.cleanupDuplicatePairings=async t=>{if(t.pairingTopic)try{const e=this.client.core.pairing.pairings.get(t.pairingTopic),s=this.client.core.pairing.pairings.getAll().filter(i=>i.peerMetadata?.url&&i.peerMetadata?.url===t.peer.metadata.url&&i.topic&&i.topic!==e.topic);if(s.length===0)return;this.client.logger.info(`Cleaning up ${s.length} duplicate pairing(s)`),await Promise.all(s.map(i=>this.client.core.pairing.disconnect({topic:i.topic}))),this.client.logger.info(\"Duplicate pairings clean up finished\")}catch(e){this.client.logger.error(e)}},this.deleteSession=async t=>{const{topic:e,expirerHasDeleted:s=!1,emitEvent:i=!0,id:r=0}=t,{self:n}=this.client.session.get(e);await this.client.core.relayer.unsubscribe(e),await this.client.session.delete(e,b(\"USER_DISCONNECTED\")),this.addToRecentlyDeleted(e,\"session\"),this.client.core.crypto.keychain.has(n.publicKey)&&await this.client.core.crypto.deleteKeyPair(n.publicKey),this.client.core.crypto.keychain.has(e)&&await this.client.core.crypto.deleteSymKey(e),s||this.client.core.expirer.del(e),this.client.core.storage.removeItem(Ce).catch(o=>this.client.logger.warn(o)),e===this.sessionRequestQueue.queue[0]?.topic&&(this.sessionRequestQueue.state=V.idle),await Promise.all(this.getPendingSessionRequests().filter(o=>o.topic===e).map(o=>this.deletePendingSessionRequest(o.id,b(\"USER_DISCONNECTED\")))),i&&this.client.events.emit(\"session_delete\",{id:r,topic:e})},this.deleteProposal=async(t,e)=>{if(e)try{const s=this.client.proposal.get(t);this.client.core.eventClient.getEvent({topic:s.pairingTopic})?.setError(H.proposal_expired)}catch{}await Promise.all([this.client.proposal.delete(t,b(\"USER_DISCONNECTED\")),e?Promise.resolve():this.client.core.expirer.del(t)]),this.addToRecentlyDeleted(t,\"proposal\")},this.deletePendingSessionRequest=async(t,e,s=!1)=>{await Promise.all([this.client.pendingRequest.delete(t,e),s?Promise.resolve():this.client.core.expirer.del(t)]),this.addToRecentlyDeleted(t,\"request\"),this.sessionRequestQueue.queue=this.sessionRequestQueue.queue.filter(i=>i.id!==t),s&&(this.sessionRequestQueue.state=V.idle,this.client.events.emit(\"session_request_expire\",{id:t}))},this.deletePendingAuthRequest=async(t,e,s=!1)=>{await Promise.all([this.client.auth.requests.delete(t,e),s?Promise.resolve():this.client.core.expirer.del(t)])},this.setExpiry=async(t,e)=>{this.client.session.keys.includes(t)&&(this.client.core.expirer.set(t,e),await this.client.session.update(t,{expiry:e}))},this.setProposal=async(t,e)=>{this.client.core.expirer.set(t,P(I.wc_sessionPropose.req.ttl)),await this.client.proposal.set(t,e)},this.setAuthRequest=async(t,e)=>{const{request:s,pairingTopic:i,transportType:r=R.relay}=e;this.client.core.expirer.set(t,s.expiryTimestamp),await this.client.auth.requests.set(t,{authPayload:s.authPayload,requester:s.requester,expiryTimestamp:s.expiryTimestamp,id:t,pairingTopic:i,verifyContext:s.verifyContext,transportType:r})},this.setPendingSessionRequest=async t=>{const{id:e,topic:s,params:i,verifyContext:r}=t,n=i.request.expiryTimestamp||P(I.wc_sessionRequest.req.ttl);this.client.core.expirer.set(e,n),await this.client.pendingRequest.set(e,{id:e,topic:s,params:i,verifyContext:r})},this.sendRequest=async t=>{const{topic:e,method:s,params:i,expiry:r,relayRpcId:n,clientRpcId:o,throwOnFailedPublish:c,appLink:p,tvf:l,publishOpts:g={}}=t,y=se(s,i,o);let u;const w=!!p;try{const _=w?pe:z;u=await this.client.core.crypto.encode(e,y,{encoding:_})}catch(_){throw await this.cleanup(),this.client.logger.error(`sendRequest() -> core.crypto.encode() for topic ${e} failed`),_}let h;if(ot.includes(s)){const _=L(JSON.stringify(y)),S=L(u);h=await this.client.core.verify.register({id:S,decryptedId:_})}const m={...I[s].req,...g};if(m.attestation=h,r&&(m.ttl=r),n&&(m.id=n),this.client.core.history.set(e,y),w){const _=me(p,e,u);await global.Linking.openURL(_,this.client.name)}else m.tvf={...l,correlationId:y.id},c?(m.internal={...m.internal,throwOnFailedPublish:!0},await this.client.core.relayer.publish(e,u,m)):this.client.core.relayer.publish(e,u,m).catch(_=>this.client.logger.error(_));return y.id},this.sendProposeSession=async t=>{const{proposal:e,publishOpts:s}=t,i=se(\"wc_sessionPropose\",e,e.id);this.client.core.history.set(e.pairingTopic,i);const r=await this.client.core.crypto.encode(e.pairingTopic,i,{encoding:z}),n=L(JSON.stringify(i)),o=L(r),c=await this.client.core.verify.register({id:o,decryptedId:n});await this.client.core.relayer.publishCustom({payload:{pairingTopic:e.pairingTopic,sessionProposal:r},opts:{...s,publishMethod:\"wc_proposeSession\",attestation:c}})},this.sendApproveSession=async t=>{const{sessionTopic:e,pairingProposalResponse:s,proposal:i,sessionSettleRequest:r,publishOpts:n}=t,o=et(i.id,s),c=await this.client.core.crypto.encode(i.pairingTopic,o,{encoding:z}),p=se(\"wc_sessionSettle\",r,n?.id),l=await this.client.core.crypto.encode(e,p,{encoding:z});this.client.core.history.set(e,p),await this.client.core.relayer.publishCustom({payload:{sessionTopic:e,pairingTopic:i.pairingTopic,sessionProposalResponse:c,sessionSettlementRequest:l},opts:{...n,publishMethod:\"wc_approveSession\"}})},this.sendResult=async t=>{const{id:e,topic:s,result:i,throwOnFailedPublish:r,encodeOpts:n,appLink:o}=t,c=et(e,i);let p;const l=o&&typeof global?.Linking<\"u\";try{const u=l?pe:z;p=await this.client.core.crypto.encode(s,c,{...n||{},encoding:u})}catch(u){throw await this.cleanup(),this.client.logger.error(`sendResult() -> core.crypto.encode() for topic ${s} failed`),u}let g,y;try{g=await this.client.core.history.get(s,e);const u=g.request;try{y=this.getTVFParams(e,u.params,i)}catch(w){this.client.logger.warn(`sendResult() -> getTVFParams() failed: ${w?.message}`)}}catch(u){throw this.client.logger.error(`sendResult() -> history.get(${s}, ${e}) failed`),u}if(l){const u=me(o,s,p);await global.Linking.openURL(u,this.client.name)}else{const u=g.request.method,w=I[u].res;w.tvf={...y,correlationId:e},r?(w.internal={...w.internal,throwOnFailedPublish:!0},await this.client.core.relayer.publish(s,p,w)):this.client.core.relayer.publish(s,p,w).catch(h=>this.client.logger.error(h))}await this.client.core.history.resolve(c)},this.sendError=async t=>{const{id:e,topic:s,error:i,encodeOpts:r,rpcOpts:n,appLink:o}=t,c=hs(e,i);let p;const l=o&&typeof global?.Linking<\"u\";try{const y=l?pe:z;p=await this.client.core.crypto.encode(s,c,{...r||{},encoding:y})}catch(y){throw await this.cleanup(),this.client.logger.error(`sendError() -> core.crypto.encode() for topic ${s} failed`),y}let g;try{g=await this.client.core.history.get(s,e)}catch(y){throw this.client.logger.error(`sendError() -> history.get(${s}, ${e}) failed`),y}if(l){const y=me(o,s,p);await global.Linking.openURL(y,this.client.name)}else{const y=g.request.method,u=n||I[y].res;this.client.core.relayer.publish(s,p,u)}await this.client.core.history.resolve(c)},this.cleanup=async()=>{const t=[],e=[];this.client.session.getAll().forEach(s=>{let i=!1;te(s.expiry)&&(i=!0),this.client.core.crypto.keychain.has(s.topic)||(i=!0),i&&t.push(s.topic)}),this.client.proposal.getAll().forEach(s=>{te(s.expiryTimestamp)&&e.push(s.id)}),await Promise.all([...t.map(s=>this.deleteSession({topic:s})),...e.map(s=>this.deleteProposal(s))])},this.onProviderMessageEvent=async t=>{!this.initialized||this.relayMessageCache.length>0?this.relayMessageCache.push(t):await this.onRelayMessage(t)},this.onRelayEventRequest=async t=>{this.requestQueue.queue.push(t),await this.processRequestsQueue()},this.processRequestsQueue=async()=>{if(this.requestQueue.state===V.active){this.client.logger.info(\"Request queue already active, skipping...\");return}for(this.client.logger.info(`Request queue starting with ${this.requestQueue.queue.length} requests`);this.requestQueue.queue.length>0;){this.requestQueue.state=V.active;const t=this.requestQueue.queue.shift();if(t)try{await this.processRequest(t)}catch(e){this.client.logger.warn(e)}}this.requestQueue.state=V.idle},this.processRequest=async t=>{const{topic:e,payload:s,attestation:i,transportType:r,encryptedId:n}=t,o=s.method;if(!this.shouldIgnorePairingRequest({topic:e,requestMethod:o}))switch(o){case\"wc_sessionPropose\":return await this.onSessionProposeRequest({topic:e,payload:s,attestation:i,encryptedId:n});case\"wc_sessionSettle\":return await this.onSessionSettleRequest(e,s);case\"wc_sessionUpdate\":return await this.onSessionUpdateRequest(e,s);case\"wc_sessionExtend\":return await this.onSessionExtendRequest(e,s);case\"wc_sessionPing\":return await this.onSessionPingRequest(e,s);case\"wc_sessionDelete\":return await this.onSessionDeleteRequest(e,s);case\"wc_sessionRequest\":return await this.onSessionRequest({topic:e,payload:s,attestation:i,encryptedId:n,transportType:r});case\"wc_sessionEvent\":return await this.onSessionEventRequest(e,s);case\"wc_sessionAuthenticate\":return await this.onSessionAuthenticateRequest({topic:e,payload:s,attestation:i,encryptedId:n,transportType:r});default:return this.client.logger.info(`Unsupported request method ${o}`)}},this.onRelayEventResponse=async t=>{const{topic:e,payload:s,transportType:i}=t,r=(await this.client.core.history.get(e,s.id)).request.method;switch(r){case\"wc_sessionPropose\":return this.onSessionProposeResponse(e,s,i);case\"wc_sessionSettle\":return this.onSessionSettleResponse(e,s);case\"wc_sessionUpdate\":return this.onSessionUpdateResponse(e,s);case\"wc_sessionExtend\":return this.onSessionExtendResponse(e,s);case\"wc_sessionPing\":return this.onSessionPingResponse(e,s);case\"wc_sessionRequest\":return this.onSessionRequestResponse(e,s);case\"wc_sessionAuthenticate\":return this.onSessionAuthenticateResponse(e,s);default:return this.client.logger.info(`Unsupported response method ${r}`)}},this.onRelayEventUnknownPayload=t=>{const{topic:e}=t,{message:s}=d(\"MISSING_OR_INVALID\",`Decoded payload on topic ${e} is not identifiable as a JSON-RPC request or a response.`);throw new Error(s)},this.shouldIgnorePairingRequest=t=>{const{topic:e,requestMethod:s}=t,i=this.expectedPairingMethodMap.get(e);return!i||i.includes(s)?!1:!!(i.includes(\"wc_sessionAuthenticate\")&&this.client.events.listenerCount(\"session_authenticate\")>0)},this.onSessionProposeRequest=async t=>{const{topic:e,payload:s,attestation:i,encryptedId:r}=t,{params:n,id:o}=s;try{const c=this.client.core.eventClient.getEvent({topic:e});this.client.events.listenerCount(\"session_proposal\")===0&&(console.warn(\"No listener for session_proposal event\"),c?.setError(St.proposal_listener_not_found)),this.isValidConnect({...s.params});const p=n.expiryTimestamp||P(I.wc_sessionPropose.req.ttl),l={id:o,pairingTopic:e,expiryTimestamp:p,attestation:i,encryptedId:r,...n};await this.setProposal(o,l);const g=await this.getVerifyContext({attestationId:i,hash:L(JSON.stringify(s)),encryptedId:r,metadata:l.proposer.metadata});c?.addTrace(Et.emit_session_proposal),this.client.events.emit(\"session_proposal\",{id:o,params:l,verifyContext:g})}catch(c){await this.sendError({id:o,topic:e,error:c,rpcOpts:I.wc_sessionPropose.autoReject}),this.client.logger.error(c)}},this.onSessionProposeResponse=async(t,e,s)=>{const{id:i}=e;if(K(e)){const{result:r}=e;this.client.logger.trace({type:\"method\",method:\"onSessionProposeResponse\",result:r});const n=this.client.proposal.get(i);this.client.logger.trace({type:\"method\",method:\"onSessionProposeResponse\",proposal:n});const o=n.proposer.publicKey;this.client.logger.trace({type:\"method\",method:\"onSessionProposeResponse\",selfPublicKey:o});const c=r.responderPublicKey;this.client.logger.trace({type:\"method\",method:\"onSessionProposeResponse\",peerPublicKey:c});const p=await this.client.core.crypto.generateSharedKey(o,c);this.pendingSessions.set(i,{sessionTopic:p,pairingTopic:t,proposalId:i,publicKey:o});const l=await this.client.core.relayer.subscribe(p,{transportType:s});this.client.logger.trace({type:\"method\",method:\"onSessionProposeResponse\",subscriptionId:l}),await this.client.core.pairing.activate({topic:t})}else if(U(e)){await this.deleteProposal(i);const r=f(\"session_connect\",i);if(this.events.listenerCount(r)===0)throw new Error(`emitting ${r} without any listeners, 954`);this.events.emit(r,{error:e.error})}},this.onSessionSettleRequest=async(t,e)=>{const{id:s,params:i}=e;try{this.isValidSessionSettleRequest(i);const{relay:r,controller:n,expiry:o,namespaces:c,sessionProperties:p,scopedProperties:l,sessionConfig:g,proposalRequestsResponses:y}=e.params,u=[...this.pendingSessions.values()].find(m=>m.sessionTopic===t);if(!u)return this.client.logger.error(`Pending session not found for topic ${t}`);const w=this.client.proposal.get(u.proposalId),h={topic:t,relay:r,expiry:o,namespaces:c,acknowledged:!0,pairingTopic:u.pairingTopic,requiredNamespaces:w.requiredNamespaces,optionalNamespaces:w.optionalNamespaces,controller:n.publicKey,self:{publicKey:u.publicKey,metadata:this.client.metadata},peer:{publicKey:n.publicKey,metadata:n.metadata},...p&&{sessionProperties:p},...l&&{scopedProperties:l},...g&&{sessionConfig:g},transportType:R.relay,authentication:y?.authentication,walletPayResult:y?.walletPay};await this.client.session.set(h.topic,h),await this.setExpiry(h.topic,h.expiry),await this.client.core.pairing.updateMetadata({topic:u.pairingTopic,metadata:h.peer.metadata}),this.pendingSessions.delete(u.proposalId),this.deleteProposal(u.proposalId,!1),this.cleanupDuplicatePairings(h),await this.sendResult({id:e.id,topic:t,throwOnFailedPublish:!0,result:!0}),this.client.events.emit(\"session_connect\",{session:h}),this.events.emit(f(\"session_connect\",u.proposalId),{session:h})}catch(r){await this.sendError({id:s,topic:t,error:r}),this.client.logger.error(r)}},this.onSessionSettleResponse=async(t,e)=>{const{id:s}=e;K(e)?(await this.client.session.update(t,{acknowledged:!0}),this.events.emit(f(\"session_approve\",s),{})):U(e)&&(await this.client.session.delete(t,b(\"USER_DISCONNECTED\")),this.events.emit(f(\"session_approve\",s),{error:e.error}))},this.onSessionUpdateRequest=async(t,e)=>{const{params:s,id:i}=e;try{const r=`${t}_session_update`,n=le.get(r);if(n&&this.isRequestOutOfSync(n,i)){this.client.logger.warn(`Discarding out of sync request - ${i}`),this.sendError({id:i,topic:t,error:b(\"INVALID_UPDATE_REQUEST\")});return}this.isValidUpdate({topic:t,...s});try{le.set(r,i),await this.client.session.update(t,{namespaces:s.namespaces}),await this.sendResult({id:i,topic:t,result:!0})}catch(o){throw le.delete(r),o}this.client.events.emit(\"session_update\",{id:i,topic:t,params:s})}catch(r){await this.sendError({id:i,topic:t,error:r}),this.client.logger.error(r)}},this.isRequestOutOfSync=(t,e)=>e.toString().slice(0,-3)<t.toString().slice(0,-3),this.onSessionUpdateResponse=(t,e)=>{const{id:s}=e,i=f(\"session_update\",s);if(this.events.listenerCount(i)===0)throw new Error(`emitting ${i} without any listeners`);K(e)?this.events.emit(f(\"session_update\",s),{}):U(e)&&this.events.emit(f(\"session_update\",s),{error:e.error})},this.onSessionExtendRequest=async(t,e)=>{const{id:s}=e;try{this.isValidExtend({topic:t}),await this.setExpiry(t,P(X)),await this.sendResult({id:s,topic:t,result:!0}),this.client.events.emit(\"session_extend\",{id:s,topic:t})}catch(i){await this.sendError({id:s,topic:t,error:i}),this.client.logger.error(i)}},this.onSessionExtendResponse=(t,e)=>{const{id:s}=e,i=f(\"session_extend\",s);if(this.events.listenerCount(i)===0)throw new Error(`emitting ${i} without any listeners`);K(e)?this.events.emit(f(\"session_extend\",s),{}):U(e)&&this.events.emit(f(\"session_extend\",s),{error:e.error})},this.onSessionPingRequest=async(t,e)=>{const{id:s}=e;try{this.isValidPing({topic:t}),await this.sendResult({id:s,topic:t,result:!0,throwOnFailedPublish:!0}),this.client.events.emit(\"session_ping\",{id:s,topic:t})}catch(i){await this.sendError({id:s,topic:t,error:i}),this.client.logger.error(i)}},this.onSessionPingResponse=(t,e)=>{const{id:s}=e,i=f(\"session_ping\",s);setTimeout(()=>{if(this.events.listenerCount(i)===0)throw new Error(`emitting ${i} without any listeners 2176`);K(e)?this.events.emit(f(\"session_ping\",s),{}):U(e)&&this.events.emit(f(\"session_ping\",s),{error:e.error})},500)},this.onSessionDeleteRequest=async(t,e)=>{const{id:s}=e;try{await this.isValidDisconnect({topic:t,reason:e.params}),this.cleanupPendingSentRequestsForTopic({topic:t,error:b(\"USER_DISCONNECTED\")}),await this.deleteSession({topic:t,id:s})}catch(i){this.client.logger.error(i)}},this.onSessionRequest=async t=>{const{topic:e,payload:s,attestation:i,encryptedId:r,transportType:n}=t,{id:o,params:c}=s;try{await this.isValidRequest({topic:e,...c});const p=this.client.session.get(e),l=await this.getVerifyContext({attestationId:i,hash:L(JSON.stringify(se(\"wc_sessionRequest\",c,o))),encryptedId:r,metadata:p.peer.metadata,transportType:n}),g={id:o,topic:e,params:c,verifyContext:l};await this.setPendingSessionRequest(g),n===R.link_mode&&p.peer.metadata.redirect?.universal&&this.client.core.addLinkModeSupportedApp(p.peer.metadata.redirect?.universal),this.client.signConfig?.disableRequestQueue?this.emitSessionRequest(g):(this.addSessionRequestToSessionRequestQueue(g),this.processSessionRequestQueue())}catch(p){await this.sendError({id:o,topic:e,error:p}),this.client.logger.error(p)}},this.onSessionRequestResponse=(t,e)=>{const{id:s}=e,i=f(\"session_request\",s);if(this.events.listenerCount(i)===0)throw new Error(`emitting ${i} without any listeners`);K(e)?this.events.emit(f(\"session_request\",s),{result:e.result}):U(e)&&this.events.emit(f(\"session_request\",s),{error:e.error})},this.onSessionEventRequest=async(t,e)=>{const{id:s,params:i}=e;try{const r=`${t}_session_event_${i.event.name}`,n=le.get(r);if(n&&this.isRequestOutOfSync(n,s)){this.client.logger.info(`Discarding out of sync request - ${s}`);return}this.isValidEmit({topic:t,...i}),this.client.events.emit(\"session_event\",{id:s,topic:t,params:i}),le.set(r,s)}catch(r){await this.sendError({id:s,topic:t,error:r}),this.client.logger.error(r)}},this.onSessionAuthenticateResponse=(t,e)=>{const{id:s}=e;this.client.logger.trace({type:\"method\",method:\"onSessionAuthenticateResponse\",topic:t,payload:e}),K(e)?this.events.emit(f(\"session_request\",s),{result:e.result}):U(e)&&this.events.emit(f(\"session_request\",s),{error:e.error})},this.onSessionAuthenticateRequest=async t=>{const{topic:e,payload:s,attestation:i,encryptedId:r,transportType:n}=t;try{const{requester:o,authPayload:c,expiryTimestamp:p}=s.params,l=await this.getVerifyContext({attestationId:i,hash:L(JSON.stringify(s)),encryptedId:r,metadata:o.metadata,transportType:n}),g={requester:o,pairingTopic:e,id:s.id,authPayload:c,verifyContext:l,expiryTimestamp:p};await this.setAuthRequest(s.id,{request:g,pairingTopic:e,transportType:n}),n===R.link_mode&&o.metadata.redirect?.universal&&this.client.core.addLinkModeSupportedApp(o.metadata.redirect.universal),this.client.events.emit(\"session_authenticate\",{topic:e,params:s.params,id:s.id,verifyContext:l})}catch(o){this.client.logger.error(o);const c=s.params.requester.publicKey,p=await this.client.core.crypto.generateKeyPair(),l=this.getAppLinkIfEnabled(s.params.requester.metadata,n),g={type:Ne,receiverPublicKey:c,senderPublicKey:p};await this.sendError({id:s.id,topic:e,error:o,encodeOpts:g,rpcOpts:I.wc_sessionAuthenticate.autoReject,appLink:l})}},this.addSessionRequestToSessionRequestQueue=t=>{this.sessionRequestQueue.queue.push(t)},this.cleanupAfterResponse=t=>{this.deletePendingSessionRequest(t.response.id,{message:\"fulfilled\",code:0}),setTimeout(()=>{this.sessionRequestQueue.state=V.idle,this.processSessionRequestQueue()},Ze(this.requestQueueDelay))},this.cleanupPendingSentRequestsForTopic=({topic:t,error:e})=>{const s=this.client.core.history.pending;s.length>0&&s.filter(i=>i.topic===t&&i.request.method===\"wc_sessionRequest\").forEach(i=>{this.events.emit(f(\"session_request\",i.request.id),{error:e})})},this.processSessionRequestQueue=()=>{if(this.sessionRequestQueue.state===V.active){this.client.logger.info(\"session request queue is already active.\");return}const t=this.sessionRequestQueue.queue[0];if(!t){this.client.logger.info(\"session request queue is empty.\");return}try{this.emitSessionRequest(t)}catch(e){this.client.logger.error(e)}},this.emitSessionRequest=t=>{if(this.emittedSessionRequests.has(t.id)){this.client.logger.warn({id:t.id},`Skipping emitting \\`session_request\\` event for duplicate request. id: ${t.id}`);return}this.sessionRequestQueue.state=V.active,this.emittedSessionRequests.add(t.id),this.client.events.emit(\"session_request\",t)},this.onPairingCreated=t=>{if(t.methods&&this.expectedPairingMethodMap.set(t.topic,t.methods),t.active)return;const e=this.client.proposal.getAll().find(s=>s.pairingTopic===t.topic);e&&this.onSessionProposeRequest({topic:t.topic,payload:se(\"wc_sessionPropose\",{...e,requiredNamespaces:e.requiredNamespaces,optionalNamespaces:e.optionalNamespaces,relays:e.relays,proposer:e.proposer,sessionProperties:e.sessionProperties,scopedProperties:e.scopedProperties},e.id),attestation:e.attestation,encryptedId:e.encryptedId})},this.isValidConnect=async t=>{if(!C(t)){const{message:c}=d(\"MISSING_OR_INVALID\",`connect() params: ${JSON.stringify(t)}`);throw new Error(c)}const{pairingTopic:e,requiredNamespaces:s,optionalNamespaces:i,sessionProperties:r,scopedProperties:n,relays:o}=t;if(Y(e)||await this.isValidPairingTopic(e),!Lt(o,!0)){const{message:c}=d(\"MISSING_OR_INVALID\",`connect() relays: ${o}`);throw new Error(c)}if(s&&!Y(s)&&je(s)!==0){const c=\"requiredNamespaces are deprecated and are automatically assigned to optionalNamespaces\";[\"fatal\",\"error\",\"silent\"].includes(this.client.logger.level)?console.warn(c):this.client.logger.warn(c),this.validateNamespaces(s,\"requiredNamespaces\")}if(i&&!Y(i)&&je(i)!==0&&this.validateNamespaces(i,\"optionalNamespaces\"),r&&!Y(r)&&this.validateSessionProps(r,\"sessionProperties\"),n&&!Y(n)){this.validateSessionProps(n,\"scopedProperties\");const c=Object.keys(s||{}).concat(Object.keys(i||{}));if(!Object.keys(n).every(p=>c.includes(p.split(\":\")[0])))throw new Error(`Scoped properties must be a subset of required/optional namespaces, received: ${JSON.stringify(n)}, required/optional namespaces: ${JSON.stringify(c)}`)}},this.validateNamespaces=(t,e)=>{const s=Mt(t,\"connect()\",e);if(s)throw new Error(s.message)},this.isValidApprove=async t=>{if(!C(t))throw new Error(d(\"MISSING_OR_INVALID\",`approve() params: ${t}`).message);const{id:e,namespaces:s,relayProtocol:i,sessionProperties:r,scopedProperties:n}=t;this.checkRecentlyDeleted(e),await this.isValidProposalId(e);const o=this.client.proposal.get(e),c=Oe(s,\"approve()\");if(c)throw new Error(c.message);const p=He(o.requiredNamespaces,s,\"approve()\");if(p)throw new Error(p.message);if(!J(i,!0)){const{message:l}=d(\"MISSING_OR_INVALID\",`approve() relayProtocol: ${i}`);throw new Error(l)}if(r&&!Y(r)&&this.validateSessionProps(r,\"sessionProperties\"),n&&!Y(n)){this.validateSessionProps(n,\"scopedProperties\");const l=new Set(Object.keys(s));if(!Object.keys(n).every(g=>l.has(g.split(\":\")[0])))throw new Error(`Scoped properties must be a subset of approved namespaces, received: ${JSON.stringify(n)}, approved namespaces: ${Array.from(l).join(\", \")}`)}},this.isValidReject=async t=>{if(!C(t)){const{message:i}=d(\"MISSING_OR_INVALID\",`reject() params: ${t}`);throw new Error(i)}const{id:e,reason:s}=t;if(this.checkRecentlyDeleted(e),await this.isValidProposalId(e),!$t(s)){const{message:i}=d(\"MISSING_OR_INVALID\",`reject() reason: ${JSON.stringify(s)}`);throw new Error(i)}},this.isValidSessionSettleRequest=t=>{if(!C(t)){const{message:c}=d(\"MISSING_OR_INVALID\",`onSessionSettleRequest() params: ${t}`);throw new Error(c)}const{relay:e,controller:s,namespaces:i,expiry:r}=t;if(!Kt(e)){const{message:c}=d(\"MISSING_OR_INVALID\",\"onSessionSettleRequest() relay protocol should be a string\");throw new Error(c)}const n=Ut(s,\"onSessionSettleRequest()\");if(n)throw new Error(n.message);const o=Oe(i,\"onSessionSettleRequest()\");if(o)throw new Error(o.message);if(te(r)){const{message:c}=d(\"EXPIRED\",\"onSessionSettleRequest()\");throw new Error(c)}},this.isValidUpdate=async t=>{if(!C(t)){const{message:o}=d(\"MISSING_OR_INVALID\",`update() params: ${t}`);throw new Error(o)}const{topic:e,namespaces:s}=t;this.checkRecentlyDeleted(e),await this.isValidSessionTopic(e);const i=this.client.session.get(e),r=Oe(s,\"update()\");if(r)throw new Error(r.message);const n=He(i.requiredNamespaces,s,\"update()\");if(n)throw new Error(n.message)},this.isValidExtend=async t=>{if(!C(t)){const{message:s}=d(\"MISSING_OR_INVALID\",`extend() params: ${t}`);throw new Error(s)}const{topic:e}=t;this.checkRecentlyDeleted(e),await this.isValidSessionTopic(e)},this.isValidRequest=async t=>{if(!C(t)){const{message:o}=d(\"MISSING_OR_INVALID\",`request() params: ${t}`);throw new Error(o)}const{topic:e,request:s,chainId:i,expiry:r}=t;this.checkRecentlyDeleted(e),await this.isValidSessionTopic(e);const{namespaces:n}=this.client.session.get(e);if(!Qe(n,i)){const{message:o}=d(\"MISSING_OR_INVALID\",`request() chainId: ${i}`);throw new Error(o)}if(!Gt(s)){const{message:o}=d(\"MISSING_OR_INVALID\",`request() ${JSON.stringify(s)}`);throw new Error(o)}if(!Ft(n,i,s.method)){const{message:o}=d(\"MISSING_OR_INVALID\",`request() method: ${s.method}`);throw new Error(o)}this.validateRequestExpiry(r)},this.isValidRespond=async t=>{if(!C(t)){const{message:r}=d(\"MISSING_OR_INVALID\",`respond() params: ${t}`);throw new Error(r)}const{topic:e,response:s}=t;try{await this.isValidSessionTopic(e)}catch(r){throw t?.response?.id&&this.cleanupAfterResponse(t),r}if(!jt(s)){const{message:r}=d(\"MISSING_OR_INVALID\",`respond() response: ${JSON.stringify(s)}`);throw new Error(r)}const i=this.client.pendingRequest.get(s.id);if(i.topic!==e){const{message:r}=d(\"MISMATCHED_TOPIC\",`Request response topic mismatch. reqId: ${s.id}, expected topic: ${i.topic}, received topic: ${e}`);throw new Error(r)}},this.isValidPing=async t=>{if(!C(t)){const{message:s}=d(\"MISSING_OR_INVALID\",`ping() params: ${t}`);throw new Error(s)}const{topic:e}=t;await this.isValidSessionOrPairingTopic(e)},this.isValidEmit=async t=>{if(!C(t)){const{message:n}=d(\"MISSING_OR_INVALID\",`emit() params: ${t}`);throw new Error(n)}const{topic:e,event:s,chainId:i}=t;await this.isValidSessionTopic(e);const{namespaces:r}=this.client.session.get(e);if(!Qe(r,i)){const{message:n}=d(\"MISSING_OR_INVALID\",`emit() chainId: ${i}`);throw new Error(n)}if(!Ht(s)){const{message:n}=d(\"MISSING_OR_INVALID\",`emit() event: ${JSON.stringify(s)}`);throw new Error(n)}if(!Qt(r,i,s.name)){const{message:n}=d(\"MISSING_OR_INVALID\",`emit() event: ${JSON.stringify(s)}`);throw new Error(n)}},this.isValidDisconnect=async t=>{if(!C(t)){const{message:s}=d(\"MISSING_OR_INVALID\",`disconnect() params: ${t}`);throw new Error(s)}const{topic:e}=t;await this.isValidSessionOrPairingTopic(e)},this.isValidAuthenticate=t=>{const{chains:e,uri:s,domain:i,nonce:r}=t;if(!Array.isArray(e)||e.length===0)throw new Error(\"chains is required and must be a non-empty array\");if(!J(s,!1))throw new Error(\"uri is required parameter\");if(!J(i,!1))throw new Error(\"domain is required parameter\");if(!J(r,!1))throw new Error(\"nonce is required parameter\");if([...new Set(e.map(o=>ve(o).namespace))].length>1)throw new Error(\"Multi-namespace requests are not supported. Please request single namespace only.\");const{namespace:n}=ve(e[0]);if(n!==\"eip155\")throw new Error(\"Only eip155 namespace is supported for authenticated sessions. Please use .connect() for non-eip155 chains.\")},this.getVerifyContext=async t=>{const{attestationId:e,hash:s,encryptedId:i,metadata:r,transportType:n}=t,o={verified:{verifyUrl:r.verifyUrl||Rt,validation:\"UNKNOWN\",origin:r.url||\"\"}};try{if(n===R.link_mode){const p=this.getAppLinkIfEnabled(r,n);return o.verified.validation=p&&new URL(p).origin===new URL(r.url).origin?\"VALID\":\"INVALID\",o}const c=await this.client.core.verify.resolve({attestationId:e,hash:s,encryptedId:i,verifyUrl:r.verifyUrl});c&&(o.verified.origin=c.origin,o.verified.isScam=c.isScam,o.verified.validation=c.origin===new URL(r.url).origin?\"VALID\":\"INVALID\")}catch(c){this.client.logger.warn(c)}return this.client.logger.debug(`Verify context: ${JSON.stringify(o)}`),o},this.validateSessionProps=(t,e)=>{Object.values(t).forEach((s,i)=>{if(s==null){const{message:r}=d(\"MISSING_OR_INVALID\",`${e} must contain an existing value for each key. Received: ${s} for key ${Object.keys(t)[i]}`);throw new Error(r)}})},this.getPendingAuthRequest=t=>{const e=this.client.auth.requests.get(t);return typeof e==\"object\"?e:void 0},this.addToRecentlyDeleted=(t,e)=>{if(this.recentlyDeletedMap.set(t,e),this.recentlyDeletedMap.size>=this.recentlyDeletedLimit){let s=0;const i=this.recentlyDeletedLimit/2;for(const r of this.recentlyDeletedMap.keys()){if(s++>=i)break;this.recentlyDeletedMap.delete(r)}}},this.checkRecentlyDeleted=t=>{const e=this.recentlyDeletedMap.get(t);if(e){const{message:s}=d(\"MISSING_OR_INVALID\",`Record was recently deleted - ${e}: ${t}`);throw new Error(s)}},this.isLinkModeEnabled=(t,e)=>!t||e!==R.link_mode?!1:this.client.metadata?.redirect?.linkMode===!0&&this.client.metadata?.redirect?.universal!==void 0&&this.client.metadata?.redirect?.universal!==\"\"&&t?.redirect?.universal!==void 0&&t?.redirect?.universal!==\"\"&&t?.redirect?.linkMode===!0&&this.client.core.linkModeSupportedApps.includes(t.redirect.universal)&&typeof global?.Linking<\"u\",this.getAppLinkIfEnabled=(t,e)=>this.isLinkModeEnabled(t,e)?t?.redirect?.universal:void 0,this.handleLinkModeMessage=({url:t})=>{if(!t||!t.includes(\"wc_ev\")||!t.includes(\"topic\"))return;const e=ze(t,\"topic\")||\"\",s=decodeURIComponent(ze(t,\"wc_ev\")||\"\"),i=this.client.session.keys.includes(e);i&&this.client.session.update(e,{transportType:R.link_mode}),this.client.core.dispatchEnvelope({topic:e,message:s,sessionExists:i})},this.registerLinkModeListeners=async()=>{if(zt()||Yt()&&this.client.metadata.redirect?.linkMode){const t=global?.Linking;if(typeof t<\"u\"){t.addEventListener(\"url\",this.handleLinkModeMessage,this.client.name);const e=await t.getInitialURL();e&&setTimeout(()=>{this.handleLinkModeMessage({url:e})},50)}}},this.getTVFApproveParams=t=>{try{const e=Jt(t.namespaces),s=Xt(t.namespaces),i=Bt(t.namespaces),r=t.sessionProperties,n=t.scopedProperties;return{approvedChains:e,approvedMethods:s,approvedEvents:i,sessionProperties:r,scopedProperties:n}}catch(e){return this.client.logger.warn(e,\"Error getting TVF approve params\"),{}}},this.getTVFParams=(t,e,s)=>{if(!e.request?.method)return{};const i={correlationId:t,rpcMethods:[e.request.method],chainId:e.chainId};try{const r=this.extractTxHashesFromResult(e.request,s);i.txHashes=r,i.contractAddresses=this.isValidContractData(e.request.params)?[e.request.params?.[0]?.to]:[]}catch(r){this.client.logger.warn(r,\"Error getting TVF params\")}return i},this.isValidContractData=t=>{if(!t)return!1;try{const e=t?.data||t?.[0]?.data;if(!e.startsWith(\"0x\"))return!1;const s=e.slice(2);return/^[0-9a-fA-F]*$/.test(s)?s.length%2===0:!1}catch{}return!1},this.extractTxHashesFromResult=(t,e)=>{try{if(!e)return[];const s=t.method,i=rt[s];if(s===\"sui_signTransaction\")return[Wt(e.transactionBytes)];if(s===\"near_signTransaction\")return[Ye(e)];if(s===\"near_signTransactions\")return e.map(n=>Ye(n));if(s===\"xrpl_signTransactionFor\"||s===\"xrpl_signTransaction\")return[e.tx_json?.hash];if(s===\"polkadot_signTransaction\")return[Zt({transaction:t.params.transactionPayload,signature:e.signature})];if(s===\"algo_signTxn\")return Je(e)?e.map(n=>Xe(n)):[Xe(e)];if(s===\"cosmos_signDirect\")return[es(e)];if(s===\"wallet_sendCalls\")return ts(e);if(typeof e==\"string\")return[e];const r=e[i.key];if(Je(r))return s===\"solana_signAllTransactions\"?r.map(n=>ss(n)):r;if(typeof r==\"string\")return[r]}catch(s){this.client.logger.warn(s,\"Error extracting tx hashes from result\")}return[]}}async processPendingMessageEvents(){try{const a=this.client.session.keys,t=this.client.core.relayer.messages.getWithoutAck(a);for(const[e,s]of Object.entries(t))for(const i of s)try{await this.onProviderMessageEvent({topic:e,message:i,publishedAt:Date.now()})}catch{this.client.logger.warn(`Error processing pending message event for topic: ${e}, message: ${i}`)}}catch(a){this.client.logger.warn(a,\"processPendingMessageEvents failed\")}}isInitialized(){if(!this.initialized){const{message:a}=d(\"NOT_INITIALIZED\",this.name);throw new Error(a)}}async confirmOnlineStateOrThrow(){await this.client.core.relayer.confirmOnlineStateOrThrow()}registerRelayerEvents(){this.client.core.relayer.on(It.message,a=>{this.onProviderMessageEvent(a)})}async onRelayMessage(a){const{topic:t,message:e,attestation:s,transportType:i}=a,{publicKey:r}=this.client.auth.authKeys.keys.includes(de)?this.client.auth.authKeys.get(de):{publicKey:void 0};try{const n=await this.client.core.crypto.decode(t,e,{receiverPublicKey:r,encoding:i===R.link_mode?pe:z});ds(n)?(this.client.core.history.set(t,n),await this.onRelayEventRequest({topic:t,payload:n,attestation:s,transportType:i,encryptedId:L(e)})):us(n)?(await this.client.core.history.resolve(n),await this.onRelayEventResponse({topic:t,payload:n,transportType:i}),this.client.core.history.delete(t,n.id)):(this.client.logger.error(`onRelayMessage() -> unknown payload: ${JSON.stringify(n)}`),await this.onRelayEventUnknownPayload({topic:t,payload:n,transportType:i})),await this.client.core.relayer.messages.ack(t,e)}catch(n){this.client.logger.error(`onRelayMessage() -> failed to process an inbound message: ${e}`),this.client.logger.error(n)}}registerExpirerEvents(){this.client.core.expirer.on(qt.expired,async a=>{const{topic:t,id:e}=is(a.target);if(e&&this.client.pendingRequest.keys.includes(e))return await this.deletePendingSessionRequest(e,d(\"EXPIRED\"),!0);if(e&&this.client.auth.requests.keys.includes(e))return await this.deletePendingAuthRequest(e,d(\"EXPIRED\"),!0);t?this.client.session.keys.includes(t)&&(await this.deleteSession({topic:t,expirerHasDeleted:!0}),this.client.events.emit(\"session_expire\",{topic:t})):e&&(await this.deleteProposal(e,!0),this.client.events.emit(\"proposal_expire\",{id:e}))})}registerPairingEvents(){this.client.core.pairing.events.on(Le.create,a=>this.onPairingCreated(a)),this.client.core.pairing.events.on(Le.delete,a=>{this.addToRecentlyDeleted(a.topic,\"pairing\")})}isValidPairingTopic(a){if(!J(a,!1)){const{message:t}=d(\"MISSING_OR_INVALID\",`pairing topic should be a string: ${a}`);throw new Error(t)}if(!this.client.core.pairing.pairings.keys.includes(a)){const{message:t}=d(\"NO_MATCHING_KEY\",`pairing topic doesn't exist: ${a}`);throw new Error(t)}if(te(this.client.core.pairing.pairings.get(a).expiry)){const{message:t}=d(\"EXPIRED\",`pairing topic: ${a}`);throw new Error(t)}}async isValidSessionTopic(a){if(!J(a,!1)){const{message:t}=d(\"MISSING_OR_INVALID\",`session topic should be a string: ${a}`);throw new Error(t)}if(this.checkRecentlyDeleted(a),!this.client.session.keys.includes(a)){const{message:t}=d(\"NO_MATCHING_KEY\",`session topic doesn't exist: ${a}`);throw new Error(t)}if(te(this.client.session.get(a).expiry)){await this.deleteSession({topic:a});const{message:t}=d(\"EXPIRED\",`session topic: ${a}`);throw new Error(t)}if(!this.client.core.crypto.keychain.has(a)){const{message:t}=d(\"MISSING_OR_INVALID\",`session topic does not exist in keychain: ${a}`);throw await this.deleteSession({topic:a}),new Error(t)}}async isValidSessionOrPairingTopic(a){if(this.checkRecentlyDeleted(a),this.client.session.keys.includes(a))await this.isValidSessionTopic(a);else if(this.client.core.pairing.pairings.keys.includes(a))this.isValidPairingTopic(a);else if(J(a,!1)){const{message:t}=d(\"NO_MATCHING_KEY\",`session or pairing topic doesn't exist: ${a}`);throw new Error(t)}else{const{message:t}=d(\"MISSING_OR_INVALID\",`session or pairing topic should be a string: ${a}`);throw new Error(t)}}async isValidProposalId(a){if(!rs(a)){const{message:t}=d(\"MISSING_OR_INVALID\",`proposal id should be a number: ${a}`);throw new Error(t)}if(!this.client.proposal.keys.includes(a)){const{message:t}=d(\"NO_MATCHING_KEY\",`proposal id doesn't exist: ${a}`);throw new Error(t)}if(te(this.client.proposal.get(a).expiryTimestamp)){await this.deleteProposal(a);const{message:t}=d(\"EXPIRED\",`proposal id: ${a}`);throw new Error(t)}}validateRequestExpiry(a){if(a&&!ns(a,Se)){const{message:t}=d(\"MISSING_OR_INVALID\",`request() expiry: ${a}. Expiry must be a number (in seconds) between ${Se.min} and ${Se.max}`);throw new Error(t)}}}class Rs extends Z{constructor(a,t){super(a,t,tt,_e),this.core=a,this.logger=t}}class dt extends Z{constructor(a,t){super(a,t,st,_e),this.core=a,this.logger=t}}class Is extends Z{constructor(a,t){super(a,t,nt,_e,e=>e.id),this.core=a,this.logger=t}}class qs extends Z{constructor(a,t){super(a,t,pt,he,()=>de),this.core=a,this.logger=t}}class Ts extends Z{constructor(a,t){super(a,t,lt,he),this.core=a,this.logger=t}}class vs extends Z{constructor(a,t){super(a,t,ht,he,e=>e.id),this.core=a,this.logger=t}}class Ps{constructor(a,t){this.core=a,this.logger=t,this.authKeys=new qs(this.core,this.logger),this.pairingTopics=new Ts(this.core,this.logger),this.requests=new vs(this.core,this.logger)}async init(){await this.authKeys.init(),await this.pairingTopics.init(),await this.requests.init()}}let ut=class gt extends Pt{constructor(a){super(a),this.protocol=Ae,this.version=xe,this.name=fe.name,this.events=new _t,this.on=(e,s)=>this.events.on(e,s),this.once=(e,s)=>this.events.once(e,s),this.off=(e,s)=>this.events.off(e,s),this.removeListener=(e,s)=>this.events.removeListener(e,s),this.removeAllListeners=e=>this.events.removeAllListeners(e),this.connect=async e=>{try{return await this.engine.connect(e)}catch(s){throw this.logger.error(s.message),s}},this.pair=async e=>{try{return await this.engine.pair(e)}catch(s){throw this.logger.error(s.message),s}},this.approve=async e=>{try{return await this.engine.approve(e)}catch(s){throw this.logger.error(s.message),s}},this.reject=async e=>{try{return await this.engine.reject(e)}catch(s){throw this.logger.error(s.message),s}},this.update=async e=>{try{return await this.engine.update(e)}catch(s){throw this.logger.error(s.message),s}},this.extend=async e=>{try{return await this.engine.extend(e)}catch(s){throw this.logger.error(s.message),s}},this.request=async e=>{try{return await this.engine.request(e)}catch(s){throw this.logger.error(s.message),s}},this.respond=async e=>{try{return await this.engine.respond(e)}catch(s){throw this.logger.error(s.message),s}},this.ping=async e=>{try{return await this.engine.ping(e)}catch(s){throw this.logger.error(s.message),s}},this.emit=async e=>{try{return await this.engine.emit(e)}catch(s){throw this.logger.error(s.message),s}},this.disconnect=async e=>{try{return await this.engine.disconnect(e)}catch(s){throw this.logger.error(s.message),s}},this.find=e=>{try{return this.engine.find(e)}catch(s){throw this.logger.error(s.message),s}},this.getPendingSessionRequests=()=>{try{return this.engine.getPendingSessionRequests()}catch(e){throw this.logger.error(e.message),e}},this.authenticate=async(e,s)=>{try{return await this.engine.authenticate(e,s)}catch(i){throw this.logger.error(i.message),i}},this.formatAuthMessage=e=>{try{return this.engine.formatAuthMessage(e)}catch(s){throw this.logger.error(s.message),s}},this.approveSessionAuthenticate=async e=>{try{return await this.engine.approveSessionAuthenticate(e)}catch(s){throw this.logger.error(s.message),s}},this.rejectSessionAuthenticate=async e=>{try{return await this.engine.rejectSessionAuthenticate(e)}catch(s){throw this.logger.error(s.message),s}},this.name=a?.name||fe.name,this.metadata=os(a?.metadata),this.signConfig=a?.signConfig;const t=as({logger:a?.logger||fe.logger,name:this.name});this.logger=t,this.core=a?.core||new Tt(a),this.session=new dt(this.core,this.logger),this.proposal=new Rs(this.core,this.logger),this.pendingRequest=new Is(this.core,this.logger),this.engine=new Es(this),this.auth=new Ps(this.core,this.logger)}static async init(a){const t=new gt(a);return await t.initialize(),t}get context(){return cs(this.logger)}get pairing(){return this.core.pairing.pairings}async initialize(){this.logger.trace(\"Initialized\");try{await this.core.start(),await this.session.init(),await this.proposal.init(),await this.pendingRequest.init(),await this.auth.init(),await this.engine.init(),this.logger.info(\"SignClient Initialization Success\")}catch(a){throw this.logger.info(\"SignClient Initialization Failure\"),this.logger.error(a.message),a}}};const Ns=dt,Os=ut;export{ct as AUTH_CONTEXT,pt as AUTH_KEYS_CONTEXT,lt as AUTH_PAIRING_TOPIC_CONTEXT,at as AUTH_PROTOCOL,de as AUTH_PUBLIC_KEY_NAME,ht as AUTH_REQUEST_CONTEXT,he as AUTH_STORAGE_PREFIX,Ss as AUTH_VERSION,it as ENGINE_CONTEXT,V as ENGINE_QUEUE_STATES,I as ENGINE_RPC_OPTS,ws as HISTORY_CONTEXT,ms as HISTORY_EVENTS,_s as HISTORY_STORAGE_VERSION,ot as METHODS_TO_VERIFY,tt as PROPOSAL_CONTEXT,fs as PROPOSAL_EXPIRY,Ve as PROPOSAL_EXPIRY_MESSAGE,nt as REQUEST_CONTEXT,st as SESSION_CONTEXT,X as SESSION_EXPIRY,Se as SESSION_REQUEST_EXPIRY_BOUNDARIES,be as SIGN_CLIENT_CONTEXT,fe as SIGN_CLIENT_DEFAULT,gs as SIGN_CLIENT_EVENTS,Ae as SIGN_CLIENT_PROTOCOL,ys as SIGN_CLIENT_STORAGE_OPTIONS,_e as SIGN_CLIENT_STORAGE_PREFIX,xe as SIGN_CLIENT_VERSION,Ns as SessionStore,Os as SignClient,rt as TVF_METHODS,Ce as WALLETCONNECT_DEEPLINK_CHOICE,ut as default};\n//# sourceMappingURL=index.js.map\n","// Save global object in a variable\nvar __global__ =\n(typeof globalThis !== 'undefined' && globalThis) ||\n(typeof self !== 'undefined' && self) ||\n(typeof global !== 'undefined' && global);\n// Create an object that extends from __global__ without the fetch function\nvar __globalThis__ = (function () {\nfunction F() {\nthis.fetch = false;\nthis.DOMException = __global__.DOMException\n}\nF.prototype = __global__; // Needed for feature detection on whatwg-fetch's code\nreturn new F();\n})();\n// Wraps whatwg-fetch with a function scope to hijack the global object\n// \"globalThis\" that's going to be patched\n(function(globalThis) {\n\nvar irrelevant = (function (exports) {\n\n /* eslint-disable no-prototype-builtins */\n var g =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof self !== 'undefined' && self) ||\n // eslint-disable-next-line no-undef\n (typeof global !== 'undefined' && global) ||\n {};\n\n var support = {\n searchParams: 'URLSearchParams' in g,\n iterable: 'Symbol' in g && 'iterator' in Symbol,\n blob:\n 'FileReader' in g &&\n 'Blob' in g &&\n (function() {\n try {\n new Blob();\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in g,\n arrayBuffer: 'ArrayBuffer' in g\n };\n\n function isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ];\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n };\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~!]/i.test(name) || name === '') {\n throw new TypeError('Invalid character in header field name: \"' + name + '\"')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift();\n return {done: value === undefined, value: value}\n }\n };\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n };\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {};\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n if (header.length != 2) {\n throw new TypeError('Headers constructor: expected name/value pair to be length 2, found' + header.length)\n }\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name]);\n }, this);\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue + ', ' + value : value;\n };\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)];\n };\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null\n };\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n };\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value);\n };\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n };\n\n Headers.prototype.keys = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push(name);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.values = function() {\n var items = [];\n this.forEach(function(value) {\n items.push(value);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.entries = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items)\n };\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n }\n\n function consumed(body) {\n if (body._noBody) return\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true;\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result);\n };\n reader.onerror = function() {\n reject(reader.error);\n };\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsArrayBuffer(blob);\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n var match = /charset=([A-Za-z0-9_-]+)/.exec(blob.type);\n var encoding = match ? match[1] : 'utf-8';\n reader.readAsText(blob, encoding);\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf);\n var chars = new Array(view.length);\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i]);\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength);\n view.set(new Uint8Array(buf));\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false;\n\n this._initBody = function(body) {\n /*\n fetch-mock wraps the Response object in an ES6 Proxy to\n provide useful test harness features such as flush. However, on\n ES5 browsers without fetch or Proxy support pollyfills must be used;\n the proxy-pollyfill is unable to proxy an attribute unless it exists\n on the object before the Proxy is created. This change ensures\n Response.bodyUsed exists on the instance, while maintaining the\n semantic of setting Request.bodyUsed in the constructor before\n _initBody is called.\n */\n // eslint-disable-next-line no-self-assign\n this.bodyUsed = this.bodyUsed;\n this._bodyInit = body;\n if (!body) {\n this._noBody = true;\n this._bodyText = '';\n } else if (typeof body === 'string') {\n this._bodyText = body;\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body;\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body;\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString();\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer);\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer]);\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body);\n } else {\n this._bodyText = body = Object.prototype.toString.call(body);\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8');\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type);\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n }\n };\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n };\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n var isConsumed = consumed(this);\n if (isConsumed) {\n return isConsumed\n } else if (ArrayBuffer.isView(this._bodyArrayBuffer)) {\n return Promise.resolve(\n this._bodyArrayBuffer.buffer.slice(\n this._bodyArrayBuffer.byteOffset,\n this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength\n )\n )\n } else {\n return Promise.resolve(this._bodyArrayBuffer)\n }\n } else if (support.blob) {\n return this.blob().then(readBlobAsArrayBuffer)\n } else {\n throw new Error('could not read as ArrayBuffer')\n }\n };\n\n this.text = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n };\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n };\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n };\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['CONNECT', 'DELETE', 'GET', 'HEAD', 'OPTIONS', 'PATCH', 'POST', 'PUT', 'TRACE'];\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase();\n return methods.indexOf(upcased) > -1 ? upcased : method\n }\n\n function Request(input, options) {\n if (!(this instanceof Request)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n\n options = options || {};\n var body = options.body;\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url;\n this.credentials = input.credentials;\n if (!options.headers) {\n this.headers = new Headers(input.headers);\n }\n this.method = input.method;\n this.mode = input.mode;\n this.signal = input.signal;\n if (!body && input._bodyInit != null) {\n body = input._bodyInit;\n input.bodyUsed = true;\n }\n } else {\n this.url = String(input);\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin';\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers);\n }\n this.method = normalizeMethod(options.method || this.method || 'GET');\n this.mode = options.mode || this.mode || null;\n this.signal = options.signal || this.signal || (function () {\n if ('AbortController' in g) {\n var ctrl = new AbortController();\n return ctrl.signal;\n }\n }());\n this.referrer = null;\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body);\n\n if (this.method === 'GET' || this.method === 'HEAD') {\n if (options.cache === 'no-store' || options.cache === 'no-cache') {\n // Search for a '_' parameter in the query string\n var reParamSearch = /([?&])_=[^&]*/;\n if (reParamSearch.test(this.url)) {\n // If it already exists then set the value with the current time\n this.url = this.url.replace(reParamSearch, '$1_=' + new Date().getTime());\n } else {\n // Otherwise add a new '_' parameter to the end with the current time\n var reQueryString = /\\?/;\n this.url += (reQueryString.test(this.url) ? '&' : '?') + '_=' + new Date().getTime();\n }\n }\n }\n }\n\n Request.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n };\n\n function decode(body) {\n var form = new FormData();\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=');\n var name = split.shift().replace(/\\+/g, ' ');\n var value = split.join('=').replace(/\\+/g, ' ');\n form.append(decodeURIComponent(name), decodeURIComponent(value));\n }\n });\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers();\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n // Avoiding split via regex to work around a common IE11 bug with the core-js 3.6.0 regex polyfill\n // https://github.com/github/fetch/issues/748\n // https://github.com/zloirock/core-js/issues/751\n preProcessedHeaders\n .split('\\r')\n .map(function(header) {\n return header.indexOf('\\n') === 0 ? header.substr(1, header.length) : header\n })\n .forEach(function(line) {\n var parts = line.split(':');\n var key = parts.shift().trim();\n if (key) {\n var value = parts.join(':').trim();\n try {\n headers.append(key, value);\n } catch (error) {\n console.warn('Response ' + error.message);\n }\n }\n });\n return headers\n }\n\n Body.call(Request.prototype);\n\n function Response(bodyInit, options) {\n if (!(this instanceof Response)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n if (!options) {\n options = {};\n }\n\n this.type = 'default';\n this.status = options.status === undefined ? 200 : options.status;\n if (this.status < 200 || this.status > 599) {\n throw new RangeError(\"Failed to construct 'Response': The status provided (0) is outside the range [200, 599].\")\n }\n this.ok = this.status >= 200 && this.status < 300;\n this.statusText = options.statusText === undefined ? '' : '' + options.statusText;\n this.headers = new Headers(options.headers);\n this.url = options.url || '';\n this._initBody(bodyInit);\n }\n\n Body.call(Response.prototype);\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n };\n\n Response.error = function() {\n var response = new Response(null, {status: 200, statusText: ''});\n response.ok = false;\n response.status = 0;\n response.type = 'error';\n return response\n };\n\n var redirectStatuses = [301, 302, 303, 307, 308];\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n };\n\n exports.DOMException = g.DOMException;\n try {\n new exports.DOMException();\n } catch (err) {\n exports.DOMException = function(message, name) {\n this.message = message;\n this.name = name;\n var error = Error(message);\n this.stack = error.stack;\n };\n exports.DOMException.prototype = Object.create(Error.prototype);\n exports.DOMException.prototype.constructor = exports.DOMException;\n }\n\n function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init);\n\n if (request.signal && request.signal.aborted) {\n return reject(new exports.DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest();\n\n function abortXhr() {\n xhr.abort();\n }\n\n xhr.onload = function() {\n var options = {\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n };\n // This check if specifically for when a user fetches a file locally from the file system\n // Only if the status is out of a normal range\n if (request.url.indexOf('file://') === 0 && (xhr.status < 200 || xhr.status > 599)) {\n options.status = 200;\n } else {\n options.status = xhr.status;\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n var body = 'response' in xhr ? xhr.response : xhr.responseText;\n setTimeout(function() {\n resolve(new Response(body, options));\n }, 0);\n };\n\n xhr.onerror = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'));\n }, 0);\n };\n\n xhr.ontimeout = function() {\n setTimeout(function() {\n reject(new TypeError('Network request timed out'));\n }, 0);\n };\n\n xhr.onabort = function() {\n setTimeout(function() {\n reject(new exports.DOMException('Aborted', 'AbortError'));\n }, 0);\n };\n\n function fixUrl(url) {\n try {\n return url === '' && g.location.href ? g.location.href : url\n } catch (e) {\n return url\n }\n }\n\n xhr.open(request.method, fixUrl(request.url), true);\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true;\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false;\n }\n\n if ('responseType' in xhr) {\n if (support.blob) {\n xhr.responseType = 'blob';\n } else if (\n support.arrayBuffer\n ) {\n xhr.responseType = 'arraybuffer';\n }\n }\n\n if (init && typeof init.headers === 'object' && !(init.headers instanceof Headers || (g.Headers && init.headers instanceof g.Headers))) {\n var names = [];\n Object.getOwnPropertyNames(init.headers).forEach(function(name) {\n names.push(normalizeName(name));\n xhr.setRequestHeader(name, normalizeValue(init.headers[name]));\n });\n request.headers.forEach(function(value, name) {\n if (names.indexOf(name) === -1) {\n xhr.setRequestHeader(name, value);\n }\n });\n } else {\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value);\n });\n }\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr);\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr);\n }\n };\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n })\n }\n\n fetch.polyfill = true;\n\n if (!g.fetch) {\n g.fetch = fetch;\n g.Headers = Headers;\n g.Request = Request;\n g.Response = Response;\n }\n\n exports.Headers = Headers;\n exports.Request = Request;\n exports.Response = Response;\n exports.fetch = fetch;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n return exports;\n\n})({});\n})(__globalThis__);\n// This is a ponyfill, so...\n__globalThis__.fetch.ponyfill = true;\ndelete __globalThis__.fetch.polyfill;\n// Choose between native implementation (__global__) or custom implementation (__globalThis__)\nvar ctx = __global__.fetch ? __global__ : __globalThis__;\nexports = ctx.fetch // To enable: import fetch from 'cross-fetch'\nexports.default = ctx.fetch // For TypeScript consumers without esModuleInterop.\nexports.fetch = ctx.fetch // To enable: import {fetch} from 'cross-fetch'\nexports.Headers = ctx.Headers\nexports.Request = ctx.Request\nexports.Response = ctx.Response\nmodule.exports = exports\n","import{EventEmitter as m}from\"events\";import o from\"cross-fetch\";import{safeJsonStringify as a,safeJsonParse as y}from\"@walletconnect/safe-json\";import{isHttpUrl as h,formatJsonRpcError as b,parseConnectionError as u}from\"@walletconnect/jsonrpc-utils\";var P=Object.defineProperty,w=Object.defineProperties,E=Object.getOwnPropertyDescriptors,c=Object.getOwnPropertySymbols,L=Object.prototype.hasOwnProperty,O=Object.prototype.propertyIsEnumerable,l=(r,t,e)=>t in r?P(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e,p=(r,t)=>{for(var e in t||(t={}))L.call(t,e)&&l(r,e,t[e]);if(c)for(var e of c(t))O.call(t,e)&&l(r,e,t[e]);return r},v=(r,t)=>w(r,E(t));const j={Accept:\"application/json\",\"Content-Type\":\"application/json\"},T=\"POST\",d={headers:j,method:T},g=10;class f{constructor(t,e=!1){if(this.url=t,this.disableProviderPing=e,this.events=new m,this.isAvailable=!1,this.registering=!1,!h(t))throw new Error(`Provided URL is not compatible with HTTP connection: ${t}`);this.url=t,this.disableProviderPing=e}get connected(){return this.isAvailable}get connecting(){return this.registering}on(t,e){this.events.on(t,e)}once(t,e){this.events.once(t,e)}off(t,e){this.events.off(t,e)}removeListener(t,e){this.events.removeListener(t,e)}async open(t=this.url){await this.register(t)}async close(){if(!this.isAvailable)throw new Error(\"Connection already closed\");this.onClose()}async send(t){this.isAvailable||await this.register();try{const e=a(t),s=await(await o(this.url,v(p({},d),{body:e}))).json();this.onPayload({data:s})}catch(e){this.onError(t.id,e)}}async register(t=this.url){if(!h(t))throw new Error(`Provided URL is not compatible with HTTP connection: ${t}`);if(this.registering){const e=this.events.getMaxListeners();return(this.events.listenerCount(\"register_error\")>=e||this.events.listenerCount(\"open\")>=e)&&this.events.setMaxListeners(e+1),new Promise((s,i)=>{this.events.once(\"register_error\",n=>{this.resetMaxListeners(),i(n)}),this.events.once(\"open\",()=>{if(this.resetMaxListeners(),typeof this.isAvailable>\"u\")return i(new Error(\"HTTP connection is missing or invalid\"));s()})})}this.url=t,this.registering=!0;try{if(!this.disableProviderPing){const e=a({id:1,jsonrpc:\"2.0\",method:\"test\",params:[]});await o(t,v(p({},d),{body:e}))}this.onOpen()}catch(e){const s=this.parseError(e);throw this.events.emit(\"register_error\",s),this.onClose(),s}}onOpen(){this.isAvailable=!0,this.registering=!1,this.events.emit(\"open\")}onClose(){this.isAvailable=!1,this.registering=!1,this.events.emit(\"close\")}onPayload(t){if(typeof t.data>\"u\")return;const e=typeof t.data==\"string\"?y(t.data):t.data;this.events.emit(\"payload\",e)}onError(t,e){const s=this.parseError(e),i=s.message||s.toString(),n=b(t,i);this.events.emit(\"payload\",n)}parseError(t,e=this.url){return u(t,e,\"HTTP\")}resetMaxListeners(){this.events.getMaxListeners()>g&&this.events.setMaxListeners(g)}}export{f as HttpConnection,f as default};\n//# sourceMappingURL=index.es.js.map\n","import{SignClient as dt}from\"@walletconnect/sign-client\";import{isCaipNamespace as j,isValidObject as g,parseNamespaceKey as w,mergeArrays as b,parseChainId as y,isExpired as B,calcExpiry as ft,createLogger as lt,getSdkError as L,isValidArray as A}from\"@walletconnect/utils\";import{formatJsonRpcRequest as M,formatJsonRpcResult as mt}from\"@walletconnect/jsonrpc-utils\";import{JsonRpcProvider as z}from\"@walletconnect/jsonrpc-provider\";import gt,{HttpConnection as wt}from\"@walletconnect/jsonrpc-http-connection\";import yt from\"events\";function Pt(e){return Number.isSafeInteger(e)&&e>=0}function Ot(e){return e!=null&&typeof e!=\"function\"&&Pt(e.length)}function It(e){return e===\"__proto__\"}function v(e){return e==null||typeof e!=\"object\"&&typeof e!=\"function\"}function G(e){return Object.getOwnPropertySymbols(e).filter(t=>Object.prototype.propertyIsEnumerable.call(e,t))}function E(e){return e==null?e===void 0?\"[object Undefined]\":\"[object Null]\":Object.prototype.toString.call(e)}const St=\"[object RegExp]\",W=\"[object String]\",J=\"[object Number]\",K=\"[object Boolean]\",V=\"[object Arguments]\",bt=\"[object Symbol]\",At=\"[object Date]\",vt=\"[object Map]\",Et=\"[object Set]\",$t=\"[object Array]\",Nt=\"[object ArrayBuffer]\",Y=\"[object Object]\",Ct=\"[object DataView]\",_t=\"[object Uint8Array]\",qt=\"[object Uint8ClampedArray]\",Rt=\"[object Uint16Array]\",Dt=\"[object Uint32Array]\",Ft=\"[object Int8Array]\",xt=\"[object Int16Array]\",Ut=\"[object Int32Array]\",Ht=\"[object Float32Array]\",jt=\"[object Float64Array]\";function $(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Bt(e,t){return f(e,void 0,e,new Map,t)}function f(e,t,s,i=new Map,r=void 0){const a=r?.(e,t,s,i);if(a!==void 0)return a;if(v(e))return e;if(i.has(e))return i.get(e);if(Array.isArray(e)){const n=new Array(e.length);i.set(e,n);for(let c=0;c<e.length;c++)n[c]=f(e[c],c,s,i,r);return Object.hasOwn(e,\"index\")&&(n.index=e.index),Object.hasOwn(e,\"input\")&&(n.input=e.input),n}if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp){const n=new RegExp(e.source,e.flags);return n.lastIndex=e.lastIndex,n}if(e instanceof Map){const n=new Map;i.set(e,n);for(const[c,o]of e)n.set(c,f(o,c,s,i,r));return n}if(e instanceof Set){const n=new Set;i.set(e,n);for(const c of e)n.add(f(c,void 0,s,i,r));return n}if(typeof Buffer<\"u\"&&Buffer.isBuffer(e))return e.subarray();if($(e)){const n=new(Object.getPrototypeOf(e)).constructor(e.length);i.set(e,n);for(let c=0;c<e.length;c++)n[c]=f(e[c],c,s,i,r);return n}if(e instanceof ArrayBuffer||typeof SharedArrayBuffer<\"u\"&&e instanceof SharedArrayBuffer)return e.slice(0);if(e instanceof DataView){const n=new DataView(e.buffer.slice(0),e.byteOffset,e.byteLength);return i.set(e,n),d(n,e,s,i,r),n}if(typeof File<\"u\"&&e instanceof File){const n=new File([e],e.name,{type:e.type});return i.set(e,n),d(n,e,s,i,r),n}if(typeof Blob<\"u\"&&e instanceof Blob){const n=new Blob([e],{type:e.type});return i.set(e,n),d(n,e,s,i,r),n}if(e instanceof Error){const n=new e.constructor;return i.set(e,n),n.message=e.message,n.name=e.name,n.stack=e.stack,n.cause=e.cause,d(n,e,s,i,r),n}if(e instanceof Boolean){const n=new Boolean(e.valueOf());return i.set(e,n),d(n,e,s,i,r),n}if(e instanceof Number){const n=new Number(e.valueOf());return i.set(e,n),d(n,e,s,i,r),n}if(e instanceof String){const n=new String(e.valueOf());return i.set(e,n),d(n,e,s,i,r),n}if(typeof e==\"object\"&&Lt(e)){const n=Object.create(Object.getPrototypeOf(e));return i.set(e,n),d(n,e,s,i,r),n}return e}function d(e,t,s=e,i,r){const a=[...Object.keys(t),...G(t)];for(let n=0;n<a.length;n++){const c=a[n],o=Object.getOwnPropertyDescriptor(e,c);(o==null||o.writable)&&(e[c]=f(t[c],c,s,i,r))}}function Lt(e){switch(E(e)){case V:case $t:case Nt:case Ct:case K:case At:case Ht:case jt:case Ft:case xt:case Ut:case vt:case J:case Y:case St:case Et:case W:case bt:case _t:case qt:case Rt:case Dt:return!0;default:return!1}}function Mt(e,t){return Bt(e,(s,i,r,a)=>{if(typeof e==\"object\"){if(E(e)===Y&&typeof e.constructor!=\"function\"){const n={};return a.set(e,n),d(n,e,r,a),n}switch(Object.prototype.toString.call(e)){case J:case W:case K:{const n=new e.constructor(e?.valueOf());return d(n,e),n}case V:{const n={};return d(n,e),n.length=e.length,n[Symbol.iterator]=e[Symbol.iterator],n}default:return}}})}function X(e){return Mt(e)}function Q(e){return e!==null&&typeof e==\"object\"&&E(e)===\"[object Arguments]\"}function N(e){return typeof e==\"object\"&&e!==null}function zt(e){return N(e)&&Ot(e)}function Gt(){}function C(e){return $(e)}function _(e){if(typeof e!=\"object\"||e==null)return!1;if(Object.getPrototypeOf(e)===null)return!0;if(Object.prototype.toString.call(e)!==\"[object Object]\"){const s=e[Symbol.toStringTag];return s==null||!Object.getOwnPropertyDescriptor(e,Symbol.toStringTag)?.writable?!1:e.toString()===`[object ${s}]`}let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function Wt(e){if(v(e))return e;if(Array.isArray(e)||$(e)||e instanceof ArrayBuffer||typeof SharedArrayBuffer<\"u\"&&e instanceof SharedArrayBuffer)return e.slice(0);const t=Object.getPrototypeOf(e);if(t==null)return Object.assign(Object.create(t),e);const s=t.constructor;if(e instanceof Date||e instanceof Map||e instanceof Set)return new s(e);if(e instanceof RegExp){const i=new s(e);return i.lastIndex=e.lastIndex,i}if(e instanceof DataView)return new s(e.buffer.slice(0));if(e instanceof Error){let i;return e instanceof AggregateError?i=new s(e.errors,e.message,{cause:e.cause}):i=new s(e.message,{cause:e.cause}),i.stack=e.stack,Object.assign(i,e),i}if(typeof File<\"u\"&&e instanceof File)return new s([e],e.name,{type:e.type,lastModified:e.lastModified});if(typeof e==\"object\"){const i=Object.create(t);return Object.assign(i,e)}return e}function Jt(e,...t){const s=t.slice(0,-1),i=t[t.length-1];let r=e;for(let a=0;a<s.length;a++){const n=s[a];r=P(r,n,i,new Map)}return r}function P(e,t,s,i){if(v(e)&&(e=Object(e)),t==null||typeof t!=\"object\")return e;if(i.has(t))return Wt(i.get(t));if(i.set(t,e),Array.isArray(t)){t=t.slice();for(let a=0;a<t.length;a++)t[a]=t[a]??void 0}const r=[...Object.keys(t),...G(t)];for(let a=0;a<r.length;a++){const n=r[a];if(It(n))continue;let c=t[n],o=e[n];if(Q(c)&&(c={...c}),Q(o)&&(o={...o}),typeof Buffer<\"u\"&&Buffer.isBuffer(c)&&(c=X(c)),Array.isArray(c))if(Array.isArray(o)){const p=[],h=Reflect.ownKeys(o);for(let S=0;S<h.length;S++){const H=h[S];p[H]=o[H]}o=p}else if(zt(o)){const p=[];for(let h=0;h<o.length;h++)p[h]=o[h];o=p}else o=[];const u=s(o,c,n,e,t,i);u!==void 0?e[n]=u:Array.isArray(c)||N(o)&&N(c)&&(_(o)||_(c)||C(o)||C(c))?e[n]=P(o,c,s,i):o==null&&_(c)?e[n]=P({},c,s,i):o==null&&C(c)?e[n]=X(c):(o===void 0||c!==void 0)&&(e[n]=c)}return e}function Kt(e,...t){return Jt(e,...t,Gt)}const Z=\"error\",Vt=\"wss://relay.walletconnect.org\",Yt=\"wc\",k=\"universal_provider\",O=`${Yt}@2:${k}:`,T=\"https://rpc.walletconnect.org/v1/\",tt=\"generic\",Xt=`${T}bundler`,l=\"call_status\",Qt=86400,q={DEFAULT_CHAIN_CHANGED:\"default_chain_changed\"};function et(e,t,s){const i=y(e);return t.rpcMap?.[i.reference]||`${T}?chainId=${i.namespace}:${i.reference}&projectId=${s}`}function Zt(e){return e.includes(\":\")?e.split(\":\")[1]:e}function st(e){return e.map(t=>`${t.split(\":\")[0]}:${t.split(\":\")[1]}`)}function kt(e,t){const s=Object.keys(t.namespaces).filter(r=>r.includes(e));if(!s.length)return[];const i=[];return s.forEach(r=>{const a=t.namespaces[r].accounts;i.push(...a)}),i}function it(e){return Object.fromEntries(Object.entries(e).filter(([t,s])=>s?.chains?.length&&s?.chains?.length>0))}function I(e={},t={}){const s=it(nt(e)),i=it(nt(t));return Kt(s,i)}function nt(e){const t={};if(!g(e))return t;for(const[s,i]of Object.entries(e)){const r=j(s)?[s]:i.chains,a=i.methods||[],n=i.events||[],c=i.rpcMap||{},o=w(s);t[o]={...t[o],...i,chains:b(r,t[o]?.chains),methods:b(a,t[o]?.methods),events:b(n,t[o]?.events)},(g(c)||g(t[o]?.rpcMap||{}))&&(t[o].rpcMap={...c,...t[o]?.rpcMap})}return t}function rt(e){return e.includes(\":\")?e.split(\":\")[2]:e}function at(e){const t={};for(const[s,i]of Object.entries(e)){const r=i.methods||[],a=i.events||[],n=i.accounts||[],c=j(s)?[s]:i.chains?i.chains:st(i.accounts);t[s]={chains:c,methods:r,events:a,accounts:n}}return t}function R(e){return typeof e==\"number\"?e:e.includes(\"0x\")?parseInt(e,16):(e=e.includes(\":\")?e.split(\":\")[1]:e,isNaN(Number(e))?e:Number(e))}function Tt(e){try{const t=JSON.parse(e);return typeof t==\"object\"&&t!==null&&!Array.isArray(t)}catch{return!1}}const ct={},m=e=>ct[e],D=(e,t)=>{ct[e]=t},ot=\"eip155\",te=[\"atomic\",\"flow-control\",\"paymasterService\",\"sessionKeys\",\"auxiliaryFunds\"],ee=e=>e&&e.startsWith(\"0x\")?BigInt(e).toString(10):e,F=e=>e&&e.startsWith(\"0x\")?e:`0x${BigInt(e).toString(16)}`,ht=e=>Object.keys(e).filter(t=>te.includes(t)).reduce((t,s)=>(t[s]=se(e[s]),t),{}),se=e=>typeof e==\"string\"&&Tt(e)?JSON.parse(e):e,ie=(e,t,s)=>{const{sessionProperties:i={},scopedProperties:r={}}=e,a={};if(!g(r)&&!g(i))return;const n=ht(i);for(const c of s){const o=ee(c);if(!o)continue;a[F(o)]=n;const u=r?.[`${ot}:${o}`];if(u){const p=u?.[`${ot}:${o}:${t}`];a[F(o)]={...a[F(o)],...ht(p||u)}}}for(const[c,o]of Object.entries(a))Object.keys(o).length===0&&delete a[c];return Object.keys(a).length>0?a:void 0};let x;class U{constructor(t){this.storage=t}async getItem(t){return await this.storage.getItem(t)}async setItem(t,s){return await this.storage.setItem(t,s)}async removeItem(t){return await this.storage.removeItem(t)}static getStorage(t){return x||(x=new U(t)),x}}async function ne(e,t){const s=y(e.result.capabilities.caip345.caip2),i=e.result.capabilities.caip345.transactionHashes,r=await Promise.allSettled(i.map(h=>re(s.reference,h,t))),a=r.filter(h=>h.status===\"fulfilled\").map(h=>h.value).filter(h=>h);r.filter(h=>h.status===\"rejected\").forEach(h=>console.warn(\"Failed to fetch transaction receipt:\",h.reason));const n=!a.length||a.some(h=>!h),c=a.every(h=>h?.status===\"0x1\"),o=a.every(h=>h?.status===\"0x0\"),u=a.some(h=>h?.status===\"0x0\");let p;return n?p=100:c?p=200:o?p=500:u&&(p=600),{id:e.result.id,version:e.request.version,atomic:e.request.atomicRequired,chainId:e.request.chainId,capabilities:e.result.capabilities,receipts:a,status:p}}async function re(e,t,s){return await s(parseInt(e)).request(M(\"eth_getTransactionReceipt\",[t]))}async function ae({sendCalls:e,storage:t}){const s=await t.getItem(l);await t.setItem(l,{...s,[e.result.id]:{request:e.request,result:e.result,expiry:ft(Qt)}})}async function ce({resultId:e,storage:t}){const s=await t.getItem(l);if(s){delete s[e],await t.setItem(l,s);for(const i in s)B(s[i].expiry)&&delete s[i];await t.setItem(l,s)}}async function oe({resultId:e,storage:t}){const s=(await t.getItem(l))?.[e];if(s&&!B(s.expiry))return s;await ce({resultId:e,storage:t})}class he{constructor(t){this.name=\"eip155\",this.namespace=t.namespace,this.events=m(\"events\"),this.client=m(\"client\"),this.httpProviders=this.createHttpProviders(),this.chainId=parseInt(this.getDefaultChain()),this.storage=U.getStorage(this.client.core.storage)}async request(t){switch(t.request.method){case\"eth_requestAccounts\":return this.getAccounts();case\"eth_accounts\":return this.getAccounts();case\"wallet_switchEthereumChain\":return await this.handleSwitchChain(t);case\"eth_chainId\":return parseInt(this.getDefaultChain());case\"wallet_getCapabilities\":return await this.getCapabilities(t);case\"wallet_getCallsStatus\":return await this.getCallStatus(t);case\"wallet_sendCalls\":return await this.sendCalls(t)}return this.namespace.methods.includes(t.request.method)?await this.client.request(t):this.getHttpProvider().request(t.request)}updateNamespace(t){this.namespace=Object.assign(this.namespace,t)}setDefaultChain(t,s){this.httpProviders[t]||this.setHttpProvider(parseInt(t),s);const i=this.chainId;this.chainId=parseInt(t),this.events.emit(q.DEFAULT_CHAIN_CHANGED,{currentCaipChainId:`${this.name}:${t}`,previousCaipChainId:`${this.name}:${i}`})}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId.toString();if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error(\"ChainId not found\");return t.split(\":\")[1]}createHttpProvider(t,s){const i=s||et(`${this.name}:${t}`,this.namespace,this.client.core.projectId);if(!i)throw new Error(`No RPC url provided for chainId: ${t}`);return new z(new wt(i,m(\"disableProviderPing\")))}setHttpProvider(t,s){const i=this.createHttpProvider(t,s);i&&(this.httpProviders[t]=i)}createHttpProviders(){const t={};return this.namespace.chains.forEach(s=>{const i=parseInt(Zt(s));t[i]=this.createHttpProvider(i,this.namespace.rpcMap?.[s])}),t}getAccounts(){const t=this.namespace.accounts;return t?[...new Set(t.filter(s=>s.split(\":\")[1]===this.chainId.toString()).map(s=>s.split(\":\")[2]))]:[]}getHttpProvider(t){const s=t||this.chainId;return this.httpProviders[s]||(this.httpProviders={...this.httpProviders,[s]:this.createHttpProvider(s)},this.httpProviders[s])}async handleSwitchChain(t){let s=t.request.params?t.request.params[0]?.chainId:\"0x0\";s=s.startsWith(\"0x\")?s:`0x${s}`;const i=parseInt(s,16);if(this.isChainApproved(i))this.setDefaultChain(`${i}`);else if(this.namespace.methods.includes(\"wallet_switchEthereumChain\"))await this.client.request({topic:t.topic,request:{method:t.request.method,params:[{chainId:s}]},chainId:this.namespace.chains?.[0]}),this.setDefaultChain(`${i}`);else throw new Error(`Failed to switch to chain 'eip155:${i}'. The chain is not approved or the wallet does not support 'wallet_switchEthereumChain' method.`);return null}isChainApproved(t){return this.namespace.chains.includes(`${this.name}:${t}`)}async getCapabilities(t){const s=t.request?.params?.[0],i=t.request?.params?.[1]||[];if(!s)throw new Error(\"Missing address parameter in `wallet_getCapabilities` request\");const r=this.client.session.get(t.topic),a=r?.sessionProperties?.capabilities||{},n=i.length>0?i.join(\",\"):`0x${this.chainId.toString(16)}`,c=`${s}${n}`,o=a?.[c];if(o)return o;let u;try{u=ie(r,s,i)}catch(h){console.warn(\"Failed to extract capabilities from session\",h)}if(u)return u;const p=await this.client.request(t);try{await this.client.session.update(t.topic,{sessionProperties:{...r.sessionProperties||{},capabilities:{...a||{},[c]:p}}})}catch(h){console.warn(\"Failed to update session with capabilities\",h)}return p}async getCallStatus(t){const s=this.client.session.get(t.topic),i=s.sessionProperties?.bundler_name;if(i){const n=this.getBundlerUrl(t.chainId,i);try{return await this.getUserOperationReceipt(n,t)}catch(c){console.warn(\"Failed to fetch call status from bundler\",c,n)}}const r=s.sessionProperties?.bundler_url;if(r)try{return await this.getUserOperationReceipt(r,t)}catch(n){console.warn(\"Failed to fetch call status from custom bundler\",n,r)}const a=await oe({resultId:t.request.params?.[0],storage:this.storage});if(a)try{return await ne(a,this.getHttpProvider.bind(this))}catch(n){console.warn(\"Failed to fetch call status from stored send calls\",n,a)}if(this.namespace.methods.includes(t.request.method))return await this.client.request(t);throw new Error(\"Fetching call status not approved by the wallet.\")}async getUserOperationReceipt(t,s){const i=new URL(t),r=await fetch(i,{method:\"POST\",headers:{\"Content-Type\":\"application/json\"},body:JSON.stringify(M(\"eth_getUserOperationReceipt\",[s.request.params?.[0]]))});if(!r.ok)throw new Error(`Failed to fetch user operation receipt - ${r.status}`);return await r.json()}getBundlerUrl(t,s){return`${Xt}?projectId=${this.client.core.projectId}&chainId=${t}&bundler=${s}`}async sendCalls(t){const s=await this.client.request(t),i=t.request.params?.[0],r=s?.id,a=s?.capabilities||{},n=a?.caip345?.caip2,c=a?.caip345?.transactionHashes;return!r||!n||!c?.length||await ae({sendCalls:{request:i,result:s},storage:this.storage}),s}}class pe{constructor(t){this.name=tt,this.namespace=t.namespace,this.events=m(\"events\"),this.client=m(\"client\"),this.chainId=this.getDefaultChain(),this.name=this.getNamespaceName(),this.httpProviders=this.createHttpProviders()}updateNamespace(t){this.namespace.chains=[...new Set((this.namespace.chains||[]).concat(t.chains||[]))],this.namespace.accounts=[...new Set((this.namespace.accounts||[]).concat(t.accounts||[]))],this.namespace.methods=[...new Set((this.namespace.methods||[]).concat(t.methods||[]))],this.namespace.events=[...new Set((this.namespace.events||[]).concat(t.events||[]))],this.httpProviders=this.createHttpProviders()}requestAccounts(){return this.getAccounts()}request(t){return this.namespace.methods.includes(t.request.method)?this.client.request(t):this.getHttpProvider(t.chainId).request(t.request)}setDefaultChain(t,s){this.httpProviders[t]||this.setHttpProvider(t,s);const i=this.chainId;this.chainId=t,this.events.emit(q.DEFAULT_CHAIN_CHANGED,{currentCaipChainId:`${this.name}:${t}`,previousCaipChainId:`${this.name}:${i}`})}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const t=this.namespace.chains[0];if(!t)throw new Error(\"ChainId not found\");return t.split(\":\")[1]}getNamespaceName(){const t=this.namespace.chains[0];if(!t)throw new Error(\"ChainId not found\");return y(t).namespace}getAccounts(){const t=this.namespace.accounts;return t?[...new Set(t.filter(s=>s.split(\":\")[1]===this.chainId.toString()).map(s=>s.split(\":\")[2]))]:[]}createHttpProviders(){const t={};return this.namespace?.accounts?.forEach(s=>{const i=y(s),r=this.namespace?.rpcMap?.[`${i.namespace}:${i.reference}`];t[i.reference]=this.createHttpProvider(s,r)}),t}getHttpProvider(t){const s=y(t).reference,i=this.httpProviders[s];if(typeof i>\"u\")throw new Error(`JSON-RPC provider for ${t} not found`);return i}setHttpProvider(t,s){const i=this.createHttpProvider(t,s);i&&(this.httpProviders[t]=i)}createHttpProvider(t,s){const i=s||et(t,this.namespace,this.client.core.projectId);if(!i)throw new Error(`No RPC url provided for chainId: ${t}`);return new z(new gt(i,m(\"disableProviderPing\")))}}let pt=class ut{constructor(t){this.events=new yt,this.rpcProviders={},this.disableProviderPing=!1,this.providerOpts=t,this.logger=lt({logger:t.logger??Z,name:this.providerOpts.name??k}),this.disableProviderPing=t?.disableProviderPing||!1}static async init(t){const s=new ut(t);return await s.initialize(),s}async request(t,s,i){const[r,a]=this.validateChain(s);if(!this.session)throw new Error(\"Please call connect() before request()\");return await this.getProvider(r).request({request:{...t},chainId:`${r}:${a}`,topic:this.session.topic,expiry:i})}sendAsync(t,s,i,r){const a=new Date().getTime();this.request(t,i,r).then(n=>s(null,mt(a,n))).catch(n=>s(n,void 0))}async enable(){if(!this.client)throw new Error(\"Sign Client not initialized\");return this.session||await this.connect({namespaces:this.namespaces,optionalNamespaces:this.optionalNamespaces,sessionProperties:this.sessionProperties,scopedProperties:this.scopedProperties}),await this.requestAccounts()}async disconnect(){if(!this.session)throw new Error(\"Please call connect() before enable()\");await this.client.disconnect({topic:this.session?.topic,reason:L(\"USER_DISCONNECTED\")}),await this.cleanup()}async connect(t){if(!this.client)throw new Error(\"Sign Client not initialized\");if(this.connectParams=t,this.setNamespaces(t),this.cleanupPendingPairings(),!t.skipPairing)return await this.pair(t.pairingTopic)}async authenticate(t,s){if(!this.client)throw new Error(\"Sign Client not initialized\");this.setNamespaces(t),await this.cleanupPendingPairings();const{uri:i,response:r}=await this.client.authenticate(t,s);i&&(this.uri=i,this.events.emit(\"display_uri\",i));const a=await r();if(this.session=a.session,this.session){const n=at(this.session.namespaces);this.namespaces=I(this.namespaces,n),await this.persist(\"namespaces\",this.namespaces),this.onConnect()}return a}on(t,s){this.events.on(t,s)}once(t,s){this.events.once(t,s)}removeListener(t,s){this.events.removeListener(t,s)}off(t,s){this.events.off(t,s)}get isWalletConnect(){return!0}async pair(t){const{uri:s,approval:i}=await this.client.connect({pairingTopic:t,requiredNamespaces:this.namespaces,optionalNamespaces:this.optionalNamespaces,sessionProperties:this.sessionProperties,scopedProperties:this.scopedProperties,authentication:this.connectParams?.authentication,walletPay:this.connectParams?.walletPay});s&&(this.uri=s,this.events.emit(\"display_uri\",s));const r=await i();this.session=r;const a=at(r.namespaces);return this.namespaces=I(this.namespaces,a),await this.persist(\"namespaces\",this.namespaces),await this.persist(\"optionalNamespaces\",this.optionalNamespaces),this.onConnect(),this.session}setDefaultChain(t,s){try{if(!this.session)return;const[i,r]=this.validateChain(t),a=this.getProvider(i);a?a.setDefaultChain(r,s):this.session&&this.logger.warn(`Provider for namespace '${i}' not found in setDefaultChain`)}catch(i){if(!/Please call connect/.test(i.message))throw i}}async cleanupPendingPairings(t={}){try{this.logger.info(\"Cleaning up inactive pairings...\");const s=this.client.pairing.getAll();if(!A(s))return;for(const i of s)t.deletePairings?this.client.core.expirer.set(i.topic,0):await this.client.core.relayer.subscriber.unsubscribe(i.topic);this.logger.info(`Inactive pairings cleared: ${s.length}`)}catch(s){this.logger.warn(s,\"Failed to cleanup pending pairings\")}}abortPairingAttempt(){this.logger.warn(\"abortPairingAttempt is deprecated. This is now a no-op.\")}async checkStorage(){this.namespaces=await this.getFromStore(\"namespaces\")||{},this.optionalNamespaces=await this.getFromStore(\"optionalNamespaces\")||{},this.session&&this.createProviders()}async initialize(){this.logger.trace(\"Initialized\"),await this.createClient(),await this.checkStorage(),this.registerEventListeners()}async createClient(){if(this.client=this.providerOpts.client||await dt.init({core:this.providerOpts.core,logger:this.providerOpts.logger||Z,relayUrl:this.providerOpts.relayUrl||Vt,projectId:this.providerOpts.projectId,metadata:this.providerOpts.metadata,storageOptions:this.providerOpts.storageOptions,storage:this.providerOpts.storage,name:this.providerOpts.name,customStoragePrefix:this.providerOpts.customStoragePrefix,telemetryEnabled:this.providerOpts.telemetryEnabled}),this.providerOpts.session)try{this.session=this.client.session.get(this.providerOpts.session.topic)}catch(t){throw this.logger.error(t,\"Failed to get session\"),new Error(`The provided session: ${this.providerOpts?.session?.topic} doesn't exist in the Sign client`)}else{const t=this.client.session.getAll();this.session=t[0]}this.logger.trace(\"SignClient Initialized\")}createProviders(){if(!this.client)throw new Error(\"Sign Client not initialized\");if(!this.session)throw new Error(\"Session not initialized. Please call connect() before enable()\");const t=[...new Set(Object.keys(this.session.namespaces).map(s=>w(s)))];D(\"client\",this.client),D(\"events\",this.events),D(\"disableProviderPing\",this.disableProviderPing),t.forEach(s=>{if(!this.session)return;const i=kt(s,this.session);if(i?.length===0)return;const r=st(i),a={...I(this.namespaces,this.optionalNamespaces)[s],accounts:i,chains:r};switch(s){case\"eip155\":this.rpcProviders[s]=new he({namespace:a});break;default:this.rpcProviders[s]=new pe({namespace:a})}})}registerEventListeners(){if(typeof this.client>\"u\")throw new Error(\"Sign Client is not initialized\");this.client.on(\"session_ping\",t=>{const{topic:s}=t;s===this.session?.topic&&this.events.emit(\"session_ping\",t)}),this.client.on(\"session_event\",t=>{const{params:s,topic:i}=t;if(i!==this.session?.topic)return;const{event:r}=s;if(r.name===\"accountsChanged\"){const a=r.data;a&&A(a)&&this.events.emit(\"accountsChanged\",a.map(rt))}else if(r.name===\"chainChanged\"){const a=s.chainId,n=s.event.data,c=w(a),o=R(a)!==R(n)?`${c}:${R(n)}`:a;this.onChainChanged({currentCaipChainId:o})}else this.events.emit(r.name,r.data);this.events.emit(\"session_event\",t)}),this.client.on(\"session_update\",({topic:t,params:s})=>{if(t!==this.session?.topic)return;const{namespaces:i}=s,r=this.client?.session.get(t);this.session={...r,namespaces:i},this.onSessionUpdate(),this.events.emit(\"session_update\",{topic:t,params:s})}),this.client.on(\"session_delete\",async t=>{t.topic===this.session?.topic&&(await this.cleanup(),this.events.emit(\"session_delete\",t),this.events.emit(\"disconnect\",{...L(\"USER_DISCONNECTED\"),data:t.topic}))}),this.on(q.DEFAULT_CHAIN_CHANGED,t=>{this.onChainChanged({...t,internal:!0})})}getProvider(t){return this.rpcProviders[t]||this.rpcProviders[tt]}onSessionUpdate(){Object.keys(this.rpcProviders).forEach(t=>{this.getProvider(t).updateNamespace(this.session?.namespaces[t])})}setNamespaces(t){const{namespaces:s={},optionalNamespaces:i={},sessionProperties:r,scopedProperties:a}=t;this.optionalNamespaces=I(s,i),this.sessionProperties=r,this.scopedProperties=a}validateChain(t){const[s,i]=t?.split(\":\")||[\"\",\"\"];if(!this.namespaces||!Object.keys(this.namespaces).length)return[s,i];if(s&&!Object.keys(this.namespaces||{}).map(n=>w(n)).includes(s))throw new Error(`Namespace '${s}' is not configured. Please call connect() first with namespace config.`);if(s&&i)return[s,i];const r=w(Object.keys(this.namespaces)[0]),a=this.rpcProviders[r].getDefaultChain();return[r,a]}async requestAccounts(){const[t]=this.validateChain();return await this.getProvider(t).requestAccounts()}async onChainChanged({currentCaipChainId:t,previousCaipChainId:s,internal:i=!1}){if(!this.namespaces)return;const[r,a]=this.validateChain(t);if(a){if(this.updateNamespaceChain(r,a),i)this.events.emit(\"chainChanged\",a),this.emitAccountsChangedOnChainChange({namespace:r,currentCaipChainId:t,previousCaipChainId:s});else{const n=this.getProvider(r);n?n.setDefaultChain(a):this.session&&this.logger.warn(`Provider for namespace '${r}' not found during chain change`)}await this.persist(\"namespaces\",this.namespaces)}}emitAccountsChangedOnChainChange({namespace:t,currentCaipChainId:s,previousCaipChainId:i}){try{if(i===s)return;const r=this.session?.namespaces[t]?.accounts;if(!r)return;const a=r.filter(n=>n.includes(`${s}:`)).map(rt);if(!A(a))return;this.events.emit(\"accountsChanged\",a)}catch(r){this.logger.warn(r,\"Failed to emit accountsChanged on chain change\")}}updateNamespaceChain(t,s){if(!this.namespaces)return;const i=this.namespaces[t]?t:`${t}:${s}`,r={chains:[],methods:[],events:[],defaultChain:s};this.namespaces[i]?this.namespaces[i]&&(this.namespaces[i].defaultChain=s):this.namespaces[i]=r}onConnect(){this.createProviders(),this.events.emit(\"connect\",{session:this.session})}async cleanup(){this.connectParams=void 0,this.namespaces=void 0,this.optionalNamespaces=void 0,this.sessionProperties=void 0,await this.deleteFromStore(\"namespaces\"),await this.deleteFromStore(\"optionalNamespaces\"),await this.deleteFromStore(\"sessionProperties\"),this.session=void 0,this.cleanupPendingPairings({deletePairings:!0}),await this.cleanupStorage()}async persist(t,s){const i=this.session?.topic||\"\";await this.client.core.storage.setItem(`${O}/${t}${i}`,s)}async getFromStore(t){const s=this.session?.topic||\"\";return await this.client.core.storage.getItem(`${O}/${t}${s}`)}async deleteFromStore(t){const s=this.session?.topic||\"\";await this.client.core.storage.removeItem(`${O}/${t}${s}`)}async cleanupStorage(){try{if(this.client?.session.length>0)return;const t=await this.client.core.storage.getKeys();for(const s of t)s.startsWith(O)&&await this.client.core.storage.removeItem(s)}catch(t){this.logger.warn(t,\"Failed to cleanup storage\")}}};const ue=pt;export{ue as UniversalProvider,pt as default};\n//# sourceMappingURL=index.js.map\n","import{EventEmitter as A}from\"events\";import{getAccountsFromNamespaces as I,getSdkError as M,isValidArray as C}from\"@walletconnect/utils\";import{UniversalProvider as P}from\"@walletconnect/universal-provider\";const O=\"wc\",S=\"ethereum_provider\",T=`${O}@2:${S}:`,R=\"https://rpc.walletconnect.org/v1/\",p=[\"eth_sendTransaction\",\"personal_sign\"],f=[\"eth_accounts\",\"eth_requestAccounts\",\"eth_sendRawTransaction\",\"eth_sign\",\"eth_signTransaction\",\"eth_signTypedData\",\"eth_signTypedData_v3\",\"eth_signTypedData_v4\",\"eth_sendTransaction\",\"personal_sign\",\"wallet_switchEthereumChain\",\"wallet_addEthereumChain\",\"wallet_getPermissions\",\"wallet_requestPermissions\",\"wallet_registerOnboarding\",\"wallet_watchAsset\",\"wallet_scanQRCode\",\"wallet_sendCalls\",\"wallet_getCapabilities\",\"wallet_getCallsStatus\",\"wallet_showCallsStatus\"],m=[\"chainChanged\",\"accountsChanged\"],v=[\"chainChanged\",\"accountsChanged\",\"message\",\"disconnect\",\"connect\"],W=async()=>{const{createAppKit:i}=await import(\"@reown/appkit/core\");return i};function g(i){return Number(i[0].split(\":\")[1])}function u(i){return`0x${i.toString(16)}`}function x(i){const{chains:t,optionalChains:e,methods:s,optionalMethods:n,events:a,optionalEvents:o,rpcMap:r}=i;if(!C(t))throw new Error(\"Invalid chains\");const h={chains:t,methods:s||p,events:a||m,rpcMap:{...t.length?{[g(t)]:r[g(t)]}:{}}},c=a?.filter(w=>!m.includes(w)),d=s?.filter(w=>!p.includes(w));if(!e&&!o&&!n&&!c?.length&&!d?.length)return{required:t.length?h:void 0};const l=c?.length&&d?.length||!e,y={chains:[...new Set(l?h.chains.concat(e||[]):e)],methods:[...new Set(h.methods.concat(n?.length?n:f))],events:[...new Set(h.events.concat(o?.length?o:v))],rpcMap:r};return{required:t.length?h:void 0,optional:e.length?y:void 0}}let E=class b{constructor(){this.events=new A,this.namespace=\"eip155\",this.accounts=[],this.chainId=1,this.STORAGE_KEY=T,this.on=(t,e)=>(this.events.on(t,e),this),this.once=(t,e)=>(this.events.once(t,e),this),this.removeListener=(t,e)=>(this.events.removeListener(t,e),this),this.off=(t,e)=>(this.events.off(t,e),this),this.parseAccount=t=>this.isCompatibleChainId(t)?this.parseAccountId(t).address:t,this.signer={},this.rpc={}}static async init(t){const e=new b;return await e.initialize(t),e}async request(t,e){return await this.signer.request(t,this.formatChainId(this.chainId),e)}sendAsync(t,e,s){this.signer.sendAsync(t,e,this.formatChainId(this.chainId),s)}get connected(){return this.signer.client?this.signer.client.core.relayer.connected:!1}get connecting(){return this.signer.client?this.signer.client.core.relayer.connecting:!1}async enable(){return this.session||await this.connect(),await this.request({method:\"eth_requestAccounts\"})}async connect(t){if(!this.signer.client)throw new Error(\"Provider not initialized. Call init() first\");this.loadConnectOpts(t);const{required:e,optional:s}=x(this.rpc);try{const n=await new Promise(async(o,r)=>{this.rpc.showQrModal&&(this.modal?.open(),this.modal?.subscribeState(c=>{!c.open&&!this.signer.session&&(this.signer.abortPairingAttempt(),r(new Error(\"Connection request reset. Please try again.\")))}));const h=t?.scopedProperties?{[this.namespace]:t.scopedProperties}:void 0;await this.signer.connect({namespaces:{...e&&{[this.namespace]:e}},...s&&{optionalNamespaces:{[this.namespace]:s}},pairingTopic:t?.pairingTopic,scopedProperties:h}).then(c=>{o(c)}).catch(c=>{this.modal?.showErrorMessage(\"Unable to connect\"),r(new Error(c.message))})});if(!n)return;const a=I(n.namespaces,[this.namespace]);this.setChainIds(this.rpc.chains.length?this.rpc.chains:a),this.setAccounts(a),this.events.emit(\"connect\",{chainId:u(this.chainId)})}catch(n){throw this.signer.logger.error(n),n}finally{this.modal?.close()}}async authenticate(t,e){if(!this.signer.client)throw new Error(\"Provider not initialized. Call init() first\");this.loadConnectOpts({chains:t?.chains});try{const s=await new Promise(async(a,o)=>{this.rpc.showQrModal&&(this.modal?.open(),this.modal?.subscribeState(r=>{!r.open&&!this.signer.session&&(this.signer.abortPairingAttempt(),o(new Error(\"Connection request reset. Please try again.\")))})),await this.signer.authenticate({...t,chains:this.rpc.chains},e).then(r=>{a(r)}).catch(r=>{this.modal?.showErrorMessage(\"Unable to connect\"),o(new Error(r.message))})}),n=s.session;if(n){const a=I(n.namespaces,[this.namespace]);this.setChainIds(this.rpc.chains.length?this.rpc.chains:a),this.setAccounts(a),this.events.emit(\"connect\",{chainId:u(this.chainId)})}return s}catch(s){throw this.signer.logger.error(s),s}finally{this.modal?.close()}}async disconnect(){this.session&&await this.signer.disconnect(),this.reset()}get isWalletConnect(){return!0}get session(){return this.signer.session}registerEventListeners(){this.signer.on(\"session_event\",t=>{const{params:e}=t,{event:s}=e;s.name===\"accountsChanged\"?(this.accounts=this.parseAccounts(s.data),this.events.emit(\"accountsChanged\",this.accounts)):s.name===\"chainChanged\"?this.setChainId(this.formatChainId(s.data)):this.events.emit(s.name,s.data),this.events.emit(\"session_event\",t)}),this.signer.on(\"accountsChanged\",t=>{this.accounts=this.parseAccounts(t),this.events.emit(\"accountsChanged\",this.accounts)}),this.signer.on(\"chainChanged\",t=>{const e=parseInt(t);this.chainId=e,this.events.emit(\"chainChanged\",u(this.chainId)),this.persist()}),this.signer.on(\"session_update\",t=>{this.events.emit(\"session_update\",t)}),this.signer.on(\"session_delete\",t=>{this.reset(),this.events.emit(\"session_delete\",t),this.events.emit(\"disconnect\",{...M(\"USER_DISCONNECTED\"),data:t.topic,name:\"USER_DISCONNECTED\"})}),this.signer.on(\"display_uri\",t=>{this.events.emit(\"display_uri\",t)})}switchEthereumChain(t){this.request({method:\"wallet_switchEthereumChain\",params:[{chainId:t.toString(16)}]})}isCompatibleChainId(t){return typeof t==\"string\"?t.startsWith(`${this.namespace}:`):!1}formatChainId(t){return`${this.namespace}:${t}`}parseChainId(t){return Number(t.split(\":\")[1])}setChainIds(t){const e=t.filter(s=>this.isCompatibleChainId(s)).map(s=>this.parseChainId(s));e.length&&(this.chainId=e[0],this.events.emit(\"chainChanged\",u(this.chainId)),this.persist())}setChainId(t){if(this.isCompatibleChainId(t)){const e=this.parseChainId(t);this.chainId=e,this.switchEthereumChain(e)}}parseAccountId(t){const[e,s,n]=t.split(\":\");return{chainId:`${e}:${s}`,address:n}}setAccounts(t){this.accounts=t.filter(e=>this.parseChainId(this.parseAccountId(e).chainId)===this.chainId).map(e=>this.parseAccountId(e).address),this.events.emit(\"accountsChanged\",this.accounts)}getRpcConfig(t){const e=t?.chains??[],s=t?.optionalChains??[],n=e.concat(s);if(!n.length)throw new Error(\"No chains specified in either `chains` or `optionalChains`\");const a=e.length?t?.methods||p:[],o=e.length?t?.events||m:[],r=t?.optionalMethods||[],h=t?.optionalEvents||[],c=t?.rpcMap||this.buildRpcMap(n,t.projectId),d=t?.qrModalOptions||void 0;return{chains:e?.map(l=>this.formatChainId(l)),optionalChains:s.map(l=>this.formatChainId(l)),methods:a,events:o,optionalMethods:r,optionalEvents:h,rpcMap:c,showQrModal:!!t?.showQrModal,qrModalOptions:d,projectId:t.projectId,metadata:t.metadata}}buildRpcMap(t,e){const s={};return t.forEach(n=>{s[n]=this.getRpcUrl(n,e)}),s}async initialize(t){if(this.rpc=this.getRpcConfig(t),this.chainId=this.rpc.chains.length?g(this.rpc.chains):g(this.rpc.optionalChains),this.signer=await P.init({projectId:this.rpc.projectId,metadata:this.rpc.metadata,disableProviderPing:t.disableProviderPing,relayUrl:t.relayUrl,storage:t.storage,storageOptions:t.storageOptions,customStoragePrefix:t.customStoragePrefix,telemetryEnabled:t.telemetryEnabled,logger:t.logger}),this.registerEventListeners(),await this.loadPersistedSession(),this.rpc.showQrModal){let e;try{const s=await W(),{convertWCMToAppKitOptions:n}=await Promise.resolve().then(function(){return U}),a=n({...this.rpc.qrModalOptions,chains:[...new Set([...this.rpc.chains,...this.rpc.optionalChains])],metadata:this.rpc.metadata,projectId:this.rpc.projectId});if(!a.networks.length)throw new Error(\"No networks found for WalletConnect\");e=s({...a,universalProvider:this.signer,manualWCControl:!0,enableMobileFullScreen:this.rpc.qrModalOptions?.enableMobileFullScreen===!0})}catch(s){throw console.warn(s),new Error(\"To use QR modal, please install @reown/appkit package\")}if(e)try{this.modal=e}catch(s){throw this.signer.logger.error(s),new Error(\"Could not generate WalletConnectModal Instance\")}}}loadConnectOpts(t){if(!t)return;const{chains:e,optionalChains:s,rpcMap:n}=t;e&&C(e)&&(this.rpc.chains=e.map(a=>this.formatChainId(a)),e.forEach(a=>{this.rpc.rpcMap[a]=n?.[a]||this.getRpcUrl(a)})),s&&C(s)&&(this.rpc.optionalChains=[],this.rpc.optionalChains=s?.map(a=>this.formatChainId(a)),s.forEach(a=>{this.rpc.rpcMap[a]=n?.[a]||this.getRpcUrl(a)}))}getRpcUrl(t,e){return this.rpc.rpcMap?.[t]||`${R}?chainId=eip155:${t}&projectId=${e||this.rpc.projectId}`}async loadPersistedSession(){if(this.session)try{const t=await this.signer.client.core.storage.getItem(`${this.STORAGE_KEY}/chainId`),e=this.session.namespaces[`${this.namespace}:${t}`]?this.session.namespaces[`${this.namespace}:${t}`]:this.session.namespaces[this.namespace];this.setChainIds(t?[this.formatChainId(t)]:e?.accounts),this.setAccounts(e?.accounts)}catch(t){this.signer.logger.error(\"Failed to load persisted session, clearing state...\"),this.signer.logger.error(t),await this.disconnect().catch(e=>this.signer.logger.warn(e))}}reset(){this.chainId=1,this.accounts=[]}persist(){this.session&&this.signer.client.core.storage.setItem(`${this.STORAGE_KEY}/chainId`,this.chainId)}parseAccounts(t){return typeof t==\"string\"||t instanceof String?[this.parseAccount(t)]:t.map(e=>this.parseAccount(e))}};const N=E;function $(i){if(i)return{\"--w3m-font-family\":i[\"--wcm-font-family\"],\"--w3m-accent\":i[\"--wcm-accent-color\"],\"--w3m-color-mix\":i[\"--wcm-background-color\"],\"--w3m-z-index\":i[\"--wcm-z-index\"]?Number(i[\"--wcm-z-index\"]):void 0,\"--w3m-qr-color\":i[\"--wcm-accent-color\"],\"--w3m-font-size-master\":i[\"--wcm-text-medium-regular-size\"],\"--w3m-border-radius-master\":i[\"--wcm-container-border-radius\"],\"--w3m-color-mix-strength\":0}}const k=i=>{const[t,e]=i.split(\":\");return _({id:e,caipNetworkId:i,chainNamespace:t,name:\"\",nativeCurrency:{name:\"\",symbol:\"\",decimals:8},rpcUrls:{default:{http:[\"https://rpc.walletconnect.org/v1\"]}}})};function q(i){const t=i.chains?.map(k).filter(Boolean);if(t.length===0)throw new Error(\"At least one chain must be specified\");const e=t.find(n=>n.id===i.defaultChain?.id),s={projectId:i.projectId,networks:t,themeMode:i.themeMode,themeVariables:$(i.themeVariables),chainImages:i.chainImages,connectorImages:i.walletImages,defaultNetwork:e,metadata:{...i.metadata,name:i.metadata?.name||\"WalletConnect\",description:i.metadata?.description||\"Connect to WalletConnect-compatible wallets\",url:i.metadata?.url||\"https://walletconnect.org\",icons:i.metadata?.icons||[\"https://walletconnect.org/walletconnect-logo.png\"]},showWallets:!0,featuredWalletIds:i.explorerRecommendedWalletIds===\"NONE\"?[]:Array.isArray(i.explorerRecommendedWalletIds)?i.explorerRecommendedWalletIds:[],excludeWalletIds:i.explorerExcludedWalletIds===\"ALL\"?[]:Array.isArray(i.explorerExcludedWalletIds)?i.explorerExcludedWalletIds:[],enableEIP6963:!1,enableInjected:!1,enableCoinbase:!0,enableWalletConnect:!0,features:{email:!1,socials:!1}};if(i.mobileWallets?.length||i.desktopWallets?.length){const n=[...(i.mobileWallets||[]).map(r=>({id:r.id,name:r.name,links:r.links})),...(i.desktopWallets||[]).map(r=>({id:r.id,name:r.name,links:{native:r.links.native,universal:r.links.universal}}))],a=[...s.featuredWalletIds||[],...s.excludeWalletIds||[]],o=n.filter(r=>!a.includes(r.id));o.length&&(s.customWallets=o)}return s}function _(i){return{formatters:void 0,fees:void 0,serializers:void 0,...i}}var U=Object.freeze({__proto__:null,convertWCMToAppKitOptions:q,defineChain:_});export{N as EthereumProvider,v as OPTIONAL_EVENTS,f as OPTIONAL_METHODS,m as REQUIRED_EVENTS,p as REQUIRED_METHODS,E as default};\n//# sourceMappingURL=index.js.map\n"],"names":["R","ReflectApply","target","receiver","args","ReflectOwnKeys","ProcessEmitWarning","warning","NumberIsNaN","value","EventEmitter","eventsModule","once","defaultMaxListeners","checkListener","listener","arg","n","_getMaxListeners","that","type","i","doError","events","er","err","handler","len","listeners","arrayClone","_addListener","prepend","m","existing","w","onceWrapper","_onceWrap","state","wrapped","list","position","originalListener","spliceOne","keys","key","_listeners","unwrap","evlistener","unwrapListeners","emitter","listenerCount","arr","copy","index","ret","name","resolve","reject","errorListener","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","flags","wrapListener","__spreadArray","to","from","pack","l","ar","BrowserInfo","version","os","NodeInfo","SearchBotDeviceInfo","bot","BotInfo","ReactNativeInfo","SEARCHBOX_UA_REGEX","SEARCHBOT_OS_REGEX","REQUIRED_VERSION_PARTS","userAgentRules","operatingSystemRules","detect","userAgent","parseUserAgent","getNodeVersion","matchUserAgent","ua","matched","_a","browser","regex","uaMatch","matchedRule","match","versionParts","createVersionParts","detectOS","searchBotMatch","ii","count","isNode","output","extendStatics","d","b","p","__extends","__","__assign","t","s","__rest","__decorate","decorators","desc","c","r","__param","paramIndex","decorator","__metadata","metadataKey","metadataValue","__awaiter","thisArg","_arguments","P","generator","adopt","fulfilled","step","e","rejected","result","__generator","body","_","f","y","g","verb","v","op","__createBinding","o","k","k2","__exportStar","exports","__values","__read","error","__spread","__spreadArrays","il","a","j","jl","__await","__asyncGenerator","q","resume","settle","fulfill","__asyncDelegator","__asyncValues","__makeTemplateObject","cooked","raw","__importStar","mod","__importDefault","__classPrivateFieldGet","privateMap","__classPrivateFieldSet","delay_1","delay","timeout","misc","tslib_1","require$$0","require$$1","require$$2","convert","constants_1","toMiliseconds","seconds","fromMiliseconds","miliseconds","watch","Watch","label","timestamp","elapsed","IWatch","require$$3","require$$4","cjs","getLocation_1","getNavigator_1","getDocument_1","getFromWindow","res","getFromWindowOrThrow","getDocumentOrThrow","getDocument","getNavigatorOrThrow","getNavigator","getLocationOrThrow","getLocation","getCryptoOrThrow","getCrypto","getLocalStorageOrThrow","getLocalStorage","getWindowMetadata_1","window_getters_1","getWindowMetadata","doc","loc","getIcons","links","icons","link","rel","href","absoluteHref","path","finalPath","absoluteUrl","getWindowMetadataOfAny","metaTags","tag","attributes","attr","content","getName","getDescription","description","url","getVersion","BaseError","shortMessage","options","details","docsPath","docs","message","x","fn","walk","crypto","isBytes","anumber","abytes","lengths","ahash","h","aexists","instance","checkFinished","aoutput","out","min","u32","clean","arrays","createView","rotr","word","shift","isLE","byteSwap","byteSwap32","swap32IfBE","u","utf8ToBytes","str","toBytes","data","concatBytes","sum","pad","Hash","createHasher","hashCons","hashC","msg","tmp","randomBytes","bytesLength","setBigUint64","view","byteOffset","_32n","_u32_max","wh","wl","Chi","Maj","HashMD","blockLen","outputLen","padOffset","buffer","pos","take","dataView","oview","outLen","length","finished","destroyed","SHA256_IV","U32_MASK64","fromBig","le","split","lst","Ah","Al","rotlSH","rotlSL","rotlBH","rotlBL","_0n","_1n","_2n","_7n","_256n","_0x71n","SHA3_PI","SHA3_ROTL","_SHA3_IOTA","round","IOTAS","SHA3_IOTA_H","SHA3_IOTA_L","rotlH","rotlL","keccakP","rounds","B","idx1","idx0","B0","B1","Th","Tl","curH","curL","PI","Keccak","suffix","enableXOF","bufferOut","bytes","gen","keccak_256","SHA256_K","SHA256_W","SHA256","A","C","D","E","F","G","H","offset","W15","W2","s0","s1","sigma1","T1","T2","sha256","item","abool","title","numberToHexUnpadded","num","hex","hexToNumber","hasHexBuiltin","hexes","bytesToHex","asciis","asciiToBase16","ch","hexToBytes","hl","al","array","ai","hi","n1","n2","char","bytesToNumberBE","bytesToNumberLE","numberToBytesBE","numberToBytesLE","ensureBytes","expectedLength","isPosBig","inRange","max","aInRange","bitLen","bitMask","u8n","u8fr","createHmacDrbg","hashLen","qByteLen","hmacFn","reset","reseed","seed","sl","pred","validatorFns","val","object","validateObject","validators","optValidators","checkField","fieldName","isOptional","checkVal","memoized","map","computed","assertSize","size_","Bytes.size","Bytes.SizeOverflowError","charCodeMap","charCodeToBase16","dir","size","Bytes.SizeExceedsPaddingSizeError","paddedBytes","padEnd","Hex.size","Hex.SizeOverflowError","assertStartOffset","start","Hex.SliceOffsetOutOfBoundsError","assertEndOffset","end","hex_","Hex.SizeExceedsPaddingSizeError","bigIntSuffix","stringify","replacer","space","_v","assert","strict","InvalidHexTypeError","InvalidHexValueError","concat","values","acc","fromBytes","string","internal.assertSize","padRight","fromNumber","signed","value_","maxValue","minValue","IntegerOutOfRangeError","padLeft","internal.pad","slice","internal.assertStartOffset","internal.assertEndOffset","validate","Errors.BaseError","Json.stringify","givenSize","maxSize","SliceOffsetOutOfBoundsError","targetSize","encoder","InvalidBytesTypeError","fromHex","fromArray","internal_hex.assertSize","Hex.padRight","hexString","nibbleLeft","internal.charCodeToBase16","nibbleRight","fromString","SizeOverflowError","SizeExceedsPaddingSizeError","keccak256","as","noble_keccak256","Bytes.from","Hex.fromBytes","LruMap","firstKey","caches","checksum","publicKey","compressed","prefix","InvalidPrefixError","InvalidUncompressedPrefixError","InvalidCompressedPrefixError","InvalidError","Hex.validate","Bytes.validate","InvalidSerializedSizeError","Hex.slice","toHex","includePrefix","Hex.concat","Hex.fromNumber","cause","Hex.from","addressRegex","InvalidAddressError","InvalidInputError","InvalidChecksumError","address","Caches.checksum","hexAddress","hash","Hash.keccak256","Bytes.fromString","characters","checksumVal","fromPublicKey","PublicKey.toHex","HMAC","_key","buf","oHash","iHash","hmac","_3n","_4n","_5n","_8n","pow2","power","modulo","invert","number","sqrt3mod4","Fp","p1div4","root","sqrt5mod8","p5div8","nv","tonelliShanks","Q","S","Z","_Fp","Field","FpLegendre","cc","Q1div2","M","t_tmp","exponent","FpSqrt","FIELD_FIELDS","validateField","field","initial","opts","FpPow","FpInvertBatch","nums","passZero","inverted","multipliedAcc","invertedAcc","p1mod2","powered","yes","zero","no","nLength","nBitLength","_nBitLength","nByteLength","ORDER","redef","BITS","BYTES","sqrtP","lhs","rhs","getFieldBytesLength","fieldOrder","bitLength","getMinHashLength","mapHashToField","fieldLen","minLen","reduced","constTimeNegate","condition","neg","validateW","W","bits","calcWOpts","scalarBits","windows","windowSize","maxNumber","mask","shiftBy","calcOffsets","window","wOpts","wbits","nextN","offsetStart","isZero","isNeg","isNegF","validateMSMPoints","points","validateMSMScalars","scalars","pointPrecomputes","pointWindowSizes","getW","wNAF","elm","base","precomputes","wo","offsetF","transform","comp","prev","pippenger","fieldN","plength","slength","MASK","buckets","lastBits","scalar","resI","sumI","validateBasic","curve","validateSigVerOpts","validatePointOpts","endo","DERErr","DER","dataLen","lenLen","first","isLong","lengthBytes","int","tlv","seqBytes","seqLeftBytes","rBytes","rLeftBytes","sBytes","sLeftBytes","sig","rs","ss","seq","numToSizedHex","weierstrassPoints","CURVE","Fn","_c","point","_isCompressed","tail","weierstrassEquation","x2","x3","isValidXY","left","right","_4a3","_27b2","isWithinCurveOrder","normPrivateKeyToScalar","wrapPrivateKey","N","aprjpoint","other","Point","toAffineMemo","iz","z","is0","ax","ay","zz","assertValidMemo","px","py","pz","toInv","privateKey","wnaf","X1","Y1","Z1","X2","Y2","Z2","U1","U2","b3","X3","Y3","Z3","t0","t1","t2","t3","t4","t5","sc","I","k1neg","k1","k2neg","k1p","k2p","fake","f1p","f2p","mul","cofactor","isTorsionFree","clearCofactor","isCompressed","validateOpts","weierstrass","curveDef","CURVE_ORDER","compressedLen","uncompressedLen","modN","invN","cat","head","y2","sqrtError","isYOdd","cl","ul","isBiggerThanHalfOrder","HALF","normalizeS","slcNum","Signature","recovery","msgHash","rec","bits2int_modN","radj","ir","u1","u2","utils","getPublicKey","isProbPub","fpl","compLen","uncompLen","getSharedSecret","privateA","publicB","bits2int","delta","ORDER_MASK","int2octets","prepSig","defaultSigOpts","lowS","prehash","ent","h1int","seedArgs","k2sig","kBytes","ik","normS","defaultVerOpts","sign","privKey","verify","signature","sg","format","isHex","isObj","_sig","derError","is","getHash","msgs","createCurve","defHash","create","secp256k1P","secp256k1N","divNearest","sqrtMod","_6n","_11n","_22n","_23n","_44n","_88n","b2","b6","b9","b11","b22","b44","b88","b176","b220","b223","Fpk1","secp256k1","a1","b1","a2","POW_2_128","c1","c2","yParity","vToYParity","InvalidYParityError","InvalidVError","isArrayOf","isString","astr","input","aArr","astrArr","anumArr","chain","id","wrap","encode","decode","alphabet","letters","lettersA","indexes","digits","letter","join","separator","padding","chr","convertRadix","dlen","carry","done","digit","fromCarry","digitBase","div","rounded","gcd","radix2carry","powers","convertRadix2","pow","radix","_256","radix2","revPadding","base32","genBase58","abc","base58","recoverAddress","Address.fromPublicKey","recoverPublicKey","payload","PublicKey.from","utf8Count","strLength","byteLength","extra","utf8EncodeJs","outputOffset","sharedTextEncoder","TEXT_ENCODER_THRESHOLD","utf8EncodeTE","utf8Encode","CHUNK_SIZE","utf8DecodeJs","inputOffset","units","byte1","byte2","byte3","byte4","unit","sharedTextDecoder","TEXT_DECODER_THRESHOLD","utf8DecodeTD","stringBytes","utf8Decode","ExtData","__publicField","DecodeError","proto","UINT32_MAX","setUint64","high","low","setInt64","getInt64","getUint64","EXT_TIMESTAMP","TIMESTAMP32_MAX_SEC","TIMESTAMP64_MAX_SEC","encodeTimeSpecToTimestamp","sec","nsec","rv","secHigh","secLow","encodeDateToTimeSpec","date","msec","nsecInSec","encodeTimestampExtension","timeSpec","decodeTimestampToTimeSpec","nsec30AndSecHigh2","secLow32","decodeTimestampExtension","timestampExtension","_ExtensionCodec","context","encodeExt","decodeExt","ExtensionCodec","isArrayBufferLike","ensureUint8Array","DEFAULT_MAX_DEPTH","DEFAULT_INITIAL_BUFFER_SIZE","Encoder$1","Encoder","depth","sizeToWrite","requiredSize","newSize","newBuffer","newBytes","newView","ext","prettyByte","byte","DEFAULT_MAX_KEY_LENGTH","DEFAULT_MAX_LENGTH_PER_KEY","CachedKeyDecoder","maxKeyLength","maxLengthPerKey","records","FIND_CHUNK","record","recordBytes","cachedValue","slicedCopyOfBytes","STATE_ARRAY","STATE_MAP_KEY","STATE_MAP_VALUE","mapKeyConverter","StackPool","partialState","HEAD_BYTE_REQUIRED","EMPTY_VIEW","EMPTY_BYTES","MORE_DATA","sharedCachedKeyDecoder","Decoder$1","Decoder","remainingData","newData","posToShow","stream","decoded","headByte","totalPos","isArray","isArrayHeaderRequired","arrayItemsLeft","DECODE","stack","headerOffset","headOffset","extType","JSONStringify","JSONParse","json","numbersBiggerThanMaxInt","serializedData","safeJsonParse","safeJsonStringify","En","fe","De","gn","it","_t","yn","de","xn$1","Bn","he","Cn","An$1","xn","wt","St","mn","_n","Sn","vn","In","Un","Tn","Nn","Ln","On","Hn","zn","Mn","qn","$n","kn","Rn","jn","Zn","Gn","Vn","Yn","Jn","An","ot","tt","st","at","L","Ct","At","Kn","vt","be","Wn","It","Ut","Tt","Xn","Ft","pe","K","we","Ee","Pn","Et","ge","Nt","ye","Lt","Qn","ft","tr","nr","Ot","xe","nt","rr","Ht","Be","Ce","or","J","Ae","sr","ur","cr","fr","Dr","me","_e","Se","gt","zt","ve","Mt","dr","hr","qt","Ie","$t","lr","br","pr","yt","wr","Er","gr","yr","U","T","$","V","Y","et","pt","re","oe","mt","se","ie","ue","ce","ae","Dn","dn","hn","ln","ee","ne","un","cn","an","kt","Ue","xr","Te","Br","Cr","Ar","mr","_r","Sr","vr","Rt","jt","Zt","ut","Dt","Gt","xt","Vt","Yt","Jt","dt","Kt","Wt","Ne","Xt","Le","Oe","Ir","Ur","Tr","He","Fr","Nr","Lr$2","Or$2","ze","Hr$1","Hr","zr$2","Lr","Or","Bt","zr","ht","Mr","qr","$r","kr","Rr","jr","Zr","Gr","Vr","Yr","Jr","Kr","Wr","Xr","Pr","Qr","eo","ro","oo","so","io","uo","co","ao","fo","Do","ho","lo","bo","po","Eo","Me","go","yo","xo","Bo","Co","Ao","mo","$e","qe","So","vo","Io","Pt","Uo","ke","To","Fo","No","Lo","Oo","Ho","zo","Mo","qo","$o","ko","Re","je","Ze","Qt","Ro","Ge","jo","Ve","Zo","Go","Vo","Ye","Yo","Je","Jo","Ko","Wo","Ke","We","Xe","te","Pe","ct","rt","lt","pn","bt","wn","Qe","en","nn","rn","on","sn","Po","Qo","bn","asUint8Array","allocUnsafe","curr","ALPHABET","BASE_MAP","xc","BASE","LEADER","FACTOR","iFACTOR","source","zeroes","pbegin","pend","b58","it1","it2","decodeUnsafe","psz","b256","it3","it4","vch","src","_brrp__multiformats_scope_baseX","coerce","toString","baseEncode","baseDecode","text","decoder","ComposedDecoder","decoders","Codec","baseX","basex","bitsPerChar","codes","written","rfc4648","identity","base2","base8","base10","base16","base16upper","base32upper","base32pad","base32padupper","base32hex","base32hexupper","base32hexpad","base32hexpadupper","base32z","base36","base36upper","base58btc","base58flickr","base64","base64pad","base64url","base64urlpad","alphabetBytesToChars","alphabetCharsToBytes","byts","byt","base256emoji","bases","identityBase","createCodec","ascii","BASES","encoding","ERROR_MSG_INPUT","normalizeInput","uint32ToHex","debugPrint","testSpeed","hashFn","startMs","genMs","hashHex","hashMs","ms","util","ADD64AA","o0","o1","ADD64AC","b0","B2B_GET32","B2B_G","ix","iy","x0","x1","y0","y1","xor0","xor1","BLAKE2B_IV32","SIGMA8","SIGMA82","blake2bCompress","ctx","last","parameterBlock","blake2bInit","outlen","salt","personal","blake2bUpdate","blake2bFinal","blake2b","blake2bHex","blake2b_1","B2S_GET32","B2S_G","ROTR32","BLAKE2S_IV","SIGMA","blake2sCompress","blake2sInit","keylen","blake2sUpdate","blake2sFinal","blake2s","blake2sHex","blake2s_1","b2b","b2s","blakejs","O","X","q$2","Ve$2","Fe","_b","ei","ni","fi","ci","ui","li","di","pi","gi","bi","yi","mi","wi","xi","Ei","vi","Bi","Ai","Si","Ii","Ni","Oi","Ui","_i","Ri","Ti","$i","Ci","Li","ji","ki","Hi","Di","Pi","Vi","Mi","Ki","qi","Fi","Zi","Pr$1","Gi","zi","Yi","Xi","Wi","Ji","Qi","tf","ef","nf","rf","sf","of","ff","cf","_o.fromHex","Ro.recoverAddress","af","uf","lf","df","hf","pf","gf","bf","yf","mf","ts","es","ns","Bf","Af","Sf","If","fs","Nf","Of","Uf","_f","Rf","Tf","$f","cs","Lf","Cf","us","jf","kf","Hf","Df","Pf","ls","ds","Vf","Mf","Kf","qf","Ff","Zf","Gf","zf","hs","Yf","ps","Xf","gs","bs$1","bs","Wf","ys","Jf","Qf","tc","ws","ec","xs","Es","vs","Bs","nc","As","rc","Ss","Is","Ns","oc","Os","_s","ic","fc","ac","Us","Rs","Ts","$s","uc","Cs","Ls","lc","dc","js","ks","hc","pc","gc","Hs","bc","yc","mc","wc","Ds","Ec","Ps","Bc","Ac","Sc","Ic","Vs","Ms","Nc","Oc","Uc","qs","Ks","Rc","Tc","$c","Cc","Lc","jc","Fs","Zs","Gs","kc","Hc","Dc","Pc","Vc","Mc","zs","Kc","qc","Fc","Zc","Gc","Ys","Xs","zc","Yc","Xc","Wc","Jc","Ws","Qc","ta","Js","ea","Qs","na","ra","sa","oa","ia","fa","ca","la","da","_d","ha","pa","ga","ba","ya","ma","wa","xa","Ea","va","Ba","Aa","Sa","Ia","Na","Oa","Ua","Ra","Ta","$a","Ca","La","ka","ja","Da","Ha","Pa","Va","IEvents","suspectProtoRx","suspectConstructorRx","JsonSigRx","jsonParseTransform","warnKeyDropped","destr","_value","wrapToPromise","asyncCall","function_","arguments_","isPrimitive","isPureObject","BASE64_PREFIX","serializeRaw","base64Encode","deserializeRaw","base64Decode","normalizeKey","joinKeys","normalizeBaseKey","filterKeyByDepth","substrCount","filterKeyByBase","DRIVER_NAME","memory","createStorage","getMount","getMounts","includeParent","mountpoint","onChange","event","startWatch","stopWatch","runBatch","items","commonOptions","cb","batches","getBatch","mount","batch","isStringItem","options2","storage","relativeKey","driver","meta","mounts","maskedMounts","allKeys","allMountsSupportMaxDepth","rawKeys","fullKey","shouldFilterByDepth","dispose","callback","unwatcher","_dispose","promisifyRequest","request","createStore","dbName","storeName","dbp","txMode","db","defaultGetStoreFunc","defaultGetStore","get","customStore","store","set","del","clear","eachCursor","cursor","_$2","h$2","n$1","h$1","g$2","u$1","x$3","C$1","S$1","PARSE_ERROR","INVALID_REQUEST","METHOD_NOT_FOUND","INVALID_PARAMS","INTERNAL_ERROR","SERVER_ERROR","RESERVED_ERROR_CODES","STANDARD_ERROR_MAP","DEFAULT_ERROR","isReservedErrorCode","code","getError","getErrorByCode","parseConnectionError","getBrowerCrypto","global","getSubtleCrypto","browserCrypto","isBrowserCryptoAvailable","env","isReactNative","isBrowser","payloadId","entropy","getBigIntRpcId","formatJsonRpcRequest","method","params","formatJsonRpcResult","formatJsonRpcError","formatErrorMessage","HTTP_REGEX","WS_REGEX","getUrlProtocol","matches","matchRegexProtocol","protocol","isHttpUrl","isWsUrl","isLocalhostUrl","isJsonRpcPayload","isJsonRpcRequest","isJsonRpcResponse","isJsonRpcResult","isJsonRpcError","o$1","f$4","Nt$1","zt$1","ne.generateKeyPair","ne.encodeIss","ne.signJWT","kt$1","si","Lt$1","ri","Ft$1","oi","qt$1","Vt$1","Wt$1","ti","_g","_h","__global__","__globalThis__","globalThis","support","isDataView","obj","viewClasses","isArrayBufferView","normalizeName","normalizeValue","iteratorFor","iterator","Headers","headers","header","oldValue","consumed","fileReaderReady","reader","readBlobAsArrayBuffer","blob","promise","readBlobAsText","readArrayBufferAsText","chars","bufferClone","Body","isConsumed","methods","normalizeMethod","upcased","Request","ctrl","reParamSearch","reQueryString","form","parseHeaders","rawHeaders","preProcessedHeaders","line","parts","Response","bodyInit","response","redirectStatuses","status","fetch","init","xhr","abortXhr","fixUrl","names","module","f$2"],"mappings":"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AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAC3E;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAI;AAAA,EAAG;AAAA,EAAI;AAAA,EAAG;AAAA,EAAI;AAAA,EAAG;AAAA,EAAI;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAI;AAAA,EAAG;AAAA,EACzE;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAG;AAAA,EAAI;AAAA,EAAG;AAAA,EAAG;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAI;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC5E;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAI;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAI;AAAA,EAAG;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAI;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAI;AAAA,EAC1E;AAAA,EAAI;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAI;AAAA,EAAG;AAAA,EAAI;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAI;AAAA,EAAG;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAC1E;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAI;AAAA,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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112]}