{"version":3,"file":"6975.js","mappings":"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ACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACD,EACD,cAAe,GAAEA,IAAI,CAAC,CACpB,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACD,EACD,gBAAiB,GAAEA,IAAI,CAAC,CACtB,EACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,EACA,GACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,EACA,GACA,IACA,GACA,IACA,IACA,GACA,EACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,EACA,GACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,EACA,GACA,IACA,GACA,IACA,IACA,GACD,EACD0uD,QAAS,GAAE1uD,IAAI,CAAC,CACd,IACA,IACA,IACA,IACA,GACA,EACA,IACA,GACA,EACA,IACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,EACA,IACA,IACA,GACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,EACA,IACA,GACA,EACA,IACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,EACA,IACA,IACA,GACA,IACA,EACA,IACA,IACA,IACA,IACD,EACD2uD,UAAW,GAAE3uD,IAAI,CAAC,CAChB,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,EACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,EACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,GACD,EACD4uD,WAAY,GAAE5uD,IAAI,CAAC,CACjB,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACD,EACD6uD,SAAU,GAAE7uD,IAAI,CAAC,CACf,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACD,EACD,cAAe,GAAEA,IAAI,CAAC,CACpB,GACA,GACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACD,EACD,qBAAsB,GAAEA,IAAI,CAAC,CAC3B,IACA,IACA,EACA,EACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,EACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,EACA,EACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,EACA,IACA,GACA,IACA,GACA,IACA,IACD,CACH,EAIAxN,EAAEmpB,UAAU,CAHZ,SAAW3f,CAAC,CAAElH,CAAC,EACb,OAAOugC,EAAE,GAAEiG,MAAM,CAAC,CAAC9oC,EAAEmqB,oBAAoB,CAAC3gB,EAAE,CAAElH,EAAE,EAClD,CAEF,EAAG,IAsEH,IAAI4gI,GAAKC,SArEGnjI,CAAC,EACX,GAAIA,EAAEmB,MAAM,EAAI,IACd,MAAM,UAAc,qBACtB,IAAK,IAAIoB,EAAI,IAAI3B,WAAW,KAAMkc,EAAI,EAAGA,EAAIva,EAAEpB,MAAM,CAAE2b,IACrDva,CAAC,CAACua,EAAE,CAAG,IACT,IAAK,IAAI7d,EAAI,EAAGA,EAAIe,EAAEmB,MAAM,CAAElC,IAAK,CACjC,IAAI+B,EAAIhB,EAAE6gC,MAAM,CAAC5hC,GAAI6M,EAAI9K,EAAEgW,UAAU,CAAC,GACtC,GAAIzU,MAAAA,CAAC,CAACuJ,EAAE,CACN,MAAM,UAAc9K,EAAI,gBAC1BuB,CAAAA,CAAC,CAACuJ,EAAE,CAAG7M,CACT,CACA,IAAI4jC,EAAI7iC,EAAEm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Z,EACAtgG,EACA3b,EACAoxG,EACA98C,EAAO88C,OAAO,CACd98C,EAAOz+E,IAAI,CACXy+E,EAAOj9E,OAAO,CACd8kI,EACAimB,EACAC,EACAC,EACAC,EACA09B,EACA1xL,EACA8I,EACAzqB,EACD,EAwDC69M,WAvDiB,SAAe,CAAC,KACjC,GAAIn2G,aAAAA,EAAOz+E,IAAI,CAAiB,CAC9B,GAAI,CAACwB,EACH,OACF,MAAO,IAAMuvL,EAAY,CACvB/wL,KAAM,WACNwB,QAASi9E,EAAOj9E,OAAO,EAE3B,CACA,OAAO,GAAoBuvL,EAAY,CACrCjrJ,QAAAA,EACA3b,KAAAA,EACAi8G,IAAAA,EACA7K,QAAAA,EACA+K,aAAAA,EACAgmB,WAAAA,EACAt/B,QAAAA,EACAu/B,IAAAA,EACAC,SAAAA,EACAC,aAAAA,EACAC,qBAAAA,EACAh0J,MAAAA,EACA3hB,MAAAA,EACA,GAAG49M,CAAc,EAErB,EAAG,CACDroC,EACAt/B,EACAoZ,EACAtgG,EACA3b,EACAoxG,EACA98C,EAAOz+E,IAAI,CACXy+E,EAAOj9E,OAAO,CACd8kI,EACAimB,EACAC,EACAC,EACAC,EACAqkC,EACAr4L,EACA8I,EACAzqB,EACD,CAaD,CACF,C","sources":["webpack://new_ui/./node_modules/@bitcoinerlab/secp256k1/dist/index.js","webpack://new_ui/./node_modules/@noble/hashes/_assert.js","webpack://new_ui/./node_modules/@noble/hashes/_sha2.js","webpack://new_ui/./node_modules/@noble/hashes/_u64.js","webpack://new_ui/./node_modules/@noble/hashes/crypto.js","webpack://new_ui/./node_modules/@noble/hashes/hmac.js","webpack://new_ui/./node_modules/@noble/hashes/ripemd160.js","webpack://new_ui/./node_modules/@noble/hashes/sha1.js","webpack://new_ui/./node_modules/@noble/hashes/sha256.js","webpack://new_ui/./node_modules/@noble/hashes/sha512.js","webpack://new_ui/./node_modules/@noble/hashes/utils.js","webpack://new_ui/./node_modules/@noble/secp256k1/lib/index.js","webpack://new_ui/./node_modules/@ordzaar/ordit-sdk/node_modules/cross-fetch/dist/browser-ponyfill.js","webpack://new_ui/./node_modules/@stablelib/binary/lib/binary.js","webpack://new_ui/./node_modules/@stablelib/chacha/lib/chacha.js","webpack://new_ui/./node_modules/@stablelib/chacha20poly1305/lib/chacha20poly1305.js","webpack://new_ui/./node_modules/@stablelib/constant-time/lib/constant-time.js","webpack://new_ui/./node_modules/@stablelib/hash/lib/hash.js","webpack://new_ui/./node_modules/@stablelib/hkdf/lib/hkdf.js","webpack://new_ui/./node_modules/@stablelib/hmac/lib/hmac.js","webpack://new_ui/./node_modules/@stablelib/int/lib/int.js","webpack://new_ui/./node_modules/@stablelib/poly1305/lib/poly1305.js","webpack://new_ui/./node_modules/@stablelib/random/lib/random.js","webpack://new_ui/./node_modules/@stablelib/random/lib/source/browser.js","webpack://new_ui/./node_modules/@stablelib/random/lib/source/node.js","webpack://new_ui/./node_modules/@stablelib/random/lib/source/system.js","webpack://new_ui/./node_modules/@stablelib/sha256/lib/sha256.js","webpack://new_ui/./node_modules/@stablelib/wipe/lib/wipe.js","webpack://new_ui/./node_modules/@stablelib/x25519/lib/x25519.js","webpack://new_ui/./node_modules/@walletconnect/time/dist/cjs/constants/index.js","webpack://new_ui/./node_modules/@walletconnect/time/dist/cjs/constants/misc.js","webpack://new_ui/./node_modules/@walletconnect/time/dist/cjs/constants/time.js","webpack://new_ui/./node_modules/@walletconnect/time/dist/cjs/index.js","webpack://new_ui/./node_modules/@walletconnect/time/dist/cjs/types/index.js","webpack://new_ui/./node_modules/@walletconnect/time/dist/cjs/types/watch.js","webpack://new_ui/./node_modules/@walletconnect/time/dist/cjs/utils/convert.js","webpack://new_ui/./node_modules/@walletconnect/time/dist/cjs/utils/delay.js","webpack://new_ui/./node_modules/@walletconnect/time/dist/cjs/utils/index.js","webpack://new_ui/./node_modules/@walletconnect/time/dist/cjs/watch.js","webpack://new_ui/./node_modules/detect-browser/es/index.js","webpack://new_ui/./node_modules/@walletconnect/relay-api/dist/esm/jsonrpc.js","webpack://new_ui/./node_modules/@walletconnect/utils/dist/index.es.js","webpack://new_ui/./node_modules/@walletconnect/utils/node_modules/query-string/index.js","webpack://new_ui/./node_modules/@walletconnect/window-getters/dist/cjs/index.js","webpack://new_ui/./node_modules/@walletconnect/window-metadata/dist/cjs/index.js","webpack://new_ui/./node_modules/bip174/src/lib/combiner/index.js","webpack://new_ui/./node_modules/bip174/src/lib/converter/global/globalXpub.js","webpack://new_ui/./node_modules/bip174/src/lib/converter/global/unsignedTx.js","webpack://new_ui/./node_modules/bip174/src/lib/converter/index.js","webpack://new_ui/./node_modules/bip174/src/lib/converter/input/finalScriptSig.js","webpack://new_ui/./node_modules/bip174/src/lib/converter/input/finalScriptWitness.js","webpack://new_ui/./node_modules/bip174/src/lib/converter/input/nonWitnessUtxo.js","webpack://new_ui/./node_modules/bip174/src/lib/converter/input/partialSig.js","webpack://new_ui/./node_modules/bip174/src/lib/converter/input/porCommitment.js","webpack://new_ui/./node_modules/bip174/src/lib/converter/input/sighashType.js","webpack://new_ui/./node_modules/bip174/src/lib/converter/input/tapKeySig.js","webpack://new_ui/./node_modules/bip174/src/lib/converter/input/tapLeafScript.js","webpack://new_ui/./node_modules/bip174/src/lib/converter/input/tapMerkleRoot.js","webpack://new_ui/./node_modules/bip174/src/lib/converter/input/tapScriptSig.js","webpack://new_ui/./node_modules/bip174/src/lib/converter/input/witnessUtxo.js","webpack://new_ui/./node_modules/bip174/src/lib/converter/output/tapTree.js","webpack://new_ui/./node_modules/bip174/src/lib/converter/shared/bip32Derivation.js","webpack://new_ui/./node_modules/bip174/src/lib/converter/shared/checkPubkey.js","webpack://new_ui/./node_modules/bip174/src/lib/converter/shared/redeemScript.js","webpack://new_ui/./node_modules/bip174/src/lib/converter/shared/tapBip32Derivation.js","webpack://new_ui/./node_modules/bip174/src/lib/converter/shared/tapInternalKey.js","webpack://new_ui/./node_modules/bip174/src/lib/converter/shared/witnessScript.js","webpack://new_ui/./node_modules/bip174/src/lib/converter/tools.js","webpack://new_ui/./node_modules/bip174/src/lib/converter/varint.js","webpack://new_ui/./node_modules/bip174/src/lib/parser/fromBuffer.js","webpack://new_ui/./node_modules/bip174/src/lib/parser/index.js","webpack://new_ui/./node_modules/bip174/src/lib/parser/toBuffer.js","webpack://new_ui/./node_modules/bip174/src/lib/psbt.js","webpack://new_ui/./node_modules/bip174/src/lib/typeFields.js","webpack://new_ui/./node_modules/bip174/src/lib/utils.js","webpack://new_ui/./node_modules/bip32/node_modules/@scure/base/lib/index.js","webpack://new_ui/./node_modules/bip32/src/bip32.js","webpack://new_ui/./node_modules/bip32/src/crypto.js","webpack://new_ui/./node_modules/bip32/src/index.js","webpack://new_ui/./node_modules/bip32/src/testecc.js","webpack://new_ui/./node_modules/bitcoinjs-lib/node_modules/bech32/dist/index.js","webpack://new_ui/./node_modules/bitcoinjs-lib/node_modules/bs58check/base.js","webpack://new_ui/./node_modules/bitcoinjs-lib/node_modules/bs58check/index.js","webpack://new_ui/./node_modules/bitcoinjs-lib/src/address.js","webpack://new_ui/./node_modules/bitcoinjs-lib/src/bip66.js","webpack://new_ui/./node_modules/bitcoinjs-lib/src/block.js","webpack://new_ui/./node_modules/bitcoinjs-lib/src/bufferutils.js","webpack://new_ui/./node_modules/bitcoinjs-lib/src/crypto.js","webpack://new_ui/./node_modules/bitcoinjs-lib/src/ecc_lib.js","webpack://new_ui/./node_modules/bitcoinjs-lib/src/index.js","webpack://new_ui/./node_modules/bitcoinjs-lib/src/merkle.js","webpack://new_ui/./node_modules/bitcoinjs-lib/src/networks.js","webpack://new_ui/./node_modules/bitcoinjs-lib/src/ops.js","webpack://new_ui/./node_modules/bitcoinjs-lib/src/payments/bip341.js","webpack://new_ui/./node_modules/bitcoinjs-lib/src/payments/embed.js","webpack://new_ui/./node_modules/bitcoinjs-lib/src/payments/index.js","webpack://new_ui/./node_modules/bitcoinjs-lib/src/payments/lazy.js","webpack://new_ui/./node_modules/bitcoinjs-lib/src/payments/p2ms.js","webpack://new_ui/./node_modules/bitcoinjs-lib/src/payments/p2pk.js","webpack://new_ui/./node_modules/bitcoinjs-lib/src/payments/p2pkh.js","webpack://new_ui/./node_modules/bitcoinjs-lib/src/payments/p2sh.js","webpack://new_ui/./node_modules/bitcoinjs-lib/src/payments/p2tr.js","webpack://new_ui/./node_modules/bitcoinjs-lib/src/payments/p2wpkh.js","webpack://new_ui/./node_modules/bitcoinjs-lib/src/payments/p2wsh.js","webpack://new_ui/./node_modules/bitcoinjs-lib/src/psbt.js","webpack://new_ui/./node_modules/bitcoinjs-lib/src/psbt/bip371.js","webpack://new_ui/./node_modules/bitcoinjs-lib/src/psbt/psbtutils.js","webpack://new_ui/./node_modules/bitcoinjs-lib/src/push_data.js","webpack://new_ui/./node_modules/bitcoinjs-lib/src/script.js","webpack://new_ui/./node_modules/bitcoinjs-lib/src/script_number.js","webpack://new_ui/./node_modules/bitcoinjs-lib/src/script_signature.js","webpack://new_ui/./node_modules/bitcoinjs-lib/src/transaction.js","webpack://new_ui/./node_modules/bitcoinjs-lib/src/types.js","webpack://new_ui/./node_modules/bs58/index.js","webpack://new_ui/./node_modules/bs58/node_modules/base-x/src/index.js","webpack://new_ui/./node_modules/bs58check/base.js","webpack://new_ui/./node_modules/bs58check/index.js","webpack://new_ui/./node_modules/bs58check/node_modules/bs58/index.js","webpack://new_ui/./node_modules/buffer-reverse/index.js","webpack://new_ui/./node_modules/cipher-base/index.js","webpack://new_ui/./node_modules/create-hash/browser.js","webpack://new_ui/./node_modules/decode-uri-component/index.js","webpack://new_ui/./node_modules/ecpair/src/ecpair.js","webpack://new_ui/./node_modules/ecpair/src/index.js","webpack://new_ui/./node_modules/ecpair/src/networks.js","webpack://new_ui/./node_modules/ecpair/src/testecc.js","webpack://new_ui/./node_modules/ecpair/src/types.js","webpack://new_ui/./node_modules/events/events.js","webpack://new_ui/./node_modules/filter-obj/index.js","webpack://new_ui/./node_modules/hash-base/index.js","webpack://new_ui/./node_modules/inherits/inherits_browser.js","webpack://new_ui/./node_modules/jsontokens/lib/base64Url.js","webpack://new_ui/./node_modules/jsontokens/lib/cryptoClients/index.js","webpack://new_ui/./node_modules/jsontokens/lib/cryptoClients/secp256k1.js","webpack://new_ui/./node_modules/jsontokens/lib/cryptoClients/sha256.js","webpack://new_ui/./node_modules/jsontokens/lib/decode.js","webpack://new_ui/./node_modules/jsontokens/lib/ecdsaSigFormatter.js","webpack://new_ui/./node_modules/jsontokens/lib/errors.js","webpack://new_ui/./node_modules/jsontokens/lib/index.js","webpack://new_ui/./node_modules/jsontokens/lib/signer.js","webpack://new_ui/./node_modules/jsontokens/lib/verifier.js","webpack://new_ui/./node_modules/jsontokens/node_modules/@noble/hashes/_assert.js","webpack://new_ui/./node_modules/jsontokens/node_modules/@noble/hashes/_sha2.js","webpack://new_ui/./node_modules/jsontokens/node_modules/@noble/hashes/cryptoBrowser.js","webpack://new_ui/./node_modules/jsontokens/node_modules/@noble/hashes/hmac.js","webpack://new_ui/./node_modules/jsontokens/node_modules/@noble/hashes/sha256.js","webpack://new_ui/./node_modules/jsontokens/node_modules/@noble/hashes/utils.js","webpack://new_ui/./node_modules/md5.js/index.js","webpack://new_ui/./node_modules/process/browser.js","webpack://new_ui/./node_modules/randombytes/browser.js","webpack://new_ui/./node_modules/readable-stream/errors-browser.js","webpack://new_ui/./node_modules/readable-stream/lib/_stream_duplex.js","webpack://new_ui/./node_modules/readable-stream/lib/_stream_passthrough.js","webpack://new_ui/./node_modules/readable-stream/lib/_stream_readable.js","webpack://new_ui/./node_modules/readable-stream/lib/_stream_transform.js","webpack://new_ui/./node_modules/readable-stream/lib/_stream_writable.js","webpack://new_ui/./node_modules/readable-stream/lib/internal/streams/async_iterator.js","webpack://new_ui/./node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack://new_ui/./node_modules/readable-stream/lib/internal/streams/destroy.js","webpack://new_ui/./node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack://new_ui/./node_modules/readable-stream/lib/internal/streams/from-browser.js","webpack://new_ui/./node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack://new_ui/./node_modules/readable-stream/lib/internal/streams/state.js","webpack://new_ui/./node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack://new_ui/./node_modules/readable-stream/readable-browser.js","webpack://new_ui/./node_modules/ripemd160/index.js","webpack://new_ui/./node_modules/sats-connect/dist/addresses/index.js","webpack://new_ui/./node_modules/sats-connect/dist/addresses/types.js","webpack://new_ui/./node_modules/sats-connect/dist/call/index.js","webpack://new_ui/./node_modules/sats-connect/dist/call/types.js","webpack://new_ui/./node_modules/sats-connect/dist/capabilities/index.js","webpack://new_ui/./node_modules/sats-connect/dist/capabilities/types.js","webpack://new_ui/./node_modules/sats-connect/dist/index.js","webpack://new_ui/./node_modules/sats-connect/dist/inscriptions/createInscription.js","webpack://new_ui/./node_modules/sats-connect/dist/inscriptions/index.js","webpack://new_ui/./node_modules/sats-connect/dist/inscriptions/types.js","webpack://new_ui/./node_modules/sats-connect/dist/messages/index.js","webpack://new_ui/./node_modules/sats-connect/dist/messages/types.js","webpack://new_ui/./node_modules/sats-connect/dist/provider/index.js","webpack://new_ui/./node_modules/sats-connect/dist/provider/types.js","webpack://new_ui/./node_modules/sats-connect/dist/transactions/index.js","webpack://new_ui/./node_modules/sats-connect/dist/transactions/sendBtcTransaction.js","webpack://new_ui/./node_modules/sats-connect/dist/transactions/signTransaction.js","webpack://new_ui/./node_modules/sats-connect/dist/transactions/types.js","webpack://new_ui/./node_modules/sats-connect/dist/types.js","webpack://new_ui/./node_modules/sha.js/hash.js","webpack://new_ui/./node_modules/sha.js/index.js","webpack://new_ui/./node_modules/sha.js/sha.js","webpack://new_ui/./node_modules/sha.js/sha1.js","webpack://new_ui/./node_modules/sha.js/sha224.js","webpack://new_ui/./node_modules/sha.js/sha256.js","webpack://new_ui/./node_modules/sha.js/sha384.js","webpack://new_ui/./node_modules/sha.js/sha512.js","webpack://new_ui/./node_modules/split-on-first/index.js","webpack://new_ui/./node_modules/strict-uri-encode/index.js","webpack://new_ui/./node_modules/string_decoder/lib/string_decoder.js","webpack://new_ui/./node_modules/tslib/tslib.es6.js","webpack://new_ui/./node_modules/typeforce/errors.js","webpack://new_ui/./node_modules/typeforce/extra.js","webpack://new_ui/./node_modules/typeforce/index.js","webpack://new_ui/./node_modules/typeforce/native.js","webpack://new_ui/./node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","webpack://new_ui/./node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js","webpack://new_ui/./node_modules/use-sync-external-store/shim/index.js","webpack://new_ui/./node_modules/use-sync-external-store/shim/with-selector.js","webpack://new_ui/./node_modules/util-deprecate/browser.js","webpack://new_ui/./node_modules/varuint-bitcoin/index.js","webpack://new_ui/./node_modules/wif/index.js","webpack://new_ui/./node_modules/@ordzaar/ordit-sdk/dist/index.js","webpack://new_ui/./node_modules/@ordzaar/ord-connect/dist/index.js","webpack://new_ui/./node_modules/bitcoin-address-validation/lib/index.esm.js","webpack://new_ui/./node_modules/@ordzaar/ordit-sdk/dist/index-7cd24a6f.js","webpack://new_ui/./node_modules/@ordzaar/ordit-sdk/dist/unisat.js","webpack://new_ui/./node_modules/@ordzaar/ordit-sdk/dist/xverse.js","webpack://new_ui/./node_modules/@solana/wallet-adapter-base/lib/esm/adapter.js","webpack://new_ui/./node_modules/@solana/wallet-adapter-base/lib/esm/errors.js","webpack://new_ui/./node_modules/@solana/wallet-adapter-base/lib/esm/signer.js","webpack://new_ui/./node_modules/@solana/wallet-adapter-base/lib/esm/transaction.js","webpack://new_ui/./node_modules/@solana/wallet-adapter-base/lib/esm/types.js","webpack://new_ui/./node_modules/@solana/wallet-adapter-phantom/lib/esm/adapter.js","webpack://new_ui/./node_modules/@solana/wallet-adapter-react-ui/lib/esm/useWalletModal.js","webpack://new_ui/./node_modules/@solana/wallet-adapter-react-ui/lib/esm/Collapse.js","webpack://new_ui/./node_modules/@solana/wallet-adapter-react-ui/lib/esm/Button.js","webpack://new_ui/./node_modules/@solana/wallet-adapter-react-ui/lib/esm/WalletIcon.js","webpack://new_ui/./node_modules/@solana/wallet-adapter-react-ui/lib/esm/WalletListItem.js","webpack://new_ui/./node_modules/@solana/wallet-adapter-react-ui/lib/esm/WalletSVG.js","webpack://new_ui/./node_modules/@solana/wallet-adapter-react-ui/lib/esm/WalletModal.js","webpack://new_ui/./node_modules/@solana/wallet-adapter-react-ui/lib/esm/WalletModalProvider.js","webpack://new_ui/./node_modules/@solana/wallet-adapter-react/lib/esm/ConnectionProvider.js","webpack://new_ui/./node_modules/@solana-mobile/mobile-wallet-adapter-protocol/lib/esm/index.js","webpack://new_ui/./node_modules/@solana/wallet-adapter-react/lib/esm/WalletProvider.js","webpack://new_ui/./node_modules/@wallet-standard/app/lib/esm/wallets.js","webpack://new_ui/./node_modules/@solana/wallet-adapter-react/lib/esm/getEnvironment.js","webpack://new_ui/./node_modules/@solana/wallet-standard-wallet-adapter-base/lib/esm/adapter.js","webpack://new_ui/./node_modules/@solana-mobile/mobile-wallet-adapter-protocol-web3js/lib/esm/index.js","webpack://new_ui/./node_modules/@solana-mobile/wallet-adapter-mobile/lib/esm/index.js","webpack://new_ui/./node_modules/@wallet-standard/features/lib/esm/connect.js","webpack://new_ui/./node_modules/@wallet-standard/features/lib/esm/events.js","webpack://new_ui/./node_modules/@solana/wallet-standard-wallet-adapter-base/lib/esm/types.js","webpack://new_ui/./node_modules/@solana/wallet-adapter-base/lib/esm/standard.js","webpack://new_ui/./node_modules/@solana/wallet-standard-wallet-adapter-base/node_modules/@solana/wallet-standard-features/lib/esm/signAndSendTransaction.js","webpack://new_ui/./node_modules/@solana/wallet-standard-wallet-adapter-base/node_modules/@solana/wallet-standard-features/lib/esm/signTransaction.js","webpack://new_ui/./node_modules/@solana/wallet-standard-wallet-adapter-base/node_modules/@solana/wallet-standard-features/lib/esm/signMessage.js","webpack://new_ui/./node_modules/@solana/wallet-standard-chains/lib/esm/index.js","webpack://new_ui/./node_modules/@solana/wallet-standard-util/lib/esm/commitment.js","webpack://new_ui/./node_modules/@wallet-standard/features/lib/esm/disconnect.js","webpack://new_ui/./node_modules/@wallet-standard/wallet/lib/esm/util.js","webpack://new_ui/./node_modules/@solana/wallet-standard-util/lib/esm/endpoint.js","webpack://new_ui/./node_modules/@solana/wallet-standard-wallet-adapter-react/lib/esm/useStandardWalletAdapters.js","webpack://new_ui/./node_modules/@solana/wallet-adapter-react/lib/esm/errors.js","webpack://new_ui/./node_modules/@solana/wallet-adapter-react/lib/esm/WalletProviderBase.js","webpack://new_ui/./node_modules/@solana/wallet-adapter-react/lib/esm/getInferredClusterFromEndpoint.js","webpack://new_ui/./node_modules/@solana/wallet-adapter-react/lib/esm/useLocalStorage.js","webpack://new_ui/./node_modules/@solana/wallet-adapter-react/lib/esm/useConnection.js","webpack://new_ui/./node_modules/@solana/wallet-adapter-react/lib/esm/useWallet.js","webpack://new_ui/./node_modules/@wagmi/chains/dist/index.mjs","webpack://new_ui/./node_modules/@wagmi/connectors/dist/chunk-QRUHVNWK.js","webpack://new_ui/./node_modules/@wagmi/connectors/dist/chunk-OQILYQDO.js","webpack://new_ui/./node_modules/viem/_esm/chains/definitions/goerli.js","webpack://new_ui/./node_modules/@wagmi/connectors/dist/chunk-QYMCVNHT.js","webpack://new_ui/./node_modules/@wagmi/connectors/dist/chunk-ZCAPXGBX.js","webpack://new_ui/./node_modules/@wagmi/connectors/dist/metaMask.js","webpack://new_ui/./node_modules/@wagmi/connectors/dist/walletConnect.js","webpack://new_ui/./node_modules/@wagmi/core/dist/chunk-LAFZBYO7.js","webpack://new_ui/./node_modules/@wagmi/core/dist/chunk-MQXBDTVK.js","webpack://new_ui/./node_modules/viem/_esm/utils/ens/errors.js","webpack://new_ui/./node_modules/viem/_esm/utils/ens/encodedLabelToLabelhash.js","webpack://new_ui/./node_modules/viem/_esm/utils/ens/namehash.js","webpack://new_ui/./node_modules/viem/_esm/utils/ens/packetToBytes.js","webpack://new_ui/./node_modules/viem/_esm/utils/ens/encodeLabelhash.js","webpack://new_ui/./node_modules/viem/_esm/utils/ens/labelhash.js","webpack://new_ui/./node_modules/viem/_esm/utils/errors/getContractError.js","webpack://new_ui/./node_modules/viem/_esm/actions/public/readContract.js","webpack://new_ui/./node_modules/viem/_esm/actions/ens/getEnsAddress.js","webpack://new_ui/./node_modules/viem/_esm/errors/ens.js","webpack://new_ui/./node_modules/viem/_esm/utils/ens/avatar/utils.js","webpack://new_ui/./node_modules/viem/_esm/utils/ens/avatar/parseAvatarRecord.js","webpack://new_ui/./node_modules/viem/_esm/actions/ens/getEnsText.js","webpack://new_ui/./node_modules/viem/_esm/actions/ens/getEnsAvatar.js","webpack://new_ui/./node_modules/viem/_esm/actions/ens/getEnsName.js","webpack://new_ui/./node_modules/viem/_esm/actions/ens/getEnsResolver.js","webpack://new_ui/./node_modules/viem/_esm/utils/filters/createFilterRequestScope.js","webpack://new_ui/./node_modules/viem/_esm/actions/public/createBlockFilter.js","webpack://new_ui/./node_modules/viem/_esm/errors/log.js","webpack://new_ui/./node_modules/viem/_esm/utils/abi/encodeEventTopics.js","webpack://new_ui/./node_modules/viem/_esm/actions/public/createContractEventFilter.js","webpack://new_ui/./node_modules/viem/_esm/actions/public/createEventFilter.js","webpack://new_ui/./node_modules/viem/_esm/actions/public/createPendingTransactionFilter.js","webpack://new_ui/./node_modules/viem/_esm/actions/public/estimateContractGas.js","webpack://new_ui/./node_modules/viem/_esm/actions/public/getBalance.js","webpack://new_ui/./node_modules/viem/_esm/actions/public/getBlobBaseFee.js","webpack://new_ui/./node_modules/viem/_esm/utils/promise/withCache.js","webpack://new_ui/./node_modules/viem/_esm/actions/public/getBlockNumber.js","webpack://new_ui/./node_modules/viem/_esm/actions/public/getBlockTransactionCount.js","webpack://new_ui/./node_modules/viem/_esm/actions/public/getCode.js","webpack://new_ui/./node_modules/viem/_esm/utils/abi/decodeEventLog.js","webpack://new_ui/./node_modules/viem/_esm/utils/abi/parseEventLogs.js","webpack://new_ui/./node_modules/viem/_esm/utils/formatters/log.js","webpack://new_ui/./node_modules/viem/_esm/actions/public/getLogs.js","webpack://new_ui/./node_modules/viem/_esm/actions/public/getContractEvents.js","webpack://new_ui/./node_modules/viem/_esm/errors/eip712.js","webpack://new_ui/./node_modules/viem/_esm/actions/public/getEip712Domain.js","webpack://new_ui/./node_modules/viem/_esm/actions/public/getFeeHistory.js","webpack://new_ui/./node_modules/viem/_esm/utils/formatters/feeHistory.js","webpack://new_ui/./node_modules/viem/_esm/actions/public/getFilterChanges.js","webpack://new_ui/./node_modules/viem/_esm/actions/public/getFilterLogs.js","webpack://new_ui/./node_modules/viem/_esm/actions/public/getProof.js","webpack://new_ui/./node_modules/viem/_esm/utils/formatters/proof.js","webpack://new_ui/./node_modules/viem/_esm/actions/public/getStorageAt.js","webpack://new_ui/./node_modules/viem/_esm/actions/public/getTransaction.js","webpack://new_ui/./node_modules/viem/_esm/actions/public/getTransactionConfirmations.js","webpack://new_ui/./node_modules/viem/_esm/utils/formatters/transactionReceipt.js","webpack://new_ui/./node_modules/viem/_esm/actions/public/getTransactionReceipt.js","webpack://new_ui/./node_modules/viem/_esm/actions/public/multicall.js","webpack://new_ui/./node_modules/viem/_esm/actions/public/simulateContract.js","webpack://new_ui/./node_modules/viem/_esm/actions/public/uninstallFilter.js","webpack://new_ui/./node_modules/viem/_esm/utils/signature/hashMessage.js","webpack://new_ui/./node_modules/@noble/curves/esm/abstract/utils.js","webpack://new_ui/./node_modules/@noble/curves/node_modules/@noble/hashes/esm/_assert.js","webpack://new_ui/./node_modules/@noble/curves/node_modules/@noble/hashes/esm/crypto.js","webpack://new_ui/./node_modules/@noble/curves/node_modules/@noble/hashes/esm/utils.js","webpack://new_ui/./node_modules/@noble/curves/node_modules/@noble/hashes/esm/_sha2.js","webpack://new_ui/./node_modules/@noble/curves/node_modules/@noble/hashes/esm/sha256.js","webpack://new_ui/./node_modules/@noble/curves/esm/abstract/modular.js","webpack://new_ui/./node_modules/@noble/curves/node_modules/@noble/hashes/esm/hmac.js","webpack://new_ui/./node_modules/@noble/curves/esm/abstract/curve.js","webpack://new_ui/./node_modules/@noble/curves/esm/abstract/weierstrass.js","webpack://new_ui/./node_modules/@noble/curves/esm/secp256k1.js","webpack://new_ui/./node_modules/@noble/curves/esm/_shortw_utils.js","webpack://new_ui/./node_modules/viem/_esm/actions/public/verifyHash.js","webpack://new_ui/./node_modules/viem/_esm/utils/signature/serializeSignature.js","webpack://new_ui/./node_modules/viem/_esm/utils/data/isBytesEqual.js","webpack://new_ui/./node_modules/viem/_esm/actions/public/verifyMessage.js","webpack://new_ui/./node_modules/viem/_esm/utils/signature/hashTypedData.js","webpack://new_ui/./node_modules/viem/_esm/actions/public/verifyTypedData.js","webpack://new_ui/./node_modules/viem/_esm/utils/observe.js","webpack://new_ui/./node_modules/viem/_esm/utils/poll.js","webpack://new_ui/./node_modules/viem/_esm/actions/public/watchBlockNumber.js","webpack://new_ui/./node_modules/viem/_esm/actions/public/waitForTransactionReceipt.js","webpack://new_ui/./node_modules/viem/_esm/utils/siwe/parseSiweMessage.js","webpack://new_ui/./node_modules/viem/_esm/actions/siwe/verifySiweMessage.js","webpack://new_ui/./node_modules/viem/_esm/utils/siwe/validateSiweMessage.js","webpack://new_ui/./node_modules/viem/_esm/clients/decorators/public.js","webpack://new_ui/./node_modules/viem/_esm/actions/public/watchBlocks.js","webpack://new_ui/./node_modules/viem/_esm/actions/public/watchContractEvent.js","webpack://new_ui/./node_modules/viem/_esm/actions/public/watchEvent.js","webpack://new_ui/./node_modules/viem/_esm/actions/public/watchPendingTransactions.js","webpack://new_ui/./node_modules/viem/_esm/clients/createPublicClient.js","webpack://new_ui/./node_modules/viem/_esm/clients/transports/fallback.js","webpack://new_ui/./node_modules/viem/_esm/errors/transport.js","webpack://new_ui/./node_modules/viem/_esm/utils/promise/withTimeout.js","webpack://new_ui/./node_modules/viem/_esm/utils/rpc/id.js","webpack://new_ui/./node_modules/viem/_esm/utils/rpc/socket.js","webpack://new_ui/./node_modules/viem/_esm/utils/rpc/webSocket.js","webpack://new_ui/./node_modules/viem/_esm/utils/rpc/compat.js","webpack://new_ui/./node_modules/zustand/esm/middleware.mjs","webpack://new_ui/./node_modules/zustand/esm/vanilla.mjs","webpack://new_ui/./node_modules/zustand/esm/shallow.mjs","webpack://new_ui/./node_modules/viem/_esm/clients/transports/http.js","webpack://new_ui/./node_modules/viem/_esm/utils/rpc/http.js","webpack://new_ui/./node_modules/viem/_esm/clients/transports/webSocket.js","webpack://new_ui/./node_modules/@wagmi/core/dist/providers/public.js","webpack://new_ui/./node_modules/uint8arrays/esm/src/alloc.js","webpack://new_ui/./node_modules/uint8arrays/esm/src/concat.js","webpack://new_ui/./node_modules/uint8arrays/esm/src/from-string.js","webpack://new_ui/./node_modules/uint8arrays/esm/src/to-string.js","webpack://new_ui/./node_modules/uint8arrays/esm/src/util/as-uint8array.js","webpack://new_ui/./node_modules/multiformats/esm/vendor/base-x.js","webpack://new_ui/./node_modules/multiformats/esm/src/bytes.js","webpack://new_ui/./node_modules/multiformats/esm/src/bases/base.js","webpack://new_ui/./node_modules/multiformats/esm/src/bases/identity.js","webpack://new_ui/./node_modules/multiformats/esm/src/bases/base2.js","webpack://new_ui/./node_modules/multiformats/esm/src/bases/base8.js","webpack://new_ui/./node_modules/multiformats/esm/src/bases/base10.js","webpack://new_ui/./node_modules/multiformats/esm/src/bases/base16.js","webpack://new_ui/./node_modules/multiformats/esm/src/bases/base32.js","webpack://new_ui/./node_modules/multiformats/esm/src/bases/base36.js","webpack://new_ui/./node_modules/multiformats/esm/src/bases/base58.js","webpack://new_ui/./node_modules/multiformats/esm/src/bases/base64.js","webpack://new_ui/./node_modules/multiformats/esm/src/bases/base256emoji.js","webpack://new_ui/./node_modules/multiformats/esm/vendor/varint.js","webpack://new_ui/./node_modules/multiformats/esm/src/varint.js","webpack://new_ui/./node_modules/multiformats/esm/src/hashes/digest.js","webpack://new_ui/./node_modules/multiformats/esm/src/hashes/hasher.js","webpack://new_ui/./node_modules/multiformats/esm/src/hashes/sha2-browser.js","webpack://new_ui/./node_modules/multiformats/esm/src/hashes/identity.js","webpack://new_ui/./node_modules/multiformats/esm/src/codecs/raw.js","webpack://new_ui/./node_modules/multiformats/esm/src/codecs/json.js","webpack://new_ui/./node_modules/multiformats/esm/src/cid.js","webpack://new_ui/./node_modules/multiformats/esm/src/basics.js","webpack://new_ui/./node_modules/uint8arrays/esm/src/util/bases.js","webpack://new_ui/./node_modules/viem/_esm/accounts/utils/parseAccount.js","webpack://new_ui/./node_modules/viem/node_modules/abitype/dist/esm/human-readable/runtime/signatures.js","webpack://new_ui/./node_modules/viem/node_modules/abitype/dist/esm/errors.js","webpack://new_ui/./node_modules/viem/node_modules/abitype/dist/esm/human-readable/errors/abiItem.js","webpack://new_ui/./node_modules/viem/node_modules/abitype/dist/esm/human-readable/errors/abiParameter.js","webpack://new_ui/./node_modules/viem/node_modules/abitype/dist/esm/human-readable/errors/signature.js","webpack://new_ui/./node_modules/viem/node_modules/abitype/dist/esm/human-readable/errors/struct.js","webpack://new_ui/./node_modules/viem/node_modules/abitype/dist/esm/human-readable/errors/splitParameters.js","webpack://new_ui/./node_modules/viem/node_modules/abitype/dist/esm/human-readable/runtime/cache.js","webpack://new_ui/./node_modules/viem/node_modules/abitype/dist/esm/human-readable/runtime/utils.js","webpack://new_ui/./node_modules/viem/node_modules/abitype/dist/esm/human-readable/runtime/structs.js","webpack://new_ui/./node_modules/viem/node_modules/abitype/dist/esm/human-readable/parseAbi.js","webpack://new_ui/./node_modules/viem/_esm/actions/public/call.js","webpack://new_ui/./node_modules/viem/_esm/constants/contract.js","webpack://new_ui/./node_modules/viem/_esm/utils/errors/getCallError.js","webpack://new_ui/./node_modules/viem/_esm/actions/public/estimateFeesPerGas.js","webpack://new_ui/./node_modules/viem/_esm/errors/estimateGas.js","webpack://new_ui/./node_modules/viem/_esm/actions/public/estimateGas.js","webpack://new_ui/./node_modules/viem/_esm/utils/errors/getEstimateGasError.js","webpack://new_ui/./node_modules/viem/_esm/actions/public/estimateMaxPriorityFeePerGas.js","webpack://new_ui/./node_modules/viem/_esm/actions/public/getBlock.js","webpack://new_ui/./node_modules/viem/_esm/actions/public/getChainId.js","webpack://new_ui/./node_modules/viem/_esm/actions/public/getGasPrice.js","webpack://new_ui/./node_modules/viem/_esm/actions/public/getTransactionCount.js","webpack://new_ui/./node_modules/viem/_esm/utils/blob/blobsToCommitments.js","webpack://new_ui/./node_modules/viem/_esm/utils/blob/blobsToProofs.js","webpack://new_ui/./node_modules/viem/node_modules/@noble/hashes/esm/_sha2.js","webpack://new_ui/./node_modules/viem/node_modules/@noble/hashes/esm/sha256.js","webpack://new_ui/./node_modules/viem/_esm/errors/blob.js","webpack://new_ui/./node_modules/viem/_esm/actions/wallet/prepareTransactionRequest.js","webpack://new_ui/./node_modules/viem/_esm/utils/blob/commitmentsToVersionedHashes.js","webpack://new_ui/./node_modules/viem/_esm/utils/blob/commitmentToVersionedHash.js","webpack://new_ui/./node_modules/viem/_esm/utils/hash/sha256.js","webpack://new_ui/./node_modules/viem/_esm/utils/blob/toBlobSidecars.js","webpack://new_ui/./node_modules/viem/_esm/utils/blob/toBlobs.js","webpack://new_ui/./node_modules/viem/_esm/constants/blob.js","webpack://new_ui/./node_modules/viem/_esm/utils/transaction/getTransactionType.js","webpack://new_ui/./node_modules/viem/_esm/actions/wallet/sendRawTransaction.js","webpack://new_ui/./node_modules/viem/_esm/chains/definitions/mainnet.js","webpack://new_ui/./node_modules/viem/_esm/clients/createClient.js","webpack://new_ui/./node_modules/viem/_esm/actions/wallet/addChain.js","webpack://new_ui/./node_modules/viem/_esm/errors/account.js","webpack://new_ui/./node_modules/viem/_esm/utils/chain/assertCurrentChain.js","webpack://new_ui/./node_modules/viem/_esm/actions/wallet/sendTransaction.js","webpack://new_ui/./node_modules/viem/_esm/utils/errors/getTransactionError.js","webpack://new_ui/./node_modules/viem/_esm/actions/wallet/getAddresses.js","webpack://new_ui/./node_modules/viem/_esm/actions/wallet/getPermissions.js","webpack://new_ui/./node_modules/viem/_esm/actions/wallet/requestAddresses.js","webpack://new_ui/./node_modules/viem/_esm/actions/wallet/requestPermissions.js","webpack://new_ui/./node_modules/viem/_esm/actions/wallet/signMessage.js","webpack://new_ui/./node_modules/viem/_esm/actions/wallet/signTransaction.js","webpack://new_ui/./node_modules/viem/_esm/actions/wallet/signTypedData.js","webpack://new_ui/./node_modules/viem/_esm/actions/wallet/switchChain.js","webpack://new_ui/./node_modules/viem/_esm/actions/wallet/watchAsset.js","webpack://new_ui/./node_modules/viem/_esm/actions/wallet/writeContract.js","webpack://new_ui/./node_modules/viem/_esm/clients/decorators/wallet.js","webpack://new_ui/./node_modules/viem/_esm/actions/wallet/deployContract.js","webpack://new_ui/./node_modules/viem/_esm/clients/createWalletClient.js","webpack://new_ui/./node_modules/viem/_esm/utils/promise/withDedupe.js","webpack://new_ui/./node_modules/viem/_esm/clients/transports/createTransport.js","webpack://new_ui/./node_modules/viem/_esm/utils/buildRequest.js","webpack://new_ui/./node_modules/viem/_esm/clients/transports/custom.js","webpack://new_ui/./node_modules/viem/_esm/constants/abis.js","webpack://new_ui/./node_modules/viem/_esm/constants/contracts.js","webpack://new_ui/./node_modules/viem/_esm/constants/solidity.js","webpack://new_ui/./node_modules/viem/_esm/constants/unit.js","webpack://new_ui/./node_modules/viem/_esm/errors/abi.js","webpack://new_ui/./node_modules/viem/_esm/errors/address.js","webpack://new_ui/./node_modules/viem/_esm/errors/base.js","webpack://new_ui/./node_modules/viem/_esm/errors/block.js","webpack://new_ui/./node_modules/viem/_esm/errors/chain.js","webpack://new_ui/./node_modules/viem/_esm/utils/abi/formatAbiItemWithArgs.js","webpack://new_ui/./node_modules/viem/_esm/errors/contract.js","webpack://new_ui/./node_modules/viem/_esm/errors/cursor.js","webpack://new_ui/./node_modules/viem/_esm/errors/data.js","webpack://new_ui/./node_modules/viem/_esm/errors/encoding.js","webpack://new_ui/./node_modules/viem/_esm/errors/fee.js","webpack://new_ui/./node_modules/viem/_esm/errors/node.js","webpack://new_ui/./node_modules/viem/_esm/errors/request.js","webpack://new_ui/./node_modules/viem/_esm/errors/rpc.js","webpack://new_ui/./node_modules/viem/_esm/errors/stateOverride.js","webpack://new_ui/./node_modules/viem/_esm/errors/transaction.js","webpack://new_ui/./node_modules/viem/_esm/errors/utils.js","webpack://new_ui/./node_modules/viem/_esm/utils/encoding/fromBytes.js","webpack://new_ui/./node_modules/viem/_esm/utils/abi/decodeAbiParameters.js","webpack://new_ui/./node_modules/viem/_esm/utils/abi/decodeErrorResult.js","webpack://new_ui/./node_modules/viem/_esm/utils/abi/decodeFunctionResult.js","webpack://new_ui/./node_modules/viem/_esm/utils/abi/encodeAbiParameters.js","webpack://new_ui/./node_modules/viem/_esm/utils/abi/encodeDeployData.js","webpack://new_ui/./node_modules/viem/_esm/utils/abi/prepareEncodeFunctionData.js","webpack://new_ui/./node_modules/viem/_esm/utils/abi/encodeFunctionData.js","webpack://new_ui/./node_modules/viem/_esm/utils/abi/formatAbiItem.js","webpack://new_ui/./node_modules/viem/_esm/utils/abi/getAbiItem.js","webpack://new_ui/./node_modules/viem/_esm/utils/address/getAddress.js","webpack://new_ui/./node_modules/viem/_esm/utils/address/isAddress.js","webpack://new_ui/./node_modules/viem/_esm/utils/address/isAddressEqual.js","webpack://new_ui/./node_modules/viem/_esm/utils/chain/defineChain.js","webpack://new_ui/./node_modules/viem/_esm/utils/chain/getChainContractAddress.js","webpack://new_ui/./node_modules/viem/_esm/utils/cursor.js","webpack://new_ui/./node_modules/viem/_esm/utils/data/concat.js","webpack://new_ui/./node_modules/viem/_esm/utils/data/isHex.js","webpack://new_ui/./node_modules/viem/_esm/utils/data/pad.js","webpack://new_ui/./node_modules/viem/_esm/utils/data/size.js","webpack://new_ui/./node_modules/viem/_esm/utils/data/slice.js","webpack://new_ui/./node_modules/viem/_esm/utils/data/trim.js","webpack://new_ui/./node_modules/viem/_esm/utils/encoding/fromHex.js","webpack://new_ui/./node_modules/viem/_esm/utils/encoding/toBytes.js","webpack://new_ui/./node_modules/viem/_esm/utils/encoding/toHex.js","webpack://new_ui/./node_modules/viem/_esm/utils/errors/getNodeError.js","webpack://new_ui/./node_modules/viem/_esm/utils/formatters/block.js","webpack://new_ui/./node_modules/viem/_esm/utils/formatters/extract.js","webpack://new_ui/./node_modules/viem/_esm/utils/formatters/transaction.js","webpack://new_ui/./node_modules/viem/_esm/utils/formatters/transactionRequest.js","webpack://new_ui/./node_modules/viem/_esm/utils/getAction.js","webpack://new_ui/./node_modules/viem/node_modules/@noble/hashes/esm/_u64.js","webpack://new_ui/./node_modules/viem/node_modules/@noble/hashes/esm/sha3.js","webpack://new_ui/./node_modules/viem/_esm/utils/hash/keccak256.js","webpack://new_ui/./node_modules/viem/_esm/utils/hash/toEventSelector.js","webpack://new_ui/./node_modules/viem/_esm/utils/hash/toFunctionSelector.js","webpack://new_ui/./node_modules/viem/_esm/utils/hash/hashSignature.js","webpack://new_ui/./node_modules/viem/node_modules/abitype/dist/esm/human-readable/formatAbiParameter.js","webpack://new_ui/./node_modules/viem/node_modules/abitype/dist/esm/human-readable/formatAbiParameters.js","webpack://new_ui/./node_modules/viem/_esm/utils/hash/toSignature.js","webpack://new_ui/./node_modules/viem/node_modules/abitype/dist/esm/human-readable/formatAbiItem.js","webpack://new_ui/./node_modules/viem/_esm/utils/hash/normalizeSignature.js","webpack://new_ui/./node_modules/viem/_esm/utils/hash/toSignatureHash.js","webpack://new_ui/./node_modules/viem/_esm/utils/lru.js","webpack://new_ui/./node_modules/viem/_esm/utils/promise/createBatchScheduler.js","webpack://new_ui/./node_modules/viem/_esm/utils/promise/withRetry.js","webpack://new_ui/./node_modules/viem/_esm/utils/stateOverride.js","webpack://new_ui/./node_modules/viem/_esm/utils/stringify.js","webpack://new_ui/./node_modules/viem/_esm/utils/transaction/assertRequest.js","webpack://new_ui/./node_modules/viem/_esm/utils/regex.js","webpack://new_ui/./node_modules/viem/_esm/utils/typedData.js","webpack://new_ui/./node_modules/viem/_esm/utils/uid.js","webpack://new_ui/./node_modules/viem/_esm/utils/unit/formatEther.js","webpack://new_ui/./node_modules/viem/_esm/utils/unit/formatGwei.js","webpack://new_ui/./node_modules/viem/_esm/utils/unit/formatUnits.js","webpack://new_ui/./node_modules/viem/_esm/utils/wait.js","webpack://new_ui/./node_modules/viem/node_modules/@noble/hashes/esm/_assert.js","webpack://new_ui/./node_modules/viem/node_modules/@noble/hashes/esm/utils.js","webpack://new_ui/./node_modules/viem/node_modules/abitype/dist/esm/regex.js","webpack://new_ui/./node_modules/@tanstack/react-query/build/lib/QueryErrorResetBoundary.mjs","webpack://new_ui/./node_modules/@tanstack/query-sync-storage-persister/build/lib/index.mjs","webpack://new_ui/./node_modules/@tanstack/query-core/build/lib/utils.mjs","webpack://new_ui/./node_modules/@tanstack/query-core/build/lib/logger.mjs","webpack://new_ui/./node_modules/@tanstack/query-core/build/lib/notifyManager.mjs","webpack://new_ui/./node_modules/@tanstack/query-core/build/lib/subscribable.mjs","webpack://new_ui/./node_modules/@tanstack/query-core/build/lib/focusManager.mjs","webpack://new_ui/./node_modules/@tanstack/query-core/build/lib/onlineManager.mjs","webpack://new_ui/./node_modules/@tanstack/query-core/build/lib/retryer.mjs","webpack://new_ui/./node_modules/@tanstack/query-core/build/lib/removable.mjs","webpack://new_ui/./node_modules/@tanstack/query-core/build/lib/query.mjs","webpack://new_ui/./node_modules/@tanstack/query-core/build/lib/queryCache.mjs","webpack://new_ui/./node_modules/@tanstack/query-core/build/lib/mutation.mjs","webpack://new_ui/./node_modules/@tanstack/query-core/build/lib/mutationCache.mjs","webpack://new_ui/./node_modules/@tanstack/query-core/build/lib/infiniteQueryBehavior.mjs","webpack://new_ui/./node_modules/@tanstack/query-core/build/lib/queryClient.mjs","webpack://new_ui/./node_modules/@tanstack/query-core/build/lib/hydration.mjs","webpack://new_ui/./node_modules/@tanstack/query-persist-client-core/build/lib/persist.mjs","webpack://new_ui/./node_modules/@tanstack/react-query/build/lib/QueryClientProvider.mjs","webpack://new_ui/./node_modules/@tanstack/react-query/build/lib/isRestoring.mjs","webpack://new_ui/./node_modules/@tanstack/react-query/build/lib/useSyncExternalStore.mjs","webpack://new_ui/./node_modules/@tanstack/query-core/build/lib/mutationObserver.mjs","webpack://new_ui/./node_modules/@tanstack/react-query/build/lib/useMutation.mjs","webpack://new_ui/./node_modules/@tanstack/query-core/build/lib/queryObserver.mjs","webpack://new_ui/./node_modules/wagmi/dist/index.js","webpack://new_ui/./node_modules/@tanstack/react-query/build/lib/utils.mjs"],"sourcesContent":["'use strict';\n\nvar necc = require('@noble/secp256k1');\nvar hmac = require('@noble/hashes/hmac');\nvar sha256 = require('@noble/hashes/sha256');\n\nfunction _interopNamespaceDefault(e) {\n var n = Object.create(null);\n if (e) {\n Object.keys(e).forEach(function (k) {\n if (k !== 'default') {\n var d = Object.getOwnPropertyDescriptor(e, k);\n Object.defineProperty(n, k, d.get ? d : {\n enumerable: true,\n get: function () { return e[k]; }\n });\n }\n });\n }\n n.default = e;\n return Object.freeze(n);\n}\n\nvar necc__namespace = /*#__PURE__*/_interopNamespaceDefault(necc);\n\n/*\n * Copyright (c) 2023 Jose-Luis Landabaso\n * Distributed under the MIT software license.\n *\n * This file includes code from the following sources:\n * * Paul Miller's @noble/secp256k1 (specifically, the privateAdd,\n * privateNegate, pointAddScalar, and pointMultiply functions).\n * * Some pieces from tiny-secp256k1\n * (https://github.com/bitcoinjs/tiny-secp256k1)\n * * It also uses code from BitGo's BitGoJS library\n * (https://github.com/BitGo/BitGoJS)\n *\n * This package's tests are based on modified versions of tests from\n * tiny-secp256k1 (https://github.com/bitcoinjs/tiny-secp256k1/tests).\n */\n\nnecc__namespace.utils.hmacSha256Sync = (key, ...msgs) =>\n hmac.hmac(sha256.sha256, key, necc__namespace.utils.concatBytes(...msgs));\nnecc__namespace.utils.sha256Sync = (...msgs) => sha256.sha256(necc__namespace.utils.concatBytes(...msgs));\n\nconst normalizePrivateKey = necc__namespace.utils._normalizePrivateKey;\n\nconst HASH_SIZE = 32;\nconst TWEAK_SIZE = 32;\nconst BN32_N = new Uint8Array([\n 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,\n 254, 186, 174, 220, 230, 175, 72, 160, 59, 191, 210, 94, 140, 208, 54, 65, 65\n]);\nconst EXTRA_DATA_SIZE = 32;\n\nfunction cmpBN32(data1, data2) {\n for (let i = 0; i < 32; ++i) {\n if (data1[i] !== data2[i]) {\n return data1[i] < data2[i] ? -1 : 1;\n }\n }\n return 0;\n}\n\nfunction isTweak(tweak) {\n // Check that the tweak is a Uint8Array of the correct length\n if (\n !(tweak instanceof Uint8Array) ||\n tweak.length !== TWEAK_SIZE ||\n cmpBN32(tweak, BN32_N) >= 0\n ) {\n return false;\n }\n return true;\n}\n\nfunction isSignature(signature) {\n return (\n signature instanceof Uint8Array &&\n signature.length === 64 &&\n cmpBN32(signature.subarray(0, 32), BN32_N) < 0 &&\n cmpBN32(signature.subarray(32, 64), BN32_N) < 0\n );\n}\n\nfunction isHash(h) {\n return h instanceof Uint8Array && h.length === HASH_SIZE;\n}\n\nfunction isExtraData(e) {\n return (\n e === undefined || (e instanceof Uint8Array && e.length === EXTRA_DATA_SIZE)\n );\n}\n\nfunction hexToNumber(hex) {\n if (typeof hex !== 'string') {\n throw new TypeError('hexToNumber: expected string, got ' + typeof hex);\n }\n return BigInt(`0x${hex}`);\n}\n\nfunction bytesToNumber(bytes) {\n return hexToNumber(necc__namespace.utils.bytesToHex(bytes));\n}\n\nfunction normalizeScalar(scalar) {\n let num;\n if (typeof scalar === 'bigint') {\n num = scalar;\n } else if (\n typeof scalar === 'number' &&\n Number.isSafeInteger(scalar) &&\n scalar >= 0\n ) {\n num = BigInt(scalar);\n } else if (typeof scalar === 'string') {\n if (scalar.length !== 64)\n throw new Error('Expected 32 bytes of private scalar');\n num = hexToNumber(scalar);\n } else if (scalar instanceof Uint8Array) {\n if (scalar.length !== 32)\n throw new Error('Expected 32 bytes of private scalar');\n num = bytesToNumber(scalar);\n } else {\n throw new TypeError('Expected valid private scalar');\n }\n if (num < 0) throw new Error('Expected private scalar >= 0');\n return num;\n}\n\nconst _privateAdd = (privateKey, tweak) => {\n const p = normalizePrivateKey(privateKey);\n const t = normalizeScalar(tweak);\n const add = necc__namespace.utils._bigintTo32Bytes(necc__namespace.utils.mod(p + t, necc__namespace.CURVE.n));\n if (necc__namespace.utils.isValidPrivateKey(add)) return add;\n else return null;\n};\n\nconst _privateSub = (privateKey, tweak) => {\n const p = normalizePrivateKey(privateKey);\n const t = normalizeScalar(tweak);\n const sub = necc__namespace.utils._bigintTo32Bytes(necc__namespace.utils.mod(p - t, necc__namespace.CURVE.n));\n if (necc__namespace.utils.isValidPrivateKey(sub)) return sub;\n else return null;\n};\n\nconst _privateNegate = privateKey => {\n const p = normalizePrivateKey(privateKey);\n const not = necc__namespace.utils._bigintTo32Bytes(necc__namespace.CURVE.n - p);\n if (necc__namespace.utils.isValidPrivateKey(not)) return not;\n else return null;\n};\n\nconst _pointAddScalar = (p, tweak, isCompressed) => {\n const P = necc__namespace.Point.fromHex(p);\n const t = normalizeScalar(tweak);\n const Q = necc__namespace.Point.BASE.multiplyAndAddUnsafe(P, t, 1n);\n if (!Q) throw new Error('Tweaked point at infinity');\n return Q.toRawBytes(isCompressed);\n};\n\nconst _pointMultiply = (p, tweak, isCompressed) => {\n const P = necc__namespace.Point.fromHex(p);\n const h = typeof tweak === 'string' ? tweak : necc__namespace.utils.bytesToHex(tweak);\n const t = BigInt(`0x${h}`);\n return P.multiply(t).toRawBytes(isCompressed);\n};\n\nfunction assumeCompression(compressed, p) {\n if (compressed === undefined) {\n return p !== undefined ? isPointCompressed(p) : true;\n }\n return compressed ? true : false;\n}\n\nfunction throwToNull(fn) {\n try {\n return fn();\n } catch (e) {\n return null;\n }\n}\n\nfunction _isPoint(p, xOnly) {\n if ((p.length === 32) !== xOnly) return false;\n try {\n return !!necc__namespace.Point.fromHex(p);\n } catch (e) {\n return false;\n }\n}\n\nfunction isPoint(p) {\n return _isPoint(p, false);\n}\n\nfunction isPointCompressed(p) {\n const PUBLIC_KEY_COMPRESSED_SIZE = 33;\n return _isPoint(p, false) && p.length === PUBLIC_KEY_COMPRESSED_SIZE;\n}\n\nfunction isPrivate(d) {\n return necc__namespace.utils.isValidPrivateKey(d);\n}\n\nfunction isXOnlyPoint(p) {\n return _isPoint(p, true);\n}\n\nfunction xOnlyPointAddTweak(p, tweak) {\n if (!isXOnlyPoint(p)) {\n throw new Error('Expected Point');\n }\n if (!isTweak(tweak)) {\n throw new Error('Expected Tweak');\n }\n return throwToNull(() => {\n const P = _pointAddScalar(p, tweak, true);\n const parity = P[0] % 2 === 1 ? 1 : 0;\n return { parity, xOnlyPubkey: P.slice(1) };\n });\n}\n\nfunction xOnlyPointFromPoint(p) {\n if (!isPoint(p)) {\n throw new Error('Expected Point');\n }\n return p.slice(1, 33);\n}\n\nfunction pointFromScalar(sk, compressed) {\n if (!isPrivate(sk)) {\n throw new Error('Expected Private');\n }\n return throwToNull(() =>\n necc__namespace.getPublicKey(sk, assumeCompression(compressed))\n );\n}\n\nfunction xOnlyPointFromScalar(d) {\n if (!isPrivate(d)) {\n throw new Error('Expected Private');\n }\n return xOnlyPointFromPoint(pointFromScalar(d));\n}\n\nfunction pointCompress(p, compressed) {\n if (!isPoint(p)) {\n throw new Error('Expected Point');\n }\n return necc__namespace.Point.fromHex(p).toRawBytes(assumeCompression(compressed, p));\n}\n\nfunction pointMultiply(a, tweak, compressed) {\n if (!isPoint(a)) {\n throw new Error('Expected Point');\n }\n if (!isTweak(tweak)) {\n throw new Error('Expected Tweak');\n }\n return throwToNull(() =>\n _pointMultiply(a, tweak, assumeCompression(compressed, a))\n );\n}\n\nfunction pointAdd(a, b, compressed) {\n if (!isPoint(a) || !isPoint(b)) {\n throw new Error('Expected Point');\n }\n return throwToNull(() => {\n const A = necc__namespace.Point.fromHex(a);\n const B = necc__namespace.Point.fromHex(b);\n if (A.equals(B.negate())) {\n //https://github.com/paulmillr/noble-secp256k1/issues/91\n return null;\n } else {\n return A.add(B).toRawBytes(assumeCompression(compressed, a));\n }\n });\n}\nfunction pointAddScalar(p, tweak, compressed) {\n if (!isPoint(p)) {\n throw new Error('Expected Point');\n }\n if (!isTweak(tweak)) {\n throw new Error('Expected Tweak');\n }\n return throwToNull(() =>\n _pointAddScalar(p, tweak, assumeCompression(compressed, p))\n );\n}\n\nfunction privateAdd(d, tweak) {\n if (isPrivate(d) === false) {\n throw new Error('Expected Private');\n }\n if (isTweak(tweak) === false) {\n throw new Error('Expected Tweak');\n }\n return throwToNull(() => _privateAdd(d, tweak));\n}\n\nfunction privateSub(d, tweak) {\n if (isPrivate(d) === false) {\n throw new Error('Expected Private');\n }\n if (isTweak(tweak) === false) {\n throw new Error('Expected Tweak');\n }\n return throwToNull(() => _privateSub(d, tweak));\n}\n\nfunction privateNegate(d) {\n if (isPrivate(d) === false) {\n throw new Error('Expected Private');\n }\n return _privateNegate(d);\n}\n\nfunction sign(h, d, e) {\n if (!isPrivate(d)) {\n throw new Error('Expected Private');\n }\n if (!isHash(h)) {\n throw new Error('Expected Scalar');\n }\n if (!isExtraData(e)) {\n throw new Error('Expected Extra Data (32 bytes)');\n }\n return necc__namespace.signSync(h, d, { der: false, extraEntropy: e });\n}\n\nfunction signSchnorr(h, d, e = Buffer.alloc(32, 0x00)) {\n if (!isPrivate(d)) {\n throw new Error('Expected Private');\n }\n if (!isHash(h)) {\n throw new Error('Expected Scalar');\n }\n if (!isExtraData(e)) {\n throw new Error('Expected Extra Data (32 bytes)');\n }\n return necc__namespace.schnorr.signSync(h, d, e);\n}\n\nfunction verify(h, Q, signature, strict) {\n if (!isPoint(Q)) {\n throw new Error('Expected Point');\n }\n if (!isSignature(signature)) {\n throw new Error('Expected Signature');\n }\n if (!isHash(h)) {\n throw new Error('Expected Scalar');\n }\n return necc__namespace.verify(signature, h, Q, { strict });\n}\n\nfunction verifySchnorr(h, Q, signature) {\n if (!isXOnlyPoint(Q)) {\n throw new Error('Expected Point');\n }\n if (!isSignature(signature)) {\n throw new Error('Expected Signature');\n }\n if (!isHash(h)) {\n throw new Error('Expected Scalar');\n }\n return necc__namespace.schnorr.verifySync(signature, h, Q);\n}\n\nexports.isPoint = isPoint;\nexports.isPointCompressed = isPointCompressed;\nexports.isPrivate = isPrivate;\nexports.isXOnlyPoint = isXOnlyPoint;\nexports.pointAdd = pointAdd;\nexports.pointAddScalar = pointAddScalar;\nexports.pointCompress = pointCompress;\nexports.pointFromScalar = pointFromScalar;\nexports.pointMultiply = pointMultiply;\nexports.privateAdd = privateAdd;\nexports.privateNegate = privateNegate;\nexports.privateSub = privateSub;\nexports.sign = sign;\nexports.signSchnorr = signSchnorr;\nexports.verify = verify;\nexports.verifySchnorr = verifySchnorr;\nexports.xOnlyPointAddTweak = xOnlyPointAddTweak;\nexports.xOnlyPointFromPoint = xOnlyPointFromPoint;\nexports.xOnlyPointFromScalar = xOnlyPointFromScalar;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.output = exports.exists = exports.hash = exports.bytes = exports.bool = exports.number = void 0;\nfunction number(n) {\n if (!Number.isSafeInteger(n) || n < 0)\n throw new Error(`Wrong positive integer: ${n}`);\n}\nexports.number = number;\nfunction bool(b) {\n if (typeof b !== 'boolean')\n throw new Error(`Expected boolean, not ${b}`);\n}\nexports.bool = bool;\n// copied from utils\nfunction isBytes(a) {\n return (a instanceof Uint8Array ||\n (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array'));\n}\nfunction bytes(b, ...lengths) {\n if (!isBytes(b))\n throw new Error('Expected Uint8Array');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new Error(`Expected Uint8Array of length ${lengths}, not of length=${b.length}`);\n}\nexports.bytes = bytes;\nfunction hash(hash) {\n if (typeof hash !== 'function' || typeof hash.create !== 'function')\n throw new Error('Hash should be wrapped by utils.wrapConstructor');\n number(hash.outputLen);\n number(hash.blockLen);\n}\nexports.hash = hash;\nfunction exists(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}\nexports.exists = exists;\nfunction output(out, instance) {\n bytes(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}\nexports.output = output;\nconst assert = { number, bool, bytes, hash, exists, output };\nexports.default = assert;\n//# sourceMappingURL=_assert.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SHA2 = void 0;\nconst _assert_js_1 = require(\"./_assert.js\");\nconst utils_js_1 = require(\"./utils.js\");\n// Polyfill for Safari 14\nfunction 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// Base SHA2 class (RFC 6234)\nclass SHA2 extends utils_js_1.Hash {\n constructor(blockLen, outputLen, padOffset, isLE) {\n super();\n this.blockLen = blockLen;\n this.outputLen = outputLen;\n this.padOffset = padOffset;\n this.isLE = isLE;\n this.finished = false;\n this.length = 0;\n this.pos = 0;\n this.destroyed = false;\n this.buffer = new Uint8Array(blockLen);\n this.view = (0, utils_js_1.createView)(this.buffer);\n }\n update(data) {\n (0, _assert_js_1.exists)(this);\n const { view, buffer, blockLen } = this;\n data = (0, utils_js_1.toBytes)(data);\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path: we have at least one block in input, cast it to view and process\n if (take === blockLen) {\n const dataView = (0, utils_js_1.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 (0, _assert_js_1.exists)(this);\n (0, _assert_js_1.output)(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 this.buffer.subarray(pos).fill(0);\n // we have less than padOffset left in buffer, so we cannot put length in 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 = (0, utils_js_1.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.length = length;\n to.pos = pos;\n to.finished = finished;\n to.destroyed = destroyed;\n if (length % blockLen)\n to.buffer.set(buffer);\n return to;\n }\n}\nexports.SHA2 = SHA2;\n//# sourceMappingURL=_sha2.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.add5L = exports.add5H = exports.add4H = exports.add4L = exports.add3H = exports.add3L = exports.add = exports.rotlBL = exports.rotlBH = exports.rotlSL = exports.rotlSH = exports.rotr32L = exports.rotr32H = exports.rotrBL = exports.rotrBH = exports.rotrSL = exports.rotrSH = exports.shrSL = exports.shrSH = exports.toBig = exports.split = exports.fromBig = void 0;\nconst U32_MASK64 = /* @__PURE__ */ BigInt(2 ** 32 - 1);\nconst _32n = /* @__PURE__ */ BigInt(32);\n// We are not using BigUint64Array, because they are extremely slow as per 2022\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}\nexports.fromBig = fromBig;\nfunction split(lst, le = false) {\n let Ah = new Uint32Array(lst.length);\n let Al = new Uint32Array(lst.length);\n for (let i = 0; i < lst.length; i++) {\n const { h, l } = fromBig(lst[i], le);\n [Ah[i], Al[i]] = [h, l];\n }\n return [Ah, Al];\n}\nexports.split = split;\nconst toBig = (h, l) => (BigInt(h >>> 0) << _32n) | BigInt(l >>> 0);\nexports.toBig = toBig;\n// for Shift in [0, 32)\nconst shrSH = (h, _l, s) => h >>> s;\nexports.shrSH = shrSH;\nconst shrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\nexports.shrSL = shrSL;\n// Right rotate for Shift in [1, 32)\nconst rotrSH = (h, l, s) => (h >>> s) | (l << (32 - s));\nexports.rotrSH = rotrSH;\nconst rotrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\nexports.rotrSL = rotrSL;\n// Right rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotrBH = (h, l, s) => (h << (64 - s)) | (l >>> (s - 32));\nexports.rotrBH = rotrBH;\nconst rotrBL = (h, l, s) => (h >>> (s - 32)) | (l << (64 - s));\nexports.rotrBL = rotrBL;\n// Right rotate for shift===32 (just swaps l&h)\nconst rotr32H = (_h, l) => l;\nexports.rotr32H = rotr32H;\nconst rotr32L = (h, _l) => h;\nexports.rotr32L = rotr32L;\n// Left rotate for Shift in [1, 32)\nconst rotlSH = (h, l, s) => (h << s) | (l >>> (32 - s));\nexports.rotlSH = rotlSH;\nconst rotlSL = (h, l, s) => (l << s) | (h >>> (32 - s));\nexports.rotlSL = rotlSL;\n// Left rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotlBH = (h, l, s) => (l << (s - 32)) | (h >>> (64 - s));\nexports.rotlBH = rotlBH;\nconst rotlBL = (h, l, s) => (h << (s - 32)) | (l >>> (64 - s));\nexports.rotlBL = rotlBL;\n// JS uses 32-bit signed integers for bitwise operations which means we cannot\n// simple take carry out of low bit sum by shift, we need to use division.\nfunction add(Ah, Al, Bh, Bl) {\n const l = (Al >>> 0) + (Bl >>> 0);\n return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 };\n}\nexports.add = add;\n// Addition with more than 2 elements\nconst add3L = (Al, Bl, Cl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);\nexports.add3L = add3L;\nconst add3H = (low, Ah, Bh, Ch) => (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0;\nexports.add3H = add3H;\nconst add4L = (Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);\nexports.add4L = add4L;\nconst add4H = (low, Ah, Bh, Ch, Dh) => (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0;\nexports.add4H = add4H;\nconst add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);\nexports.add5L = add5L;\nconst add5H = (low, Ah, Bh, Ch, Dh, Eh) => (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;\nexports.add5H = add5H;\n// prettier-ignore\nconst u64 = {\n fromBig, split, toBig,\n shrSH, shrSL,\n rotrSH, rotrSL, rotrBH, rotrBL,\n rotr32H, rotr32L,\n rotlSH, rotlSL, rotlBH, rotlBL,\n add, add3L, add3H, add4L, add4H, add5H, add5L,\n};\nexports.default = u64;\n//# sourceMappingURL=_u64.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.crypto = void 0;\nexports.crypto = typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined;\n//# sourceMappingURL=crypto.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hmac = exports.HMAC = void 0;\nconst _assert_js_1 = require(\"./_assert.js\");\nconst utils_js_1 = require(\"./utils.js\");\n// HMAC (RFC 2104)\nclass HMAC extends utils_js_1.Hash {\n constructor(hash, _key) {\n super();\n this.finished = false;\n this.destroyed = false;\n (0, _assert_js_1.hash)(hash);\n const key = (0, utils_js_1.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 pad.fill(0);\n }\n update(buf) {\n (0, _assert_js_1.exists)(this);\n this.iHash.update(buf);\n return this;\n }\n digestInto(out) {\n (0, _assert_js_1.exists)(this);\n (0, _assert_js_1.bytes)(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 destroy() {\n this.destroyed = true;\n this.oHash.destroy();\n this.iHash.destroy();\n }\n}\nexports.HMAC = HMAC;\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 */\nconst hmac = (hash, key, message) => new HMAC(hash, key).update(message).digest();\nexports.hmac = hmac;\nexports.hmac.create = (hash, key) => new HMAC(hash, key);\n//# sourceMappingURL=hmac.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ripemd160 = exports.RIPEMD160 = void 0;\nconst _sha2_js_1 = require(\"./_sha2.js\");\nconst utils_js_1 = require(\"./utils.js\");\n// https://homes.esat.kuleuven.be/~bosselae/ripemd160.html\n// https://homes.esat.kuleuven.be/~bosselae/ripemd160/pdf/AB-9601/AB-9601.pdf\nconst Rho = /* @__PURE__ */ new Uint8Array([7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8]);\nconst Id = /* @__PURE__ */ Uint8Array.from({ length: 16 }, (_, i) => i);\nconst Pi = /* @__PURE__ */ Id.map((i) => (9 * i + 5) % 16);\nlet idxL = [Id];\nlet idxR = [Pi];\nfor (let i = 0; i < 4; i++)\n for (let j of [idxL, idxR])\n j.push(j[i].map((k) => Rho[k]));\nconst shifts = /* @__PURE__ */ [\n [11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8],\n [12, 13, 11, 15, 6, 9, 9, 7, 12, 15, 11, 13, 7, 8, 7, 7],\n [13, 15, 14, 11, 7, 7, 6, 8, 13, 14, 13, 12, 5, 5, 6, 9],\n [14, 11, 12, 14, 8, 6, 5, 5, 15, 12, 15, 14, 9, 9, 8, 6],\n [15, 12, 13, 13, 9, 5, 8, 6, 14, 11, 12, 11, 8, 6, 5, 5],\n].map((i) => new Uint8Array(i));\nconst shiftsL = /* @__PURE__ */ idxL.map((idx, i) => idx.map((j) => shifts[i][j]));\nconst shiftsR = /* @__PURE__ */ idxR.map((idx, i) => idx.map((j) => shifts[i][j]));\nconst Kl = /* @__PURE__ */ new Uint32Array([\n 0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e,\n]);\nconst Kr = /* @__PURE__ */ new Uint32Array([\n 0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000,\n]);\n// The rotate left (circular left shift) operation for uint32\nconst rotl = (word, shift) => (word << shift) | (word >>> (32 - shift));\n// It's called f() in spec.\nfunction f(group, x, y, z) {\n if (group === 0)\n return x ^ y ^ z;\n else if (group === 1)\n return (x & y) | (~x & z);\n else if (group === 2)\n return (x | ~y) ^ z;\n else if (group === 3)\n return (x & z) | (y & ~z);\n else\n return x ^ (y | ~z);\n}\n// Temporary buffer, not used to store anything between runs\nconst BUF = /* @__PURE__ */ new Uint32Array(16);\nclass RIPEMD160 extends _sha2_js_1.SHA2 {\n constructor() {\n super(64, 20, 8, true);\n this.h0 = 0x67452301 | 0;\n this.h1 = 0xefcdab89 | 0;\n this.h2 = 0x98badcfe | 0;\n this.h3 = 0x10325476 | 0;\n this.h4 = 0xc3d2e1f0 | 0;\n }\n get() {\n const { h0, h1, h2, h3, h4 } = this;\n return [h0, h1, h2, h3, h4];\n }\n set(h0, h1, h2, h3, h4) {\n this.h0 = h0 | 0;\n this.h1 = h1 | 0;\n this.h2 = h2 | 0;\n this.h3 = h3 | 0;\n this.h4 = h4 | 0;\n }\n process(view, offset) {\n for (let i = 0; i < 16; i++, offset += 4)\n BUF[i] = view.getUint32(offset, true);\n // prettier-ignore\n let al = this.h0 | 0, ar = al, bl = this.h1 | 0, br = bl, cl = this.h2 | 0, cr = cl, dl = this.h3 | 0, dr = dl, el = this.h4 | 0, er = el;\n // Instead of iterating 0 to 80, we split it into 5 groups\n // And use the groups in constants, functions, etc. Much simpler\n for (let group = 0; group < 5; group++) {\n const rGroup = 4 - group;\n const hbl = Kl[group], hbr = Kr[group]; // prettier-ignore\n const rl = idxL[group], rr = idxR[group]; // prettier-ignore\n const sl = shiftsL[group], sr = shiftsR[group]; // prettier-ignore\n for (let i = 0; i < 16; i++) {\n const tl = (rotl(al + f(group, bl, cl, dl) + BUF[rl[i]] + hbl, sl[i]) + el) | 0;\n al = el, el = dl, dl = rotl(cl, 10) | 0, cl = bl, bl = tl; // prettier-ignore\n }\n // 2 loops are 10% faster\n for (let i = 0; i < 16; i++) {\n const tr = (rotl(ar + f(rGroup, br, cr, dr) + BUF[rr[i]] + hbr, sr[i]) + er) | 0;\n ar = er, er = dr, dr = rotl(cr, 10) | 0, cr = br, br = tr; // prettier-ignore\n }\n }\n // Add the compressed chunk to the current hash value\n this.set((this.h1 + cl + dr) | 0, (this.h2 + dl + er) | 0, (this.h3 + el + ar) | 0, (this.h4 + al + br) | 0, (this.h0 + bl + cr) | 0);\n }\n roundClean() {\n BUF.fill(0);\n }\n destroy() {\n this.destroyed = true;\n this.buffer.fill(0);\n this.set(0, 0, 0, 0, 0);\n }\n}\nexports.RIPEMD160 = RIPEMD160;\n/**\n * RIPEMD-160 - a hash function from 1990s.\n * @param message - msg that would be hashed\n */\nexports.ripemd160 = (0, utils_js_1.wrapConstructor)(() => new RIPEMD160());\n//# sourceMappingURL=ripemd160.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sha1 = void 0;\nconst _sha2_js_1 = require(\"./_sha2.js\");\nconst utils_js_1 = require(\"./utils.js\");\n// SHA1 was cryptographically broken.\n// It is still widely used in legacy apps. Don't use it for a new protocol.\n// RFC 3174\nconst rotl = (word, shift) => (word << shift) | ((word >>> (32 - shift)) >>> 0);\n// Choice: a ? b : c\nconst Chi = (a, b, c) => (a & b) ^ (~a & c);\n// Majority function, true if any two inpust is true\nconst Maj = (a, b, c) => (a & b) ^ (a & c) ^ (b & c);\n// Initial state\nconst IV = /* @__PURE__ */ new Uint32Array([\n 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0,\n]);\n// Temporary buffer, not used to store anything between runs\n// Named this way because it matches specification.\nconst SHA1_W = /* @__PURE__ */ new Uint32Array(80);\nclass SHA1 extends _sha2_js_1.SHA2 {\n constructor() {\n super(64, 20, 8, false);\n this.A = IV[0] | 0;\n this.B = IV[1] | 0;\n this.C = IV[2] | 0;\n this.D = IV[3] | 0;\n this.E = IV[4] | 0;\n }\n get() {\n const { A, B, C, D, E } = this;\n return [A, B, C, D, E];\n }\n set(A, B, C, D, E) {\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 }\n process(view, offset) {\n for (let i = 0; i < 16; i++, offset += 4)\n SHA1_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 80; i++)\n SHA1_W[i] = rotl(SHA1_W[i - 3] ^ SHA1_W[i - 8] ^ SHA1_W[i - 14] ^ SHA1_W[i - 16], 1);\n // Compression function main loop, 80 rounds\n let { A, B, C, D, E } = this;\n for (let i = 0; i < 80; i++) {\n let F, K;\n if (i < 20) {\n F = Chi(B, C, D);\n K = 0x5a827999;\n }\n else if (i < 40) {\n F = B ^ C ^ D;\n K = 0x6ed9eba1;\n }\n else if (i < 60) {\n F = Maj(B, C, D);\n K = 0x8f1bbcdc;\n }\n else {\n F = B ^ C ^ D;\n K = 0xca62c1d6;\n }\n const T = (rotl(A, 5) + F + E + K + SHA1_W[i]) | 0;\n E = D;\n D = C;\n C = rotl(B, 30);\n B = A;\n A = T;\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 this.set(A, B, C, D, E);\n }\n roundClean() {\n SHA1_W.fill(0);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0);\n this.buffer.fill(0);\n }\n}\nexports.sha1 = (0, utils_js_1.wrapConstructor)(() => new SHA1());\n//# sourceMappingURL=sha1.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sha224 = exports.sha256 = void 0;\nconst _sha2_js_1 = require(\"./_sha2.js\");\nconst utils_js_1 = require(\"./utils.js\");\n// SHA2-256 need to try 2^128 hashes to execute birthday attack.\n// BTC network is doing 2^67 hashes/sec as per early 2023.\n// Choice: a ? b : c\nconst Chi = (a, b, c) => (a & b) ^ (~a & c);\n// Majority function, true if any two inpust is true\nconst Maj = (a, b, c) => (a & b) ^ (a & c) ^ (b & c);\n// Round constants:\n// first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311)\n// prettier-ignore\nconst SHA256_K = /* @__PURE__ */ new Uint32Array([\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// Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n// prettier-ignore\nconst IV = /* @__PURE__ */ new Uint32Array([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n]);\n// Temporary buffer, not used to store anything between runs\n// Named this way because it matches specification.\nconst SHA256_W = /* @__PURE__ */ new Uint32Array(64);\nclass SHA256 extends _sha2_js_1.SHA2 {\n constructor() {\n super(64, 32, 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 = IV[0] | 0;\n this.B = IV[1] | 0;\n this.C = IV[2] | 0;\n this.D = IV[3] | 0;\n this.E = IV[4] | 0;\n this.F = IV[5] | 0;\n this.G = IV[6] | 0;\n this.H = 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 = (0, utils_js_1.rotr)(W15, 7) ^ (0, utils_js_1.rotr)(W15, 18) ^ (W15 >>> 3);\n const s1 = (0, utils_js_1.rotr)(W2, 17) ^ (0, utils_js_1.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 = (0, utils_js_1.rotr)(E, 6) ^ (0, utils_js_1.rotr)(E, 11) ^ (0, utils_js_1.rotr)(E, 25);\n const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const sigma0 = (0, utils_js_1.rotr)(A, 2) ^ (0, utils_js_1.rotr)(A, 13) ^ (0, utils_js_1.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 SHA256_W.fill(0);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n this.buffer.fill(0);\n }\n}\n// Constants from https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf\nclass SHA224 extends SHA256 {\n constructor() {\n super();\n this.A = 0xc1059ed8 | 0;\n this.B = 0x367cd507 | 0;\n this.C = 0x3070dd17 | 0;\n this.D = 0xf70e5939 | 0;\n this.E = 0xffc00b31 | 0;\n this.F = 0x68581511 | 0;\n this.G = 0x64f98fa7 | 0;\n this.H = 0xbefa4fa4 | 0;\n this.outputLen = 28;\n }\n}\n/**\n * SHA2-256 hash function\n * @param message - data that would be hashed\n */\nexports.sha256 = (0, utils_js_1.wrapConstructor)(() => new SHA256());\nexports.sha224 = (0, utils_js_1.wrapConstructor)(() => new SHA224());\n//# sourceMappingURL=sha256.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sha384 = exports.sha512_256 = exports.sha512_224 = exports.sha512 = exports.SHA512 = void 0;\nconst _sha2_js_1 = require(\"./_sha2.js\");\nconst _u64_js_1 = require(\"./_u64.js\");\nconst utils_js_1 = require(\"./utils.js\");\n// Round contants (first 32 bits of the fractional parts of the cube roots of the first 80 primes 2..409):\n// prettier-ignore\nconst [SHA512_Kh, SHA512_Kl] = /* @__PURE__ */ (() => _u64_js_1.default.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))))();\n// Temporary buffer, not used to store anything between runs\nconst SHA512_W_H = /* @__PURE__ */ new Uint32Array(80);\nconst SHA512_W_L = /* @__PURE__ */ new Uint32Array(80);\nclass SHA512 extends _sha2_js_1.SHA2 {\n constructor() {\n super(128, 64, 16, false);\n // We cannot use array here since array allows indexing by variable which means optimizer/compiler cannot use registers.\n // Also looks cleaner and easier to verify with spec.\n // Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0x6a09e667 | 0;\n this.Al = 0xf3bcc908 | 0;\n this.Bh = 0xbb67ae85 | 0;\n this.Bl = 0x84caa73b | 0;\n this.Ch = 0x3c6ef372 | 0;\n this.Cl = 0xfe94f82b | 0;\n this.Dh = 0xa54ff53a | 0;\n this.Dl = 0x5f1d36f1 | 0;\n this.Eh = 0x510e527f | 0;\n this.El = 0xade682d1 | 0;\n this.Fh = 0x9b05688c | 0;\n this.Fl = 0x2b3e6c1f | 0;\n this.Gh = 0x1f83d9ab | 0;\n this.Gl = 0xfb41bd6b | 0;\n this.Hh = 0x5be0cd19 | 0;\n this.Hl = 0x137e2179 | 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_js_1.default.rotrSH(W15h, W15l, 1) ^ _u64_js_1.default.rotrSH(W15h, W15l, 8) ^ _u64_js_1.default.shrSH(W15h, W15l, 7);\n const s0l = _u64_js_1.default.rotrSL(W15h, W15l, 1) ^ _u64_js_1.default.rotrSL(W15h, W15l, 8) ^ _u64_js_1.default.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_js_1.default.rotrSH(W2h, W2l, 19) ^ _u64_js_1.default.rotrBH(W2h, W2l, 61) ^ _u64_js_1.default.shrSH(W2h, W2l, 6);\n const s1l = _u64_js_1.default.rotrSL(W2h, W2l, 19) ^ _u64_js_1.default.rotrBL(W2h, W2l, 61) ^ _u64_js_1.default.shrSL(W2h, W2l, 6);\n // SHA256_W[i] = s0 + s1 + SHA256_W[i - 7] + SHA256_W[i - 16];\n const SUMl = _u64_js_1.default.add4L(s0l, s1l, SHA512_W_L[i - 7], SHA512_W_L[i - 16]);\n const SUMh = _u64_js_1.default.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_js_1.default.rotrSH(Eh, El, 14) ^ _u64_js_1.default.rotrSH(Eh, El, 18) ^ _u64_js_1.default.rotrBH(Eh, El, 41);\n const sigma1l = _u64_js_1.default.rotrSL(Eh, El, 14) ^ _u64_js_1.default.rotrSL(Eh, El, 18) ^ _u64_js_1.default.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_js_1.default.add5L(Hl, sigma1l, CHIl, SHA512_Kl[i], SHA512_W_L[i]);\n const T1h = _u64_js_1.default.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_js_1.default.rotrSH(Ah, Al, 28) ^ _u64_js_1.default.rotrBH(Ah, Al, 34) ^ _u64_js_1.default.rotrBH(Ah, Al, 39);\n const sigma0l = _u64_js_1.default.rotrSL(Ah, Al, 28) ^ _u64_js_1.default.rotrBL(Ah, Al, 34) ^ _u64_js_1.default.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_js_1.default.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_js_1.default.add3L(T1l, sigma0l, MAJl);\n Ah = _u64_js_1.default.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_js_1.default.add(this.Ah | 0, this.Al | 0, Ah | 0, Al | 0));\n ({ h: Bh, l: Bl } = _u64_js_1.default.add(this.Bh | 0, this.Bl | 0, Bh | 0, Bl | 0));\n ({ h: Ch, l: Cl } = _u64_js_1.default.add(this.Ch | 0, this.Cl | 0, Ch | 0, Cl | 0));\n ({ h: Dh, l: Dl } = _u64_js_1.default.add(this.Dh | 0, this.Dl | 0, Dh | 0, Dl | 0));\n ({ h: Eh, l: El } = _u64_js_1.default.add(this.Eh | 0, this.El | 0, Eh | 0, El | 0));\n ({ h: Fh, l: Fl } = _u64_js_1.default.add(this.Fh | 0, this.Fl | 0, Fh | 0, Fl | 0));\n ({ h: Gh, l: Gl } = _u64_js_1.default.add(this.Gh | 0, this.Gl | 0, Gh | 0, Gl | 0));\n ({ h: Hh, l: Hl } = _u64_js_1.default.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 SHA512_W_H.fill(0);\n SHA512_W_L.fill(0);\n }\n destroy() {\n this.buffer.fill(0);\n this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n }\n}\nexports.SHA512 = SHA512;\nclass SHA512_224 extends SHA512 {\n constructor() {\n super();\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0x8c3d37c8 | 0;\n this.Al = 0x19544da2 | 0;\n this.Bh = 0x73e19966 | 0;\n this.Bl = 0x89dcd4d6 | 0;\n this.Ch = 0x1dfab7ae | 0;\n this.Cl = 0x32ff9c82 | 0;\n this.Dh = 0x679dd514 | 0;\n this.Dl = 0x582f9fcf | 0;\n this.Eh = 0x0f6d2b69 | 0;\n this.El = 0x7bd44da8 | 0;\n this.Fh = 0x77e36f73 | 0;\n this.Fl = 0x04c48942 | 0;\n this.Gh = 0x3f9d85a8 | 0;\n this.Gl = 0x6a1d36c8 | 0;\n this.Hh = 0x1112e6ad | 0;\n this.Hl = 0x91d692a1 | 0;\n this.outputLen = 28;\n }\n}\nclass SHA512_256 extends SHA512 {\n constructor() {\n super();\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0x22312194 | 0;\n this.Al = 0xfc2bf72c | 0;\n this.Bh = 0x9f555fa3 | 0;\n this.Bl = 0xc84c64c2 | 0;\n this.Ch = 0x2393b86b | 0;\n this.Cl = 0x6f53b151 | 0;\n this.Dh = 0x96387719 | 0;\n this.Dl = 0x5940eabd | 0;\n this.Eh = 0x96283ee2 | 0;\n this.El = 0xa88effe3 | 0;\n this.Fh = 0xbe5e1e25 | 0;\n this.Fl = 0x53863992 | 0;\n this.Gh = 0x2b0199fc | 0;\n this.Gl = 0x2c85b8aa | 0;\n this.Hh = 0x0eb72ddc | 0;\n this.Hl = 0x81c52ca2 | 0;\n this.outputLen = 32;\n }\n}\nclass SHA384 extends SHA512 {\n constructor() {\n super();\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0xcbbb9d5d | 0;\n this.Al = 0xc1059ed8 | 0;\n this.Bh = 0x629a292a | 0;\n this.Bl = 0x367cd507 | 0;\n this.Ch = 0x9159015a | 0;\n this.Cl = 0x3070dd17 | 0;\n this.Dh = 0x152fecd8 | 0;\n this.Dl = 0xf70e5939 | 0;\n this.Eh = 0x67332667 | 0;\n this.El = 0xffc00b31 | 0;\n this.Fh = 0x8eb44a87 | 0;\n this.Fl = 0x68581511 | 0;\n this.Gh = 0xdb0c2e0d | 0;\n this.Gl = 0x64f98fa7 | 0;\n this.Hh = 0x47b5481d | 0;\n this.Hl = 0xbefa4fa4 | 0;\n this.outputLen = 48;\n }\n}\nexports.sha512 = (0, utils_js_1.wrapConstructor)(() => new SHA512());\nexports.sha512_224 = (0, utils_js_1.wrapConstructor)(() => new SHA512_224());\nexports.sha512_256 = (0, utils_js_1.wrapConstructor)(() => new SHA512_256());\nexports.sha384 = (0, utils_js_1.wrapConstructor)(() => new SHA384());\n//# sourceMappingURL=sha512.js.map","\"use strict\";\n/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.randomBytes = exports.wrapXOFConstructorWithOpts = exports.wrapConstructorWithOpts = exports.wrapConstructor = exports.checkOpts = exports.Hash = exports.concatBytes = exports.toBytes = exports.utf8ToBytes = exports.asyncLoop = exports.nextTick = exports.hexToBytes = exports.bytesToHex = exports.isLE = exports.rotr = exports.createView = exports.u32 = exports.u8 = void 0;\n// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// node.js versions earlier than v19 don't declare it in global scope.\n// For node.js, package.json#exports field mapping rewrites import\n// from `crypto` to `cryptoNode`, which imports native module.\n// Makes the utils un-importable in browsers without a bundler.\n// Once node.js 18 is deprecated (2025-04-30), we can just drop the import.\nconst crypto_1 = require(\"@noble/hashes/crypto\");\n// Cast array to different type\nconst u8 = (arr) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\nexports.u8 = u8;\nconst u32 = (arr) => new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\nexports.u32 = u32;\nfunction isBytes(a) {\n return (a instanceof Uint8Array ||\n (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array'));\n}\n// Cast array to view\nconst createView = (arr) => new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\nexports.createView = createView;\n// The rotate right (circular right shift) operation for uint32\nconst rotr = (word, shift) => (word << (32 - shift)) | (word >>> shift);\nexports.rotr = rotr;\n// big-endian hardware is rare. Just in case someone still decides to run hashes:\n// early-throw an error because we don't support BE yet.\n// Other libraries would silently corrupt the data instead of throwing an error,\n// when they don't support it.\nexports.isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\nif (!exports.isLE)\n throw new Error('Non little-endian hardware is not supported');\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 * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nfunction bytesToHex(bytes) {\n if (!isBytes(bytes))\n throw new Error('Uint8Array expected');\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}\nexports.bytesToHex = bytesToHex;\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(char) {\n if (char >= asciis._0 && char <= asciis._9)\n return char - asciis._0;\n if (char >= asciis._A && char <= asciis._F)\n return char - (asciis._A - 10);\n if (char >= asciis._a && char <= asciis._f)\n return char - (asciis._a - 10);\n return;\n}\n/**\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nfunction hexToBytes(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2)\n throw new Error('padded 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;\n }\n return array;\n}\nexports.hexToBytes = hexToBytes;\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.\nconst nextTick = async () => { };\nexports.nextTick = nextTick;\n// Returns control to thread each 'tick' ms to avoid blocking\nasync function asyncLoop(iters, tick, cb) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick)\n continue;\n await (0, exports.nextTick)();\n ts += diff;\n }\n}\nexports.asyncLoop = asyncLoop;\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nfunction utf8ToBytes(str) {\n if (typeof str !== 'string')\n throw new Error(`utf8ToBytes expected string, got ${typeof str}`);\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\nexports.utf8ToBytes = utf8ToBytes;\n/**\n * Normalizes (non-hex) string or Uint8Array to Uint8Array.\n * Warning: when Uint8Array is passed, it would NOT get copied.\n * Keep in mind for future mutable operations.\n */\nfunction toBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n if (!isBytes(data))\n throw new Error(`expected Uint8Array, got ${typeof data}`);\n return data;\n}\nexports.toBytes = toBytes;\n/**\n * Copies several Uint8Arrays into one.\n */\nfunction concatBytes(...arrays) {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n if (!isBytes(a))\n throw new Error('Uint8Array expected');\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}\nexports.concatBytes = concatBytes;\n// For runtime check if class implements interface\nclass Hash {\n // Safe version that clones internal state\n clone() {\n return this._cloneInto();\n }\n}\nexports.Hash = Hash;\nconst toStr = {}.toString;\nfunction checkOpts(defaults, opts) {\n if (opts !== undefined && toStr.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}\nexports.checkOpts = checkOpts;\nfunction wrapConstructor(hashCons) {\n const hashC = (msg) => hashCons().update(toBytes(msg)).digest();\n const tmp = hashCons();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashCons();\n return hashC;\n}\nexports.wrapConstructor = wrapConstructor;\nfunction wrapConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\nexports.wrapConstructorWithOpts = wrapConstructorWithOpts;\nfunction wrapXOFConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\nexports.wrapXOFConstructorWithOpts = wrapXOFConstructorWithOpts;\n/**\n * Secure PRNG. Uses `crypto.getRandomValues`, which defers to OS.\n */\nfunction randomBytes(bytesLength = 32) {\n if (crypto_1.crypto && typeof crypto_1.crypto.getRandomValues === 'function') {\n return crypto_1.crypto.getRandomValues(new Uint8Array(bytesLength));\n }\n throw new Error('crypto.getRandomValues must be defined');\n}\nexports.randomBytes = randomBytes;\n//# sourceMappingURL=utils.js.map","\"use strict\";\n/*! noble-secp256k1 - MIT License (c) 2019 Paul Miller (paulmillr.com) */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.utils = exports.schnorr = exports.verify = exports.signSync = exports.sign = exports.getSharedSecret = exports.recoverPublicKey = exports.getPublicKey = exports.Signature = exports.Point = exports.CURVE = void 0;\nconst nodeCrypto = require(\"crypto\");\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst _3n = BigInt(3);\nconst _8n = BigInt(8);\nconst CURVE = Object.freeze({\n a: _0n,\n b: BigInt(7),\n P: BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f'),\n n: BigInt('0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141'),\n h: _1n,\n Gx: BigInt('55066263022277343669578718895168534326250603453777594175500187360389116729240'),\n Gy: BigInt('32670510020758816978083085130507043184471273380659243275938904335757337482424'),\n beta: BigInt('0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee'),\n});\nexports.CURVE = CURVE;\nconst divNearest = (a, b) => (a + b / _2n) / b;\nconst endo = {\n beta: BigInt('0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee'),\n splitScalar(k) {\n const { n } = CURVE;\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');\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('splitScalarEndo: Endomorphism failed, k=' + k);\n }\n return { k1neg, k1, k2neg, k2 };\n },\n};\nconst fieldLen = 32;\nconst groupLen = 32;\nconst hashLen = 32;\nconst compressedLen = fieldLen + 1;\nconst uncompressedLen = 2 * fieldLen + 1;\nfunction weierstrass(x) {\n const { a, b } = CURVE;\n const x2 = mod(x * x);\n const x3 = mod(x2 * x);\n return mod(x3 + a * x + b);\n}\nconst USE_ENDOMORPHISM = CURVE.a === _0n;\nclass ShaError extends Error {\n constructor(message) {\n super(message);\n }\n}\nfunction assertJacPoint(other) {\n if (!(other instanceof JacobianPoint))\n throw new TypeError('JacobianPoint expected');\n}\nclass JacobianPoint {\n constructor(x, y, z) {\n this.x = x;\n this.y = y;\n this.z = z;\n }\n static fromAffine(p) {\n if (!(p instanceof Point)) {\n throw new TypeError('JacobianPoint#fromAffine: expected Point');\n }\n if (p.equals(Point.ZERO))\n return JacobianPoint.ZERO;\n return new JacobianPoint(p.x, p.y, _1n);\n }\n static toAffineBatch(points) {\n const toInv = invertBatch(points.map((p) => p.z));\n return points.map((p, i) => p.toAffine(toInv[i]));\n }\n static normalizeZ(points) {\n return JacobianPoint.toAffineBatch(points).map(JacobianPoint.fromAffine);\n }\n equals(other) {\n assertJacPoint(other);\n const { x: X1, y: Y1, z: Z1 } = this;\n const { x: X2, y: Y2, z: Z2 } = other;\n const Z1Z1 = mod(Z1 * Z1);\n const Z2Z2 = mod(Z2 * Z2);\n const U1 = mod(X1 * Z2Z2);\n const U2 = mod(X2 * Z1Z1);\n const S1 = mod(mod(Y1 * Z2) * Z2Z2);\n const S2 = mod(mod(Y2 * Z1) * Z1Z1);\n return U1 === U2 && S1 === S2;\n }\n negate() {\n return new JacobianPoint(this.x, mod(-this.y), this.z);\n }\n double() {\n const { x: X1, y: Y1, z: Z1 } = this;\n const A = mod(X1 * X1);\n const B = mod(Y1 * Y1);\n const C = mod(B * B);\n const x1b = X1 + B;\n const D = mod(_2n * (mod(x1b * x1b) - A - C));\n const E = mod(_3n * A);\n const F = mod(E * E);\n const X3 = mod(F - _2n * D);\n const Y3 = mod(E * (D - X3) - _8n * C);\n const Z3 = mod(_2n * Y1 * Z1);\n return new JacobianPoint(X3, Y3, Z3);\n }\n add(other) {\n assertJacPoint(other);\n const { x: X1, y: Y1, z: Z1 } = this;\n const { x: X2, y: Y2, z: Z2 } = other;\n if (X2 === _0n || Y2 === _0n)\n return this;\n if (X1 === _0n || Y1 === _0n)\n return other;\n const Z1Z1 = mod(Z1 * Z1);\n const Z2Z2 = mod(Z2 * Z2);\n const U1 = mod(X1 * Z2Z2);\n const U2 = mod(X2 * Z1Z1);\n const S1 = mod(mod(Y1 * Z2) * Z2Z2);\n const S2 = mod(mod(Y2 * Z1) * Z1Z1);\n const H = mod(U2 - U1);\n const r = mod(S2 - S1);\n if (H === _0n) {\n if (r === _0n) {\n return this.double();\n }\n else {\n return JacobianPoint.ZERO;\n }\n }\n const HH = mod(H * H);\n const HHH = mod(H * HH);\n const V = mod(U1 * HH);\n const X3 = mod(r * r - HHH - _2n * V);\n const Y3 = mod(r * (V - X3) - S1 * HHH);\n const Z3 = mod(Z1 * Z2 * H);\n return new JacobianPoint(X3, Y3, Z3);\n }\n subtract(other) {\n return this.add(other.negate());\n }\n multiplyUnsafe(scalar) {\n const P0 = JacobianPoint.ZERO;\n if (typeof scalar === 'bigint' && scalar === _0n)\n return P0;\n let n = normalizeScalar(scalar);\n if (n === _1n)\n return this;\n if (!USE_ENDOMORPHISM) {\n let p = P0;\n let d = this;\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 let { k1neg, k1, k2neg, k2 } = endo.splitScalar(n);\n let k1p = P0;\n let k2p = P0;\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 JacobianPoint(mod(k2p.x * endo.beta), k2p.y, k2p.z);\n return k1p.add(k2p);\n }\n precomputeWindow(W) {\n const windows = USE_ENDOMORPHISM ? 128 / W + 1 : 256 / W + 1;\n const points = [];\n let p = this;\n let base = p;\n for (let window = 0; window < windows; window++) {\n base = p;\n points.push(base);\n for (let i = 1; i < 2 ** (W - 1); i++) {\n base = base.add(p);\n points.push(base);\n }\n p = base.double();\n }\n return points;\n }\n wNAF(n, affinePoint) {\n if (!affinePoint && this.equals(JacobianPoint.BASE))\n affinePoint = Point.BASE;\n const W = (affinePoint && affinePoint._WINDOW_SIZE) || 1;\n if (256 % W) {\n throw new Error('Point#wNAF: Invalid precomputation window, must be power of 2');\n }\n let precomputes = affinePoint && pointPrecomputes.get(affinePoint);\n if (!precomputes) {\n precomputes = this.precomputeWindow(W);\n if (affinePoint && W !== 1) {\n precomputes = JacobianPoint.normalizeZ(precomputes);\n pointPrecomputes.set(affinePoint, precomputes);\n }\n }\n let p = JacobianPoint.ZERO;\n let f = JacobianPoint.BASE;\n const windows = 1 + (USE_ENDOMORPHISM ? 128 / W : 256 / W);\n const windowSize = 2 ** (W - 1);\n const mask = BigInt(2 ** W - 1);\n const maxNumber = 2 ** W;\n const shiftBy = BigInt(W);\n for (let window = 0; window < windows; window++) {\n const offset = window * windowSize;\n let wbits = Number(n & mask);\n n >>= shiftBy;\n if (wbits > windowSize) {\n wbits -= maxNumber;\n n += _1n;\n }\n const offset1 = offset;\n const offset2 = offset + Math.abs(wbits) - 1;\n const cond1 = window % 2 !== 0;\n const cond2 = wbits < 0;\n if (wbits === 0) {\n f = f.add(constTimeNegate(cond1, precomputes[offset1]));\n }\n else {\n p = p.add(constTimeNegate(cond2, precomputes[offset2]));\n }\n }\n return { p, f };\n }\n multiply(scalar, affinePoint) {\n let n = normalizeScalar(scalar);\n let point;\n let fake;\n if (USE_ENDOMORPHISM) {\n const { k1neg, k1, k2neg, k2 } = endo.splitScalar(n);\n let { p: k1p, f: f1p } = this.wNAF(k1, affinePoint);\n let { p: k2p, f: f2p } = this.wNAF(k2, affinePoint);\n k1p = constTimeNegate(k1neg, k1p);\n k2p = constTimeNegate(k2neg, k2p);\n k2p = new JacobianPoint(mod(k2p.x * endo.beta), k2p.y, k2p.z);\n point = k1p.add(k2p);\n fake = f1p.add(f2p);\n }\n else {\n const { p, f } = this.wNAF(n, affinePoint);\n point = p;\n fake = f;\n }\n return JacobianPoint.normalizeZ([point, fake])[0];\n }\n toAffine(invZ) {\n const { x, y, z } = this;\n const is0 = this.equals(JacobianPoint.ZERO);\n if (invZ == null)\n invZ = is0 ? _8n : invert(z);\n const iz1 = invZ;\n const iz2 = mod(iz1 * iz1);\n const iz3 = mod(iz2 * iz1);\n const ax = mod(x * iz2);\n const ay = mod(y * iz3);\n const zz = mod(z * iz1);\n if (is0)\n return Point.ZERO;\n if (zz !== _1n)\n throw new Error('invZ was invalid');\n return new Point(ax, ay);\n }\n}\nJacobianPoint.BASE = new JacobianPoint(CURVE.Gx, CURVE.Gy, _1n);\nJacobianPoint.ZERO = new JacobianPoint(_0n, _1n, _0n);\nfunction constTimeNegate(condition, item) {\n const neg = item.negate();\n return condition ? neg : item;\n}\nconst pointPrecomputes = new WeakMap();\nclass Point {\n constructor(x, y) {\n this.x = x;\n this.y = y;\n }\n _setWindowSize(windowSize) {\n this._WINDOW_SIZE = windowSize;\n pointPrecomputes.delete(this);\n }\n hasEvenY() {\n return this.y % _2n === _0n;\n }\n static fromCompressedHex(bytes) {\n const isShort = bytes.length === 32;\n const x = bytesToNumber(isShort ? bytes : bytes.subarray(1));\n if (!isValidFieldElement(x))\n throw new Error('Point is not on curve');\n const y2 = weierstrass(x);\n let y = sqrtMod(y2);\n const isYOdd = (y & _1n) === _1n;\n if (isShort) {\n if (isYOdd)\n y = mod(-y);\n }\n else {\n const isFirstByteOdd = (bytes[0] & 1) === 1;\n if (isFirstByteOdd !== isYOdd)\n y = mod(-y);\n }\n const point = new Point(x, y);\n point.assertValidity();\n return point;\n }\n static fromUncompressedHex(bytes) {\n const x = bytesToNumber(bytes.subarray(1, fieldLen + 1));\n const y = bytesToNumber(bytes.subarray(fieldLen + 1, fieldLen * 2 + 1));\n const point = new Point(x, y);\n point.assertValidity();\n return point;\n }\n static fromHex(hex) {\n const bytes = ensureBytes(hex);\n const len = bytes.length;\n const header = bytes[0];\n if (len === fieldLen)\n return this.fromCompressedHex(bytes);\n if (len === compressedLen && (header === 0x02 || header === 0x03)) {\n return this.fromCompressedHex(bytes);\n }\n if (len === uncompressedLen && header === 0x04)\n return this.fromUncompressedHex(bytes);\n throw new Error(`Point.fromHex: received invalid point. Expected 32-${compressedLen} compressed bytes or ${uncompressedLen} uncompressed bytes, not ${len}`);\n }\n static fromPrivateKey(privateKey) {\n return Point.BASE.multiply(normalizePrivateKey(privateKey));\n }\n static fromSignature(msgHash, signature, recovery) {\n const { r, s } = normalizeSignature(signature);\n if (![0, 1, 2, 3].includes(recovery))\n throw new Error('Cannot recover: invalid recovery bit');\n const h = truncateHash(ensureBytes(msgHash));\n const { n } = CURVE;\n const radj = recovery === 2 || recovery === 3 ? r + n : r;\n const rinv = invert(radj, n);\n const u1 = mod(-h * rinv, n);\n const u2 = mod(s * rinv, n);\n const prefix = recovery & 1 ? '03' : '02';\n const R = Point.fromHex(prefix + numTo32bStr(radj));\n const Q = Point.BASE.multiplyAndAddUnsafe(R, u1, u2);\n if (!Q)\n throw new Error('Cannot recover signature: point at infinify');\n Q.assertValidity();\n return Q;\n }\n toRawBytes(isCompressed = false) {\n return hexToBytes(this.toHex(isCompressed));\n }\n toHex(isCompressed = false) {\n const x = numTo32bStr(this.x);\n if (isCompressed) {\n const prefix = this.hasEvenY() ? '02' : '03';\n return `${prefix}${x}`;\n }\n else {\n return `04${x}${numTo32bStr(this.y)}`;\n }\n }\n toHexX() {\n return this.toHex(true).slice(2);\n }\n toRawX() {\n return this.toRawBytes(true).slice(1);\n }\n assertValidity() {\n const msg = 'Point is not on elliptic curve';\n const { x, y } = this;\n if (!isValidFieldElement(x) || !isValidFieldElement(y))\n throw new Error(msg);\n const left = mod(y * y);\n const right = weierstrass(x);\n if (mod(left - right) !== _0n)\n throw new Error(msg);\n }\n equals(other) {\n return this.x === other.x && this.y === other.y;\n }\n negate() {\n return new Point(this.x, mod(-this.y));\n }\n double() {\n return JacobianPoint.fromAffine(this).double().toAffine();\n }\n add(other) {\n return JacobianPoint.fromAffine(this).add(JacobianPoint.fromAffine(other)).toAffine();\n }\n subtract(other) {\n return this.add(other.negate());\n }\n multiply(scalar) {\n return JacobianPoint.fromAffine(this).multiply(scalar, this).toAffine();\n }\n multiplyAndAddUnsafe(Q, a, b) {\n const P = JacobianPoint.fromAffine(this);\n const aP = a === _0n || a === _1n || this !== Point.BASE ? P.multiplyUnsafe(a) : P.multiply(a);\n const bQ = JacobianPoint.fromAffine(Q).multiplyUnsafe(b);\n const sum = aP.add(bQ);\n return sum.equals(JacobianPoint.ZERO) ? undefined : sum.toAffine();\n }\n}\nexports.Point = Point;\nPoint.BASE = new Point(CURVE.Gx, CURVE.Gy);\nPoint.ZERO = new Point(_0n, _0n);\nfunction sliceDER(s) {\n return Number.parseInt(s[0], 16) >= 8 ? '00' + s : s;\n}\nfunction parseDERInt(data) {\n if (data.length < 2 || data[0] !== 0x02) {\n throw new Error(`Invalid signature integer tag: ${bytesToHex(data)}`);\n }\n const len = data[1];\n const res = data.subarray(2, len + 2);\n if (!len || res.length !== len) {\n throw new Error(`Invalid signature integer: wrong length`);\n }\n if (res[0] === 0x00 && res[1] <= 0x7f) {\n throw new Error('Invalid signature integer: trailing length');\n }\n return { data: bytesToNumber(res), left: data.subarray(len + 2) };\n}\nfunction parseDERSignature(data) {\n if (data.length < 2 || data[0] != 0x30) {\n throw new Error(`Invalid signature tag: ${bytesToHex(data)}`);\n }\n if (data[1] !== data.length - 2) {\n throw new Error('Invalid signature: incorrect length');\n }\n const { data: r, left: sBytes } = parseDERInt(data.subarray(2));\n const { data: s, left: rBytesLeft } = parseDERInt(sBytes);\n if (rBytesLeft.length) {\n throw new Error(`Invalid signature: left bytes after parsing: ${bytesToHex(rBytesLeft)}`);\n }\n return { r, s };\n}\nclass Signature {\n constructor(r, s) {\n this.r = r;\n this.s = s;\n this.assertValidity();\n }\n static fromCompact(hex) {\n const arr = hex instanceof Uint8Array;\n const name = 'Signature.fromCompact';\n if (typeof hex !== 'string' && !arr)\n throw new TypeError(`${name}: Expected string or Uint8Array`);\n const str = arr ? bytesToHex(hex) : hex;\n if (str.length !== 128)\n throw new Error(`${name}: Expected 64-byte hex`);\n return new Signature(hexToNumber(str.slice(0, 64)), hexToNumber(str.slice(64, 128)));\n }\n static fromDER(hex) {\n const arr = hex instanceof Uint8Array;\n if (typeof hex !== 'string' && !arr)\n throw new TypeError(`Signature.fromDER: Expected string or Uint8Array`);\n const { r, s } = parseDERSignature(arr ? hex : hexToBytes(hex));\n return new Signature(r, s);\n }\n static fromHex(hex) {\n return this.fromDER(hex);\n }\n assertValidity() {\n const { r, s } = this;\n if (!isWithinCurveOrder(r))\n throw new Error('Invalid Signature: r must be 0 < r < n');\n if (!isWithinCurveOrder(s))\n throw new Error('Invalid Signature: s must be 0 < s < n');\n }\n hasHighS() {\n const HALF = CURVE.n >> _1n;\n return this.s > HALF;\n }\n normalizeS() {\n return this.hasHighS() ? new Signature(this.r, mod(-this.s, CURVE.n)) : this;\n }\n toDERRawBytes() {\n return hexToBytes(this.toDERHex());\n }\n toDERHex() {\n const sHex = sliceDER(numberToHexUnpadded(this.s));\n const rHex = sliceDER(numberToHexUnpadded(this.r));\n const sHexL = sHex.length / 2;\n const rHexL = rHex.length / 2;\n const sLen = numberToHexUnpadded(sHexL);\n const rLen = numberToHexUnpadded(rHexL);\n const length = numberToHexUnpadded(rHexL + sHexL + 4);\n return `30${length}02${rLen}${rHex}02${sLen}${sHex}`;\n }\n toRawBytes() {\n return this.toDERRawBytes();\n }\n toHex() {\n return this.toDERHex();\n }\n toCompactRawBytes() {\n return hexToBytes(this.toCompactHex());\n }\n toCompactHex() {\n return numTo32bStr(this.r) + numTo32bStr(this.s);\n }\n}\nexports.Signature = Signature;\nfunction concatBytes(...arrays) {\n if (!arrays.every((b) => b instanceof Uint8Array))\n throw new Error('Uint8Array list expected');\n if (arrays.length === 1)\n return arrays[0];\n const length = arrays.reduce((a, arr) => a + arr.length, 0);\n const result = new Uint8Array(length);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const arr = arrays[i];\n result.set(arr, pad);\n pad += arr.length;\n }\n return result;\n}\nconst hexes = Array.from({ length: 256 }, (v, i) => i.toString(16).padStart(2, '0'));\nfunction bytesToHex(uint8a) {\n if (!(uint8a instanceof Uint8Array))\n throw new Error('Expected Uint8Array');\n let hex = '';\n for (let i = 0; i < uint8a.length; i++) {\n hex += hexes[uint8a[i]];\n }\n return hex;\n}\nconst POW_2_256 = BigInt('0x10000000000000000000000000000000000000000000000000000000000000000');\nfunction numTo32bStr(num) {\n if (typeof num !== 'bigint')\n throw new Error('Expected bigint');\n if (!(_0n <= num && num < POW_2_256))\n throw new Error('Expected number 0 <= n < 2^256');\n return num.toString(16).padStart(64, '0');\n}\nfunction numTo32b(num) {\n const b = hexToBytes(numTo32bStr(num));\n if (b.length !== 32)\n throw new Error('Error: expected 32 bytes');\n return b;\n}\nfunction numberToHexUnpadded(num) {\n const hex = num.toString(16);\n return hex.length & 1 ? `0${hex}` : hex;\n}\nfunction hexToNumber(hex) {\n if (typeof hex !== 'string') {\n throw new TypeError('hexToNumber: expected string, got ' + typeof hex);\n }\n return BigInt(`0x${hex}`);\n}\nfunction hexToBytes(hex) {\n if (typeof hex !== 'string') {\n throw new TypeError('hexToBytes: expected string, got ' + typeof hex);\n }\n if (hex.length % 2)\n throw new Error('hexToBytes: received invalid unpadded hex' + hex.length);\n const array = new Uint8Array(hex.length / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n const hexByte = hex.slice(j, j + 2);\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte) || byte < 0)\n throw new Error('Invalid byte sequence');\n array[i] = byte;\n }\n return array;\n}\nfunction bytesToNumber(bytes) {\n return hexToNumber(bytesToHex(bytes));\n}\nfunction ensureBytes(hex) {\n return hex instanceof Uint8Array ? Uint8Array.from(hex) : hexToBytes(hex);\n}\nfunction normalizeScalar(num) {\n if (typeof num === 'number' && Number.isSafeInteger(num) && num > 0)\n return BigInt(num);\n if (typeof num === 'bigint' && isWithinCurveOrder(num))\n return num;\n throw new TypeError('Expected valid private scalar: 0 < scalar < curve.n');\n}\nfunction mod(a, b = CURVE.P) {\n const result = a % b;\n return result >= _0n ? result : b + result;\n}\nfunction pow2(x, power) {\n const { P } = CURVE;\n let res = x;\n while (power-- > _0n) {\n res *= res;\n res %= P;\n }\n return res;\n}\nfunction sqrtMod(x) {\n const { P } = CURVE;\n const _6n = BigInt(6);\n const _11n = BigInt(11);\n const _22n = BigInt(22);\n const _23n = BigInt(23);\n const _44n = BigInt(44);\n const _88n = BigInt(88);\n const b2 = (x * x * x) % P;\n const b3 = (b2 * b2 * x) % P;\n const b6 = (pow2(b3, _3n) * b3) % P;\n const b9 = (pow2(b6, _3n) * b3) % P;\n const b11 = (pow2(b9, _2n) * b2) % P;\n const b22 = (pow2(b11, _11n) * b11) % P;\n const b44 = (pow2(b22, _22n) * b22) % P;\n const b88 = (pow2(b44, _44n) * b44) % P;\n const b176 = (pow2(b88, _88n) * b88) % P;\n const b220 = (pow2(b176, _44n) * b44) % P;\n const b223 = (pow2(b220, _3n) * b3) % P;\n const t1 = (pow2(b223, _23n) * b22) % P;\n const t2 = (pow2(t1, _6n) * b2) % P;\n const rt = pow2(t2, _2n);\n const xc = (rt * rt) % P;\n if (xc !== x)\n throw new Error('Cannot find square root');\n return rt;\n}\nfunction invert(number, modulo = CURVE.P) {\n if (number === _0n || modulo <= _0n) {\n throw new Error(`invert: expected positive integers, got n=${number} mod=${modulo}`);\n }\n let a = mod(number, modulo);\n let b = modulo;\n let x = _0n, y = _1n, u = _1n, v = _0n;\n while (a !== _0n) {\n const q = b / a;\n const r = b % a;\n const m = x - u * q;\n const n = y - v * q;\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}\nfunction invertBatch(nums, p = CURVE.P) {\n const scratch = new Array(nums.length);\n const lastMultiplied = nums.reduce((acc, num, i) => {\n if (num === _0n)\n return acc;\n scratch[i] = acc;\n return mod(acc * num, p);\n }, _1n);\n const inverted = invert(lastMultiplied, p);\n nums.reduceRight((acc, num, i) => {\n if (num === _0n)\n return acc;\n scratch[i] = mod(acc * scratch[i], p);\n return mod(acc * num, p);\n }, inverted);\n return scratch;\n}\nfunction bits2int_2(bytes) {\n const delta = bytes.length * 8 - groupLen * 8;\n const num = bytesToNumber(bytes);\n return delta > 0 ? num >> BigInt(delta) : num;\n}\nfunction truncateHash(hash, truncateOnly = false) {\n const h = bits2int_2(hash);\n if (truncateOnly)\n return h;\n const { n } = CURVE;\n return h >= n ? h - n : h;\n}\nlet _sha256Sync;\nlet _hmacSha256Sync;\nclass HmacDrbg {\n constructor(hashLen, qByteLen) {\n this.hashLen = hashLen;\n this.qByteLen = qByteLen;\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 this.v = new Uint8Array(hashLen).fill(1);\n this.k = new Uint8Array(hashLen).fill(0);\n this.counter = 0;\n }\n hmac(...values) {\n return exports.utils.hmacSha256(this.k, ...values);\n }\n hmacSync(...values) {\n return _hmacSha256Sync(this.k, ...values);\n }\n checkSync() {\n if (typeof _hmacSha256Sync !== 'function')\n throw new ShaError('hmacSha256Sync needs to be set');\n }\n incr() {\n if (this.counter >= 1000)\n throw new Error('Tried 1,000 k values for sign(), all were invalid');\n this.counter += 1;\n }\n async reseed(seed = new Uint8Array()) {\n this.k = await this.hmac(this.v, Uint8Array.from([0x00]), seed);\n this.v = await this.hmac(this.v);\n if (seed.length === 0)\n return;\n this.k = await this.hmac(this.v, Uint8Array.from([0x01]), seed);\n this.v = await this.hmac(this.v);\n }\n reseedSync(seed = new Uint8Array()) {\n this.checkSync();\n this.k = this.hmacSync(this.v, Uint8Array.from([0x00]), seed);\n this.v = this.hmacSync(this.v);\n if (seed.length === 0)\n return;\n this.k = this.hmacSync(this.v, Uint8Array.from([0x01]), seed);\n this.v = this.hmacSync(this.v);\n }\n async generate() {\n this.incr();\n let len = 0;\n const out = [];\n while (len < this.qByteLen) {\n this.v = await this.hmac(this.v);\n const sl = this.v.slice();\n out.push(sl);\n len += this.v.length;\n }\n return concatBytes(...out);\n }\n generateSync() {\n this.checkSync();\n this.incr();\n let len = 0;\n const out = [];\n while (len < this.qByteLen) {\n this.v = this.hmacSync(this.v);\n const sl = this.v.slice();\n out.push(sl);\n len += this.v.length;\n }\n return concatBytes(...out);\n }\n}\nfunction isWithinCurveOrder(num) {\n return _0n < num && num < CURVE.n;\n}\nfunction isValidFieldElement(num) {\n return _0n < num && num < CURVE.P;\n}\nfunction kmdToSig(kBytes, m, d, lowS = true) {\n const { n } = CURVE;\n const k = truncateHash(kBytes, true);\n if (!isWithinCurveOrder(k))\n return;\n const kinv = invert(k, n);\n const q = Point.BASE.multiply(k);\n const r = mod(q.x, n);\n if (r === _0n)\n return;\n const s = mod(kinv * mod(m + d * r, n), n);\n if (s === _0n)\n return;\n let sig = new Signature(r, s);\n let recovery = (q.x === sig.r ? 0 : 2) | Number(q.y & _1n);\n if (lowS && sig.hasHighS()) {\n sig = sig.normalizeS();\n recovery ^= 1;\n }\n return { sig, recovery };\n}\nfunction normalizePrivateKey(key) {\n let num;\n if (typeof key === 'bigint') {\n num = key;\n }\n else if (typeof key === 'number' && Number.isSafeInteger(key) && key > 0) {\n num = BigInt(key);\n }\n else if (typeof key === 'string') {\n if (key.length !== 2 * groupLen)\n throw new Error('Expected 32 bytes of private key');\n num = hexToNumber(key);\n }\n else if (key instanceof Uint8Array) {\n if (key.length !== groupLen)\n throw new Error('Expected 32 bytes of private key');\n num = bytesToNumber(key);\n }\n else {\n throw new TypeError('Expected valid private key');\n }\n if (!isWithinCurveOrder(num))\n throw new Error('Expected private key: 0 < key < n');\n return num;\n}\nfunction normalizePublicKey(publicKey) {\n if (publicKey instanceof Point) {\n publicKey.assertValidity();\n return publicKey;\n }\n else {\n return Point.fromHex(publicKey);\n }\n}\nfunction normalizeSignature(signature) {\n if (signature instanceof Signature) {\n signature.assertValidity();\n return signature;\n }\n try {\n return Signature.fromDER(signature);\n }\n catch (error) {\n return Signature.fromCompact(signature);\n }\n}\nfunction getPublicKey(privateKey, isCompressed = false) {\n return Point.fromPrivateKey(privateKey).toRawBytes(isCompressed);\n}\nexports.getPublicKey = getPublicKey;\nfunction recoverPublicKey(msgHash, signature, recovery, isCompressed = false) {\n return Point.fromSignature(msgHash, signature, recovery).toRawBytes(isCompressed);\n}\nexports.recoverPublicKey = recoverPublicKey;\nfunction isProbPub(item) {\n const arr = item instanceof Uint8Array;\n const str = typeof item === 'string';\n const len = (arr || str) && item.length;\n if (arr)\n return len === compressedLen || len === uncompressedLen;\n if (str)\n return len === compressedLen * 2 || len === uncompressedLen * 2;\n if (item instanceof Point)\n return true;\n return false;\n}\nfunction getSharedSecret(privateA, publicB, isCompressed = false) {\n if (isProbPub(privateA))\n throw new TypeError('getSharedSecret: first arg must be private key');\n if (!isProbPub(publicB))\n throw new TypeError('getSharedSecret: second arg must be public key');\n const b = normalizePublicKey(publicB);\n b.assertValidity();\n return b.multiply(normalizePrivateKey(privateA)).toRawBytes(isCompressed);\n}\nexports.getSharedSecret = getSharedSecret;\nfunction bits2int(bytes) {\n const slice = bytes.length > fieldLen ? bytes.slice(0, fieldLen) : bytes;\n return bytesToNumber(slice);\n}\nfunction bits2octets(bytes) {\n const z1 = bits2int(bytes);\n const z2 = mod(z1, CURVE.n);\n return int2octets(z2 < _0n ? z1 : z2);\n}\nfunction int2octets(num) {\n return numTo32b(num);\n}\nfunction initSigArgs(msgHash, privateKey, extraEntropy) {\n if (msgHash == null)\n throw new Error(`sign: expected valid message hash, not \"${msgHash}\"`);\n const h1 = ensureBytes(msgHash);\n const d = normalizePrivateKey(privateKey);\n const seedArgs = [int2octets(d), bits2octets(h1)];\n if (extraEntropy != null) {\n if (extraEntropy === true)\n extraEntropy = exports.utils.randomBytes(fieldLen);\n const e = ensureBytes(extraEntropy);\n if (e.length !== fieldLen)\n throw new Error(`sign: Expected ${fieldLen} bytes of extra data`);\n seedArgs.push(e);\n }\n const seed = concatBytes(...seedArgs);\n const m = bits2int(h1);\n return { seed, m, d };\n}\nfunction finalizeSig(recSig, opts) {\n const { sig, recovery } = recSig;\n const { der, recovered } = Object.assign({ canonical: true, der: true }, opts);\n const hashed = der ? sig.toDERRawBytes() : sig.toCompactRawBytes();\n return recovered ? [hashed, recovery] : hashed;\n}\nasync function sign(msgHash, privKey, opts = {}) {\n const { seed, m, d } = initSigArgs(msgHash, privKey, opts.extraEntropy);\n const drbg = new HmacDrbg(hashLen, groupLen);\n await drbg.reseed(seed);\n let sig;\n while (!(sig = kmdToSig(await drbg.generate(), m, d, opts.canonical)))\n await drbg.reseed();\n return finalizeSig(sig, opts);\n}\nexports.sign = sign;\nfunction signSync(msgHash, privKey, opts = {}) {\n const { seed, m, d } = initSigArgs(msgHash, privKey, opts.extraEntropy);\n const drbg = new HmacDrbg(hashLen, groupLen);\n drbg.reseedSync(seed);\n let sig;\n while (!(sig = kmdToSig(drbg.generateSync(), m, d, opts.canonical)))\n drbg.reseedSync();\n return finalizeSig(sig, opts);\n}\nexports.signSync = signSync;\nconst vopts = { strict: true };\nfunction verify(signature, msgHash, publicKey, opts = vopts) {\n let sig;\n try {\n sig = normalizeSignature(signature);\n msgHash = ensureBytes(msgHash);\n }\n catch (error) {\n return false;\n }\n const { r, s } = sig;\n if (opts.strict && sig.hasHighS())\n return false;\n const h = truncateHash(msgHash);\n let P;\n try {\n P = normalizePublicKey(publicKey);\n }\n catch (error) {\n return false;\n }\n const { n } = CURVE;\n const sinv = invert(s, n);\n const u1 = mod(h * sinv, n);\n const u2 = mod(r * sinv, n);\n const R = Point.BASE.multiplyAndAddUnsafe(P, u1, u2);\n if (!R)\n return false;\n const v = mod(R.x, n);\n return v === r;\n}\nexports.verify = verify;\nfunction schnorrChallengeFinalize(ch) {\n return mod(bytesToNumber(ch), CURVE.n);\n}\nclass SchnorrSignature {\n constructor(r, s) {\n this.r = r;\n this.s = s;\n this.assertValidity();\n }\n static fromHex(hex) {\n const bytes = ensureBytes(hex);\n if (bytes.length !== 64)\n throw new TypeError(`SchnorrSignature.fromHex: expected 64 bytes, not ${bytes.length}`);\n const r = bytesToNumber(bytes.subarray(0, 32));\n const s = bytesToNumber(bytes.subarray(32, 64));\n return new SchnorrSignature(r, s);\n }\n assertValidity() {\n const { r, s } = this;\n if (!isValidFieldElement(r) || !isWithinCurveOrder(s))\n throw new Error('Invalid signature');\n }\n toHex() {\n return numTo32bStr(this.r) + numTo32bStr(this.s);\n }\n toRawBytes() {\n return hexToBytes(this.toHex());\n }\n}\nfunction schnorrGetPublicKey(privateKey) {\n return Point.fromPrivateKey(privateKey).toRawX();\n}\nclass InternalSchnorrSignature {\n constructor(message, privateKey, auxRand = exports.utils.randomBytes()) {\n if (message == null)\n throw new TypeError(`sign: Expected valid message, not \"${message}\"`);\n this.m = ensureBytes(message);\n const { x, scalar } = this.getScalar(normalizePrivateKey(privateKey));\n this.px = x;\n this.d = scalar;\n this.rand = ensureBytes(auxRand);\n if (this.rand.length !== 32)\n throw new TypeError('sign: Expected 32 bytes of aux randomness');\n }\n getScalar(priv) {\n const point = Point.fromPrivateKey(priv);\n const scalar = point.hasEvenY() ? priv : CURVE.n - priv;\n return { point, scalar, x: point.toRawX() };\n }\n initNonce(d, t0h) {\n return numTo32b(d ^ bytesToNumber(t0h));\n }\n finalizeNonce(k0h) {\n const k0 = mod(bytesToNumber(k0h), CURVE.n);\n if (k0 === _0n)\n throw new Error('sign: Creation of signature failed. k is zero');\n const { point: R, x: rx, scalar: k } = this.getScalar(k0);\n return { R, rx, k };\n }\n finalizeSig(R, k, e, d) {\n return new SchnorrSignature(R.x, mod(k + e * d, CURVE.n)).toRawBytes();\n }\n error() {\n throw new Error('sign: Invalid signature produced');\n }\n async calc() {\n const { m, d, px, rand } = this;\n const tag = exports.utils.taggedHash;\n const t = this.initNonce(d, await tag(TAGS.aux, rand));\n const { R, rx, k } = this.finalizeNonce(await tag(TAGS.nonce, t, px, m));\n const e = schnorrChallengeFinalize(await tag(TAGS.challenge, rx, px, m));\n const sig = this.finalizeSig(R, k, e, d);\n if (!(await schnorrVerify(sig, m, px)))\n this.error();\n return sig;\n }\n calcSync() {\n const { m, d, px, rand } = this;\n const tag = exports.utils.taggedHashSync;\n const t = this.initNonce(d, tag(TAGS.aux, rand));\n const { R, rx, k } = this.finalizeNonce(tag(TAGS.nonce, t, px, m));\n const e = schnorrChallengeFinalize(tag(TAGS.challenge, rx, px, m));\n const sig = this.finalizeSig(R, k, e, d);\n if (!schnorrVerifySync(sig, m, px))\n this.error();\n return sig;\n }\n}\nasync function schnorrSign(msg, privKey, auxRand) {\n return new InternalSchnorrSignature(msg, privKey, auxRand).calc();\n}\nfunction schnorrSignSync(msg, privKey, auxRand) {\n return new InternalSchnorrSignature(msg, privKey, auxRand).calcSync();\n}\nfunction initSchnorrVerify(signature, message, publicKey) {\n const raw = signature instanceof SchnorrSignature;\n const sig = raw ? signature : SchnorrSignature.fromHex(signature);\n if (raw)\n sig.assertValidity();\n return {\n ...sig,\n m: ensureBytes(message),\n P: normalizePublicKey(publicKey),\n };\n}\nfunction finalizeSchnorrVerify(r, P, s, e) {\n const R = Point.BASE.multiplyAndAddUnsafe(P, normalizePrivateKey(s), mod(-e, CURVE.n));\n if (!R || !R.hasEvenY() || R.x !== r)\n return false;\n return true;\n}\nasync function schnorrVerify(signature, message, publicKey) {\n try {\n const { r, s, m, P } = initSchnorrVerify(signature, message, publicKey);\n const e = schnorrChallengeFinalize(await exports.utils.taggedHash(TAGS.challenge, numTo32b(r), P.toRawX(), m));\n return finalizeSchnorrVerify(r, P, s, e);\n }\n catch (error) {\n return false;\n }\n}\nfunction schnorrVerifySync(signature, message, publicKey) {\n try {\n const { r, s, m, P } = initSchnorrVerify(signature, message, publicKey);\n const e = schnorrChallengeFinalize(exports.utils.taggedHashSync(TAGS.challenge, numTo32b(r), P.toRawX(), m));\n return finalizeSchnorrVerify(r, P, s, e);\n }\n catch (error) {\n if (error instanceof ShaError)\n throw error;\n return false;\n }\n}\nexports.schnorr = {\n Signature: SchnorrSignature,\n getPublicKey: schnorrGetPublicKey,\n sign: schnorrSign,\n verify: schnorrVerify,\n signSync: schnorrSignSync,\n verifySync: schnorrVerifySync,\n};\nPoint.BASE._setWindowSize(8);\nconst crypto = {\n node: nodeCrypto,\n web: typeof self === 'object' && 'crypto' in self ? self.crypto : undefined,\n};\nconst TAGS = {\n challenge: 'BIP0340/challenge',\n aux: 'BIP0340/aux',\n nonce: 'BIP0340/nonce',\n};\nconst TAGGED_HASH_PREFIXES = {};\nexports.utils = {\n bytesToHex,\n hexToBytes,\n concatBytes,\n mod,\n invert,\n isValidPrivateKey(privateKey) {\n try {\n normalizePrivateKey(privateKey);\n return true;\n }\n catch (error) {\n return false;\n }\n },\n _bigintTo32Bytes: numTo32b,\n _normalizePrivateKey: normalizePrivateKey,\n hashToPrivateKey: (hash) => {\n hash = ensureBytes(hash);\n const minLen = groupLen + 8;\n if (hash.length < minLen || hash.length > 1024) {\n throw new Error(`Expected valid bytes of private key as per FIPS 186`);\n }\n const num = mod(bytesToNumber(hash), CURVE.n - _1n) + _1n;\n return numTo32b(num);\n },\n randomBytes: (bytesLength = 32) => {\n if (crypto.web) {\n return crypto.web.getRandomValues(new Uint8Array(bytesLength));\n }\n else if (crypto.node) {\n const { randomBytes } = crypto.node;\n return Uint8Array.from(randomBytes(bytesLength));\n }\n else {\n throw new Error(\"The environment doesn't have randomBytes function\");\n }\n },\n randomPrivateKey: () => exports.utils.hashToPrivateKey(exports.utils.randomBytes(groupLen + 8)),\n precompute(windowSize = 8, point = Point.BASE) {\n const cached = point === Point.BASE ? point : new Point(point.x, point.y);\n cached._setWindowSize(windowSize);\n cached.multiply(_3n);\n return cached;\n },\n sha256: async (...messages) => {\n if (crypto.web) {\n const buffer = await crypto.web.subtle.digest('SHA-256', concatBytes(...messages));\n return new Uint8Array(buffer);\n }\n else if (crypto.node) {\n const { createHash } = crypto.node;\n const hash = createHash('sha256');\n messages.forEach((m) => hash.update(m));\n return Uint8Array.from(hash.digest());\n }\n else {\n throw new Error(\"The environment doesn't have sha256 function\");\n }\n },\n hmacSha256: async (key, ...messages) => {\n if (crypto.web) {\n const ckey = await crypto.web.subtle.importKey('raw', key, { name: 'HMAC', hash: { name: 'SHA-256' } }, false, ['sign']);\n const message = concatBytes(...messages);\n const buffer = await crypto.web.subtle.sign('HMAC', ckey, message);\n return new Uint8Array(buffer);\n }\n else if (crypto.node) {\n const { createHmac } = crypto.node;\n const hash = createHmac('sha256', key);\n messages.forEach((m) => hash.update(m));\n return Uint8Array.from(hash.digest());\n }\n else {\n throw new Error(\"The environment doesn't have hmac-sha256 function\");\n }\n },\n sha256Sync: undefined,\n hmacSha256Sync: undefined,\n taggedHash: async (tag, ...messages) => {\n let tagP = TAGGED_HASH_PREFIXES[tag];\n if (tagP === undefined) {\n const tagH = await exports.utils.sha256(Uint8Array.from(tag, (c) => c.charCodeAt(0)));\n tagP = concatBytes(tagH, tagH);\n TAGGED_HASH_PREFIXES[tag] = tagP;\n }\n return exports.utils.sha256(tagP, ...messages);\n },\n taggedHashSync: (tag, ...messages) => {\n if (typeof _sha256Sync !== 'function')\n throw new ShaError('sha256Sync is undefined, you need to set it');\n let tagP = TAGGED_HASH_PREFIXES[tag];\n if (tagP === undefined) {\n const tagH = _sha256Sync(Uint8Array.from(tag, (c) => c.charCodeAt(0)));\n tagP = concatBytes(tagH, tagH);\n TAGGED_HASH_PREFIXES[tag] = tagP;\n }\n return _sha256Sync(tagP, ...messages);\n },\n _JacobianPoint: JacobianPoint,\n};\nObject.defineProperties(exports.utils, {\n sha256Sync: {\n configurable: false,\n get() {\n return _sha256Sync;\n },\n set(val) {\n if (!_sha256Sync)\n _sha256Sync = val;\n },\n },\n hmacSha256Sync: {\n configurable: false,\n get() {\n return _hmacSha256Sync;\n },\n set(val) {\n if (!_hmacSha256Sync)\n _hmacSha256Sync = val;\n },\n },\n});\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 var global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof self !== 'undefined' && self) ||\n (typeof global !== 'undefined' && global);\n\n var support = {\n searchParams: 'URLSearchParams' in global,\n iterable: 'Symbol' in global && 'iterator' in Symbol,\n blob:\n 'FileReader' in global &&\n 'Blob' in global &&\n (function() {\n try {\n new Blob();\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in global,\n arrayBuffer: 'ArrayBuffer' in global\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 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.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 reader.readAsText(blob);\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 this.bodyUsed = this.bodyUsed;\n this._bodyInit = body;\n if (!body) {\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 this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n var isConsumed = consumed(this);\n if (isConsumed) {\n return isConsumed\n }\n 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 {\n return this.blob().then(readBlobAsArrayBuffer)\n }\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 = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'];\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;\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 headers.append(key, value);\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 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: 0, statusText: ''});\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 = global.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 status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\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 failed'));\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 === '' && global.location.href ? global.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 request.headers.get('Content-Type') &&\n request.headers.get('Content-Type').indexOf('application/octet-stream') !== -1\n ) {\n xhr.responseType = 'arraybuffer';\n }\n }\n\n if (init && typeof init.headers === 'object' && !(init.headers instanceof Headers)) {\n Object.getOwnPropertyNames(init.headers).forEach(function(name) {\n xhr.setRequestHeader(name, normalizeValue(init.headers[name]));\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 (!global.fetch) {\n global.fetch = fetch;\n global.Headers = Headers;\n global.Request = Request;\n global.Response = Response;\n }\n\n exports.Headers = Headers;\n exports.Request = Request;\n exports.Response = Response;\n exports.fetch = fetch;\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","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Package binary provides functions for encoding and decoding numbers in byte arrays.\n */\nvar int_1 = require(\"@stablelib/int\");\n// TODO(dchest): add asserts for correct value ranges and array offsets.\n/**\n * Reads 2 bytes from array starting at offset as big-endian\n * signed 16-bit integer and returns it.\n */\nfunction readInt16BE(array, offset) {\n if (offset === void 0) { offset = 0; }\n return (((array[offset + 0] << 8) | array[offset + 1]) << 16) >> 16;\n}\nexports.readInt16BE = readInt16BE;\n/**\n * Reads 2 bytes from array starting at offset as big-endian\n * unsigned 16-bit integer and returns it.\n */\nfunction readUint16BE(array, offset) {\n if (offset === void 0) { offset = 0; }\n return ((array[offset + 0] << 8) | array[offset + 1]) >>> 0;\n}\nexports.readUint16BE = readUint16BE;\n/**\n * Reads 2 bytes from array starting at offset as little-endian\n * signed 16-bit integer and returns it.\n */\nfunction readInt16LE(array, offset) {\n if (offset === void 0) { offset = 0; }\n return (((array[offset + 1] << 8) | array[offset]) << 16) >> 16;\n}\nexports.readInt16LE = readInt16LE;\n/**\n * Reads 2 bytes from array starting at offset as little-endian\n * unsigned 16-bit integer and returns it.\n */\nfunction readUint16LE(array, offset) {\n if (offset === void 0) { offset = 0; }\n return ((array[offset + 1] << 8) | array[offset]) >>> 0;\n}\nexports.readUint16LE = readUint16LE;\n/**\n * Writes 2-byte big-endian representation of 16-bit unsigned\n * value to byte array starting at offset.\n *\n * If byte array is not given, creates a new 2-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeUint16BE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(2); }\n if (offset === void 0) { offset = 0; }\n out[offset + 0] = value >>> 8;\n out[offset + 1] = value >>> 0;\n return out;\n}\nexports.writeUint16BE = writeUint16BE;\nexports.writeInt16BE = writeUint16BE;\n/**\n * Writes 2-byte little-endian representation of 16-bit unsigned\n * value to array starting at offset.\n *\n * If byte array is not given, creates a new 2-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeUint16LE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(2); }\n if (offset === void 0) { offset = 0; }\n out[offset + 0] = value >>> 0;\n out[offset + 1] = value >>> 8;\n return out;\n}\nexports.writeUint16LE = writeUint16LE;\nexports.writeInt16LE = writeUint16LE;\n/**\n * Reads 4 bytes from array starting at offset as big-endian\n * signed 32-bit integer and returns it.\n */\nfunction readInt32BE(array, offset) {\n if (offset === void 0) { offset = 0; }\n return (array[offset] << 24) |\n (array[offset + 1] << 16) |\n (array[offset + 2] << 8) |\n array[offset + 3];\n}\nexports.readInt32BE = readInt32BE;\n/**\n * Reads 4 bytes from array starting at offset as big-endian\n * unsigned 32-bit integer and returns it.\n */\nfunction readUint32BE(array, offset) {\n if (offset === void 0) { offset = 0; }\n return ((array[offset] << 24) |\n (array[offset + 1] << 16) |\n (array[offset + 2] << 8) |\n array[offset + 3]) >>> 0;\n}\nexports.readUint32BE = readUint32BE;\n/**\n * Reads 4 bytes from array starting at offset as little-endian\n * signed 32-bit integer and returns it.\n */\nfunction readInt32LE(array, offset) {\n if (offset === void 0) { offset = 0; }\n return (array[offset + 3] << 24) |\n (array[offset + 2] << 16) |\n (array[offset + 1] << 8) |\n array[offset];\n}\nexports.readInt32LE = readInt32LE;\n/**\n * Reads 4 bytes from array starting at offset as little-endian\n * unsigned 32-bit integer and returns it.\n */\nfunction readUint32LE(array, offset) {\n if (offset === void 0) { offset = 0; }\n return ((array[offset + 3] << 24) |\n (array[offset + 2] << 16) |\n (array[offset + 1] << 8) |\n array[offset]) >>> 0;\n}\nexports.readUint32LE = readUint32LE;\n/**\n * Writes 4-byte big-endian representation of 32-bit unsigned\n * value to byte array starting at offset.\n *\n * If byte array is not given, creates a new 4-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeUint32BE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(4); }\n if (offset === void 0) { offset = 0; }\n out[offset + 0] = value >>> 24;\n out[offset + 1] = value >>> 16;\n out[offset + 2] = value >>> 8;\n out[offset + 3] = value >>> 0;\n return out;\n}\nexports.writeUint32BE = writeUint32BE;\nexports.writeInt32BE = writeUint32BE;\n/**\n * Writes 4-byte little-endian representation of 32-bit unsigned\n * value to array starting at offset.\n *\n * If byte array is not given, creates a new 4-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeUint32LE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(4); }\n if (offset === void 0) { offset = 0; }\n out[offset + 0] = value >>> 0;\n out[offset + 1] = value >>> 8;\n out[offset + 2] = value >>> 16;\n out[offset + 3] = value >>> 24;\n return out;\n}\nexports.writeUint32LE = writeUint32LE;\nexports.writeInt32LE = writeUint32LE;\n/**\n * Reads 8 bytes from array starting at offset as big-endian\n * signed 64-bit integer and returns it.\n *\n * IMPORTANT: due to JavaScript limitation, supports exact\n * numbers in range -9007199254740991 to 9007199254740991.\n * If the number stored in the byte array is outside this range,\n * the result is not exact.\n */\nfunction readInt64BE(array, offset) {\n if (offset === void 0) { offset = 0; }\n var hi = readInt32BE(array, offset);\n var lo = readInt32BE(array, offset + 4);\n return hi * 0x100000000 + lo - ((lo >> 31) * 0x100000000);\n}\nexports.readInt64BE = readInt64BE;\n/**\n * Reads 8 bytes from array starting at offset as big-endian\n * unsigned 64-bit integer and returns it.\n *\n * IMPORTANT: due to JavaScript limitation, supports values up to 2^53-1.\n */\nfunction readUint64BE(array, offset) {\n if (offset === void 0) { offset = 0; }\n var hi = readUint32BE(array, offset);\n var lo = readUint32BE(array, offset + 4);\n return hi * 0x100000000 + lo;\n}\nexports.readUint64BE = readUint64BE;\n/**\n * Reads 8 bytes from array starting at offset as little-endian\n * signed 64-bit integer and returns it.\n *\n * IMPORTANT: due to JavaScript limitation, supports exact\n * numbers in range -9007199254740991 to 9007199254740991.\n * If the number stored in the byte array is outside this range,\n * the result is not exact.\n */\nfunction readInt64LE(array, offset) {\n if (offset === void 0) { offset = 0; }\n var lo = readInt32LE(array, offset);\n var hi = readInt32LE(array, offset + 4);\n return hi * 0x100000000 + lo - ((lo >> 31) * 0x100000000);\n}\nexports.readInt64LE = readInt64LE;\n/**\n * Reads 8 bytes from array starting at offset as little-endian\n * unsigned 64-bit integer and returns it.\n *\n * IMPORTANT: due to JavaScript limitation, supports values up to 2^53-1.\n */\nfunction readUint64LE(array, offset) {\n if (offset === void 0) { offset = 0; }\n var lo = readUint32LE(array, offset);\n var hi = readUint32LE(array, offset + 4);\n return hi * 0x100000000 + lo;\n}\nexports.readUint64LE = readUint64LE;\n/**\n * Writes 8-byte big-endian representation of 64-bit unsigned\n * value to byte array starting at offset.\n *\n * Due to JavaScript limitation, supports values up to 2^53-1.\n *\n * If byte array is not given, creates a new 8-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeUint64BE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(8); }\n if (offset === void 0) { offset = 0; }\n writeUint32BE(value / 0x100000000 >>> 0, out, offset);\n writeUint32BE(value >>> 0, out, offset + 4);\n return out;\n}\nexports.writeUint64BE = writeUint64BE;\nexports.writeInt64BE = writeUint64BE;\n/**\n * Writes 8-byte little-endian representation of 64-bit unsigned\n * value to byte array starting at offset.\n *\n * Due to JavaScript limitation, supports values up to 2^53-1.\n *\n * If byte array is not given, creates a new 8-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeUint64LE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(8); }\n if (offset === void 0) { offset = 0; }\n writeUint32LE(value >>> 0, out, offset);\n writeUint32LE(value / 0x100000000 >>> 0, out, offset + 4);\n return out;\n}\nexports.writeUint64LE = writeUint64LE;\nexports.writeInt64LE = writeUint64LE;\n/**\n * Reads bytes from array starting at offset as big-endian\n * unsigned bitLen-bit integer and returns it.\n *\n * Supports bit lengths divisible by 8, up to 48.\n */\nfunction readUintBE(bitLength, array, offset) {\n if (offset === void 0) { offset = 0; }\n // TODO(dchest): implement support for bitLengths non-divisible by 8\n if (bitLength % 8 !== 0) {\n throw new Error(\"readUintBE supports only bitLengths divisible by 8\");\n }\n if (bitLength / 8 > array.length - offset) {\n throw new Error(\"readUintBE: array is too short for the given bitLength\");\n }\n var result = 0;\n var mul = 1;\n for (var i = bitLength / 8 + offset - 1; i >= offset; i--) {\n result += array[i] * mul;\n mul *= 256;\n }\n return result;\n}\nexports.readUintBE = readUintBE;\n/**\n * Reads bytes from array starting at offset as little-endian\n * unsigned bitLen-bit integer and returns it.\n *\n * Supports bit lengths divisible by 8, up to 48.\n */\nfunction readUintLE(bitLength, array, offset) {\n if (offset === void 0) { offset = 0; }\n // TODO(dchest): implement support for bitLengths non-divisible by 8\n if (bitLength % 8 !== 0) {\n throw new Error(\"readUintLE supports only bitLengths divisible by 8\");\n }\n if (bitLength / 8 > array.length - offset) {\n throw new Error(\"readUintLE: array is too short for the given bitLength\");\n }\n var result = 0;\n var mul = 1;\n for (var i = offset; i < offset + bitLength / 8; i++) {\n result += array[i] * mul;\n mul *= 256;\n }\n return result;\n}\nexports.readUintLE = readUintLE;\n/**\n * Writes a big-endian representation of bitLen-bit unsigned\n * value to array starting at offset.\n *\n * Supports bit lengths divisible by 8, up to 48.\n *\n * If byte array is not given, creates a new one.\n *\n * Returns the output byte array.\n */\nfunction writeUintBE(bitLength, value, out, offset) {\n if (out === void 0) { out = new Uint8Array(bitLength / 8); }\n if (offset === void 0) { offset = 0; }\n // TODO(dchest): implement support for bitLengths non-divisible by 8\n if (bitLength % 8 !== 0) {\n throw new Error(\"writeUintBE supports only bitLengths divisible by 8\");\n }\n if (!int_1.isSafeInteger(value)) {\n throw new Error(\"writeUintBE value must be an integer\");\n }\n var div = 1;\n for (var i = bitLength / 8 + offset - 1; i >= offset; i--) {\n out[i] = (value / div) & 0xff;\n div *= 256;\n }\n return out;\n}\nexports.writeUintBE = writeUintBE;\n/**\n * Writes a little-endian representation of bitLen-bit unsigned\n * value to array starting at offset.\n *\n * Supports bit lengths divisible by 8, up to 48.\n *\n * If byte array is not given, creates a new one.\n *\n * Returns the output byte array.\n */\nfunction writeUintLE(bitLength, value, out, offset) {\n if (out === void 0) { out = new Uint8Array(bitLength / 8); }\n if (offset === void 0) { offset = 0; }\n // TODO(dchest): implement support for bitLengths non-divisible by 8\n if (bitLength % 8 !== 0) {\n throw new Error(\"writeUintLE supports only bitLengths divisible by 8\");\n }\n if (!int_1.isSafeInteger(value)) {\n throw new Error(\"writeUintLE value must be an integer\");\n }\n var div = 1;\n for (var i = offset; i < offset + bitLength / 8; i++) {\n out[i] = (value / div) & 0xff;\n div *= 256;\n }\n return out;\n}\nexports.writeUintLE = writeUintLE;\n/**\n * Reads 4 bytes from array starting at offset as big-endian\n * 32-bit floating-point number and returns it.\n */\nfunction readFloat32BE(array, offset) {\n if (offset === void 0) { offset = 0; }\n var view = new DataView(array.buffer, array.byteOffset, array.byteLength);\n return view.getFloat32(offset);\n}\nexports.readFloat32BE = readFloat32BE;\n/**\n * Reads 4 bytes from array starting at offset as little-endian\n * 32-bit floating-point number and returns it.\n */\nfunction readFloat32LE(array, offset) {\n if (offset === void 0) { offset = 0; }\n var view = new DataView(array.buffer, array.byteOffset, array.byteLength);\n return view.getFloat32(offset, true);\n}\nexports.readFloat32LE = readFloat32LE;\n/**\n * Reads 8 bytes from array starting at offset as big-endian\n * 64-bit floating-point number (\"double\") and returns it.\n */\nfunction readFloat64BE(array, offset) {\n if (offset === void 0) { offset = 0; }\n var view = new DataView(array.buffer, array.byteOffset, array.byteLength);\n return view.getFloat64(offset);\n}\nexports.readFloat64BE = readFloat64BE;\n/**\n * Reads 8 bytes from array starting at offset as little-endian\n * 64-bit floating-point number (\"double\") and returns it.\n */\nfunction readFloat64LE(array, offset) {\n if (offset === void 0) { offset = 0; }\n var view = new DataView(array.buffer, array.byteOffset, array.byteLength);\n return view.getFloat64(offset, true);\n}\nexports.readFloat64LE = readFloat64LE;\n/**\n * Writes 4-byte big-endian floating-point representation of value\n * to byte array starting at offset.\n *\n * If byte array is not given, creates a new 4-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeFloat32BE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(4); }\n if (offset === void 0) { offset = 0; }\n var view = new DataView(out.buffer, out.byteOffset, out.byteLength);\n view.setFloat32(offset, value);\n return out;\n}\nexports.writeFloat32BE = writeFloat32BE;\n/**\n * Writes 4-byte little-endian floating-point representation of value\n * to byte array starting at offset.\n *\n * If byte array is not given, creates a new 4-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeFloat32LE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(4); }\n if (offset === void 0) { offset = 0; }\n var view = new DataView(out.buffer, out.byteOffset, out.byteLength);\n view.setFloat32(offset, value, true);\n return out;\n}\nexports.writeFloat32LE = writeFloat32LE;\n/**\n * Writes 8-byte big-endian floating-point representation of value\n * to byte array starting at offset.\n *\n * If byte array is not given, creates a new 8-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeFloat64BE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(8); }\n if (offset === void 0) { offset = 0; }\n var view = new DataView(out.buffer, out.byteOffset, out.byteLength);\n view.setFloat64(offset, value);\n return out;\n}\nexports.writeFloat64BE = writeFloat64BE;\n/**\n * Writes 8-byte little-endian floating-point representation of value\n * to byte array starting at offset.\n *\n * If byte array is not given, creates a new 8-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeFloat64LE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(8); }\n if (offset === void 0) { offset = 0; }\n var view = new DataView(out.buffer, out.byteOffset, out.byteLength);\n view.setFloat64(offset, value, true);\n return out;\n}\nexports.writeFloat64LE = writeFloat64LE;\n//# sourceMappingURL=binary.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Package chacha implements ChaCha stream cipher.\n */\nvar binary_1 = require(\"@stablelib/binary\");\nvar wipe_1 = require(\"@stablelib/wipe\");\n// Number of ChaCha rounds (ChaCha20).\nvar ROUNDS = 20;\n// Applies the ChaCha core function to 16-byte input,\n// 32-byte key key, and puts the result into 64-byte array out.\nfunction core(out, input, key) {\n var j0 = 0x61707865; // \"expa\" -- ChaCha's \"sigma\" constant\n var j1 = 0x3320646E; // \"nd 3\" for 32-byte keys\n var j2 = 0x79622D32; // \"2-by\"\n var j3 = 0x6B206574; // \"te k\"\n var j4 = (key[3] << 24) | (key[2] << 16) | (key[1] << 8) | key[0];\n var j5 = (key[7] << 24) | (key[6] << 16) | (key[5] << 8) | key[4];\n var j6 = (key[11] << 24) | (key[10] << 16) | (key[9] << 8) | key[8];\n var j7 = (key[15] << 24) | (key[14] << 16) | (key[13] << 8) | key[12];\n var j8 = (key[19] << 24) | (key[18] << 16) | (key[17] << 8) | key[16];\n var j9 = (key[23] << 24) | (key[22] << 16) | (key[21] << 8) | key[20];\n var j10 = (key[27] << 24) | (key[26] << 16) | (key[25] << 8) | key[24];\n var j11 = (key[31] << 24) | (key[30] << 16) | (key[29] << 8) | key[28];\n var j12 = (input[3] << 24) | (input[2] << 16) | (input[1] << 8) | input[0];\n var j13 = (input[7] << 24) | (input[6] << 16) | (input[5] << 8) | input[4];\n var j14 = (input[11] << 24) | (input[10] << 16) | (input[9] << 8) | input[8];\n var j15 = (input[15] << 24) | (input[14] << 16) | (input[13] << 8) | input[12];\n var x0 = j0;\n var x1 = j1;\n var x2 = j2;\n var x3 = j3;\n var x4 = j4;\n var x5 = j5;\n var x6 = j6;\n var x7 = j7;\n var x8 = j8;\n var x9 = j9;\n var x10 = j10;\n var x11 = j11;\n var x12 = j12;\n var x13 = j13;\n var x14 = j14;\n var x15 = j15;\n for (var i = 0; i < ROUNDS; i += 2) {\n x0 = x0 + x4 | 0;\n x12 ^= x0;\n x12 = x12 >>> (32 - 16) | x12 << 16;\n x8 = x8 + x12 | 0;\n x4 ^= x8;\n x4 = x4 >>> (32 - 12) | x4 << 12;\n x1 = x1 + x5 | 0;\n x13 ^= x1;\n x13 = x13 >>> (32 - 16) | x13 << 16;\n x9 = x9 + x13 | 0;\n x5 ^= x9;\n x5 = x5 >>> (32 - 12) | x5 << 12;\n x2 = x2 + x6 | 0;\n x14 ^= x2;\n x14 = x14 >>> (32 - 16) | x14 << 16;\n x10 = x10 + x14 | 0;\n x6 ^= x10;\n x6 = x6 >>> (32 - 12) | x6 << 12;\n x3 = x3 + x7 | 0;\n x15 ^= x3;\n x15 = x15 >>> (32 - 16) | x15 << 16;\n x11 = x11 + x15 | 0;\n x7 ^= x11;\n x7 = x7 >>> (32 - 12) | x7 << 12;\n x2 = x2 + x6 | 0;\n x14 ^= x2;\n x14 = x14 >>> (32 - 8) | x14 << 8;\n x10 = x10 + x14 | 0;\n x6 ^= x10;\n x6 = x6 >>> (32 - 7) | x6 << 7;\n x3 = x3 + x7 | 0;\n x15 ^= x3;\n x15 = x15 >>> (32 - 8) | x15 << 8;\n x11 = x11 + x15 | 0;\n x7 ^= x11;\n x7 = x7 >>> (32 - 7) | x7 << 7;\n x1 = x1 + x5 | 0;\n x13 ^= x1;\n x13 = x13 >>> (32 - 8) | x13 << 8;\n x9 = x9 + x13 | 0;\n x5 ^= x9;\n x5 = x5 >>> (32 - 7) | x5 << 7;\n x0 = x0 + x4 | 0;\n x12 ^= x0;\n x12 = x12 >>> (32 - 8) | x12 << 8;\n x8 = x8 + x12 | 0;\n x4 ^= x8;\n x4 = x4 >>> (32 - 7) | x4 << 7;\n x0 = x0 + x5 | 0;\n x15 ^= x0;\n x15 = x15 >>> (32 - 16) | x15 << 16;\n x10 = x10 + x15 | 0;\n x5 ^= x10;\n x5 = x5 >>> (32 - 12) | x5 << 12;\n x1 = x1 + x6 | 0;\n x12 ^= x1;\n x12 = x12 >>> (32 - 16) | x12 << 16;\n x11 = x11 + x12 | 0;\n x6 ^= x11;\n x6 = x6 >>> (32 - 12) | x6 << 12;\n x2 = x2 + x7 | 0;\n x13 ^= x2;\n x13 = x13 >>> (32 - 16) | x13 << 16;\n x8 = x8 + x13 | 0;\n x7 ^= x8;\n x7 = x7 >>> (32 - 12) | x7 << 12;\n x3 = x3 + x4 | 0;\n x14 ^= x3;\n x14 = x14 >>> (32 - 16) | x14 << 16;\n x9 = x9 + x14 | 0;\n x4 ^= x9;\n x4 = x4 >>> (32 - 12) | x4 << 12;\n x2 = x2 + x7 | 0;\n x13 ^= x2;\n x13 = x13 >>> (32 - 8) | x13 << 8;\n x8 = x8 + x13 | 0;\n x7 ^= x8;\n x7 = x7 >>> (32 - 7) | x7 << 7;\n x3 = x3 + x4 | 0;\n x14 ^= x3;\n x14 = x14 >>> (32 - 8) | x14 << 8;\n x9 = x9 + x14 | 0;\n x4 ^= x9;\n x4 = x4 >>> (32 - 7) | x4 << 7;\n x1 = x1 + x6 | 0;\n x12 ^= x1;\n x12 = x12 >>> (32 - 8) | x12 << 8;\n x11 = x11 + x12 | 0;\n x6 ^= x11;\n x6 = x6 >>> (32 - 7) | x6 << 7;\n x0 = x0 + x5 | 0;\n x15 ^= x0;\n x15 = x15 >>> (32 - 8) | x15 << 8;\n x10 = x10 + x15 | 0;\n x5 ^= x10;\n x5 = x5 >>> (32 - 7) | x5 << 7;\n }\n binary_1.writeUint32LE(x0 + j0 | 0, out, 0);\n binary_1.writeUint32LE(x1 + j1 | 0, out, 4);\n binary_1.writeUint32LE(x2 + j2 | 0, out, 8);\n binary_1.writeUint32LE(x3 + j3 | 0, out, 12);\n binary_1.writeUint32LE(x4 + j4 | 0, out, 16);\n binary_1.writeUint32LE(x5 + j5 | 0, out, 20);\n binary_1.writeUint32LE(x6 + j6 | 0, out, 24);\n binary_1.writeUint32LE(x7 + j7 | 0, out, 28);\n binary_1.writeUint32LE(x8 + j8 | 0, out, 32);\n binary_1.writeUint32LE(x9 + j9 | 0, out, 36);\n binary_1.writeUint32LE(x10 + j10 | 0, out, 40);\n binary_1.writeUint32LE(x11 + j11 | 0, out, 44);\n binary_1.writeUint32LE(x12 + j12 | 0, out, 48);\n binary_1.writeUint32LE(x13 + j13 | 0, out, 52);\n binary_1.writeUint32LE(x14 + j14 | 0, out, 56);\n binary_1.writeUint32LE(x15 + j15 | 0, out, 60);\n}\n/**\n * Encrypt src with ChaCha20 stream generated for the given 32-byte key and\n * 8-byte (as in original implementation) or 12-byte (as in RFC7539) nonce and\n * write the result into dst and return it.\n *\n * dst and src may be the same, but otherwise must not overlap.\n *\n * If nonce is 12 bytes, users should not encrypt more than 256 GiB with the\n * same key and nonce, otherwise the stream will repeat. The function will\n * throw error if counter overflows to prevent this.\n *\n * If nonce is 8 bytes, the output is practically unlimited (2^70 bytes, which\n * is more than a million petabytes). However, it is not recommended to\n * generate 8-byte nonces randomly, as the chance of collision is high.\n *\n * Never use the same key and nonce to encrypt more than one message.\n *\n * If nonceInplaceCounterLength is not 0, the nonce is assumed to be a 16-byte\n * array with stream counter in first nonceInplaceCounterLength bytes and nonce\n * in the last remaining bytes. The counter will be incremented inplace for\n * each ChaCha block. This is useful if you need to encrypt one stream of data\n * in chunks.\n */\nfunction streamXOR(key, nonce, src, dst, nonceInplaceCounterLength) {\n if (nonceInplaceCounterLength === void 0) { nonceInplaceCounterLength = 0; }\n // We only support 256-bit keys.\n if (key.length !== 32) {\n throw new Error(\"ChaCha: key size must be 32 bytes\");\n }\n if (dst.length < src.length) {\n throw new Error(\"ChaCha: destination is shorter than source\");\n }\n var nc;\n var counterLength;\n if (nonceInplaceCounterLength === 0) {\n if (nonce.length !== 8 && nonce.length !== 12) {\n throw new Error(\"ChaCha nonce must be 8 or 12 bytes\");\n }\n nc = new Uint8Array(16);\n // First counterLength bytes of nc are counter, starting with zero.\n counterLength = nc.length - nonce.length;\n // Last bytes of nc after counterLength are nonce, set them.\n nc.set(nonce, counterLength);\n }\n else {\n if (nonce.length !== 16) {\n throw new Error(\"ChaCha nonce with counter must be 16 bytes\");\n }\n // This will update passed nonce with counter inplace.\n nc = nonce;\n counterLength = nonceInplaceCounterLength;\n }\n // Allocate temporary space for ChaCha block.\n var block = new Uint8Array(64);\n for (var i = 0; i < src.length; i += 64) {\n // Generate a block.\n core(block, nc, key);\n // XOR block bytes with src into dst.\n for (var j = i; j < i + 64 && j < src.length; j++) {\n dst[j] = src[j] ^ block[j - i];\n }\n // Increment counter.\n incrementCounter(nc, 0, counterLength);\n }\n // Cleanup temporary space.\n wipe_1.wipe(block);\n if (nonceInplaceCounterLength === 0) {\n // Cleanup counter.\n wipe_1.wipe(nc);\n }\n return dst;\n}\nexports.streamXOR = streamXOR;\n/**\n * Generate ChaCha20 stream for the given 32-byte key and 8-byte or 12-byte\n * nonce and write it into dst and return it.\n *\n * Never use the same key and nonce to generate more than one stream.\n *\n * If nonceInplaceCounterLength is not 0, it behaves the same with respect to\n * the nonce as described in the streamXOR documentation.\n *\n * stream is like streamXOR with all-zero src.\n */\nfunction stream(key, nonce, dst, nonceInplaceCounterLength) {\n if (nonceInplaceCounterLength === void 0) { nonceInplaceCounterLength = 0; }\n wipe_1.wipe(dst);\n return streamXOR(key, nonce, dst, dst, nonceInplaceCounterLength);\n}\nexports.stream = stream;\nfunction incrementCounter(counter, pos, len) {\n var carry = 1;\n while (len--) {\n carry = carry + (counter[pos] & 0xff) | 0;\n counter[pos] = carry & 0xff;\n carry >>>= 8;\n pos++;\n }\n if (carry > 0) {\n throw new Error(\"ChaCha: counter overflow\");\n }\n}\n//# sourceMappingURL=chacha.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar chacha_1 = require(\"@stablelib/chacha\");\nvar poly1305_1 = require(\"@stablelib/poly1305\");\nvar wipe_1 = require(\"@stablelib/wipe\");\nvar binary_1 = require(\"@stablelib/binary\");\nvar constant_time_1 = require(\"@stablelib/constant-time\");\nexports.KEY_LENGTH = 32;\nexports.NONCE_LENGTH = 12;\nexports.TAG_LENGTH = 16;\nvar ZEROS = new Uint8Array(16);\n/**\n * ChaCha20-Poly1305 Authenticated Encryption with Associated Data.\n *\n * Defined in RFC7539.\n */\nvar ChaCha20Poly1305 = /** @class */ (function () {\n /**\n * Creates a new instance with the given 32-byte key.\n */\n function ChaCha20Poly1305(key) {\n this.nonceLength = exports.NONCE_LENGTH;\n this.tagLength = exports.TAG_LENGTH;\n if (key.length !== exports.KEY_LENGTH) {\n throw new Error(\"ChaCha20Poly1305 needs 32-byte key\");\n }\n // Copy key.\n this._key = new Uint8Array(key);\n }\n /**\n * Encrypts and authenticates plaintext, authenticates associated data,\n * and returns sealed ciphertext, which includes authentication tag.\n *\n * RFC7539 specifies 12 bytes for nonce. It may be this 12-byte nonce\n * (\"IV\"), or full 16-byte counter (called \"32-bit fixed-common part\")\n * and nonce.\n *\n * If dst is given (it must be the size of plaintext + the size of tag\n * length) the result will be put into it. Dst and plaintext must not\n * overlap.\n */\n ChaCha20Poly1305.prototype.seal = function (nonce, plaintext, associatedData, dst) {\n if (nonce.length > 16) {\n throw new Error(\"ChaCha20Poly1305: incorrect nonce length\");\n }\n // Allocate space for counter, and set nonce as last bytes of it.\n var counter = new Uint8Array(16);\n counter.set(nonce, counter.length - nonce.length);\n // Generate authentication key by taking first 32-bytes of stream.\n // We pass full counter, which has 12-byte nonce and 4-byte block counter,\n // and it will get incremented after generating the block, which is\n // exactly what we need: we only use the first 32 bytes of 64-byte\n // ChaCha block and discard the next 32 bytes.\n var authKey = new Uint8Array(32);\n chacha_1.stream(this._key, counter, authKey, 4);\n // Allocate space for sealed ciphertext.\n var resultLength = plaintext.length + this.tagLength;\n var result;\n if (dst) {\n if (dst.length !== resultLength) {\n throw new Error(\"ChaCha20Poly1305: incorrect destination length\");\n }\n result = dst;\n }\n else {\n result = new Uint8Array(resultLength);\n }\n // Encrypt plaintext.\n chacha_1.streamXOR(this._key, counter, plaintext, result, 4);\n // Authenticate.\n // XXX: can \"simplify\" here: pass full result (which is already padded\n // due to zeroes prepared for tag), and ciphertext length instead of\n // subarray of result.\n this._authenticate(result.subarray(result.length - this.tagLength, result.length), authKey, result.subarray(0, result.length - this.tagLength), associatedData);\n // Cleanup.\n wipe_1.wipe(counter);\n return result;\n };\n /**\n * Authenticates sealed ciphertext (which includes authentication tag) and\n * associated data, decrypts ciphertext and returns decrypted plaintext.\n *\n * RFC7539 specifies 12 bytes for nonce. It may be this 12-byte nonce\n * (\"IV\"), or full 16-byte counter (called \"32-bit fixed-common part\")\n * and nonce.\n *\n * If authentication fails, it returns null.\n *\n * If dst is given (it must be of ciphertext length minus tag length),\n * the result will be put into it. Dst and plaintext must not overlap.\n */\n ChaCha20Poly1305.prototype.open = function (nonce, sealed, associatedData, dst) {\n if (nonce.length > 16) {\n throw new Error(\"ChaCha20Poly1305: incorrect nonce length\");\n }\n // Sealed ciphertext should at least contain tag.\n if (sealed.length < this.tagLength) {\n // TODO(dchest): should we throw here instead?\n return null;\n }\n // Allocate space for counter, and set nonce as last bytes of it.\n var counter = new Uint8Array(16);\n counter.set(nonce, counter.length - nonce.length);\n // Generate authentication key by taking first 32-bytes of stream.\n var authKey = new Uint8Array(32);\n chacha_1.stream(this._key, counter, authKey, 4);\n // Authenticate.\n // XXX: can simplify and avoid allocation: since authenticate()\n // already allocates tag (from Poly1305.digest(), it can return)\n // it instead of copying to calculatedTag. But then in seal()\n // we'll need to copy it.\n var calculatedTag = new Uint8Array(this.tagLength);\n this._authenticate(calculatedTag, authKey, sealed.subarray(0, sealed.length - this.tagLength), associatedData);\n // Constant-time compare tags and return null if they differ.\n if (!constant_time_1.equal(calculatedTag, sealed.subarray(sealed.length - this.tagLength, sealed.length))) {\n return null;\n }\n // Allocate space for decrypted plaintext.\n var resultLength = sealed.length - this.tagLength;\n var result;\n if (dst) {\n if (dst.length !== resultLength) {\n throw new Error(\"ChaCha20Poly1305: incorrect destination length\");\n }\n result = dst;\n }\n else {\n result = new Uint8Array(resultLength);\n }\n // Decrypt.\n chacha_1.streamXOR(this._key, counter, sealed.subarray(0, sealed.length - this.tagLength), result, 4);\n // Cleanup.\n wipe_1.wipe(counter);\n return result;\n };\n ChaCha20Poly1305.prototype.clean = function () {\n wipe_1.wipe(this._key);\n return this;\n };\n ChaCha20Poly1305.prototype._authenticate = function (tagOut, authKey, ciphertext, associatedData) {\n // Initialize Poly1305 with authKey.\n var h = new poly1305_1.Poly1305(authKey);\n // Authenticate padded associated data.\n if (associatedData) {\n h.update(associatedData);\n if (associatedData.length % 16 > 0) {\n h.update(ZEROS.subarray(associatedData.length % 16));\n }\n }\n // Authenticate padded ciphertext.\n h.update(ciphertext);\n if (ciphertext.length % 16 > 0) {\n h.update(ZEROS.subarray(ciphertext.length % 16));\n }\n // Authenticate length of associated data.\n // XXX: can avoid allocation here?\n var length = new Uint8Array(8);\n if (associatedData) {\n binary_1.writeUint64LE(associatedData.length, length);\n }\n h.update(length);\n // Authenticate length of ciphertext.\n binary_1.writeUint64LE(ciphertext.length, length);\n h.update(length);\n // Get tag and copy it into tagOut.\n var tag = h.digest();\n for (var i = 0; i < tag.length; i++) {\n tagOut[i] = tag[i];\n }\n // Cleanup.\n h.clean();\n wipe_1.wipe(tag);\n wipe_1.wipe(length);\n };\n return ChaCha20Poly1305;\n}());\nexports.ChaCha20Poly1305 = ChaCha20Poly1305;\n//# sourceMappingURL=chacha20poly1305.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Package constant-time provides functions for performing algorithmically constant-time operations.\n */\n/**\n * NOTE! Due to the inability to guarantee real constant time evaluation of\n * anything in JavaScript VM, this is module is the best effort.\n */\n/**\n * Returns resultIfOne if subject is 1, or resultIfZero if subject is 0.\n *\n * Supports only 32-bit integers, so resultIfOne or resultIfZero are not\n * integers, they'll be converted to them with bitwise operations.\n */\nfunction select(subject, resultIfOne, resultIfZero) {\n return (~(subject - 1) & resultIfOne) | ((subject - 1) & resultIfZero);\n}\nexports.select = select;\n/**\n * Returns 1 if a <= b, or 0 if not.\n * Arguments must be positive 32-bit integers less than or equal to 2^31 - 1.\n */\nfunction lessOrEqual(a, b) {\n return (((a | 0) - (b | 0) - 1) >>> 31) & 1;\n}\nexports.lessOrEqual = lessOrEqual;\n/**\n * Returns 1 if a and b are of equal length and their contents\n * are equal, or 0 otherwise.\n *\n * Note that unlike in equal(), zero-length inputs are considered\n * the same, so this function will return 1.\n */\nfunction compare(a, b) {\n if (a.length !== b.length) {\n return 0;\n }\n var result = 0;\n for (var i = 0; i < a.length; i++) {\n result |= a[i] ^ b[i];\n }\n return (1 & ((result - 1) >>> 8));\n}\nexports.compare = compare;\n/**\n * Returns true if a and b are of equal non-zero length,\n * and their contents are equal, or false otherwise.\n *\n * Note that unlike in compare() zero-length inputs are considered\n * _not_ equal, so this function will return false.\n */\nfunction equal(a, b) {\n if (a.length === 0 || b.length === 0) {\n return false;\n }\n return compare(a, b) !== 0;\n}\nexports.equal = equal;\n//# sourceMappingURL=constant-time.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction isSerializableHash(h) {\n return (typeof h.saveState !== \"undefined\" &&\n typeof h.restoreState !== \"undefined\" &&\n typeof h.cleanSavedState !== \"undefined\");\n}\nexports.isSerializableHash = isSerializableHash;\n// TODO(dchest): figure out the standardized interface for XOF such as\n// SHAKE and BLAKE2X.\n//# sourceMappingURL=hash.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar hmac_1 = require(\"@stablelib/hmac\");\nvar wipe_1 = require(\"@stablelib/wipe\");\n/**\n * HMAC-based Extract-and-Expand Key Derivation Function.\n *\n * Implements HKDF from RFC5869.\n *\n * Expands the given master key with salt and info into\n * a limited stream of key material.\n */\nvar HKDF = /** @class */ (function () {\n /**\n * Create a new HKDF instance for the given hash function\n * with the master key, optional salt, and info.\n *\n * - Master key is a high-entropy secret key (not a password).\n * - Salt is a non-secret random value.\n * - Info is application- and/or context-specific information.\n */\n function HKDF(hash, key, salt, info) {\n if (salt === void 0) { salt = new Uint8Array(0); }\n this._counter = new Uint8Array(1); // starts with zero\n this._hash = hash;\n this._info = info;\n // HKDF-Extract uses salt as HMAC key, and key as data.\n var okm = hmac_1.hmac(this._hash, salt, key);\n // Initialize HMAC for expanding with extracted key.\n this._hmac = new hmac_1.HMAC(hash, okm);\n // Allocate buffer.\n this._buffer = new Uint8Array(this._hmac.digestLength);\n this._bufpos = this._buffer.length;\n }\n // Fill buffer with new block of HKDF-Extract output.\n HKDF.prototype._fillBuffer = function () {\n // Increment counter.\n this._counter[0]++;\n var ctr = this._counter[0];\n // Check if counter overflowed.\n if (ctr === 0) {\n throw new Error(\"hkdf: cannot expand more\");\n }\n // Prepare HMAC instance for new data with old key.\n this._hmac.reset();\n // Hash in previous output if it was generated\n // (i.e. counter is greater than 1).\n if (ctr > 1) {\n this._hmac.update(this._buffer);\n }\n // Hash in info if it exists.\n if (this._info) {\n this._hmac.update(this._info);\n }\n // Hash in the counter.\n this._hmac.update(this._counter);\n // Output result to buffer and clean HMAC instance.\n this._hmac.finish(this._buffer);\n // Reset buffer position.\n this._bufpos = 0;\n };\n /**\n * Expand returns next key material of the given length.\n *\n * It throws if expansion limit is reached (which is\n * 254 digests of the underlying HMAC function).\n */\n HKDF.prototype.expand = function (length) {\n var out = new Uint8Array(length);\n for (var i = 0; i < out.length; i++) {\n if (this._bufpos === this._buffer.length) {\n this._fillBuffer();\n }\n out[i] = this._buffer[this._bufpos++];\n }\n return out;\n };\n HKDF.prototype.clean = function () {\n this._hmac.clean();\n wipe_1.wipe(this._buffer);\n wipe_1.wipe(this._counter);\n this._bufpos = 0;\n };\n return HKDF;\n}());\nexports.HKDF = HKDF;\n// TODO(dchest): maybe implement deriveKey?\n//# sourceMappingURL=hkdf.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Package hmac implements HMAC algorithm.\n */\nvar hash_1 = require(\"@stablelib/hash\");\nvar constant_time_1 = require(\"@stablelib/constant-time\");\nvar wipe_1 = require(\"@stablelib/wipe\");\n/**\n * HMAC implements hash-based message authentication algorithm.\n */\nvar HMAC = /** @class */ (function () {\n /**\n * Constructs a new HMAC with the given Hash and secret key.\n */\n function HMAC(hash, key) {\n this._finished = false; // true if HMAC was finalized\n // Initialize inner and outer hashes.\n this._inner = new hash();\n this._outer = new hash();\n // Set block and digest sizes for this HMAC\n // instance to values from the hash.\n this.blockSize = this._outer.blockSize;\n this.digestLength = this._outer.digestLength;\n // Pad temporary stores a key (or its hash) padded with zeroes.\n var pad = new Uint8Array(this.blockSize);\n if (key.length > this.blockSize) {\n // If key is bigger than hash block size, it must be\n // hashed and this hash is used as a key instead.\n this._inner.update(key).finish(pad).clean();\n }\n else {\n // Otherwise, copy the key into pad.\n pad.set(key);\n }\n // Now two different keys are derived from padded key\n // by xoring a different byte value to each.\n // To make inner hash key, xor byte 0x36 into pad.\n for (var i = 0; i < pad.length; i++) {\n pad[i] ^= 0x36;\n }\n // Update inner hash with the result.\n this._inner.update(pad);\n // To make outer hash key, xor byte 0x5c into pad.\n // But since we already xored 0x36 there, we must\n // first undo this by xoring it again.\n for (var i = 0; i < pad.length; i++) {\n pad[i] ^= 0x36 ^ 0x5c;\n }\n // Update outer hash with the result.\n this._outer.update(pad);\n // Save states of both hashes, so that we can quickly restore\n // them later in reset() without the need to remember the actual\n // key and perform this initialization again.\n if (hash_1.isSerializableHash(this._inner) && hash_1.isSerializableHash(this._outer)) {\n this._innerKeyedState = this._inner.saveState();\n this._outerKeyedState = this._outer.saveState();\n }\n // Clean pad.\n wipe_1.wipe(pad);\n }\n /**\n * Returns HMAC state to the state initialized with key\n * to make it possible to run HMAC over the other data with the same\n * key without creating a new instance.\n */\n HMAC.prototype.reset = function () {\n if (!hash_1.isSerializableHash(this._inner) || !hash_1.isSerializableHash(this._outer)) {\n throw new Error(\"hmac: can't reset() because hash doesn't implement restoreState()\");\n }\n // Restore keyed states of inner and outer hashes.\n this._inner.restoreState(this._innerKeyedState);\n this._outer.restoreState(this._outerKeyedState);\n this._finished = false;\n return this;\n };\n /**\n * Cleans HMAC state.\n */\n HMAC.prototype.clean = function () {\n if (hash_1.isSerializableHash(this._inner)) {\n this._inner.cleanSavedState(this._innerKeyedState);\n }\n if (hash_1.isSerializableHash(this._outer)) {\n this._outer.cleanSavedState(this._outerKeyedState);\n }\n this._inner.clean();\n this._outer.clean();\n };\n /**\n * Updates state with provided data.\n */\n HMAC.prototype.update = function (data) {\n this._inner.update(data);\n return this;\n };\n /**\n * Finalizes HMAC and puts the result in out.\n */\n HMAC.prototype.finish = function (out) {\n if (this._finished) {\n // If HMAC was finalized, outer hash is also finalized,\n // so it produces the same digest it produced when it\n // was finalized.\n this._outer.finish(out);\n return this;\n }\n // Finalize inner hash and store the result temporarily.\n this._inner.finish(out);\n // Update outer hash with digest of inner hash and and finalize it.\n this._outer.update(out.subarray(0, this.digestLength)).finish(out);\n this._finished = true;\n return this;\n };\n /**\n * Returns the computed message authentication code.\n */\n HMAC.prototype.digest = function () {\n var out = new Uint8Array(this.digestLength);\n this.finish(out);\n return out;\n };\n /**\n * Saves HMAC state.\n * This function is needed for PBKDF2 optimization.\n */\n HMAC.prototype.saveState = function () {\n if (!hash_1.isSerializableHash(this._inner)) {\n throw new Error(\"hmac: can't saveState() because hash doesn't implement it\");\n }\n return this._inner.saveState();\n };\n HMAC.prototype.restoreState = function (savedState) {\n if (!hash_1.isSerializableHash(this._inner) || !hash_1.isSerializableHash(this._outer)) {\n throw new Error(\"hmac: can't restoreState() because hash doesn't implement it\");\n }\n this._inner.restoreState(savedState);\n this._outer.restoreState(this._outerKeyedState);\n this._finished = false;\n return this;\n };\n HMAC.prototype.cleanSavedState = function (savedState) {\n if (!hash_1.isSerializableHash(this._inner)) {\n throw new Error(\"hmac: can't cleanSavedState() because hash doesn't implement it\");\n }\n this._inner.cleanSavedState(savedState);\n };\n return HMAC;\n}());\nexports.HMAC = HMAC;\n/**\n * Returns HMAC using the given hash constructor for the key over data.\n */\nfunction hmac(hash, key, data) {\n var h = new HMAC(hash, key);\n h.update(data);\n var digest = h.digest();\n h.clean();\n return digest;\n}\nexports.hmac = hmac;\n/**\n * Returns true if two HMAC digests are equal.\n * Uses constant-time comparison to avoid leaking timing information.\n *\n * Example:\n *\n * const receivedDigest = ...\n * const realDigest = hmac(SHA256, key, data);\n * if (!equal(receivedDigest, realDigest)) {\n * throw new Error(\"Authentication error\");\n * }\n */\nexports.equal = constant_time_1.equal;\n//# sourceMappingURL=hmac.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Package int provides helper functions for integerss.\n */\n// Shim using 16-bit pieces.\nfunction imulShim(a, b) {\n var ah = (a >>> 16) & 0xffff, al = a & 0xffff;\n var bh = (b >>> 16) & 0xffff, bl = b & 0xffff;\n return ((al * bl) + (((ah * bl + al * bh) << 16) >>> 0) | 0);\n}\n/** 32-bit integer multiplication. */\n// Use system Math.imul if available, otherwise use our shim.\nexports.mul = Math.imul || imulShim;\n/** 32-bit integer addition. */\nfunction add(a, b) {\n return (a + b) | 0;\n}\nexports.add = add;\n/** 32-bit integer subtraction. */\nfunction sub(a, b) {\n return (a - b) | 0;\n}\nexports.sub = sub;\n/** 32-bit integer left rotation */\nfunction rotl(x, n) {\n return x << n | x >>> (32 - n);\n}\nexports.rotl = rotl;\n/** 32-bit integer left rotation */\nfunction rotr(x, n) {\n return x << (32 - n) | x >>> n;\n}\nexports.rotr = rotr;\nfunction isIntegerShim(n) {\n return typeof n === \"number\" && isFinite(n) && Math.floor(n) === n;\n}\n/**\n * Returns true if the argument is an integer number.\n *\n * In ES2015, Number.isInteger.\n */\nexports.isInteger = Number.isInteger || isIntegerShim;\n/**\n * Math.pow(2, 53) - 1\n *\n * In ES2015 Number.MAX_SAFE_INTEGER.\n */\nexports.MAX_SAFE_INTEGER = 9007199254740991;\n/**\n * Returns true if the argument is a safe integer number\n * (-MIN_SAFE_INTEGER < number <= MAX_SAFE_INTEGER)\n *\n * In ES2015, Number.isSafeInteger.\n */\nexports.isSafeInteger = function (n) {\n return exports.isInteger(n) && (n >= -exports.MAX_SAFE_INTEGER && n <= exports.MAX_SAFE_INTEGER);\n};\n//# sourceMappingURL=int.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Package poly1305 implements Poly1305 one-time message authentication algorithm.\n */\nvar constant_time_1 = require(\"@stablelib/constant-time\");\nvar wipe_1 = require(\"@stablelib/wipe\");\nexports.DIGEST_LENGTH = 16;\n// Port of Andrew Moon's Poly1305-donna-16. Public domain.\n// https://github.com/floodyberry/poly1305-donna\n/**\n * Poly1305 computes 16-byte authenticator of message using\n * a one-time 32-byte key.\n *\n * Important: key should be used for only one message,\n * it should never repeat.\n */\nvar Poly1305 = /** @class */ (function () {\n function Poly1305(key) {\n this.digestLength = exports.DIGEST_LENGTH;\n this._buffer = new Uint8Array(16);\n this._r = new Uint16Array(10);\n this._h = new Uint16Array(10);\n this._pad = new Uint16Array(8);\n this._leftover = 0;\n this._fin = 0;\n this._finished = false;\n var t0 = key[0] | key[1] << 8;\n this._r[0] = (t0) & 0x1fff;\n var t1 = key[2] | key[3] << 8;\n this._r[1] = ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n var t2 = key[4] | key[5] << 8;\n this._r[2] = ((t1 >>> 10) | (t2 << 6)) & 0x1f03;\n var t3 = key[6] | key[7] << 8;\n this._r[3] = ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n var t4 = key[8] | key[9] << 8;\n this._r[4] = ((t3 >>> 4) | (t4 << 12)) & 0x00ff;\n this._r[5] = ((t4 >>> 1)) & 0x1ffe;\n var t5 = key[10] | key[11] << 8;\n this._r[6] = ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n var t6 = key[12] | key[13] << 8;\n this._r[7] = ((t5 >>> 11) | (t6 << 5)) & 0x1f81;\n var t7 = key[14] | key[15] << 8;\n this._r[8] = ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n this._r[9] = ((t7 >>> 5)) & 0x007f;\n this._pad[0] = key[16] | key[17] << 8;\n this._pad[1] = key[18] | key[19] << 8;\n this._pad[2] = key[20] | key[21] << 8;\n this._pad[3] = key[22] | key[23] << 8;\n this._pad[4] = key[24] | key[25] << 8;\n this._pad[5] = key[26] | key[27] << 8;\n this._pad[6] = key[28] | key[29] << 8;\n this._pad[7] = key[30] | key[31] << 8;\n }\n Poly1305.prototype._blocks = function (m, mpos, bytes) {\n var hibit = this._fin ? 0 : 1 << 11;\n var h0 = this._h[0], h1 = this._h[1], h2 = this._h[2], h3 = this._h[3], h4 = this._h[4], h5 = this._h[5], h6 = this._h[6], h7 = this._h[7], h8 = this._h[8], h9 = this._h[9];\n var r0 = this._r[0], r1 = this._r[1], r2 = this._r[2], r3 = this._r[3], r4 = this._r[4], r5 = this._r[5], r6 = this._r[6], r7 = this._r[7], r8 = this._r[8], r9 = this._r[9];\n while (bytes >= 16) {\n var t0 = m[mpos + 0] | m[mpos + 1] << 8;\n h0 += (t0) & 0x1fff;\n var t1 = m[mpos + 2] | m[mpos + 3] << 8;\n h1 += ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n var t2 = m[mpos + 4] | m[mpos + 5] << 8;\n h2 += ((t1 >>> 10) | (t2 << 6)) & 0x1fff;\n var t3 = m[mpos + 6] | m[mpos + 7] << 8;\n h3 += ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n var t4 = m[mpos + 8] | m[mpos + 9] << 8;\n h4 += ((t3 >>> 4) | (t4 << 12)) & 0x1fff;\n h5 += ((t4 >>> 1)) & 0x1fff;\n var t5 = m[mpos + 10] | m[mpos + 11] << 8;\n h6 += ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n var t6 = m[mpos + 12] | m[mpos + 13] << 8;\n h7 += ((t5 >>> 11) | (t6 << 5)) & 0x1fff;\n var t7 = m[mpos + 14] | m[mpos + 15] << 8;\n h8 += ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n h9 += ((t7 >>> 5)) | hibit;\n var c = 0;\n var d0 = c;\n d0 += h0 * r0;\n d0 += h1 * (5 * r9);\n d0 += h2 * (5 * r8);\n d0 += h3 * (5 * r7);\n d0 += h4 * (5 * r6);\n c = (d0 >>> 13);\n d0 &= 0x1fff;\n d0 += h5 * (5 * r5);\n d0 += h6 * (5 * r4);\n d0 += h7 * (5 * r3);\n d0 += h8 * (5 * r2);\n d0 += h9 * (5 * r1);\n c += (d0 >>> 13);\n d0 &= 0x1fff;\n var d1 = c;\n d1 += h0 * r1;\n d1 += h1 * r0;\n d1 += h2 * (5 * r9);\n d1 += h3 * (5 * r8);\n d1 += h4 * (5 * r7);\n c = (d1 >>> 13);\n d1 &= 0x1fff;\n d1 += h5 * (5 * r6);\n d1 += h6 * (5 * r5);\n d1 += h7 * (5 * r4);\n d1 += h8 * (5 * r3);\n d1 += h9 * (5 * r2);\n c += (d1 >>> 13);\n d1 &= 0x1fff;\n var d2 = c;\n d2 += h0 * r2;\n d2 += h1 * r1;\n d2 += h2 * r0;\n d2 += h3 * (5 * r9);\n d2 += h4 * (5 * r8);\n c = (d2 >>> 13);\n d2 &= 0x1fff;\n d2 += h5 * (5 * r7);\n d2 += h6 * (5 * r6);\n d2 += h7 * (5 * r5);\n d2 += h8 * (5 * r4);\n d2 += h9 * (5 * r3);\n c += (d2 >>> 13);\n d2 &= 0x1fff;\n var d3 = c;\n d3 += h0 * r3;\n d3 += h1 * r2;\n d3 += h2 * r1;\n d3 += h3 * r0;\n d3 += h4 * (5 * r9);\n c = (d3 >>> 13);\n d3 &= 0x1fff;\n d3 += h5 * (5 * r8);\n d3 += h6 * (5 * r7);\n d3 += h7 * (5 * r6);\n d3 += h8 * (5 * r5);\n d3 += h9 * (5 * r4);\n c += (d3 >>> 13);\n d3 &= 0x1fff;\n var d4 = c;\n d4 += h0 * r4;\n d4 += h1 * r3;\n d4 += h2 * r2;\n d4 += h3 * r1;\n d4 += h4 * r0;\n c = (d4 >>> 13);\n d4 &= 0x1fff;\n d4 += h5 * (5 * r9);\n d4 += h6 * (5 * r8);\n d4 += h7 * (5 * r7);\n d4 += h8 * (5 * r6);\n d4 += h9 * (5 * r5);\n c += (d4 >>> 13);\n d4 &= 0x1fff;\n var d5 = c;\n d5 += h0 * r5;\n d5 += h1 * r4;\n d5 += h2 * r3;\n d5 += h3 * r2;\n d5 += h4 * r1;\n c = (d5 >>> 13);\n d5 &= 0x1fff;\n d5 += h5 * r0;\n d5 += h6 * (5 * r9);\n d5 += h7 * (5 * r8);\n d5 += h8 * (5 * r7);\n d5 += h9 * (5 * r6);\n c += (d5 >>> 13);\n d5 &= 0x1fff;\n var d6 = c;\n d6 += h0 * r6;\n d6 += h1 * r5;\n d6 += h2 * r4;\n d6 += h3 * r3;\n d6 += h4 * r2;\n c = (d6 >>> 13);\n d6 &= 0x1fff;\n d6 += h5 * r1;\n d6 += h6 * r0;\n d6 += h7 * (5 * r9);\n d6 += h8 * (5 * r8);\n d6 += h9 * (5 * r7);\n c += (d6 >>> 13);\n d6 &= 0x1fff;\n var d7 = c;\n d7 += h0 * r7;\n d7 += h1 * r6;\n d7 += h2 * r5;\n d7 += h3 * r4;\n d7 += h4 * r3;\n c = (d7 >>> 13);\n d7 &= 0x1fff;\n d7 += h5 * r2;\n d7 += h6 * r1;\n d7 += h7 * r0;\n d7 += h8 * (5 * r9);\n d7 += h9 * (5 * r8);\n c += (d7 >>> 13);\n d7 &= 0x1fff;\n var d8 = c;\n d8 += h0 * r8;\n d8 += h1 * r7;\n d8 += h2 * r6;\n d8 += h3 * r5;\n d8 += h4 * r4;\n c = (d8 >>> 13);\n d8 &= 0x1fff;\n d8 += h5 * r3;\n d8 += h6 * r2;\n d8 += h7 * r1;\n d8 += h8 * r0;\n d8 += h9 * (5 * r9);\n c += (d8 >>> 13);\n d8 &= 0x1fff;\n var d9 = c;\n d9 += h0 * r9;\n d9 += h1 * r8;\n d9 += h2 * r7;\n d9 += h3 * r6;\n d9 += h4 * r5;\n c = (d9 >>> 13);\n d9 &= 0x1fff;\n d9 += h5 * r4;\n d9 += h6 * r3;\n d9 += h7 * r2;\n d9 += h8 * r1;\n d9 += h9 * r0;\n c += (d9 >>> 13);\n d9 &= 0x1fff;\n c = (((c << 2) + c)) | 0;\n c = (c + d0) | 0;\n d0 = c & 0x1fff;\n c = (c >>> 13);\n d1 += c;\n h0 = d0;\n h1 = d1;\n h2 = d2;\n h3 = d3;\n h4 = d4;\n h5 = d5;\n h6 = d6;\n h7 = d7;\n h8 = d8;\n h9 = d9;\n mpos += 16;\n bytes -= 16;\n }\n this._h[0] = h0;\n this._h[1] = h1;\n this._h[2] = h2;\n this._h[3] = h3;\n this._h[4] = h4;\n this._h[5] = h5;\n this._h[6] = h6;\n this._h[7] = h7;\n this._h[8] = h8;\n this._h[9] = h9;\n };\n Poly1305.prototype.finish = function (mac, macpos) {\n if (macpos === void 0) { macpos = 0; }\n var g = new Uint16Array(10);\n var c;\n var mask;\n var f;\n var i;\n if (this._leftover) {\n i = this._leftover;\n this._buffer[i++] = 1;\n for (; i < 16; i++) {\n this._buffer[i] = 0;\n }\n this._fin = 1;\n this._blocks(this._buffer, 0, 16);\n }\n c = this._h[1] >>> 13;\n this._h[1] &= 0x1fff;\n for (i = 2; i < 10; i++) {\n this._h[i] += c;\n c = this._h[i] >>> 13;\n this._h[i] &= 0x1fff;\n }\n this._h[0] += (c * 5);\n c = this._h[0] >>> 13;\n this._h[0] &= 0x1fff;\n this._h[1] += c;\n c = this._h[1] >>> 13;\n this._h[1] &= 0x1fff;\n this._h[2] += c;\n g[0] = this._h[0] + 5;\n c = g[0] >>> 13;\n g[0] &= 0x1fff;\n for (i = 1; i < 10; i++) {\n g[i] = this._h[i] + c;\n c = g[i] >>> 13;\n g[i] &= 0x1fff;\n }\n g[9] -= (1 << 13);\n mask = (c ^ 1) - 1;\n for (i = 0; i < 10; i++) {\n g[i] &= mask;\n }\n mask = ~mask;\n for (i = 0; i < 10; i++) {\n this._h[i] = (this._h[i] & mask) | g[i];\n }\n this._h[0] = ((this._h[0]) | (this._h[1] << 13)) & 0xffff;\n this._h[1] = ((this._h[1] >>> 3) | (this._h[2] << 10)) & 0xffff;\n this._h[2] = ((this._h[2] >>> 6) | (this._h[3] << 7)) & 0xffff;\n this._h[3] = ((this._h[3] >>> 9) | (this._h[4] << 4)) & 0xffff;\n this._h[4] = ((this._h[4] >>> 12) | (this._h[5] << 1) | (this._h[6] << 14)) & 0xffff;\n this._h[5] = ((this._h[6] >>> 2) | (this._h[7] << 11)) & 0xffff;\n this._h[6] = ((this._h[7] >>> 5) | (this._h[8] << 8)) & 0xffff;\n this._h[7] = ((this._h[8] >>> 8) | (this._h[9] << 5)) & 0xffff;\n f = this._h[0] + this._pad[0];\n this._h[0] = f & 0xffff;\n for (i = 1; i < 8; i++) {\n f = (((this._h[i] + this._pad[i]) | 0) + (f >>> 16)) | 0;\n this._h[i] = f & 0xffff;\n }\n mac[macpos + 0] = this._h[0] >>> 0;\n mac[macpos + 1] = this._h[0] >>> 8;\n mac[macpos + 2] = this._h[1] >>> 0;\n mac[macpos + 3] = this._h[1] >>> 8;\n mac[macpos + 4] = this._h[2] >>> 0;\n mac[macpos + 5] = this._h[2] >>> 8;\n mac[macpos + 6] = this._h[3] >>> 0;\n mac[macpos + 7] = this._h[3] >>> 8;\n mac[macpos + 8] = this._h[4] >>> 0;\n mac[macpos + 9] = this._h[4] >>> 8;\n mac[macpos + 10] = this._h[5] >>> 0;\n mac[macpos + 11] = this._h[5] >>> 8;\n mac[macpos + 12] = this._h[6] >>> 0;\n mac[macpos + 13] = this._h[6] >>> 8;\n mac[macpos + 14] = this._h[7] >>> 0;\n mac[macpos + 15] = this._h[7] >>> 8;\n this._finished = true;\n return this;\n };\n Poly1305.prototype.update = function (m) {\n var mpos = 0;\n var bytes = m.length;\n var want;\n if (this._leftover) {\n want = (16 - this._leftover);\n if (want > bytes) {\n want = bytes;\n }\n for (var i = 0; i < want; i++) {\n this._buffer[this._leftover + i] = m[mpos + i];\n }\n bytes -= want;\n mpos += want;\n this._leftover += want;\n if (this._leftover < 16) {\n return this;\n }\n this._blocks(this._buffer, 0, 16);\n this._leftover = 0;\n }\n if (bytes >= 16) {\n want = bytes - (bytes % 16);\n this._blocks(m, mpos, want);\n mpos += want;\n bytes -= want;\n }\n if (bytes) {\n for (var i = 0; i < bytes; i++) {\n this._buffer[this._leftover + i] = m[mpos + i];\n }\n this._leftover += bytes;\n }\n return this;\n };\n Poly1305.prototype.digest = function () {\n // TODO(dchest): it behaves differently than other hashes/HMAC,\n // because it throws when finished — others just return saved result.\n if (this._finished) {\n throw new Error(\"Poly1305 was finished\");\n }\n var mac = new Uint8Array(16);\n this.finish(mac);\n return mac;\n };\n Poly1305.prototype.clean = function () {\n wipe_1.wipe(this._buffer);\n wipe_1.wipe(this._r);\n wipe_1.wipe(this._h);\n wipe_1.wipe(this._pad);\n this._leftover = 0;\n this._fin = 0;\n this._finished = true; // mark as finished even if not\n return this;\n };\n return Poly1305;\n}());\nexports.Poly1305 = Poly1305;\n/**\n * Returns 16-byte authenticator of data using a one-time 32-byte key.\n *\n * Important: key should be used for only one message, it should never repeat.\n */\nfunction oneTimeAuth(key, data) {\n var h = new Poly1305(key);\n h.update(data);\n var digest = h.digest();\n h.clean();\n return digest;\n}\nexports.oneTimeAuth = oneTimeAuth;\n/**\n * Returns true if two authenticators are 16-byte long and equal.\n * Uses contant-time comparison to avoid leaking timing information.\n */\nfunction equal(a, b) {\n if (a.length !== exports.DIGEST_LENGTH || b.length !== exports.DIGEST_LENGTH) {\n return false;\n }\n return constant_time_1.equal(a, b);\n}\nexports.equal = equal;\n//# sourceMappingURL=poly1305.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.randomStringForEntropy = exports.randomString = exports.randomUint32 = exports.randomBytes = exports.defaultRandomSource = void 0;\nconst system_1 = require(\"./source/system\");\nconst binary_1 = require(\"@stablelib/binary\");\nconst wipe_1 = require(\"@stablelib/wipe\");\nexports.defaultRandomSource = new system_1.SystemRandomSource();\nfunction randomBytes(length, prng = exports.defaultRandomSource) {\n return prng.randomBytes(length);\n}\nexports.randomBytes = randomBytes;\n/**\n * Returns a uniformly random unsigned 32-bit integer.\n */\nfunction randomUint32(prng = exports.defaultRandomSource) {\n // Generate 4-byte random buffer.\n const buf = randomBytes(4, prng);\n // Convert bytes from buffer into a 32-bit integer.\n // It's not important which byte order to use, since\n // the result is random.\n const result = (0, binary_1.readUint32LE)(buf);\n // Clean the buffer.\n (0, wipe_1.wipe)(buf);\n return result;\n}\nexports.randomUint32 = randomUint32;\n/** 62 alphanumeric characters for default charset of randomString() */\nconst ALPHANUMERIC = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\";\n/**\n * Returns a uniform random string of the given length\n * with characters from the given charset.\n *\n * Charset must not have more than 256 characters.\n *\n * Default charset generates case-sensitive alphanumeric\n * strings (0-9, A-Z, a-z).\n */\nfunction randomString(length, charset = ALPHANUMERIC, prng = exports.defaultRandomSource) {\n if (charset.length < 2) {\n throw new Error(\"randomString charset is too short\");\n }\n if (charset.length > 256) {\n throw new Error(\"randomString charset is too long\");\n }\n let out = '';\n const charsLen = charset.length;\n const maxByte = 256 - (256 % charsLen);\n while (length > 0) {\n const buf = randomBytes(Math.ceil(length * 256 / maxByte), prng);\n for (let i = 0; i < buf.length && length > 0; i++) {\n const randomByte = buf[i];\n if (randomByte < maxByte) {\n out += charset.charAt(randomByte % charsLen);\n length--;\n }\n }\n (0, wipe_1.wipe)(buf);\n }\n return out;\n}\nexports.randomString = randomString;\n/**\n * Returns uniform random string containing at least the given\n * number of bits of entropy.\n *\n * For example, randomStringForEntropy(128) will return a 22-character\n * alphanumeric string, while randomStringForEntropy(128, \"0123456789\")\n * will return a 39-character numeric string, both will contain at\n * least 128 bits of entropy.\n *\n * Default charset generates case-sensitive alphanumeric\n * strings (0-9, A-Z, a-z).\n */\nfunction randomStringForEntropy(bits, charset = ALPHANUMERIC, prng = exports.defaultRandomSource) {\n const length = Math.ceil(bits / (Math.log(charset.length) / Math.LN2));\n return randomString(length, charset, prng);\n}\nexports.randomStringForEntropy = randomStringForEntropy;\n//# sourceMappingURL=random.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BrowserRandomSource = void 0;\nconst QUOTA = 65536;\nclass BrowserRandomSource {\n constructor() {\n this.isAvailable = false;\n this.isInstantiated = false;\n const browserCrypto = typeof self !== 'undefined'\n ? (self.crypto || self.msCrypto) // IE11 has msCrypto\n : null;\n if (browserCrypto && browserCrypto.getRandomValues !== undefined) {\n this._crypto = browserCrypto;\n this.isAvailable = true;\n this.isInstantiated = true;\n }\n }\n randomBytes(length) {\n if (!this.isAvailable || !this._crypto) {\n throw new Error(\"Browser random byte generator is not available.\");\n }\n const out = new Uint8Array(length);\n for (let i = 0; i < out.length; i += QUOTA) {\n this._crypto.getRandomValues(out.subarray(i, i + Math.min(out.length - i, QUOTA)));\n }\n return out;\n }\n}\nexports.BrowserRandomSource = BrowserRandomSource;\n//# sourceMappingURL=browser.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeRandomSource = void 0;\nconst wipe_1 = require(\"@stablelib/wipe\");\nclass NodeRandomSource {\n constructor() {\n this.isAvailable = false;\n this.isInstantiated = false;\n if (typeof require !== \"undefined\") {\n const nodeCrypto = require(\"crypto\");\n if (nodeCrypto && nodeCrypto.randomBytes) {\n this._crypto = nodeCrypto;\n this.isAvailable = true;\n this.isInstantiated = true;\n }\n }\n }\n randomBytes(length) {\n if (!this.isAvailable || !this._crypto) {\n throw new Error(\"Node.js random byte generator is not available.\");\n }\n // Get random bytes (result is Buffer).\n let buffer = this._crypto.randomBytes(length);\n // Make sure we got the length that we requested.\n if (buffer.length !== length) {\n throw new Error(\"NodeRandomSource: got fewer bytes than requested\");\n }\n // Allocate output array.\n const out = new Uint8Array(length);\n // Copy bytes from buffer to output.\n for (let i = 0; i < out.length; i++) {\n out[i] = buffer[i];\n }\n // Cleanup.\n (0, wipe_1.wipe)(buffer);\n return out;\n }\n}\nexports.NodeRandomSource = NodeRandomSource;\n//# sourceMappingURL=node.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SystemRandomSource = void 0;\nconst browser_1 = require(\"./browser\");\nconst node_1 = require(\"./node\");\nclass SystemRandomSource {\n constructor() {\n this.isAvailable = false;\n this.name = \"\";\n // Try browser.\n this._source = new browser_1.BrowserRandomSource();\n if (this._source.isAvailable) {\n this.isAvailable = true;\n this.name = \"Browser\";\n return;\n }\n // If no browser source, try Node.\n this._source = new node_1.NodeRandomSource();\n if (this._source.isAvailable) {\n this.isAvailable = true;\n this.name = \"Node\";\n return;\n }\n // No sources, we're out of options.\n }\n randomBytes(length) {\n if (!this.isAvailable) {\n throw new Error(\"System random byte generator is not available.\");\n }\n return this._source.randomBytes(length);\n }\n}\nexports.SystemRandomSource = SystemRandomSource;\n//# sourceMappingURL=system.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar binary_1 = require(\"@stablelib/binary\");\nvar wipe_1 = require(\"@stablelib/wipe\");\nexports.DIGEST_LENGTH = 32;\nexports.BLOCK_SIZE = 64;\n/**\n * SHA2-256 cryptographic hash algorithm.\n */\nvar SHA256 = /** @class */ (function () {\n function SHA256() {\n /** Length of hash output */\n this.digestLength = exports.DIGEST_LENGTH;\n /** Block size */\n this.blockSize = exports.BLOCK_SIZE;\n // Note: Int32Array is used instead of Uint32Array for performance reasons.\n this._state = new Int32Array(8); // hash state\n this._temp = new Int32Array(64); // temporary state\n this._buffer = new Uint8Array(128); // buffer for data to hash\n this._bufferLength = 0; // number of bytes in buffer\n this._bytesHashed = 0; // number of total bytes hashed\n this._finished = false; // indicates whether the hash was finalized\n this.reset();\n }\n SHA256.prototype._initState = function () {\n this._state[0] = 0x6a09e667;\n this._state[1] = 0xbb67ae85;\n this._state[2] = 0x3c6ef372;\n this._state[3] = 0xa54ff53a;\n this._state[4] = 0x510e527f;\n this._state[5] = 0x9b05688c;\n this._state[6] = 0x1f83d9ab;\n this._state[7] = 0x5be0cd19;\n };\n /**\n * Resets hash state making it possible\n * to re-use this instance to hash other data.\n */\n SHA256.prototype.reset = function () {\n this._initState();\n this._bufferLength = 0;\n this._bytesHashed = 0;\n this._finished = false;\n return this;\n };\n /**\n * Cleans internal buffers and resets hash state.\n */\n SHA256.prototype.clean = function () {\n wipe_1.wipe(this._buffer);\n wipe_1.wipe(this._temp);\n this.reset();\n };\n /**\n * Updates hash state with the given data.\n *\n * Throws error when trying to update already finalized hash:\n * instance must be reset to update it again.\n */\n SHA256.prototype.update = function (data, dataLength) {\n if (dataLength === void 0) { dataLength = data.length; }\n if (this._finished) {\n throw new Error(\"SHA256: can't update because hash was finished.\");\n }\n var dataPos = 0;\n this._bytesHashed += dataLength;\n if (this._bufferLength > 0) {\n while (this._bufferLength < this.blockSize && dataLength > 0) {\n this._buffer[this._bufferLength++] = data[dataPos++];\n dataLength--;\n }\n if (this._bufferLength === this.blockSize) {\n hashBlocks(this._temp, this._state, this._buffer, 0, this.blockSize);\n this._bufferLength = 0;\n }\n }\n if (dataLength >= this.blockSize) {\n dataPos = hashBlocks(this._temp, this._state, data, dataPos, dataLength);\n dataLength %= this.blockSize;\n }\n while (dataLength > 0) {\n this._buffer[this._bufferLength++] = data[dataPos++];\n dataLength--;\n }\n return this;\n };\n /**\n * Finalizes hash state and puts hash into out.\n * If hash was already finalized, puts the same value.\n */\n SHA256.prototype.finish = function (out) {\n if (!this._finished) {\n var bytesHashed = this._bytesHashed;\n var left = this._bufferLength;\n var bitLenHi = (bytesHashed / 0x20000000) | 0;\n var bitLenLo = bytesHashed << 3;\n var padLength = (bytesHashed % 64 < 56) ? 64 : 128;\n this._buffer[left] = 0x80;\n for (var i = left + 1; i < padLength - 8; i++) {\n this._buffer[i] = 0;\n }\n binary_1.writeUint32BE(bitLenHi, this._buffer, padLength - 8);\n binary_1.writeUint32BE(bitLenLo, this._buffer, padLength - 4);\n hashBlocks(this._temp, this._state, this._buffer, 0, padLength);\n this._finished = true;\n }\n for (var i = 0; i < this.digestLength / 4; i++) {\n binary_1.writeUint32BE(this._state[i], out, i * 4);\n }\n return this;\n };\n /**\n * Returns the final hash digest.\n */\n SHA256.prototype.digest = function () {\n var out = new Uint8Array(this.digestLength);\n this.finish(out);\n return out;\n };\n /**\n * Function useful for HMAC/PBKDF2 optimization.\n * Returns hash state to be used with restoreState().\n * Only chain value is saved, not buffers or other\n * state variables.\n */\n SHA256.prototype.saveState = function () {\n if (this._finished) {\n throw new Error(\"SHA256: cannot save finished state\");\n }\n return {\n state: new Int32Array(this._state),\n buffer: this._bufferLength > 0 ? new Uint8Array(this._buffer) : undefined,\n bufferLength: this._bufferLength,\n bytesHashed: this._bytesHashed\n };\n };\n /**\n * Function useful for HMAC/PBKDF2 optimization.\n * Restores state saved by saveState() and sets bytesHashed\n * to the given value.\n */\n SHA256.prototype.restoreState = function (savedState) {\n this._state.set(savedState.state);\n this._bufferLength = savedState.bufferLength;\n if (savedState.buffer) {\n this._buffer.set(savedState.buffer);\n }\n this._bytesHashed = savedState.bytesHashed;\n this._finished = false;\n return this;\n };\n /**\n * Cleans state returned by saveState().\n */\n SHA256.prototype.cleanSavedState = function (savedState) {\n wipe_1.wipe(savedState.state);\n if (savedState.buffer) {\n wipe_1.wipe(savedState.buffer);\n }\n savedState.bufferLength = 0;\n savedState.bytesHashed = 0;\n };\n return SHA256;\n}());\nexports.SHA256 = SHA256;\n// Constants\nvar K = new Int32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b,\n 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01,\n 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7,\n 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152,\n 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147,\n 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc,\n 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819,\n 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08,\n 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f,\n 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\nfunction hashBlocks(w, v, p, pos, len) {\n while (len >= 64) {\n var a = v[0];\n var b = v[1];\n var c = v[2];\n var d = v[3];\n var e = v[4];\n var f = v[5];\n var g = v[6];\n var h = v[7];\n for (var i = 0; i < 16; i++) {\n var j = pos + i * 4;\n w[i] = binary_1.readUint32BE(p, j);\n }\n for (var i = 16; i < 64; i++) {\n var u = w[i - 2];\n var t1 = (u >>> 17 | u << (32 - 17)) ^ (u >>> 19 | u << (32 - 19)) ^ (u >>> 10);\n u = w[i - 15];\n var t2 = (u >>> 7 | u << (32 - 7)) ^ (u >>> 18 | u << (32 - 18)) ^ (u >>> 3);\n w[i] = (t1 + w[i - 7] | 0) + (t2 + w[i - 16] | 0);\n }\n for (var i = 0; i < 64; i++) {\n var t1 = (((((e >>> 6 | e << (32 - 6)) ^ (e >>> 11 | e << (32 - 11)) ^\n (e >>> 25 | e << (32 - 25))) + ((e & f) ^ (~e & g))) | 0) +\n ((h + ((K[i] + w[i]) | 0)) | 0)) | 0;\n var t2 = (((a >>> 2 | a << (32 - 2)) ^ (a >>> 13 | a << (32 - 13)) ^\n (a >>> 22 | a << (32 - 22))) + ((a & b) ^ (a & c) ^ (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 v[0] += a;\n v[1] += b;\n v[2] += c;\n v[3] += d;\n v[4] += e;\n v[5] += f;\n v[6] += g;\n v[7] += h;\n pos += 64;\n len -= 64;\n }\n return pos;\n}\nfunction hash(data) {\n var h = new SHA256();\n h.update(data);\n var digest = h.digest();\n h.clean();\n return digest;\n}\nexports.hash = hash;\n//# sourceMappingURL=sha256.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Sets all values in the given array to zero and returns it.\n *\n * The fact that it sets bytes to zero can be relied on.\n *\n * There is no guarantee that this function makes data disappear from memory,\n * as runtime implementation can, for example, have copying garbage collector\n * that will make copies of sensitive data before we wipe it. Or that an\n * operating system will write our data to swap or sleep image. Another thing\n * is that an optimizing compiler can remove calls to this function or make it\n * no-op. There's nothing we can do with it, so we just do our best and hope\n * that everything will be okay and good will triumph over evil.\n */\nfunction wipe(array) {\n // Right now it's similar to array.fill(0). If it turns\n // out that runtimes optimize this call away, maybe\n // we can try something else.\n for (var i = 0; i < array.length; i++) {\n array[i] = 0;\n }\n return array;\n}\nexports.wipe = wipe;\n//# sourceMappingURL=wipe.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sharedKey = exports.generateKeyPair = exports.generateKeyPairFromSeed = exports.scalarMultBase = exports.scalarMult = exports.SHARED_KEY_LENGTH = exports.SECRET_KEY_LENGTH = exports.PUBLIC_KEY_LENGTH = void 0;\n/**\n * Package x25519 implements X25519 key agreement.\n */\nconst random_1 = require(\"@stablelib/random\");\nconst wipe_1 = require(\"@stablelib/wipe\");\nexports.PUBLIC_KEY_LENGTH = 32;\nexports.SECRET_KEY_LENGTH = 32;\nexports.SHARED_KEY_LENGTH = 32;\n// Returns new zero-filled 16-element GF (Float64Array).\n// If passed an array of numbers, prefills the returned\n// array with them.\n//\n// We use Float64Array, because we need 48-bit numbers\n// for this implementation.\nfunction gf(init) {\n const r = new Float64Array(16);\n if (init) {\n for (let i = 0; i < init.length; i++) {\n r[i] = init[i];\n }\n }\n return r;\n}\n// Base point.\nconst _9 = new Uint8Array(32);\n_9[0] = 9;\nconst _121665 = gf([0xdb41, 1]);\nfunction car25519(o) {\n let c = 1;\n for (let i = 0; i < 16; i++) {\n let v = o[i] + c + 65535;\n c = Math.floor(v / 65536);\n o[i] = v - c * 65536;\n }\n o[0] += c - 1 + 37 * (c - 1);\n}\nfunction sel25519(p, q, b) {\n const c = ~(b - 1);\n for (let i = 0; i < 16; i++) {\n const t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\nfunction pack25519(o, n) {\n const m = gf();\n const t = gf();\n for (let i = 0; i < 16; i++) {\n t[i] = n[i];\n }\n car25519(t);\n car25519(t);\n car25519(t);\n for (let j = 0; j < 2; j++) {\n m[0] = t[0] - 0xffed;\n for (let i = 1; i < 15; i++) {\n m[i] = t[i] - 0xffff - ((m[i - 1] >> 16) & 1);\n m[i - 1] &= 0xffff;\n }\n m[15] = t[15] - 0x7fff - ((m[14] >> 16) & 1);\n const b = (m[15] >> 16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1 - b);\n }\n for (let i = 0; i < 16; i++) {\n o[2 * i] = t[i] & 0xff;\n o[2 * i + 1] = t[i] >> 8;\n }\n}\nfunction unpack25519(o, n) {\n for (let i = 0; i < 16; i++) {\n o[i] = n[2 * i] + (n[2 * i + 1] << 8);\n }\n o[15] &= 0x7fff;\n}\nfunction add(o, a, b) {\n for (let i = 0; i < 16; i++) {\n o[i] = a[i] + b[i];\n }\n}\nfunction sub(o, a, b) {\n for (let i = 0; i < 16; i++) {\n o[i] = a[i] - b[i];\n }\n}\nfunction mul(o, a, b) {\n let v, c, t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0, t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0, t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0, b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3], b4 = b[4], b5 = b[5], b6 = b[6], b7 = b[7], b8 = b[8], b9 = b[9], b10 = b[10], b11 = b[11], b12 = b[12], b13 = b[13], b14 = b[14], b15 = b[15];\n v = a[0];\n t0 += v * b0;\n t1 += v * b1;\n t2 += v * b2;\n t3 += v * b3;\n t4 += v * b4;\n t5 += v * b5;\n t6 += v * b6;\n t7 += v * b7;\n t8 += v * b8;\n t9 += v * b9;\n t10 += v * b10;\n t11 += v * b11;\n t12 += v * b12;\n t13 += v * b13;\n t14 += v * b14;\n t15 += v * b15;\n v = a[1];\n t1 += v * b0;\n t2 += v * b1;\n t3 += v * b2;\n t4 += v * b3;\n t5 += v * b4;\n t6 += v * b5;\n t7 += v * b6;\n t8 += v * b7;\n t9 += v * b8;\n t10 += v * b9;\n t11 += v * b10;\n t12 += v * b11;\n t13 += v * b12;\n t14 += v * b13;\n t15 += v * b14;\n t16 += v * b15;\n v = a[2];\n t2 += v * b0;\n t3 += v * b1;\n t4 += v * b2;\n t5 += v * b3;\n t6 += v * b4;\n t7 += v * b5;\n t8 += v * b6;\n t9 += v * b7;\n t10 += v * b8;\n t11 += v * b9;\n t12 += v * b10;\n t13 += v * b11;\n t14 += v * b12;\n t15 += v * b13;\n t16 += v * b14;\n t17 += v * b15;\n v = a[3];\n t3 += v * b0;\n t4 += v * b1;\n t5 += v * b2;\n t6 += v * b3;\n t7 += v * b4;\n t8 += v * b5;\n t9 += v * b6;\n t10 += v * b7;\n t11 += v * b8;\n t12 += v * b9;\n t13 += v * b10;\n t14 += v * b11;\n t15 += v * b12;\n t16 += v * b13;\n t17 += v * b14;\n t18 += v * b15;\n v = a[4];\n t4 += v * b0;\n t5 += v * b1;\n t6 += v * b2;\n t7 += v * b3;\n t8 += v * b4;\n t9 += v * b5;\n t10 += v * b6;\n t11 += v * b7;\n t12 += v * b8;\n t13 += v * b9;\n t14 += v * b10;\n t15 += v * b11;\n t16 += v * b12;\n t17 += v * b13;\n t18 += v * b14;\n t19 += v * b15;\n v = a[5];\n t5 += v * b0;\n t6 += v * b1;\n t7 += v * b2;\n t8 += v * b3;\n t9 += v * b4;\n t10 += v * b5;\n t11 += v * b6;\n t12 += v * b7;\n t13 += v * b8;\n t14 += v * b9;\n t15 += v * b10;\n t16 += v * b11;\n t17 += v * b12;\n t18 += v * b13;\n t19 += v * b14;\n t20 += v * b15;\n v = a[6];\n t6 += v * b0;\n t7 += v * b1;\n t8 += v * b2;\n t9 += v * b3;\n t10 += v * b4;\n t11 += v * b5;\n t12 += v * b6;\n t13 += v * b7;\n t14 += v * b8;\n t15 += v * b9;\n t16 += v * b10;\n t17 += v * b11;\n t18 += v * b12;\n t19 += v * b13;\n t20 += v * b14;\n t21 += v * b15;\n v = a[7];\n t7 += v * b0;\n t8 += v * b1;\n t9 += v * b2;\n t10 += v * b3;\n t11 += v * b4;\n t12 += v * b5;\n t13 += v * b6;\n t14 += v * b7;\n t15 += v * b8;\n t16 += v * b9;\n t17 += v * b10;\n t18 += v * b11;\n t19 += v * b12;\n t20 += v * b13;\n t21 += v * b14;\n t22 += v * b15;\n v = a[8];\n t8 += v * b0;\n t9 += v * b1;\n t10 += v * b2;\n t11 += v * b3;\n t12 += v * b4;\n t13 += v * b5;\n t14 += v * b6;\n t15 += v * b7;\n t16 += v * b8;\n t17 += v * b9;\n t18 += v * b10;\n t19 += v * b11;\n t20 += v * b12;\n t21 += v * b13;\n t22 += v * b14;\n t23 += v * b15;\n v = a[9];\n t9 += v * b0;\n t10 += v * b1;\n t11 += v * b2;\n t12 += v * b3;\n t13 += v * b4;\n t14 += v * b5;\n t15 += v * b6;\n t16 += v * b7;\n t17 += v * b8;\n t18 += v * b9;\n t19 += v * b10;\n t20 += v * b11;\n t21 += v * b12;\n t22 += v * b13;\n t23 += v * b14;\n t24 += v * b15;\n v = a[10];\n t10 += v * b0;\n t11 += v * b1;\n t12 += v * b2;\n t13 += v * b3;\n t14 += v * b4;\n t15 += v * b5;\n t16 += v * b6;\n t17 += v * b7;\n t18 += v * b8;\n t19 += v * b9;\n t20 += v * b10;\n t21 += v * b11;\n t22 += v * b12;\n t23 += v * b13;\n t24 += v * b14;\n t25 += v * b15;\n v = a[11];\n t11 += v * b0;\n t12 += v * b1;\n t13 += v * b2;\n t14 += v * b3;\n t15 += v * b4;\n t16 += v * b5;\n t17 += v * b6;\n t18 += v * b7;\n t19 += v * b8;\n t20 += v * b9;\n t21 += v * b10;\n t22 += v * b11;\n t23 += v * b12;\n t24 += v * b13;\n t25 += v * b14;\n t26 += v * b15;\n v = a[12];\n t12 += v * b0;\n t13 += v * b1;\n t14 += v * b2;\n t15 += v * b3;\n t16 += v * b4;\n t17 += v * b5;\n t18 += v * b6;\n t19 += v * b7;\n t20 += v * b8;\n t21 += v * b9;\n t22 += v * b10;\n t23 += v * b11;\n t24 += v * b12;\n t25 += v * b13;\n t26 += v * b14;\n t27 += v * b15;\n v = a[13];\n t13 += v * b0;\n t14 += v * b1;\n t15 += v * b2;\n t16 += v * b3;\n t17 += v * b4;\n t18 += v * b5;\n t19 += v * b6;\n t20 += v * b7;\n t21 += v * b8;\n t22 += v * b9;\n t23 += v * b10;\n t24 += v * b11;\n t25 += v * b12;\n t26 += v * b13;\n t27 += v * b14;\n t28 += v * b15;\n v = a[14];\n t14 += v * b0;\n t15 += v * b1;\n t16 += v * b2;\n t17 += v * b3;\n t18 += v * b4;\n t19 += v * b5;\n t20 += v * b6;\n t21 += v * b7;\n t22 += v * b8;\n t23 += v * b9;\n t24 += v * b10;\n t25 += v * b11;\n t26 += v * b12;\n t27 += v * b13;\n t28 += v * b14;\n t29 += v * b15;\n v = a[15];\n t15 += v * b0;\n t16 += v * b1;\n t17 += v * b2;\n t18 += v * b3;\n t19 += v * b4;\n t20 += v * b5;\n t21 += v * b6;\n t22 += v * b7;\n t23 += v * b8;\n t24 += v * b9;\n t25 += v * b10;\n t26 += v * b11;\n t27 += v * b12;\n t28 += v * b13;\n t29 += v * b14;\n t30 += v * b15;\n t0 += 38 * t16;\n t1 += 38 * t17;\n t2 += 38 * t18;\n t3 += 38 * t19;\n t4 += 38 * t20;\n t5 += 38 * t21;\n t6 += 38 * t22;\n t7 += 38 * t23;\n t8 += 38 * t24;\n t9 += 38 * t25;\n t10 += 38 * t26;\n t11 += 38 * t27;\n t12 += 38 * t28;\n t13 += 38 * t29;\n t14 += 38 * t30;\n // t15 left as is\n // first car\n c = 1;\n v = t0 + c + 65535;\n c = Math.floor(v / 65536);\n t0 = v - c * 65536;\n v = t1 + c + 65535;\n c = Math.floor(v / 65536);\n t1 = v - c * 65536;\n v = t2 + c + 65535;\n c = Math.floor(v / 65536);\n t2 = v - c * 65536;\n v = t3 + c + 65535;\n c = Math.floor(v / 65536);\n t3 = v - c * 65536;\n v = t4 + c + 65535;\n c = Math.floor(v / 65536);\n t4 = v - c * 65536;\n v = t5 + c + 65535;\n c = Math.floor(v / 65536);\n t5 = v - c * 65536;\n v = t6 + c + 65535;\n c = Math.floor(v / 65536);\n t6 = v - c * 65536;\n v = t7 + c + 65535;\n c = Math.floor(v / 65536);\n t7 = v - c * 65536;\n v = t8 + c + 65535;\n c = Math.floor(v / 65536);\n t8 = v - c * 65536;\n v = t9 + c + 65535;\n c = Math.floor(v / 65536);\n t9 = v - c * 65536;\n v = t10 + c + 65535;\n c = Math.floor(v / 65536);\n t10 = v - c * 65536;\n v = t11 + c + 65535;\n c = Math.floor(v / 65536);\n t11 = v - c * 65536;\n v = t12 + c + 65535;\n c = Math.floor(v / 65536);\n t12 = v - c * 65536;\n v = t13 + c + 65535;\n c = Math.floor(v / 65536);\n t13 = v - c * 65536;\n v = t14 + c + 65535;\n c = Math.floor(v / 65536);\n t14 = v - c * 65536;\n v = t15 + c + 65535;\n c = Math.floor(v / 65536);\n t15 = v - c * 65536;\n t0 += c - 1 + 37 * (c - 1);\n // second car\n c = 1;\n v = t0 + c + 65535;\n c = Math.floor(v / 65536);\n t0 = v - c * 65536;\n v = t1 + c + 65535;\n c = Math.floor(v / 65536);\n t1 = v - c * 65536;\n v = t2 + c + 65535;\n c = Math.floor(v / 65536);\n t2 = v - c * 65536;\n v = t3 + c + 65535;\n c = Math.floor(v / 65536);\n t3 = v - c * 65536;\n v = t4 + c + 65535;\n c = Math.floor(v / 65536);\n t4 = v - c * 65536;\n v = t5 + c + 65535;\n c = Math.floor(v / 65536);\n t5 = v - c * 65536;\n v = t6 + c + 65535;\n c = Math.floor(v / 65536);\n t6 = v - c * 65536;\n v = t7 + c + 65535;\n c = Math.floor(v / 65536);\n t7 = v - c * 65536;\n v = t8 + c + 65535;\n c = Math.floor(v / 65536);\n t8 = v - c * 65536;\n v = t9 + c + 65535;\n c = Math.floor(v / 65536);\n t9 = v - c * 65536;\n v = t10 + c + 65535;\n c = Math.floor(v / 65536);\n t10 = v - c * 65536;\n v = t11 + c + 65535;\n c = Math.floor(v / 65536);\n t11 = v - c * 65536;\n v = t12 + c + 65535;\n c = Math.floor(v / 65536);\n t12 = v - c * 65536;\n v = t13 + c + 65535;\n c = Math.floor(v / 65536);\n t13 = v - c * 65536;\n v = t14 + c + 65535;\n c = Math.floor(v / 65536);\n t14 = v - c * 65536;\n v = t15 + c + 65535;\n c = Math.floor(v / 65536);\n t15 = v - c * 65536;\n t0 += c - 1 + 37 * (c - 1);\n o[0] = t0;\n o[1] = t1;\n o[2] = t2;\n o[3] = t3;\n o[4] = t4;\n o[5] = t5;\n o[6] = t6;\n o[7] = t7;\n o[8] = t8;\n o[9] = t9;\n o[10] = t10;\n o[11] = t11;\n o[12] = t12;\n o[13] = t13;\n o[14] = t14;\n o[15] = t15;\n}\nfunction square(o, a) {\n mul(o, a, a);\n}\nfunction inv25519(o, inp) {\n const c = gf();\n for (let i = 0; i < 16; i++) {\n c[i] = inp[i];\n }\n for (let i = 253; i >= 0; i--) {\n square(c, c);\n if (i !== 2 && i !== 4) {\n mul(c, c, inp);\n }\n }\n for (let i = 0; i < 16; i++) {\n o[i] = c[i];\n }\n}\nfunction scalarMult(n, p) {\n const z = new Uint8Array(32);\n const x = new Float64Array(80);\n const a = gf(), b = gf(), c = gf(), d = gf(), e = gf(), f = gf();\n for (let i = 0; i < 31; i++) {\n z[i] = n[i];\n }\n z[31] = (n[31] & 127) | 64;\n z[0] &= 248;\n unpack25519(x, p);\n for (let i = 0; i < 16; i++) {\n b[i] = x[i];\n }\n a[0] = d[0] = 1;\n for (let i = 254; i >= 0; --i) {\n const r = (z[i >>> 3] >>> (i & 7)) & 1;\n sel25519(a, b, r);\n sel25519(c, d, r);\n add(e, a, c);\n sub(a, a, c);\n add(c, b, d);\n sub(b, b, d);\n square(d, e);\n square(f, a);\n mul(a, c, a);\n mul(c, b, e);\n add(e, a, c);\n sub(a, a, c);\n square(b, a);\n sub(c, d, f);\n mul(a, c, _121665);\n add(a, a, d);\n mul(c, c, a);\n mul(a, d, f);\n mul(d, b, x);\n square(b, e);\n sel25519(a, b, r);\n sel25519(c, d, r);\n }\n for (let i = 0; i < 16; i++) {\n x[i + 16] = a[i];\n x[i + 32] = c[i];\n x[i + 48] = b[i];\n x[i + 64] = d[i];\n }\n const x32 = x.subarray(32);\n const x16 = x.subarray(16);\n inv25519(x32, x32);\n mul(x16, x16, x32);\n const q = new Uint8Array(32);\n pack25519(q, x16);\n return q;\n}\nexports.scalarMult = scalarMult;\nfunction scalarMultBase(n) {\n return scalarMult(n, _9);\n}\nexports.scalarMultBase = scalarMultBase;\nfunction generateKeyPairFromSeed(seed) {\n if (seed.length !== exports.SECRET_KEY_LENGTH) {\n throw new Error(`x25519: seed must be ${exports.SECRET_KEY_LENGTH} bytes`);\n }\n const secretKey = new Uint8Array(seed);\n const publicKey = scalarMultBase(secretKey);\n return {\n publicKey,\n secretKey\n };\n}\nexports.generateKeyPairFromSeed = generateKeyPairFromSeed;\nfunction generateKeyPair(prng) {\n const seed = (0, random_1.randomBytes)(32, prng);\n const result = generateKeyPairFromSeed(seed);\n (0, wipe_1.wipe)(seed);\n return result;\n}\nexports.generateKeyPair = generateKeyPair;\n/**\n * Returns a shared key between our secret key and a peer's public key.\n *\n * Throws an error if the given keys are of wrong length.\n *\n * If rejectZero is true throws if the calculated shared key is all-zero.\n * From RFC 7748:\n *\n * > Protocol designers using Diffie-Hellman over the curves defined in\n * > this document must not assume \"contributory behavior\". Specially,\n * > contributory behavior means that both parties' private keys\n * > contribute to the resulting shared key. Since curve25519 and\n * > curve448 have cofactors of 8 and 4 (respectively), an input point of\n * > small order will eliminate any contribution from the other party's\n * > private key. This situation can be detected by checking for the all-\n * > zero output, which implementations MAY do, as specified in Section 6.\n * > However, a large number of existing implementations do not do this.\n *\n * IMPORTANT: the returned key is a raw result of scalar multiplication.\n * To use it as a key material, hash it with a cryptographic hash function.\n */\nfunction sharedKey(mySecretKey, theirPublicKey, rejectZero = false) {\n if (mySecretKey.length !== exports.PUBLIC_KEY_LENGTH) {\n throw new Error(\"X25519: incorrect secret key length\");\n }\n if (theirPublicKey.length !== exports.PUBLIC_KEY_LENGTH) {\n throw new Error(\"X25519: incorrect public key length\");\n }\n const result = scalarMult(mySecretKey, theirPublicKey);\n if (rejectZero) {\n let zeros = 0;\n for (let i = 0; i < result.length; i++) {\n zeros |= result[i];\n }\n if (zeros === 0) {\n throw new Error(\"X25519: invalid shared key\");\n }\n }\n return result;\n}\nexports.sharedKey = sharedKey;\n//# sourceMappingURL=x25519.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.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(\"./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 });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./watch\"), exports);\n//# sourceMappingURL=index.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 });\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 });\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 });\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","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","export const RELAY_JSONRPC = {\n waku: {\n publish: \"waku_publish\",\n batchPublish: \"waku_batchPublish\",\n subscribe: \"waku_subscribe\",\n batchSubscribe: \"waku_batchSubscribe\",\n subscription: \"waku_subscription\",\n unsubscribe: \"waku_unsubscribe\",\n batchUnsubscribe: \"waku_batchUnsubscribe\",\n },\n irn: {\n publish: \"irn_publish\",\n batchPublish: \"irn_batchPublish\",\n subscribe: \"irn_subscribe\",\n batchSubscribe: \"irn_batchSubscribe\",\n subscription: \"irn_subscription\",\n unsubscribe: \"irn_unsubscribe\",\n batchUnsubscribe: \"irn_batchUnsubscribe\",\n },\n iridium: {\n publish: \"iridium_publish\",\n batchPublish: \"iridium_batchPublish\",\n subscribe: \"iridium_subscribe\",\n batchSubscribe: \"iridium_batchSubscribe\",\n subscription: \"iridium_subscription\",\n unsubscribe: \"iridium_unsubscribe\",\n batchUnsubscribe: \"iridium_batchUnsubscribe\",\n },\n};\n//# sourceMappingURL=jsonrpc.js.map","import{ChaCha20Poly1305 as ie}from\"@stablelib/chacha20poly1305\";import{HKDF as pn}from\"@stablelib/hkdf\";import{randomBytes as ce}from\"@stablelib/random\";import{SHA256 as mn,hash as ae}from\"@stablelib/sha256\";import*as ue from\"@stablelib/x25519\";import{toString as h,fromString as E,concat as le}from\"uint8arrays\";import{detect as yn}from\"detect-browser\";import{toMiliseconds as z,FIVE_MINUTES as de,fromMiliseconds as hn}from\"@walletconnect/time\";import{getDocument as En,getNavigator as fe,getLocation as pe}from\"@walletconnect/window-getters\";import{getWindowMetadata as vn}from\"@walletconnect/window-metadata\";import*as V from\"query-string\";import{RELAY_JSONRPC as gn}from\"@walletconnect/relay-api\";const M=\":\";function me(e){const[n,t]=e.split(M);return{namespace:n,reference:t}}function ye(e){const{namespace:n,reference:t}=e;return[n,t].join(M)}function G(e){const[n,t,r]=e.split(M);return{namespace:n,reference:t,address:r}}function he(e){const{namespace:n,reference:t,address:r}=e;return[n,t,r].join(M)}function W(e,n){const t=[];return e.forEach(r=>{const o=n(r);t.includes(o)||t.push(o)}),t}function Ee(e){const{address:n}=G(e);return n}function ve(e){const{namespace:n,reference:t}=G(e);return ye({namespace:n,reference:t})}function Nn(e,n){const{namespace:t,reference:r}=me(n);return he({namespace:t,reference:r,address:e})}function bn(e){return W(e,Ee)}function ge(e){return W(e,ve)}function On(e,n=[]){const t=[];return Object.keys(e).forEach(r=>{if(n.length&&!n.includes(r))return;const o=e[r];t.push(...o.accounts)}),t}function Sn(e,n=[]){const t=[];return Object.keys(e).forEach(r=>{if(n.length&&!n.includes(r))return;const o=e[r];t.push(...ge(o.accounts))}),t}function In(e,n=[]){const t=[];return Object.keys(e).forEach(r=>{if(n.length&&!n.includes(r))return;const o=e[r];t.push(...k(r,o))}),t}function k(e,n){return e.includes(\":\")?[e]:n.chains||[]}const K=e=>e?.split(\":\"),Ne=e=>{const n=e&&K(e);if(n)return n[3]},Pn=e=>{const n=e&&K(e);if(n)return n[2]+\":\"+n[3]},be=e=>{const n=e&&K(e);if(n)return n.pop()},Tn=(e,n)=>{const t=`${e.domain} wants you to sign in with your Ethereum account:`,r=be(n),o=e.statement,s=`URI: ${e.aud}`,i=`Version: ${e.version}`,l=`Chain ID: ${Ne(n)}`,d=`Nonce: ${e.nonce}`,c=`Issued At: ${e.iat}`,u=e.resources&&e.resources.length>0?`Resources:\n${e.resources.map(a=>`- ${a}`).join(`\n`)}`:void 0;return[t,r,\"\",o,\"\",s,i,l,d,c,u].filter(a=>a!=null).join(`\n`)},B=\"base10\",f=\"base16\",L=\"base64pad\",x=\"utf8\",Y=0,U=1,Rn=0,Oe=1,J=12,Q=32;function wn(){const e=ue.generateKeyPair();return{privateKey:h(e.secretKey,f),publicKey:h(e.publicKey,f)}}function An(){const e=ce(Q);return h(e,f)}function Un(e,n){const t=ue.sharedKey(E(e,f),E(n,f)),r=new pn(mn,t).expand(Q);return h(r,f)}function _n(e){const n=ae(E(e,f));return h(n,f)}function $n(e){const n=ae(E(e,x));return h(n,f)}function Se(e){return E(`${e}`,B)}function $(e){return Number(h(e,B))}function jn(e){const n=Se(typeof e.type<\"u\"?e.type:Y);if($(n)===U&&typeof e.senderPublicKey>\"u\")throw new Error(\"Missing sender public key for type 1 envelope\");const t=typeof e.senderPublicKey<\"u\"?E(e.senderPublicKey,f):void 0,r=typeof e.iv<\"u\"?E(e.iv,f):ce(J),o=new ie(E(e.symKey,f)).seal(r,E(e.message,x));return Ie({type:n,sealed:o,iv:r,senderPublicKey:t})}function Cn(e){const n=new ie(E(e.symKey,f)),{sealed:t,iv:r}=Z(e.encoded),o=n.open(r,t);if(o===null)throw new Error(\"Failed to decrypt\");return h(o,x)}function Ie(e){if($(e.type)===U){if(typeof e.senderPublicKey>\"u\")throw new Error(\"Missing sender public key for type 1 envelope\");return h(le([e.type,e.senderPublicKey,e.iv,e.sealed]),L)}return h(le([e.type,e.iv,e.sealed]),L)}function Z(e){const n=E(e,L),t=n.slice(Rn,Oe),r=Oe;if($(t)===U){const l=r+Q,d=l+J,c=n.slice(r,l),u=n.slice(l,d),a=n.slice(d);return{type:t,sealed:a,iv:u,senderPublicKey:c}}const o=r+J,s=n.slice(r,o),i=n.slice(o);return{type:t,sealed:i,iv:s}}function Dn(e,n){const t=Z(e);return Pe({type:$(t.type),senderPublicKey:typeof t.senderPublicKey<\"u\"?h(t.senderPublicKey,f):void 0,receiverPublicKey:n?.receiverPublicKey})}function Pe(e){const n=e?.type||Y;if(n===U){if(typeof e?.senderPublicKey>\"u\")throw new Error(\"missing sender public key\");if(typeof e?.receiverPublicKey>\"u\")throw new Error(\"missing receiver public key\")}return{type:n,senderPublicKey:e?.senderPublicKey,receiverPublicKey:e?.receiverPublicKey}}function Vn(e){return e.type===U&&typeof e.senderPublicKey==\"string\"&&typeof e.receiverPublicKey==\"string\"}var Mn=Object.defineProperty,Te=Object.getOwnPropertySymbols,kn=Object.prototype.hasOwnProperty,Kn=Object.prototype.propertyIsEnumerable,Re=(e,n,t)=>n in e?Mn(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,we=(e,n)=>{for(var t in n||(n={}))kn.call(n,t)&&Re(e,t,n[t]);if(Te)for(var t of Te(n))Kn.call(n,t)&&Re(e,t,n[t]);return e};const Ae=\"ReactNative\",N={reactNative:\"react-native\",node:\"node\",browser:\"browser\",unknown:\"unknown\"},F=\" \",Ln=\":\",Ue=\"/\",X=2,xn=1e3,_e=\"js\";function ee(){return typeof process<\"u\"&&typeof process.versions<\"u\"&&typeof process.versions.node<\"u\"}function $e(){return!En()&&!!fe()&&navigator.product===Ae}function je(){return!ee()&&!!fe()}function j(){return $e()?N.reactNative:ee()?N.node:je()?N.browser:N.unknown}function Ce(e,n){let t=V.parse(e);return t=we(we({},t),n),e=V.stringify(t),e}function Fn(){return vn()||{name:\"\",description:\"\",url:\"\",icons:[\"\"]}}function Hn(e,n){var t;const r=j(),o={protocol:e,version:n,env:r};return r===\"browser\"&&(o.host=((t=pe())==null?void 0:t.host)||\"unknown\"),o}function De(){if(j()===N.reactNative&&typeof global<\"u\"&&typeof(global==null?void 0:global.Platform)<\"u\"){const{OS:t,Version:r}=global.Platform;return[t,r].join(\"-\")}const e=yn();if(e===null)return\"unknown\";const n=e.os?e.os.replace(\" \",\"\").toLowerCase():\"unknown\";return e.type===\"browser\"?[n,e.name,e.version].join(\"-\"):[n,e.version].join(\"-\")}function Ve(){var e;const n=j();return n===N.browser?[n,((e=pe())==null?void 0:e.host)||\"unknown\"].join(\":\"):n}function Me(e,n,t){const r=De(),o=Ve();return[[e,n].join(\"-\"),[_e,t].join(\"-\"),r,o].join(\"/\")}function qn({protocol:e,version:n,relayUrl:t,sdkVersion:r,auth:o,projectId:s,useOnCloseEvent:i}){const l=t.split(\"?\"),d=Me(e,n,r),c={auth:o,ua:d,projectId:s,useOnCloseEvent:i||void 0},u=Ce(l[1]||\"\",c);return l[0]+\"?\"+u}function zn(e){let n=(e.match(/^[^:]+(?=:\\/\\/)/gi)||[])[0];const t=typeof n<\"u\"?e.split(\"://\")[1]:e;return n=n===\"wss\"?\"https\":\"http\",[n,t].join(\"://\")}function Gn(e,n,t){if(!e[n]||typeof e[n]!==t)throw new Error(`Missing or invalid \"${n}\" param`)}function ke(e,n=X){return Ke(e.split(Ue),n)}function Wn(e){return ke(e).join(F)}function O(e,n){return e.filter(t=>n.includes(t)).length===e.length}function Ke(e,n=X){return e.slice(Math.max(e.length-n,0))}function Bn(e){return Object.fromEntries(e.entries())}function Yn(e){return new Map(Object.entries(e))}function Jn(e,n){const t={};return Object.keys(e).forEach(r=>{t[r]=n(e[r])}),t}const Qn=e=>e;function Le(e){return e.trim().replace(/^\\w/,n=>n.toUpperCase())}function Zn(e){return e.split(F).map(n=>Le(n)).join(F)}function Xn(e=de,n){const t=z(e||de);let r,o,s;return{resolve:i=>{s&&r&&(clearTimeout(s),r(i))},reject:i=>{s&&o&&(clearTimeout(s),o(i))},done:()=>new Promise((i,l)=>{s=setTimeout(()=>{l(new Error(n))},t),r=i,o=l})}}function et(e,n,t){return new Promise(async(r,o)=>{const s=setTimeout(()=>o(new Error(t)),n);try{const i=await e;r(i)}catch(i){o(i)}clearTimeout(s)})}function ne(e,n){if(typeof n==\"string\"&&n.startsWith(`${e}:`))return n;if(e.toLowerCase()===\"topic\"){if(typeof n!=\"string\")throw new Error('Value must be \"string\" for expirer target type: topic');return`topic:${n}`}else if(e.toLowerCase()===\"id\"){if(typeof n!=\"number\")throw new Error('Value must be \"number\" for expirer target type: id');return`id:${n}`}throw new Error(`Unknown expirer target type: ${e}`)}function nt(e){return ne(\"topic\",e)}function tt(e){return ne(\"id\",e)}function rt(e){const[n,t]=e.split(\":\"),r={id:void 0,topic:void 0};if(n===\"topic\"&&typeof t==\"string\")r.topic=t;else if(n===\"id\"&&Number.isInteger(Number(t)))r.id=Number(t);else throw new Error(`Invalid target, expected id:number or topic:string, got ${n}:${t}`);return r}function ot(e,n){return hn((n||Date.now())+z(e))}function st(e){return Date.now()>=z(e)}function it(e,n){return`${e}${n?`:${n}`:\"\"}`}function S(e=[],n=[]){return[...new Set([...e,...n])]}async function ct({id:e,topic:n,wcDeepLink:t}){try{if(!t)return;const r=typeof t==\"string\"?JSON.parse(t):t;let o=r?.href;if(typeof o!=\"string\")return;o.endsWith(\"/\")&&(o=o.slice(0,-1));const s=`${o}/wc?requestId=${e}&sessionTopic=${n}`,i=j();i===N.browser?s.startsWith(\"https://\")?window.open(s,\"_blank\",\"noreferrer noopener\"):window.open(s,\"_self\",\"noreferrer noopener\"):i===N.reactNative&&typeof(global==null?void 0:global.Linking)<\"u\"&&await global.Linking.openURL(s)}catch(r){console.error(r)}}const xe=\"irn\";function at(e){return e?.relay||{protocol:xe}}function ut(e){const n=gn[e];if(typeof n>\"u\")throw new Error(`Relay Protocol not supported: ${e}`);return n}var lt=Object.defineProperty,Fe=Object.getOwnPropertySymbols,dt=Object.prototype.hasOwnProperty,ft=Object.prototype.propertyIsEnumerable,He=(e,n,t)=>n in e?lt(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,pt=(e,n)=>{for(var t in n||(n={}))dt.call(n,t)&&He(e,t,n[t]);if(Fe)for(var t of Fe(n))ft.call(n,t)&&He(e,t,n[t]);return e};function qe(e,n=\"-\"){const t={},r=\"relay\"+n;return Object.keys(e).forEach(o=>{if(o.startsWith(r)){const s=o.replace(r,\"\"),i=e[o];t[s]=i}}),t}function mt(e){const n=e.indexOf(\":\"),t=e.indexOf(\"?\")!==-1?e.indexOf(\"?\"):void 0,r=e.substring(0,n),o=e.substring(n+1,t).split(\"@\"),s=typeof t<\"u\"?e.substring(t):\"\",i=V.parse(s);return{protocol:r,topic:ze(o[0]),version:parseInt(o[1],10),symKey:i.symKey,relay:qe(i)}}function ze(e){return e.startsWith(\"//\")?e.substring(2):e}function Ge(e,n=\"-\"){const t=\"relay\",r={};return Object.keys(e).forEach(o=>{const s=t+n+o;e[o]&&(r[s]=e[o])}),r}function yt(e){return`${e.protocol}:${e.topic}@${e.version}?`+V.stringify(pt({symKey:e.symKey},Ge(e.relay)))}var ht=Object.defineProperty,Et=Object.defineProperties,vt=Object.getOwnPropertyDescriptors,We=Object.getOwnPropertySymbols,gt=Object.prototype.hasOwnProperty,Nt=Object.prototype.propertyIsEnumerable,Be=(e,n,t)=>n in e?ht(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,bt=(e,n)=>{for(var t in n||(n={}))gt.call(n,t)&&Be(e,t,n[t]);if(We)for(var t of We(n))Nt.call(n,t)&&Be(e,t,n[t]);return e},Ot=(e,n)=>Et(e,vt(n));function R(e){const n=[];return e.forEach(t=>{const[r,o]=t.split(\":\");n.push(`${r}:${o}`)}),n}function Ye(e){const n=[];return Object.values(e).forEach(t=>{n.push(...R(t.accounts))}),n}function Je(e,n){const t=[];return Object.values(e).forEach(r=>{R(r.accounts).includes(n)&&t.push(...r.methods)}),t}function Qe(e,n){const t=[];return Object.values(e).forEach(r=>{R(r.accounts).includes(n)&&t.push(...r.events)}),t}function St(e,n){const t=sn(e,n);if(t)throw new Error(t.message);const r={};for(const[o,s]of Object.entries(e))r[o]={methods:s.methods,events:s.events,chains:s.accounts.map(i=>`${i.split(\":\")[0]}:${i.split(\":\")[1]}`)};return r}function It(e){const{proposal:{requiredNamespaces:n,optionalNamespaces:t={}},supportedNamespaces:r}=e,o=re(n),s=re(t),i={};Object.keys(r).forEach(c=>{const u=r[c].chains,a=r[c].methods,g=r[c].events,A=r[c].accounts;i[c]={chains:u,methods:a,events:g,accounts:A}});const l=an(n,i,\"approve()\");if(l)throw new Error(l.message);const d={};return Object.keys(o).forEach(c=>{const u=r[c].chains.filter(v=>{var p,y;return(y=(p=o[c])==null?void 0:p.chains)==null?void 0:y.includes(v)}),a=r[c].methods.filter(v=>{var p,y;return(y=(p=o[c])==null?void 0:p.methods)==null?void 0:y.includes(v)}),g=r[c].events.filter(v=>{var p,y;return(y=(p=o[c])==null?void 0:p.events)==null?void 0:y.includes(v)}),A=u.map(v=>r[c].accounts.filter(p=>p.includes(`${v}:`))).flat();d[c]={chains:u,methods:a,events:g,accounts:A}}),Object.keys(s).forEach(c=>{var u,a,g,A,v,p;if(!r[c])return;const y=(a=(u=s[c])==null?void 0:u.chains)==null?void 0:a.filter(P=>r[c].chains.includes(P)),ln=r[c].methods.filter(P=>{var T,_;return(_=(T=s[c])==null?void 0:T.methods)==null?void 0:_.includes(P)}),dn=r[c].events.filter(P=>{var T,_;return(_=(T=s[c])==null?void 0:T.events)==null?void 0:_.includes(P)}),fn=y?.map(P=>r[c].accounts.filter(T=>T.includes(P))).flat();d[c]={chains:S((g=d[c])==null?void 0:g.chains,y),methods:S((A=d[c])==null?void 0:A.methods,ln),events:S((v=d[c])==null?void 0:v.events,dn),accounts:S((p=d[c])==null?void 0:p.accounts,fn)}}),d}function te(e){return e.includes(\":\")}function Ze(e){return te(e)?e.split(\":\")[0]:e}function re(e){var n,t,r;const o={};if(!H(e))return o;for(const[s,i]of Object.entries(e)){const l=te(s)?[s]:i.chains,d=i.methods||[],c=i.events||[],u=Ze(s);o[u]=Ot(bt({},o[u]),{chains:S(l,(n=o[u])==null?void 0:n.chains),methods:S(d,(t=o[u])==null?void 0:t.methods),events:S(c,(r=o[u])==null?void 0:r.events)})}return o}const Pt={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}},Tt={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 b(e,n){const{message:t,code:r}=Tt[e];return{message:n?`${t} ${n}`:t,code:r}}function w(e,n){const{message:t,code:r}=Pt[e];return{message:n?`${t} ${n}`:t,code:r}}function C(e,n){return Array.isArray(e)?typeof n<\"u\"&&e.length?e.every(n):!0:!1}function H(e){return Object.getPrototypeOf(e)===Object.prototype&&Object.keys(e).length}function I(e){return typeof e>\"u\"}function m(e,n){return n&&I(e)?!0:typeof e==\"string\"&&!!e.trim().length}function q(e,n){return n&&I(e)?!0:typeof e==\"number\"&&!isNaN(e)}function Rt(e,n){const{requiredNamespaces:t}=n,r=Object.keys(e.namespaces),o=Object.keys(t);let s=!0;return O(o,r)?(r.forEach(i=>{const{accounts:l,methods:d,events:c}=e.namespaces[i],u=R(l),a=t[i];(!O(k(i,a),u)||!O(a.methods,d)||!O(a.events,c))&&(s=!1)}),s):!1}function D(e){return m(e,!1)&&e.includes(\":\")?e.split(\":\").length===2:!1}function Xe(e){if(m(e,!1)&&e.includes(\":\")){const n=e.split(\":\");if(n.length===3){const t=n[0]+\":\"+n[1];return!!n[2]&&D(t)}}return!1}function wt(e){if(m(e,!1))try{return typeof new URL(e)<\"u\"}catch{return!1}return!1}function At(e){var n;return(n=e?.proposer)==null?void 0:n.publicKey}function Ut(e){return e?.topic}function _t(e,n){let t=null;return m(e?.publicKey,!1)||(t=b(\"MISSING_OR_INVALID\",`${n} controller public key should be a string`)),t}function oe(e){let n=!0;return C(e)?e.length&&(n=e.every(t=>m(t,!1))):n=!1,n}function en(e,n,t){let r=null;return C(n)&&n.length?n.forEach(o=>{r||D(o)||(r=w(\"UNSUPPORTED_CHAINS\",`${t}, chain ${o} should be a string and conform to \"namespace:chainId\" format`))}):D(e)||(r=w(\"UNSUPPORTED_CHAINS\",`${t}, 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 nn(e,n,t){let r=null;return Object.entries(e).forEach(([o,s])=>{if(r)return;const i=en(o,k(o,s),`${n} ${t}`);i&&(r=i)}),r}function tn(e,n){let t=null;return C(e)?e.forEach(r=>{t||Xe(r)||(t=w(\"UNSUPPORTED_ACCOUNTS\",`${n}, account ${r} should be a string and conform to \"namespace:chainId:address\" format`))}):t=w(\"UNSUPPORTED_ACCOUNTS\",`${n}, accounts should be an array of strings conforming to \"namespace:chainId:address\" format`),t}function rn(e,n){let t=null;return Object.values(e).forEach(r=>{if(t)return;const o=tn(r?.accounts,`${n} namespace`);o&&(t=o)}),t}function on(e,n){let t=null;return oe(e?.methods)?oe(e?.events)||(t=w(\"UNSUPPORTED_EVENTS\",`${n}, events should be an array of strings or empty array for no events`)):t=w(\"UNSUPPORTED_METHODS\",`${n}, methods should be an array of strings or empty array for no methods`),t}function se(e,n){let t=null;return Object.values(e).forEach(r=>{if(t)return;const o=on(r,`${n}, namespace`);o&&(t=o)}),t}function $t(e,n,t){let r=null;if(e&&H(e)){const o=se(e,n);o&&(r=o);const s=nn(e,n,t);s&&(r=s)}else r=b(\"MISSING_OR_INVALID\",`${n}, ${t} should be an object with data`);return r}function sn(e,n){let t=null;if(e&&H(e)){const r=se(e,n);r&&(t=r);const o=rn(e,n);o&&(t=o)}else t=b(\"MISSING_OR_INVALID\",`${n}, namespaces should be an object with data`);return t}function cn(e){return m(e.protocol,!0)}function jt(e,n){let t=!1;return n&&!e?t=!0:e&&C(e)&&e.length&&e.forEach(r=>{t=cn(r)}),t}function Ct(e){return typeof e==\"number\"}function Dt(e){return typeof e<\"u\"&&typeof e!==null}function Vt(e){return!(!e||typeof e!=\"object\"||!e.code||!q(e.code,!1)||!e.message||!m(e.message,!1))}function Mt(e){return!(I(e)||!m(e.method,!1))}function kt(e){return!(I(e)||I(e.result)&&I(e.error)||!q(e.id,!1)||!m(e.jsonrpc,!1))}function Kt(e){return!(I(e)||!m(e.name,!1))}function Lt(e,n){return!(!D(n)||!Ye(e).includes(n))}function xt(e,n,t){return m(t,!1)?Je(e,n).includes(t):!1}function Ft(e,n,t){return m(t,!1)?Qe(e,n).includes(t):!1}function an(e,n,t){let r=null;const o=Ht(e),s=qt(n),i=Object.keys(o),l=Object.keys(s),d=un(Object.keys(e)),c=un(Object.keys(n)),u=d.filter(a=>!c.includes(a));return u.length&&(r=b(\"NON_CONFORMING_NAMESPACES\",`${t} namespaces keys don't satisfy requiredNamespaces.\n Required: ${u.toString()}\n Received: ${Object.keys(n).toString()}`)),O(i,l)||(r=b(\"NON_CONFORMING_NAMESPACES\",`${t} namespaces chains don't satisfy required namespaces.\n Required: ${i.toString()}\n Approved: ${l.toString()}`)),Object.keys(n).forEach(a=>{if(!a.includes(\":\")||r)return;const g=R(n[a].accounts);g.includes(a)||(r=b(\"NON_CONFORMING_NAMESPACES\",`${t} namespaces accounts don't satisfy namespace accounts for ${a}\n Required: ${a}\n Approved: ${g.toString()}`))}),i.forEach(a=>{r||(O(o[a].methods,s[a].methods)?O(o[a].events,s[a].events)||(r=b(\"NON_CONFORMING_NAMESPACES\",`${t} namespaces events don't satisfy namespace events for ${a}`)):r=b(\"NON_CONFORMING_NAMESPACES\",`${t} namespaces methods don't satisfy namespace methods for ${a}`))}),r}function Ht(e){const n={};return Object.keys(e).forEach(t=>{var r;t.includes(\":\")?n[t]=e[t]:(r=e[t].chains)==null||r.forEach(o=>{n[o]={methods:e[t].methods,events:e[t].events}})}),n}function un(e){return[...new Set(e.map(n=>n.includes(\":\")?n.split(\":\")[0]:n))]}function qt(e){const n={};return Object.keys(e).forEach(t=>{if(t.includes(\":\"))n[t]=e[t];else{const r=R(e[t].accounts);r?.forEach(o=>{n[o]={accounts:e[t].accounts.filter(s=>s.includes(`${o}:`)),methods:e[t].methods,events:e[t].events}})}}),n}function zt(e,n){return q(e,!1)&&e<=n.max&&e>=n.min}export{B as BASE10,f as BASE16,L as BASE64,Ln as COLON,X as DEFAULT_DEPTH,F as EMPTY_SPACE,N as ENV_MAP,xn as ONE_THOUSAND,Ae as REACT_NATIVE_PRODUCT,xe as RELAYER_DEFAULT_PROTOCOL,_e as SDK_TYPE,Ue as SLASH,Y as TYPE_0,U as TYPE_1,x as UTF8,Ce as appendToQueryString,Gn as assertType,It as buildApprovedNamespaces,ot as calcExpiry,Zn as capitalize,Le as capitalizeWord,Xn as createDelayedPromise,et as createExpiringPromise,$ as decodeTypeByte,Cn as decrypt,Un as deriveSymKey,Z as deserialize,Se as encodeTypeByte,jn as encrypt,it as engineEvent,Qn as enumify,he as formatAccountId,Nn as formatAccountWithChain,ye as formatChainId,ne as formatExpirerTarget,tt as formatIdTarget,Tn as formatMessage,Wn as formatMessageContext,Ge as formatRelayParams,qn as formatRelayRpcUrl,nt as formatTopicTarget,Me as formatUA,yt as formatUri,wn as generateKeyPair,An as generateRandomBytes32,R as getAccountsChains,On as getAccountsFromNamespaces,Ee as getAddressFromAccount,bn as getAddressesFromAccounts,Fn as getAppMetadata,ve as getChainFromAccount,ge as getChainsFromAccounts,k as getChainsFromNamespace,Sn as getChainsFromNamespaces,In as getChainsFromRequiredNamespaces,be as getDidAddress,K as getDidAddressSegments,Ne as getDidChainId,j as getEnvironment,zn as getHttpUrl,b as getInternalError,Ve as getJavascriptID,De as getJavascriptOS,Ke as getLastItems,Pn as getNamespacedDidChainId,Ye as getNamespacesChains,Qe as getNamespacesEventsForChainId,Je as getNamespacesMethodsForChainId,Hn as getRelayClientMetadata,ut as getRelayProtocolApi,at as getRelayProtocolName,St as getRequiredNamespacesFromNamespaces,w as getSdkError,W as getUniqueValues,ct as handleDeeplinkRedirect,O as hasOverlap,_n as hashKey,$n as hashMessage,je as isBrowser,te as isCaipNamespace,an as isConformingNamespaces,st as isExpired,ee as isNode,At as isProposalStruct,$e as isReactNative,Rt as isSessionCompatible,Ut as isSessionStruct,Vn as isTypeOneEnvelope,I as isUndefined,Xe as isValidAccountId,tn as isValidAccounts,on as isValidActions,C as isValidArray,D as isValidChainId,en as isValidChains,_t as isValidController,Vt as isValidErrorReason,Kt as isValidEvent,Ct as isValidId,rn as isValidNamespaceAccounts,se as isValidNamespaceActions,nn as isValidNamespaceChains,oe as isValidNamespaceMethodsOrEvents,sn as isValidNamespaces,Lt as isValidNamespacesChainId,Ft as isValidNamespacesEvent,xt as isValidNamespacesRequest,q as isValidNumber,H as isValidObject,Dt as isValidParams,cn as isValidRelay,jt as isValidRelays,Mt as isValidRequest,zt as isValidRequestExpiry,$t as isValidRequiredNamespaces,kt as isValidResponse,m as isValidString,wt as isValidUrl,Jn as mapEntries,Bn as mapToObj,S as mergeArrays,re as normalizeNamespaces,Yn as objToMap,G as parseAccountId,me as parseChainId,ke as parseContextNames,rt as parseExpirerTarget,Ze as parseNamespaceKey,qe as parseRelayParams,ze as parseTopic,mt as parseUri,Ie as serialize,Dn as validateDecoding,Pe as validateEncoding};\n//# sourceMappingURL=index.es.js.map\n","'use strict';\nconst strictUriEncode = require('strict-uri-encode');\nconst decodeComponent = require('decode-uri-component');\nconst splitOnFirst = require('split-on-first');\nconst filterObject = require('filter-obj');\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\nconst encodeFragmentIdentifier = Symbol('encodeFragmentIdentifier');\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[', index, ']'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')\n\t\t\t\t];\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[]'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '[]=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'colon-list-separator':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), ':list='].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), ':list=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\tcase 'bracket-separator': {\n\t\t\tconst keyValueSep = options.arrayFormat === 'bracket-separator' ?\n\t\t\t\t'[]=' :\n\t\t\t\t'=';\n\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\t// Translate null to an empty string so that it doesn't serialize as 'null'\n\t\t\t\tvalue = value === null ? '' : value;\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), keyValueSep, encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n\t\t\t};\n\t\t}\n\n\t\tdefault:\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, encode(key, options)];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'colon-list-separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(:list)$/.exec(key);\n\t\t\t\tkey = key.replace(/:list$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);\n\t\t\t\tconst isEncodedArray = (typeof value === 'string' && !isArray && decode(value, options).includes(options.arrayFormatSeparator));\n\t\t\t\tvalue = isEncodedArray ? decode(value, options) : value;\n\t\t\t\tconst newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : value === null ? value : decode(value, options);\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\n\t\tcase 'bracket-separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = /(\\[\\])$/.test(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!isArray) {\n\t\t\t\t\taccumulator[key] = value ? decode(value, options) : value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst arrayValue = value === null ?\n\t\t\t\t\t[] :\n\t\t\t\t\tvalue.split(options.arrayFormatSeparator).map(item => decode(item, options));\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = arrayValue;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], arrayValue);\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nfunction parseValue(value, options) {\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\tvalue = Number(value);\n\t} else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\tvalue = value.toLowerCase() === 'true';\n\t}\n\n\treturn value;\n}\n\nfunction parse(query, options) {\n\toptions = Object.assign({\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst ret = Object.create(null);\n\n\tif (typeof query !== 'string') {\n\t\treturn ret;\n\t}\n\n\tquery = query.trim().replace(/^[?#&]/, '');\n\n\tif (!query) {\n\t\treturn ret;\n\t}\n\n\tfor (const param of query.split('&')) {\n\t\tif (param === '') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet [key, value] = splitOnFirst(options.decode ? param.replace(/\\+/g, ' ') : param, '=');\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : ['comma', 'separator', 'bracket-separator'].includes(options.arrayFormat) ? value : decode(value, options);\n\t\tformatter(decode(key, options), value, ret);\n\t}\n\n\tfor (const key of Object.keys(ret)) {\n\t\tconst value = ret[key];\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfor (const k of Object.keys(value)) {\n\t\t\t\tvalue[k] = parseValue(value[k], options);\n\t\t\t}\n\t\t} else {\n\t\t\tret[key] = parseValue(value, options);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn ret;\n\t}\n\n\treturn (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = ret[key];\n\t\tif (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(value);\n\t\t} else {\n\t\t\tresult[key] = value;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = (object, options) => {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ','\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key])) ||\n\t\t(options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const key of Object.keys(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = object[key];\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\tif (value.length === 0 && options.arrayFormat === 'bracket-separator') {\n\t\t\t\treturn encode(key, options) + '[]';\n\t\t\t}\n\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n};\n\nexports.parseUrl = (url, options) => {\n\toptions = Object.assign({\n\t\tdecode: true\n\t}, options);\n\n\tconst [url_, hash] = splitOnFirst(url, '#');\n\n\treturn Object.assign(\n\t\t{\n\t\t\turl: url_.split('?')[0] || '',\n\t\t\tquery: parse(extract(url), options)\n\t\t},\n\t\toptions && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}\n\t);\n};\n\nexports.stringifyUrl = (object, options) => {\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\t[encodeFragmentIdentifier]: true\n\t}, options);\n\n\tconst url = removeHash(object.url).split('?')[0] || '';\n\tconst queryFromUrl = exports.extract(object.url);\n\tconst parsedQueryFromUrl = exports.parse(queryFromUrl, {sort: false});\n\n\tconst query = Object.assign(parsedQueryFromUrl, object.query);\n\tlet queryString = exports.stringify(query, options);\n\tif (queryString) {\n\t\tqueryString = `?${queryString}`;\n\t}\n\n\tlet hash = getHash(object.url);\n\tif (object.fragmentIdentifier) {\n\t\thash = `#${options[encodeFragmentIdentifier] ? encode(object.fragmentIdentifier, options) : object.fragmentIdentifier}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n};\n\nexports.pick = (input, filter, options) => {\n\toptions = Object.assign({\n\t\tparseFragmentIdentifier: true,\n\t\t[encodeFragmentIdentifier]: false\n\t}, options);\n\n\tconst {url, query, fragmentIdentifier} = exports.parseUrl(input, options);\n\treturn exports.stringifyUrl({\n\t\turl,\n\t\tquery: filterObject(query, filter),\n\t\tfragmentIdentifier\n\t}, options);\n};\n\nexports.exclude = (input, filter, options) => {\n\tconst exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);\n\n\treturn exports.pick(input, exclusionFilter, options);\n};\n","\"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","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst parser_1 = require('../parser');\nfunction combine(psbts) {\n const self = psbts[0];\n const selfKeyVals = parser_1.psbtToKeyVals(self);\n const others = psbts.slice(1);\n if (others.length === 0) throw new Error('Combine: Nothing to combine');\n const selfTx = getTx(self);\n if (selfTx === undefined) {\n throw new Error('Combine: Self missing transaction');\n }\n const selfGlobalSet = getKeySet(selfKeyVals.globalKeyVals);\n const selfInputSets = selfKeyVals.inputKeyVals.map(getKeySet);\n const selfOutputSets = selfKeyVals.outputKeyVals.map(getKeySet);\n for (const other of others) {\n const otherTx = getTx(other);\n if (\n otherTx === undefined ||\n !otherTx.toBuffer().equals(selfTx.toBuffer())\n ) {\n throw new Error(\n 'Combine: One of the Psbts does not have the same transaction.',\n );\n }\n const otherKeyVals = parser_1.psbtToKeyVals(other);\n const otherGlobalSet = getKeySet(otherKeyVals.globalKeyVals);\n otherGlobalSet.forEach(\n keyPusher(\n selfGlobalSet,\n selfKeyVals.globalKeyVals,\n otherKeyVals.globalKeyVals,\n ),\n );\n const otherInputSets = otherKeyVals.inputKeyVals.map(getKeySet);\n otherInputSets.forEach((inputSet, idx) =>\n inputSet.forEach(\n keyPusher(\n selfInputSets[idx],\n selfKeyVals.inputKeyVals[idx],\n otherKeyVals.inputKeyVals[idx],\n ),\n ),\n );\n const otherOutputSets = otherKeyVals.outputKeyVals.map(getKeySet);\n otherOutputSets.forEach((outputSet, idx) =>\n outputSet.forEach(\n keyPusher(\n selfOutputSets[idx],\n selfKeyVals.outputKeyVals[idx],\n otherKeyVals.outputKeyVals[idx],\n ),\n ),\n );\n }\n return parser_1.psbtFromKeyVals(selfTx, {\n globalMapKeyVals: selfKeyVals.globalKeyVals,\n inputKeyVals: selfKeyVals.inputKeyVals,\n outputKeyVals: selfKeyVals.outputKeyVals,\n });\n}\nexports.combine = combine;\nfunction keyPusher(selfSet, selfKeyVals, otherKeyVals) {\n return key => {\n if (selfSet.has(key)) return;\n const newKv = otherKeyVals.filter(kv => kv.key.toString('hex') === key)[0];\n selfKeyVals.push(newKv);\n selfSet.add(key);\n };\n}\nfunction getTx(psbt) {\n return psbt.globalMap.unsignedTx;\n}\nfunction getKeySet(keyVals) {\n const set = new Set();\n keyVals.forEach(keyVal => {\n const hex = keyVal.key.toString('hex');\n if (set.has(hex))\n throw new Error('Combine: KeyValue Map keys should be unique');\n set.add(hex);\n });\n return set;\n}\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst typeFields_1 = require('../../typeFields');\nconst range = n => [...Array(n).keys()];\nfunction decode(keyVal) {\n if (keyVal.key[0] !== typeFields_1.GlobalTypes.GLOBAL_XPUB) {\n throw new Error(\n 'Decode Error: could not decode globalXpub with key 0x' +\n keyVal.key.toString('hex'),\n );\n }\n if (keyVal.key.length !== 79 || ![2, 3].includes(keyVal.key[46])) {\n throw new Error(\n 'Decode Error: globalXpub has invalid extended pubkey in key 0x' +\n keyVal.key.toString('hex'),\n );\n }\n if ((keyVal.value.length / 4) % 1 !== 0) {\n throw new Error(\n 'Decode Error: Global GLOBAL_XPUB value length should be multiple of 4',\n );\n }\n const extendedPubkey = keyVal.key.slice(1);\n const data = {\n masterFingerprint: keyVal.value.slice(0, 4),\n extendedPubkey,\n path: 'm',\n };\n for (const i of range(keyVal.value.length / 4 - 1)) {\n const val = keyVal.value.readUInt32LE(i * 4 + 4);\n const isHard = !!(val & 0x80000000);\n const idx = val & 0x7fffffff;\n data.path += '/' + idx.toString(10) + (isHard ? \"'\" : '');\n }\n return data;\n}\nexports.decode = decode;\nfunction encode(data) {\n const head = Buffer.from([typeFields_1.GlobalTypes.GLOBAL_XPUB]);\n const key = Buffer.concat([head, data.extendedPubkey]);\n const splitPath = data.path.split('/');\n const value = Buffer.allocUnsafe(splitPath.length * 4);\n data.masterFingerprint.copy(value, 0);\n let offset = 4;\n splitPath.slice(1).forEach(level => {\n const isHard = level.slice(-1) === \"'\";\n let num = 0x7fffffff & parseInt(isHard ? level.slice(0, -1) : level, 10);\n if (isHard) num += 0x80000000;\n value.writeUInt32LE(num, offset);\n offset += 4;\n });\n return {\n key,\n value,\n };\n}\nexports.encode = encode;\nexports.expected =\n '{ masterFingerprint: Buffer; extendedPubkey: Buffer; path: string; }';\nfunction check(data) {\n const epk = data.extendedPubkey;\n const mfp = data.masterFingerprint;\n const p = data.path;\n return (\n Buffer.isBuffer(epk) &&\n epk.length === 78 &&\n [2, 3].indexOf(epk[45]) > -1 &&\n Buffer.isBuffer(mfp) &&\n mfp.length === 4 &&\n typeof p === 'string' &&\n !!p.match(/^m(\\/\\d+'?)*$/)\n );\n}\nexports.check = check;\nfunction canAddToArray(array, item, dupeSet) {\n const dupeString = item.extendedPubkey.toString('hex');\n if (dupeSet.has(dupeString)) return false;\n dupeSet.add(dupeString);\n return (\n array.filter(v => v.extendedPubkey.equals(item.extendedPubkey)).length === 0\n );\n}\nexports.canAddToArray = canAddToArray;\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst typeFields_1 = require('../../typeFields');\nfunction encode(data) {\n return {\n key: Buffer.from([typeFields_1.GlobalTypes.UNSIGNED_TX]),\n value: data.toBuffer(),\n };\n}\nexports.encode = encode;\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst typeFields_1 = require('../typeFields');\nconst globalXpub = require('./global/globalXpub');\nconst unsignedTx = require('./global/unsignedTx');\nconst finalScriptSig = require('./input/finalScriptSig');\nconst finalScriptWitness = require('./input/finalScriptWitness');\nconst nonWitnessUtxo = require('./input/nonWitnessUtxo');\nconst partialSig = require('./input/partialSig');\nconst porCommitment = require('./input/porCommitment');\nconst sighashType = require('./input/sighashType');\nconst tapKeySig = require('./input/tapKeySig');\nconst tapLeafScript = require('./input/tapLeafScript');\nconst tapMerkleRoot = require('./input/tapMerkleRoot');\nconst tapScriptSig = require('./input/tapScriptSig');\nconst witnessUtxo = require('./input/witnessUtxo');\nconst tapTree = require('./output/tapTree');\nconst bip32Derivation = require('./shared/bip32Derivation');\nconst checkPubkey = require('./shared/checkPubkey');\nconst redeemScript = require('./shared/redeemScript');\nconst tapBip32Derivation = require('./shared/tapBip32Derivation');\nconst tapInternalKey = require('./shared/tapInternalKey');\nconst witnessScript = require('./shared/witnessScript');\nconst globals = {\n unsignedTx,\n globalXpub,\n // pass an Array of key bytes that require pubkey beside the key\n checkPubkey: checkPubkey.makeChecker([]),\n};\nexports.globals = globals;\nconst inputs = {\n nonWitnessUtxo,\n partialSig,\n sighashType,\n finalScriptSig,\n finalScriptWitness,\n porCommitment,\n witnessUtxo,\n bip32Derivation: bip32Derivation.makeConverter(\n typeFields_1.InputTypes.BIP32_DERIVATION,\n ),\n redeemScript: redeemScript.makeConverter(\n typeFields_1.InputTypes.REDEEM_SCRIPT,\n ),\n witnessScript: witnessScript.makeConverter(\n typeFields_1.InputTypes.WITNESS_SCRIPT,\n ),\n checkPubkey: checkPubkey.makeChecker([\n typeFields_1.InputTypes.PARTIAL_SIG,\n typeFields_1.InputTypes.BIP32_DERIVATION,\n ]),\n tapKeySig,\n tapScriptSig,\n tapLeafScript,\n tapBip32Derivation: tapBip32Derivation.makeConverter(\n typeFields_1.InputTypes.TAP_BIP32_DERIVATION,\n ),\n tapInternalKey: tapInternalKey.makeConverter(\n typeFields_1.InputTypes.TAP_INTERNAL_KEY,\n ),\n tapMerkleRoot,\n};\nexports.inputs = inputs;\nconst outputs = {\n bip32Derivation: bip32Derivation.makeConverter(\n typeFields_1.OutputTypes.BIP32_DERIVATION,\n ),\n redeemScript: redeemScript.makeConverter(\n typeFields_1.OutputTypes.REDEEM_SCRIPT,\n ),\n witnessScript: witnessScript.makeConverter(\n typeFields_1.OutputTypes.WITNESS_SCRIPT,\n ),\n checkPubkey: checkPubkey.makeChecker([\n typeFields_1.OutputTypes.BIP32_DERIVATION,\n ]),\n tapBip32Derivation: tapBip32Derivation.makeConverter(\n typeFields_1.OutputTypes.TAP_BIP32_DERIVATION,\n ),\n tapTree,\n tapInternalKey: tapInternalKey.makeConverter(\n typeFields_1.OutputTypes.TAP_INTERNAL_KEY,\n ),\n};\nexports.outputs = outputs;\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst typeFields_1 = require('../../typeFields');\nfunction decode(keyVal) {\n if (keyVal.key[0] !== typeFields_1.InputTypes.FINAL_SCRIPTSIG) {\n throw new Error(\n 'Decode Error: could not decode finalScriptSig with key 0x' +\n keyVal.key.toString('hex'),\n );\n }\n return keyVal.value;\n}\nexports.decode = decode;\nfunction encode(data) {\n const key = Buffer.from([typeFields_1.InputTypes.FINAL_SCRIPTSIG]);\n return {\n key,\n value: data,\n };\n}\nexports.encode = encode;\nexports.expected = 'Buffer';\nfunction check(data) {\n return Buffer.isBuffer(data);\n}\nexports.check = check;\nfunction canAdd(currentData, newData) {\n return !!currentData && !!newData && currentData.finalScriptSig === undefined;\n}\nexports.canAdd = canAdd;\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst typeFields_1 = require('../../typeFields');\nfunction decode(keyVal) {\n if (keyVal.key[0] !== typeFields_1.InputTypes.FINAL_SCRIPTWITNESS) {\n throw new Error(\n 'Decode Error: could not decode finalScriptWitness with key 0x' +\n keyVal.key.toString('hex'),\n );\n }\n return keyVal.value;\n}\nexports.decode = decode;\nfunction encode(data) {\n const key = Buffer.from([typeFields_1.InputTypes.FINAL_SCRIPTWITNESS]);\n return {\n key,\n value: data,\n };\n}\nexports.encode = encode;\nexports.expected = 'Buffer';\nfunction check(data) {\n return Buffer.isBuffer(data);\n}\nexports.check = check;\nfunction canAdd(currentData, newData) {\n return (\n !!currentData && !!newData && currentData.finalScriptWitness === undefined\n );\n}\nexports.canAdd = canAdd;\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst typeFields_1 = require('../../typeFields');\nfunction decode(keyVal) {\n if (keyVal.key[0] !== typeFields_1.InputTypes.NON_WITNESS_UTXO) {\n throw new Error(\n 'Decode Error: could not decode nonWitnessUtxo with key 0x' +\n keyVal.key.toString('hex'),\n );\n }\n return keyVal.value;\n}\nexports.decode = decode;\nfunction encode(data) {\n return {\n key: Buffer.from([typeFields_1.InputTypes.NON_WITNESS_UTXO]),\n value: data,\n };\n}\nexports.encode = encode;\nexports.expected = 'Buffer';\nfunction check(data) {\n return Buffer.isBuffer(data);\n}\nexports.check = check;\nfunction canAdd(currentData, newData) {\n return !!currentData && !!newData && currentData.nonWitnessUtxo === undefined;\n}\nexports.canAdd = canAdd;\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst typeFields_1 = require('../../typeFields');\nfunction decode(keyVal) {\n if (keyVal.key[0] !== typeFields_1.InputTypes.PARTIAL_SIG) {\n throw new Error(\n 'Decode Error: could not decode partialSig with key 0x' +\n keyVal.key.toString('hex'),\n );\n }\n if (\n !(keyVal.key.length === 34 || keyVal.key.length === 66) ||\n ![2, 3, 4].includes(keyVal.key[1])\n ) {\n throw new Error(\n 'Decode Error: partialSig has invalid pubkey in key 0x' +\n keyVal.key.toString('hex'),\n );\n }\n const pubkey = keyVal.key.slice(1);\n return {\n pubkey,\n signature: keyVal.value,\n };\n}\nexports.decode = decode;\nfunction encode(pSig) {\n const head = Buffer.from([typeFields_1.InputTypes.PARTIAL_SIG]);\n return {\n key: Buffer.concat([head, pSig.pubkey]),\n value: pSig.signature,\n };\n}\nexports.encode = encode;\nexports.expected = '{ pubkey: Buffer; signature: Buffer; }';\nfunction check(data) {\n return (\n Buffer.isBuffer(data.pubkey) &&\n Buffer.isBuffer(data.signature) &&\n [33, 65].includes(data.pubkey.length) &&\n [2, 3, 4].includes(data.pubkey[0]) &&\n isDerSigWithSighash(data.signature)\n );\n}\nexports.check = check;\nfunction isDerSigWithSighash(buf) {\n if (!Buffer.isBuffer(buf) || buf.length < 9) return false;\n if (buf[0] !== 0x30) return false;\n if (buf.length !== buf[1] + 3) return false;\n if (buf[2] !== 0x02) return false;\n const rLen = buf[3];\n if (rLen > 33 || rLen < 1) return false;\n if (buf[3 + rLen + 1] !== 0x02) return false;\n const sLen = buf[3 + rLen + 2];\n if (sLen > 33 || sLen < 1) return false;\n if (buf.length !== 3 + rLen + 2 + sLen + 2) return false;\n return true;\n}\nfunction canAddToArray(array, item, dupeSet) {\n const dupeString = item.pubkey.toString('hex');\n if (dupeSet.has(dupeString)) return false;\n dupeSet.add(dupeString);\n return array.filter(v => v.pubkey.equals(item.pubkey)).length === 0;\n}\nexports.canAddToArray = canAddToArray;\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst typeFields_1 = require('../../typeFields');\nfunction decode(keyVal) {\n if (keyVal.key[0] !== typeFields_1.InputTypes.POR_COMMITMENT) {\n throw new Error(\n 'Decode Error: could not decode porCommitment with key 0x' +\n keyVal.key.toString('hex'),\n );\n }\n return keyVal.value.toString('utf8');\n}\nexports.decode = decode;\nfunction encode(data) {\n const key = Buffer.from([typeFields_1.InputTypes.POR_COMMITMENT]);\n return {\n key,\n value: Buffer.from(data, 'utf8'),\n };\n}\nexports.encode = encode;\nexports.expected = 'string';\nfunction check(data) {\n return typeof data === 'string';\n}\nexports.check = check;\nfunction canAdd(currentData, newData) {\n return !!currentData && !!newData && currentData.porCommitment === undefined;\n}\nexports.canAdd = canAdd;\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst typeFields_1 = require('../../typeFields');\nfunction decode(keyVal) {\n if (keyVal.key[0] !== typeFields_1.InputTypes.SIGHASH_TYPE) {\n throw new Error(\n 'Decode Error: could not decode sighashType with key 0x' +\n keyVal.key.toString('hex'),\n );\n }\n return keyVal.value.readUInt32LE(0);\n}\nexports.decode = decode;\nfunction encode(data) {\n const key = Buffer.from([typeFields_1.InputTypes.SIGHASH_TYPE]);\n const value = Buffer.allocUnsafe(4);\n value.writeUInt32LE(data, 0);\n return {\n key,\n value,\n };\n}\nexports.encode = encode;\nexports.expected = 'number';\nfunction check(data) {\n return typeof data === 'number';\n}\nexports.check = check;\nfunction canAdd(currentData, newData) {\n return !!currentData && !!newData && currentData.sighashType === undefined;\n}\nexports.canAdd = canAdd;\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst typeFields_1 = require('../../typeFields');\nfunction decode(keyVal) {\n if (\n keyVal.key[0] !== typeFields_1.InputTypes.TAP_KEY_SIG ||\n keyVal.key.length !== 1\n ) {\n throw new Error(\n 'Decode Error: could not decode tapKeySig with key 0x' +\n keyVal.key.toString('hex'),\n );\n }\n if (!check(keyVal.value)) {\n throw new Error(\n 'Decode Error: tapKeySig not a valid 64-65-byte BIP340 signature',\n );\n }\n return keyVal.value;\n}\nexports.decode = decode;\nfunction encode(value) {\n const key = Buffer.from([typeFields_1.InputTypes.TAP_KEY_SIG]);\n return { key, value };\n}\nexports.encode = encode;\nexports.expected = 'Buffer';\nfunction check(data) {\n return Buffer.isBuffer(data) && (data.length === 64 || data.length === 65);\n}\nexports.check = check;\nfunction canAdd(currentData, newData) {\n return !!currentData && !!newData && currentData.tapKeySig === undefined;\n}\nexports.canAdd = canAdd;\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst typeFields_1 = require('../../typeFields');\nfunction decode(keyVal) {\n if (keyVal.key[0] !== typeFields_1.InputTypes.TAP_LEAF_SCRIPT) {\n throw new Error(\n 'Decode Error: could not decode tapLeafScript with key 0x' +\n keyVal.key.toString('hex'),\n );\n }\n if ((keyVal.key.length - 2) % 32 !== 0) {\n throw new Error(\n 'Decode Error: tapLeafScript has invalid control block in key 0x' +\n keyVal.key.toString('hex'),\n );\n }\n const leafVersion = keyVal.value[keyVal.value.length - 1];\n if ((keyVal.key[1] & 0xfe) !== leafVersion) {\n throw new Error(\n 'Decode Error: tapLeafScript bad leaf version in key 0x' +\n keyVal.key.toString('hex'),\n );\n }\n const script = keyVal.value.slice(0, -1);\n const controlBlock = keyVal.key.slice(1);\n return { controlBlock, script, leafVersion };\n}\nexports.decode = decode;\nfunction encode(tScript) {\n const head = Buffer.from([typeFields_1.InputTypes.TAP_LEAF_SCRIPT]);\n const verBuf = Buffer.from([tScript.leafVersion]);\n return {\n key: Buffer.concat([head, tScript.controlBlock]),\n value: Buffer.concat([tScript.script, verBuf]),\n };\n}\nexports.encode = encode;\nexports.expected =\n '{ controlBlock: Buffer; leafVersion: number, script: Buffer; }';\nfunction check(data) {\n return (\n Buffer.isBuffer(data.controlBlock) &&\n (data.controlBlock.length - 1) % 32 === 0 &&\n (data.controlBlock[0] & 0xfe) === data.leafVersion &&\n Buffer.isBuffer(data.script)\n );\n}\nexports.check = check;\nfunction canAddToArray(array, item, dupeSet) {\n const dupeString = item.controlBlock.toString('hex');\n if (dupeSet.has(dupeString)) return false;\n dupeSet.add(dupeString);\n return (\n array.filter(v => v.controlBlock.equals(item.controlBlock)).length === 0\n );\n}\nexports.canAddToArray = canAddToArray;\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst typeFields_1 = require('../../typeFields');\nfunction decode(keyVal) {\n if (\n keyVal.key[0] !== typeFields_1.InputTypes.TAP_MERKLE_ROOT ||\n keyVal.key.length !== 1\n ) {\n throw new Error(\n 'Decode Error: could not decode tapMerkleRoot with key 0x' +\n keyVal.key.toString('hex'),\n );\n }\n if (!check(keyVal.value)) {\n throw new Error('Decode Error: tapMerkleRoot not a 32-byte hash');\n }\n return keyVal.value;\n}\nexports.decode = decode;\nfunction encode(value) {\n const key = Buffer.from([typeFields_1.InputTypes.TAP_MERKLE_ROOT]);\n return { key, value };\n}\nexports.encode = encode;\nexports.expected = 'Buffer';\nfunction check(data) {\n return Buffer.isBuffer(data) && data.length === 32;\n}\nexports.check = check;\nfunction canAdd(currentData, newData) {\n return !!currentData && !!newData && currentData.tapMerkleRoot === undefined;\n}\nexports.canAdd = canAdd;\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst typeFields_1 = require('../../typeFields');\nfunction decode(keyVal) {\n if (keyVal.key[0] !== typeFields_1.InputTypes.TAP_SCRIPT_SIG) {\n throw new Error(\n 'Decode Error: could not decode tapScriptSig with key 0x' +\n keyVal.key.toString('hex'),\n );\n }\n if (keyVal.key.length !== 65) {\n throw new Error(\n 'Decode Error: tapScriptSig has invalid key 0x' +\n keyVal.key.toString('hex'),\n );\n }\n if (keyVal.value.length !== 64 && keyVal.value.length !== 65) {\n throw new Error(\n 'Decode Error: tapScriptSig has invalid signature in key 0x' +\n keyVal.key.toString('hex'),\n );\n }\n const pubkey = keyVal.key.slice(1, 33);\n const leafHash = keyVal.key.slice(33);\n return {\n pubkey,\n leafHash,\n signature: keyVal.value,\n };\n}\nexports.decode = decode;\nfunction encode(tSig) {\n const head = Buffer.from([typeFields_1.InputTypes.TAP_SCRIPT_SIG]);\n return {\n key: Buffer.concat([head, tSig.pubkey, tSig.leafHash]),\n value: tSig.signature,\n };\n}\nexports.encode = encode;\nexports.expected = '{ pubkey: Buffer; leafHash: Buffer; signature: Buffer; }';\nfunction check(data) {\n return (\n Buffer.isBuffer(data.pubkey) &&\n Buffer.isBuffer(data.leafHash) &&\n Buffer.isBuffer(data.signature) &&\n data.pubkey.length === 32 &&\n data.leafHash.length === 32 &&\n (data.signature.length === 64 || data.signature.length === 65)\n );\n}\nexports.check = check;\nfunction canAddToArray(array, item, dupeSet) {\n const dupeString =\n item.pubkey.toString('hex') + item.leafHash.toString('hex');\n if (dupeSet.has(dupeString)) return false;\n dupeSet.add(dupeString);\n return (\n array.filter(\n v => v.pubkey.equals(item.pubkey) && v.leafHash.equals(item.leafHash),\n ).length === 0\n );\n}\nexports.canAddToArray = canAddToArray;\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst typeFields_1 = require('../../typeFields');\nconst tools_1 = require('../tools');\nconst varuint = require('../varint');\nfunction decode(keyVal) {\n if (keyVal.key[0] !== typeFields_1.InputTypes.WITNESS_UTXO) {\n throw new Error(\n 'Decode Error: could not decode witnessUtxo with key 0x' +\n keyVal.key.toString('hex'),\n );\n }\n const value = tools_1.readUInt64LE(keyVal.value, 0);\n let _offset = 8;\n const scriptLen = varuint.decode(keyVal.value, _offset);\n _offset += varuint.encodingLength(scriptLen);\n const script = keyVal.value.slice(_offset);\n if (script.length !== scriptLen) {\n throw new Error('Decode Error: WITNESS_UTXO script is not proper length');\n }\n return {\n script,\n value,\n };\n}\nexports.decode = decode;\nfunction encode(data) {\n const { script, value } = data;\n const varintLen = varuint.encodingLength(script.length);\n const result = Buffer.allocUnsafe(8 + varintLen + script.length);\n tools_1.writeUInt64LE(result, value, 0);\n varuint.encode(script.length, result, 8);\n script.copy(result, 8 + varintLen);\n return {\n key: Buffer.from([typeFields_1.InputTypes.WITNESS_UTXO]),\n value: result,\n };\n}\nexports.encode = encode;\nexports.expected = '{ script: Buffer; value: number; }';\nfunction check(data) {\n return Buffer.isBuffer(data.script) && typeof data.value === 'number';\n}\nexports.check = check;\nfunction canAdd(currentData, newData) {\n return !!currentData && !!newData && currentData.witnessUtxo === undefined;\n}\nexports.canAdd = canAdd;\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst typeFields_1 = require('../../typeFields');\nconst varuint = require('../varint');\nfunction decode(keyVal) {\n if (\n keyVal.key[0] !== typeFields_1.OutputTypes.TAP_TREE ||\n keyVal.key.length !== 1\n ) {\n throw new Error(\n 'Decode Error: could not decode tapTree with key 0x' +\n keyVal.key.toString('hex'),\n );\n }\n let _offset = 0;\n const data = [];\n while (_offset < keyVal.value.length) {\n const depth = keyVal.value[_offset++];\n const leafVersion = keyVal.value[_offset++];\n const scriptLen = varuint.decode(keyVal.value, _offset);\n _offset += varuint.encodingLength(scriptLen);\n data.push({\n depth,\n leafVersion,\n script: keyVal.value.slice(_offset, _offset + scriptLen),\n });\n _offset += scriptLen;\n }\n return { leaves: data };\n}\nexports.decode = decode;\nfunction encode(tree) {\n const key = Buffer.from([typeFields_1.OutputTypes.TAP_TREE]);\n const bufs = [].concat(\n ...tree.leaves.map(tapLeaf => [\n Buffer.of(tapLeaf.depth, tapLeaf.leafVersion),\n varuint.encode(tapLeaf.script.length),\n tapLeaf.script,\n ]),\n );\n return {\n key,\n value: Buffer.concat(bufs),\n };\n}\nexports.encode = encode;\nexports.expected =\n '{ leaves: [{ depth: number; leafVersion: number, script: Buffer; }] }';\nfunction check(data) {\n return (\n Array.isArray(data.leaves) &&\n data.leaves.every(\n tapLeaf =>\n tapLeaf.depth >= 0 &&\n tapLeaf.depth <= 128 &&\n (tapLeaf.leafVersion & 0xfe) === tapLeaf.leafVersion &&\n Buffer.isBuffer(tapLeaf.script),\n )\n );\n}\nexports.check = check;\nfunction canAdd(currentData, newData) {\n return !!currentData && !!newData && currentData.tapTree === undefined;\n}\nexports.canAdd = canAdd;\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst range = n => [...Array(n).keys()];\nconst isValidDERKey = pubkey =>\n (pubkey.length === 33 && [2, 3].includes(pubkey[0])) ||\n (pubkey.length === 65 && 4 === pubkey[0]);\nfunction makeConverter(TYPE_BYTE, isValidPubkey = isValidDERKey) {\n function decode(keyVal) {\n if (keyVal.key[0] !== TYPE_BYTE) {\n throw new Error(\n 'Decode Error: could not decode bip32Derivation with key 0x' +\n keyVal.key.toString('hex'),\n );\n }\n const pubkey = keyVal.key.slice(1);\n if (!isValidPubkey(pubkey)) {\n throw new Error(\n 'Decode Error: bip32Derivation has invalid pubkey in key 0x' +\n keyVal.key.toString('hex'),\n );\n }\n if ((keyVal.value.length / 4) % 1 !== 0) {\n throw new Error(\n 'Decode Error: Input BIP32_DERIVATION value length should be multiple of 4',\n );\n }\n const data = {\n masterFingerprint: keyVal.value.slice(0, 4),\n pubkey,\n path: 'm',\n };\n for (const i of range(keyVal.value.length / 4 - 1)) {\n const val = keyVal.value.readUInt32LE(i * 4 + 4);\n const isHard = !!(val & 0x80000000);\n const idx = val & 0x7fffffff;\n data.path += '/' + idx.toString(10) + (isHard ? \"'\" : '');\n }\n return data;\n }\n function encode(data) {\n const head = Buffer.from([TYPE_BYTE]);\n const key = Buffer.concat([head, data.pubkey]);\n const splitPath = data.path.split('/');\n const value = Buffer.allocUnsafe(splitPath.length * 4);\n data.masterFingerprint.copy(value, 0);\n let offset = 4;\n splitPath.slice(1).forEach(level => {\n const isHard = level.slice(-1) === \"'\";\n let num = 0x7fffffff & parseInt(isHard ? level.slice(0, -1) : level, 10);\n if (isHard) num += 0x80000000;\n value.writeUInt32LE(num, offset);\n offset += 4;\n });\n return {\n key,\n value,\n };\n }\n const expected =\n '{ masterFingerprint: Buffer; pubkey: Buffer; path: string; }';\n function check(data) {\n return (\n Buffer.isBuffer(data.pubkey) &&\n Buffer.isBuffer(data.masterFingerprint) &&\n typeof data.path === 'string' &&\n isValidPubkey(data.pubkey) &&\n data.masterFingerprint.length === 4\n );\n }\n function canAddToArray(array, item, dupeSet) {\n const dupeString = item.pubkey.toString('hex');\n if (dupeSet.has(dupeString)) return false;\n dupeSet.add(dupeString);\n return array.filter(v => v.pubkey.equals(item.pubkey)).length === 0;\n }\n return {\n decode,\n encode,\n check,\n expected,\n canAddToArray,\n };\n}\nexports.makeConverter = makeConverter;\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nfunction makeChecker(pubkeyTypes) {\n return checkPubkey;\n function checkPubkey(keyVal) {\n let pubkey;\n if (pubkeyTypes.includes(keyVal.key[0])) {\n pubkey = keyVal.key.slice(1);\n if (\n !(pubkey.length === 33 || pubkey.length === 65) ||\n ![2, 3, 4].includes(pubkey[0])\n ) {\n throw new Error(\n 'Format Error: invalid pubkey in key 0x' + keyVal.key.toString('hex'),\n );\n }\n }\n return pubkey;\n }\n}\nexports.makeChecker = makeChecker;\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nfunction makeConverter(TYPE_BYTE) {\n function decode(keyVal) {\n if (keyVal.key[0] !== TYPE_BYTE) {\n throw new Error(\n 'Decode Error: could not decode redeemScript with key 0x' +\n keyVal.key.toString('hex'),\n );\n }\n return keyVal.value;\n }\n function encode(data) {\n const key = Buffer.from([TYPE_BYTE]);\n return {\n key,\n value: data,\n };\n }\n const expected = 'Buffer';\n function check(data) {\n return Buffer.isBuffer(data);\n }\n function canAdd(currentData, newData) {\n return !!currentData && !!newData && currentData.redeemScript === undefined;\n }\n return {\n decode,\n encode,\n check,\n expected,\n canAdd,\n };\n}\nexports.makeConverter = makeConverter;\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst varuint = require('../varint');\nconst bip32Derivation = require('./bip32Derivation');\nconst isValidBIP340Key = pubkey => pubkey.length === 32;\nfunction makeConverter(TYPE_BYTE) {\n const parent = bip32Derivation.makeConverter(TYPE_BYTE, isValidBIP340Key);\n function decode(keyVal) {\n const nHashes = varuint.decode(keyVal.value);\n const nHashesLen = varuint.encodingLength(nHashes);\n const base = parent.decode({\n key: keyVal.key,\n value: keyVal.value.slice(nHashesLen + nHashes * 32),\n });\n const leafHashes = new Array(nHashes);\n for (let i = 0, _offset = nHashesLen; i < nHashes; i++, _offset += 32) {\n leafHashes[i] = keyVal.value.slice(_offset, _offset + 32);\n }\n return Object.assign({}, base, { leafHashes });\n }\n function encode(data) {\n const base = parent.encode(data);\n const nHashesLen = varuint.encodingLength(data.leafHashes.length);\n const nHashesBuf = Buffer.allocUnsafe(nHashesLen);\n varuint.encode(data.leafHashes.length, nHashesBuf);\n const value = Buffer.concat([nHashesBuf, ...data.leafHashes, base.value]);\n return Object.assign({}, base, { value });\n }\n const expected =\n '{ ' +\n 'masterFingerprint: Buffer; ' +\n 'pubkey: Buffer; ' +\n 'path: string; ' +\n 'leafHashes: Buffer[]; ' +\n '}';\n function check(data) {\n return (\n Array.isArray(data.leafHashes) &&\n data.leafHashes.every(\n leafHash => Buffer.isBuffer(leafHash) && leafHash.length === 32,\n ) &&\n parent.check(data)\n );\n }\n return {\n decode,\n encode,\n check,\n expected,\n canAddToArray: parent.canAddToArray,\n };\n}\nexports.makeConverter = makeConverter;\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nfunction makeConverter(TYPE_BYTE) {\n function decode(keyVal) {\n if (keyVal.key[0] !== TYPE_BYTE || keyVal.key.length !== 1) {\n throw new Error(\n 'Decode Error: could not decode tapInternalKey with key 0x' +\n keyVal.key.toString('hex'),\n );\n }\n if (keyVal.value.length !== 32) {\n throw new Error(\n 'Decode Error: tapInternalKey not a 32-byte x-only pubkey',\n );\n }\n return keyVal.value;\n }\n function encode(value) {\n const key = Buffer.from([TYPE_BYTE]);\n return { key, value };\n }\n const expected = 'Buffer';\n function check(data) {\n return Buffer.isBuffer(data) && data.length === 32;\n }\n function canAdd(currentData, newData) {\n return (\n !!currentData && !!newData && currentData.tapInternalKey === undefined\n );\n }\n return {\n decode,\n encode,\n check,\n expected,\n canAdd,\n };\n}\nexports.makeConverter = makeConverter;\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nfunction makeConverter(TYPE_BYTE) {\n function decode(keyVal) {\n if (keyVal.key[0] !== TYPE_BYTE) {\n throw new Error(\n 'Decode Error: could not decode witnessScript with key 0x' +\n keyVal.key.toString('hex'),\n );\n }\n return keyVal.value;\n }\n function encode(data) {\n const key = Buffer.from([TYPE_BYTE]);\n return {\n key,\n value: data,\n };\n }\n const expected = 'Buffer';\n function check(data) {\n return Buffer.isBuffer(data);\n }\n function canAdd(currentData, newData) {\n return (\n !!currentData && !!newData && currentData.witnessScript === undefined\n );\n }\n return {\n decode,\n encode,\n check,\n expected,\n canAdd,\n };\n}\nexports.makeConverter = makeConverter;\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst varuint = require('./varint');\nexports.range = n => [...Array(n).keys()];\nfunction reverseBuffer(buffer) {\n if (buffer.length < 1) return buffer;\n let j = buffer.length - 1;\n let tmp = 0;\n for (let i = 0; i < buffer.length / 2; i++) {\n tmp = buffer[i];\n buffer[i] = buffer[j];\n buffer[j] = tmp;\n j--;\n }\n return buffer;\n}\nexports.reverseBuffer = reverseBuffer;\nfunction keyValsToBuffer(keyVals) {\n const buffers = keyVals.map(keyValToBuffer);\n buffers.push(Buffer.from([0]));\n return Buffer.concat(buffers);\n}\nexports.keyValsToBuffer = keyValsToBuffer;\nfunction keyValToBuffer(keyVal) {\n const keyLen = keyVal.key.length;\n const valLen = keyVal.value.length;\n const keyVarIntLen = varuint.encodingLength(keyLen);\n const valVarIntLen = varuint.encodingLength(valLen);\n const buffer = Buffer.allocUnsafe(\n keyVarIntLen + keyLen + valVarIntLen + valLen,\n );\n varuint.encode(keyLen, buffer, 0);\n keyVal.key.copy(buffer, keyVarIntLen);\n varuint.encode(valLen, buffer, keyVarIntLen + keyLen);\n keyVal.value.copy(buffer, keyVarIntLen + keyLen + valVarIntLen);\n return buffer;\n}\nexports.keyValToBuffer = keyValToBuffer;\n// https://github.com/feross/buffer/blob/master/index.js#L1127\nfunction verifuint(value, max) {\n if (typeof value !== 'number')\n throw new Error('cannot write a non-number as a number');\n if (value < 0)\n throw new Error('specified a negative value for writing an unsigned value');\n if (value > max) throw new Error('RangeError: value out of range');\n if (Math.floor(value) !== value)\n throw new Error('value has a fractional component');\n}\nfunction readUInt64LE(buffer, offset) {\n const a = buffer.readUInt32LE(offset);\n let b = buffer.readUInt32LE(offset + 4);\n b *= 0x100000000;\n verifuint(b + a, 0x001fffffffffffff);\n return b + a;\n}\nexports.readUInt64LE = readUInt64LE;\nfunction writeUInt64LE(buffer, value, offset) {\n verifuint(value, 0x001fffffffffffff);\n buffer.writeInt32LE(value & -1, offset);\n buffer.writeUInt32LE(Math.floor(value / 0x100000000), offset + 4);\n return offset + 8;\n}\nexports.writeUInt64LE = writeUInt64LE;\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\n// Number.MAX_SAFE_INTEGER\nconst MAX_SAFE_INTEGER = 9007199254740991;\nfunction checkUInt53(n) {\n if (n < 0 || n > MAX_SAFE_INTEGER || n % 1 !== 0)\n throw new RangeError('value out of range');\n}\nfunction encode(_number, buffer, offset) {\n checkUInt53(_number);\n if (!buffer) buffer = Buffer.allocUnsafe(encodingLength(_number));\n if (!Buffer.isBuffer(buffer))\n throw new TypeError('buffer must be a Buffer instance');\n if (!offset) offset = 0;\n // 8 bit\n if (_number < 0xfd) {\n buffer.writeUInt8(_number, offset);\n Object.assign(encode, { bytes: 1 });\n // 16 bit\n } else if (_number <= 0xffff) {\n buffer.writeUInt8(0xfd, offset);\n buffer.writeUInt16LE(_number, offset + 1);\n Object.assign(encode, { bytes: 3 });\n // 32 bit\n } else if (_number <= 0xffffffff) {\n buffer.writeUInt8(0xfe, offset);\n buffer.writeUInt32LE(_number, offset + 1);\n Object.assign(encode, { bytes: 5 });\n // 64 bit\n } else {\n buffer.writeUInt8(0xff, offset);\n buffer.writeUInt32LE(_number >>> 0, offset + 1);\n buffer.writeUInt32LE((_number / 0x100000000) | 0, offset + 5);\n Object.assign(encode, { bytes: 9 });\n }\n return buffer;\n}\nexports.encode = encode;\nfunction decode(buffer, offset) {\n if (!Buffer.isBuffer(buffer))\n throw new TypeError('buffer must be a Buffer instance');\n if (!offset) offset = 0;\n const first = buffer.readUInt8(offset);\n // 8 bit\n if (first < 0xfd) {\n Object.assign(decode, { bytes: 1 });\n return first;\n // 16 bit\n } else if (first === 0xfd) {\n Object.assign(decode, { bytes: 3 });\n return buffer.readUInt16LE(offset + 1);\n // 32 bit\n } else if (first === 0xfe) {\n Object.assign(decode, { bytes: 5 });\n return buffer.readUInt32LE(offset + 1);\n // 64 bit\n } else {\n Object.assign(decode, { bytes: 9 });\n const lo = buffer.readUInt32LE(offset + 1);\n const hi = buffer.readUInt32LE(offset + 5);\n const _number = hi * 0x0100000000 + lo;\n checkUInt53(_number);\n return _number;\n }\n}\nexports.decode = decode;\nfunction encodingLength(_number) {\n checkUInt53(_number);\n return _number < 0xfd\n ? 1\n : _number <= 0xffff\n ? 3\n : _number <= 0xffffffff\n ? 5\n : 9;\n}\nexports.encodingLength = encodingLength;\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst convert = require('../converter');\nconst tools_1 = require('../converter/tools');\nconst varuint = require('../converter/varint');\nconst typeFields_1 = require('../typeFields');\nfunction psbtFromBuffer(buffer, txGetter) {\n let offset = 0;\n function varSlice() {\n const keyLen = varuint.decode(buffer, offset);\n offset += varuint.encodingLength(keyLen);\n const key = buffer.slice(offset, offset + keyLen);\n offset += keyLen;\n return key;\n }\n function readUInt32BE() {\n const num = buffer.readUInt32BE(offset);\n offset += 4;\n return num;\n }\n function readUInt8() {\n const num = buffer.readUInt8(offset);\n offset += 1;\n return num;\n }\n function getKeyValue() {\n const key = varSlice();\n const value = varSlice();\n return {\n key,\n value,\n };\n }\n function checkEndOfKeyValPairs() {\n if (offset >= buffer.length) {\n throw new Error('Format Error: Unexpected End of PSBT');\n }\n const isEnd = buffer.readUInt8(offset) === 0;\n if (isEnd) {\n offset++;\n }\n return isEnd;\n }\n if (readUInt32BE() !== 0x70736274) {\n throw new Error('Format Error: Invalid Magic Number');\n }\n if (readUInt8() !== 0xff) {\n throw new Error(\n 'Format Error: Magic Number must be followed by 0xff separator',\n );\n }\n const globalMapKeyVals = [];\n const globalKeyIndex = {};\n while (!checkEndOfKeyValPairs()) {\n const keyVal = getKeyValue();\n const hexKey = keyVal.key.toString('hex');\n if (globalKeyIndex[hexKey]) {\n throw new Error(\n 'Format Error: Keys must be unique for global keymap: key ' + hexKey,\n );\n }\n globalKeyIndex[hexKey] = 1;\n globalMapKeyVals.push(keyVal);\n }\n const unsignedTxMaps = globalMapKeyVals.filter(\n keyVal => keyVal.key[0] === typeFields_1.GlobalTypes.UNSIGNED_TX,\n );\n if (unsignedTxMaps.length !== 1) {\n throw new Error('Format Error: Only one UNSIGNED_TX allowed');\n }\n const unsignedTx = txGetter(unsignedTxMaps[0].value);\n // Get input and output counts to loop the respective fields\n const { inputCount, outputCount } = unsignedTx.getInputOutputCounts();\n const inputKeyVals = [];\n const outputKeyVals = [];\n // Get input fields\n for (const index of tools_1.range(inputCount)) {\n const inputKeyIndex = {};\n const input = [];\n while (!checkEndOfKeyValPairs()) {\n const keyVal = getKeyValue();\n const hexKey = keyVal.key.toString('hex');\n if (inputKeyIndex[hexKey]) {\n throw new Error(\n 'Format Error: Keys must be unique for each input: ' +\n 'input index ' +\n index +\n ' key ' +\n hexKey,\n );\n }\n inputKeyIndex[hexKey] = 1;\n input.push(keyVal);\n }\n inputKeyVals.push(input);\n }\n for (const index of tools_1.range(outputCount)) {\n const outputKeyIndex = {};\n const output = [];\n while (!checkEndOfKeyValPairs()) {\n const keyVal = getKeyValue();\n const hexKey = keyVal.key.toString('hex');\n if (outputKeyIndex[hexKey]) {\n throw new Error(\n 'Format Error: Keys must be unique for each output: ' +\n 'output index ' +\n index +\n ' key ' +\n hexKey,\n );\n }\n outputKeyIndex[hexKey] = 1;\n output.push(keyVal);\n }\n outputKeyVals.push(output);\n }\n return psbtFromKeyVals(unsignedTx, {\n globalMapKeyVals,\n inputKeyVals,\n outputKeyVals,\n });\n}\nexports.psbtFromBuffer = psbtFromBuffer;\nfunction checkKeyBuffer(type, keyBuf, keyNum) {\n if (!keyBuf.equals(Buffer.from([keyNum]))) {\n throw new Error(\n `Format Error: Invalid ${type} key: ${keyBuf.toString('hex')}`,\n );\n }\n}\nexports.checkKeyBuffer = checkKeyBuffer;\nfunction psbtFromKeyVals(\n unsignedTx,\n { globalMapKeyVals, inputKeyVals, outputKeyVals },\n) {\n // That was easy :-)\n const globalMap = {\n unsignedTx,\n };\n let txCount = 0;\n for (const keyVal of globalMapKeyVals) {\n // If a globalMap item needs pubkey, uncomment\n // const pubkey = convert.globals.checkPubkey(keyVal);\n switch (keyVal.key[0]) {\n case typeFields_1.GlobalTypes.UNSIGNED_TX:\n checkKeyBuffer(\n 'global',\n keyVal.key,\n typeFields_1.GlobalTypes.UNSIGNED_TX,\n );\n if (txCount > 0) {\n throw new Error('Format Error: GlobalMap has multiple UNSIGNED_TX');\n }\n txCount++;\n break;\n case typeFields_1.GlobalTypes.GLOBAL_XPUB:\n if (globalMap.globalXpub === undefined) {\n globalMap.globalXpub = [];\n }\n globalMap.globalXpub.push(convert.globals.globalXpub.decode(keyVal));\n break;\n default:\n // This will allow inclusion during serialization.\n if (!globalMap.unknownKeyVals) globalMap.unknownKeyVals = [];\n globalMap.unknownKeyVals.push(keyVal);\n }\n }\n // Get input and output counts to loop the respective fields\n const inputCount = inputKeyVals.length;\n const outputCount = outputKeyVals.length;\n const inputs = [];\n const outputs = [];\n // Get input fields\n for (const index of tools_1.range(inputCount)) {\n const input = {};\n for (const keyVal of inputKeyVals[index]) {\n convert.inputs.checkPubkey(keyVal);\n switch (keyVal.key[0]) {\n case typeFields_1.InputTypes.NON_WITNESS_UTXO:\n checkKeyBuffer(\n 'input',\n keyVal.key,\n typeFields_1.InputTypes.NON_WITNESS_UTXO,\n );\n if (input.nonWitnessUtxo !== undefined) {\n throw new Error(\n 'Format Error: Input has multiple NON_WITNESS_UTXO',\n );\n }\n input.nonWitnessUtxo = convert.inputs.nonWitnessUtxo.decode(keyVal);\n break;\n case typeFields_1.InputTypes.WITNESS_UTXO:\n checkKeyBuffer(\n 'input',\n keyVal.key,\n typeFields_1.InputTypes.WITNESS_UTXO,\n );\n if (input.witnessUtxo !== undefined) {\n throw new Error('Format Error: Input has multiple WITNESS_UTXO');\n }\n input.witnessUtxo = convert.inputs.witnessUtxo.decode(keyVal);\n break;\n case typeFields_1.InputTypes.PARTIAL_SIG:\n if (input.partialSig === undefined) {\n input.partialSig = [];\n }\n input.partialSig.push(convert.inputs.partialSig.decode(keyVal));\n break;\n case typeFields_1.InputTypes.SIGHASH_TYPE:\n checkKeyBuffer(\n 'input',\n keyVal.key,\n typeFields_1.InputTypes.SIGHASH_TYPE,\n );\n if (input.sighashType !== undefined) {\n throw new Error('Format Error: Input has multiple SIGHASH_TYPE');\n }\n input.sighashType = convert.inputs.sighashType.decode(keyVal);\n break;\n case typeFields_1.InputTypes.REDEEM_SCRIPT:\n checkKeyBuffer(\n 'input',\n keyVal.key,\n typeFields_1.InputTypes.REDEEM_SCRIPT,\n );\n if (input.redeemScript !== undefined) {\n throw new Error('Format Error: Input has multiple REDEEM_SCRIPT');\n }\n input.redeemScript = convert.inputs.redeemScript.decode(keyVal);\n break;\n case typeFields_1.InputTypes.WITNESS_SCRIPT:\n checkKeyBuffer(\n 'input',\n keyVal.key,\n typeFields_1.InputTypes.WITNESS_SCRIPT,\n );\n if (input.witnessScript !== undefined) {\n throw new Error('Format Error: Input has multiple WITNESS_SCRIPT');\n }\n input.witnessScript = convert.inputs.witnessScript.decode(keyVal);\n break;\n case typeFields_1.InputTypes.BIP32_DERIVATION:\n if (input.bip32Derivation === undefined) {\n input.bip32Derivation = [];\n }\n input.bip32Derivation.push(\n convert.inputs.bip32Derivation.decode(keyVal),\n );\n break;\n case typeFields_1.InputTypes.FINAL_SCRIPTSIG:\n checkKeyBuffer(\n 'input',\n keyVal.key,\n typeFields_1.InputTypes.FINAL_SCRIPTSIG,\n );\n input.finalScriptSig = convert.inputs.finalScriptSig.decode(keyVal);\n break;\n case typeFields_1.InputTypes.FINAL_SCRIPTWITNESS:\n checkKeyBuffer(\n 'input',\n keyVal.key,\n typeFields_1.InputTypes.FINAL_SCRIPTWITNESS,\n );\n input.finalScriptWitness = convert.inputs.finalScriptWitness.decode(\n keyVal,\n );\n break;\n case typeFields_1.InputTypes.POR_COMMITMENT:\n checkKeyBuffer(\n 'input',\n keyVal.key,\n typeFields_1.InputTypes.POR_COMMITMENT,\n );\n input.porCommitment = convert.inputs.porCommitment.decode(keyVal);\n break;\n case typeFields_1.InputTypes.TAP_KEY_SIG:\n checkKeyBuffer(\n 'input',\n keyVal.key,\n typeFields_1.InputTypes.TAP_KEY_SIG,\n );\n input.tapKeySig = convert.inputs.tapKeySig.decode(keyVal);\n break;\n case typeFields_1.InputTypes.TAP_SCRIPT_SIG:\n if (input.tapScriptSig === undefined) {\n input.tapScriptSig = [];\n }\n input.tapScriptSig.push(convert.inputs.tapScriptSig.decode(keyVal));\n break;\n case typeFields_1.InputTypes.TAP_LEAF_SCRIPT:\n if (input.tapLeafScript === undefined) {\n input.tapLeafScript = [];\n }\n input.tapLeafScript.push(convert.inputs.tapLeafScript.decode(keyVal));\n break;\n case typeFields_1.InputTypes.TAP_BIP32_DERIVATION:\n if (input.tapBip32Derivation === undefined) {\n input.tapBip32Derivation = [];\n }\n input.tapBip32Derivation.push(\n convert.inputs.tapBip32Derivation.decode(keyVal),\n );\n break;\n case typeFields_1.InputTypes.TAP_INTERNAL_KEY:\n checkKeyBuffer(\n 'input',\n keyVal.key,\n typeFields_1.InputTypes.TAP_INTERNAL_KEY,\n );\n input.tapInternalKey = convert.inputs.tapInternalKey.decode(keyVal);\n break;\n case typeFields_1.InputTypes.TAP_MERKLE_ROOT:\n checkKeyBuffer(\n 'input',\n keyVal.key,\n typeFields_1.InputTypes.TAP_MERKLE_ROOT,\n );\n input.tapMerkleRoot = convert.inputs.tapMerkleRoot.decode(keyVal);\n break;\n default:\n // This will allow inclusion during serialization.\n if (!input.unknownKeyVals) input.unknownKeyVals = [];\n input.unknownKeyVals.push(keyVal);\n }\n }\n inputs.push(input);\n }\n for (const index of tools_1.range(outputCount)) {\n const output = {};\n for (const keyVal of outputKeyVals[index]) {\n convert.outputs.checkPubkey(keyVal);\n switch (keyVal.key[0]) {\n case typeFields_1.OutputTypes.REDEEM_SCRIPT:\n checkKeyBuffer(\n 'output',\n keyVal.key,\n typeFields_1.OutputTypes.REDEEM_SCRIPT,\n );\n if (output.redeemScript !== undefined) {\n throw new Error('Format Error: Output has multiple REDEEM_SCRIPT');\n }\n output.redeemScript = convert.outputs.redeemScript.decode(keyVal);\n break;\n case typeFields_1.OutputTypes.WITNESS_SCRIPT:\n checkKeyBuffer(\n 'output',\n keyVal.key,\n typeFields_1.OutputTypes.WITNESS_SCRIPT,\n );\n if (output.witnessScript !== undefined) {\n throw new Error('Format Error: Output has multiple WITNESS_SCRIPT');\n }\n output.witnessScript = convert.outputs.witnessScript.decode(keyVal);\n break;\n case typeFields_1.OutputTypes.BIP32_DERIVATION:\n if (output.bip32Derivation === undefined) {\n output.bip32Derivation = [];\n }\n output.bip32Derivation.push(\n convert.outputs.bip32Derivation.decode(keyVal),\n );\n break;\n case typeFields_1.OutputTypes.TAP_INTERNAL_KEY:\n checkKeyBuffer(\n 'output',\n keyVal.key,\n typeFields_1.OutputTypes.TAP_INTERNAL_KEY,\n );\n output.tapInternalKey = convert.outputs.tapInternalKey.decode(keyVal);\n break;\n case typeFields_1.OutputTypes.TAP_TREE:\n checkKeyBuffer(\n 'output',\n keyVal.key,\n typeFields_1.OutputTypes.TAP_TREE,\n );\n output.tapTree = convert.outputs.tapTree.decode(keyVal);\n break;\n case typeFields_1.OutputTypes.TAP_BIP32_DERIVATION:\n if (output.tapBip32Derivation === undefined) {\n output.tapBip32Derivation = [];\n }\n output.tapBip32Derivation.push(\n convert.outputs.tapBip32Derivation.decode(keyVal),\n );\n break;\n default:\n if (!output.unknownKeyVals) output.unknownKeyVals = [];\n output.unknownKeyVals.push(keyVal);\n }\n }\n outputs.push(output);\n }\n return { globalMap, inputs, outputs };\n}\nexports.psbtFromKeyVals = psbtFromKeyVals;\n","'use strict';\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, '__esModule', { value: true });\n__export(require('./fromBuffer'));\n__export(require('./toBuffer'));\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst convert = require('../converter');\nconst tools_1 = require('../converter/tools');\nfunction psbtToBuffer({ globalMap, inputs, outputs }) {\n const { globalKeyVals, inputKeyVals, outputKeyVals } = psbtToKeyVals({\n globalMap,\n inputs,\n outputs,\n });\n const globalBuffer = tools_1.keyValsToBuffer(globalKeyVals);\n const keyValsOrEmptyToBuffer = keyVals =>\n keyVals.length === 0\n ? [Buffer.from([0])]\n : keyVals.map(tools_1.keyValsToBuffer);\n const inputBuffers = keyValsOrEmptyToBuffer(inputKeyVals);\n const outputBuffers = keyValsOrEmptyToBuffer(outputKeyVals);\n const header = Buffer.allocUnsafe(5);\n header.writeUIntBE(0x70736274ff, 0, 5);\n return Buffer.concat(\n [header, globalBuffer].concat(inputBuffers, outputBuffers),\n );\n}\nexports.psbtToBuffer = psbtToBuffer;\nconst sortKeyVals = (a, b) => {\n return a.key.compare(b.key);\n};\nfunction keyValsFromMap(keyValMap, converterFactory) {\n const keyHexSet = new Set();\n const keyVals = Object.entries(keyValMap).reduce((result, [key, value]) => {\n if (key === 'unknownKeyVals') return result;\n // We are checking for undefined anyways. So ignore TS error\n // @ts-ignore\n const converter = converterFactory[key];\n if (converter === undefined) return result;\n const encodedKeyVals = (Array.isArray(value) ? value : [value]).map(\n converter.encode,\n );\n const keyHexes = encodedKeyVals.map(kv => kv.key.toString('hex'));\n keyHexes.forEach(hex => {\n if (keyHexSet.has(hex))\n throw new Error('Serialize Error: Duplicate key: ' + hex);\n keyHexSet.add(hex);\n });\n return result.concat(encodedKeyVals);\n }, []);\n // Get other keyVals that have not yet been gotten\n const otherKeyVals = keyValMap.unknownKeyVals\n ? keyValMap.unknownKeyVals.filter(keyVal => {\n return !keyHexSet.has(keyVal.key.toString('hex'));\n })\n : [];\n return keyVals.concat(otherKeyVals).sort(sortKeyVals);\n}\nfunction psbtToKeyVals({ globalMap, inputs, outputs }) {\n // First parse the global keyVals\n // Get any extra keyvals to pass along\n return {\n globalKeyVals: keyValsFromMap(globalMap, convert.globals),\n inputKeyVals: inputs.map(i => keyValsFromMap(i, convert.inputs)),\n outputKeyVals: outputs.map(o => keyValsFromMap(o, convert.outputs)),\n };\n}\nexports.psbtToKeyVals = psbtToKeyVals;\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst combiner_1 = require('./combiner');\nconst parser_1 = require('./parser');\nconst typeFields_1 = require('./typeFields');\nconst utils_1 = require('./utils');\nclass Psbt {\n constructor(tx) {\n this.inputs = [];\n this.outputs = [];\n this.globalMap = {\n unsignedTx: tx,\n };\n }\n static fromBase64(data, txFromBuffer) {\n const buffer = Buffer.from(data, 'base64');\n return this.fromBuffer(buffer, txFromBuffer);\n }\n static fromHex(data, txFromBuffer) {\n const buffer = Buffer.from(data, 'hex');\n return this.fromBuffer(buffer, txFromBuffer);\n }\n static fromBuffer(buffer, txFromBuffer) {\n const results = parser_1.psbtFromBuffer(buffer, txFromBuffer);\n const psbt = new this(results.globalMap.unsignedTx);\n Object.assign(psbt, results);\n return psbt;\n }\n toBase64() {\n const buffer = this.toBuffer();\n return buffer.toString('base64');\n }\n toHex() {\n const buffer = this.toBuffer();\n return buffer.toString('hex');\n }\n toBuffer() {\n return parser_1.psbtToBuffer(this);\n }\n updateGlobal(updateData) {\n utils_1.updateGlobal(updateData, this.globalMap);\n return this;\n }\n updateInput(inputIndex, updateData) {\n const input = utils_1.checkForInput(this.inputs, inputIndex);\n utils_1.updateInput(updateData, input);\n return this;\n }\n updateOutput(outputIndex, updateData) {\n const output = utils_1.checkForOutput(this.outputs, outputIndex);\n utils_1.updateOutput(updateData, output);\n return this;\n }\n addUnknownKeyValToGlobal(keyVal) {\n utils_1.checkHasKey(\n keyVal,\n this.globalMap.unknownKeyVals,\n utils_1.getEnumLength(typeFields_1.GlobalTypes),\n );\n if (!this.globalMap.unknownKeyVals) this.globalMap.unknownKeyVals = [];\n this.globalMap.unknownKeyVals.push(keyVal);\n return this;\n }\n addUnknownKeyValToInput(inputIndex, keyVal) {\n const input = utils_1.checkForInput(this.inputs, inputIndex);\n utils_1.checkHasKey(\n keyVal,\n input.unknownKeyVals,\n utils_1.getEnumLength(typeFields_1.InputTypes),\n );\n if (!input.unknownKeyVals) input.unknownKeyVals = [];\n input.unknownKeyVals.push(keyVal);\n return this;\n }\n addUnknownKeyValToOutput(outputIndex, keyVal) {\n const output = utils_1.checkForOutput(this.outputs, outputIndex);\n utils_1.checkHasKey(\n keyVal,\n output.unknownKeyVals,\n utils_1.getEnumLength(typeFields_1.OutputTypes),\n );\n if (!output.unknownKeyVals) output.unknownKeyVals = [];\n output.unknownKeyVals.push(keyVal);\n return this;\n }\n addInput(inputData) {\n this.globalMap.unsignedTx.addInput(inputData);\n this.inputs.push({\n unknownKeyVals: [],\n });\n const addKeyVals = inputData.unknownKeyVals || [];\n const inputIndex = this.inputs.length - 1;\n if (!Array.isArray(addKeyVals)) {\n throw new Error('unknownKeyVals must be an Array');\n }\n addKeyVals.forEach(keyVal =>\n this.addUnknownKeyValToInput(inputIndex, keyVal),\n );\n utils_1.addInputAttributes(this.inputs, inputData);\n return this;\n }\n addOutput(outputData) {\n this.globalMap.unsignedTx.addOutput(outputData);\n this.outputs.push({\n unknownKeyVals: [],\n });\n const addKeyVals = outputData.unknownKeyVals || [];\n const outputIndex = this.outputs.length - 1;\n if (!Array.isArray(addKeyVals)) {\n throw new Error('unknownKeyVals must be an Array');\n }\n addKeyVals.forEach(keyVal =>\n this.addUnknownKeyValToOutput(outputIndex, keyVal),\n );\n utils_1.addOutputAttributes(this.outputs, outputData);\n return this;\n }\n clearFinalizedInput(inputIndex) {\n const input = utils_1.checkForInput(this.inputs, inputIndex);\n utils_1.inputCheckUncleanFinalized(inputIndex, input);\n for (const key of Object.keys(input)) {\n if (\n ![\n 'witnessUtxo',\n 'nonWitnessUtxo',\n 'finalScriptSig',\n 'finalScriptWitness',\n 'unknownKeyVals',\n ].includes(key)\n ) {\n // @ts-ignore\n delete input[key];\n }\n }\n return this;\n }\n combine(...those) {\n // Combine this with those.\n // Return self for chaining.\n const result = combiner_1.combine([this].concat(those));\n Object.assign(this, result);\n return this;\n }\n getTransaction() {\n return this.globalMap.unsignedTx.toBuffer();\n }\n}\nexports.Psbt = Psbt;\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar GlobalTypes;\n(function(GlobalTypes) {\n GlobalTypes[(GlobalTypes['UNSIGNED_TX'] = 0)] = 'UNSIGNED_TX';\n GlobalTypes[(GlobalTypes['GLOBAL_XPUB'] = 1)] = 'GLOBAL_XPUB';\n})((GlobalTypes = exports.GlobalTypes || (exports.GlobalTypes = {})));\nexports.GLOBAL_TYPE_NAMES = ['unsignedTx', 'globalXpub'];\nvar InputTypes;\n(function(InputTypes) {\n InputTypes[(InputTypes['NON_WITNESS_UTXO'] = 0)] = 'NON_WITNESS_UTXO';\n InputTypes[(InputTypes['WITNESS_UTXO'] = 1)] = 'WITNESS_UTXO';\n InputTypes[(InputTypes['PARTIAL_SIG'] = 2)] = 'PARTIAL_SIG';\n InputTypes[(InputTypes['SIGHASH_TYPE'] = 3)] = 'SIGHASH_TYPE';\n InputTypes[(InputTypes['REDEEM_SCRIPT'] = 4)] = 'REDEEM_SCRIPT';\n InputTypes[(InputTypes['WITNESS_SCRIPT'] = 5)] = 'WITNESS_SCRIPT';\n InputTypes[(InputTypes['BIP32_DERIVATION'] = 6)] = 'BIP32_DERIVATION';\n InputTypes[(InputTypes['FINAL_SCRIPTSIG'] = 7)] = 'FINAL_SCRIPTSIG';\n InputTypes[(InputTypes['FINAL_SCRIPTWITNESS'] = 8)] = 'FINAL_SCRIPTWITNESS';\n InputTypes[(InputTypes['POR_COMMITMENT'] = 9)] = 'POR_COMMITMENT';\n InputTypes[(InputTypes['TAP_KEY_SIG'] = 19)] = 'TAP_KEY_SIG';\n InputTypes[(InputTypes['TAP_SCRIPT_SIG'] = 20)] = 'TAP_SCRIPT_SIG';\n InputTypes[(InputTypes['TAP_LEAF_SCRIPT'] = 21)] = 'TAP_LEAF_SCRIPT';\n InputTypes[(InputTypes['TAP_BIP32_DERIVATION'] = 22)] =\n 'TAP_BIP32_DERIVATION';\n InputTypes[(InputTypes['TAP_INTERNAL_KEY'] = 23)] = 'TAP_INTERNAL_KEY';\n InputTypes[(InputTypes['TAP_MERKLE_ROOT'] = 24)] = 'TAP_MERKLE_ROOT';\n})((InputTypes = exports.InputTypes || (exports.InputTypes = {})));\nexports.INPUT_TYPE_NAMES = [\n 'nonWitnessUtxo',\n 'witnessUtxo',\n 'partialSig',\n 'sighashType',\n 'redeemScript',\n 'witnessScript',\n 'bip32Derivation',\n 'finalScriptSig',\n 'finalScriptWitness',\n 'porCommitment',\n 'tapKeySig',\n 'tapScriptSig',\n 'tapLeafScript',\n 'tapBip32Derivation',\n 'tapInternalKey',\n 'tapMerkleRoot',\n];\nvar OutputTypes;\n(function(OutputTypes) {\n OutputTypes[(OutputTypes['REDEEM_SCRIPT'] = 0)] = 'REDEEM_SCRIPT';\n OutputTypes[(OutputTypes['WITNESS_SCRIPT'] = 1)] = 'WITNESS_SCRIPT';\n OutputTypes[(OutputTypes['BIP32_DERIVATION'] = 2)] = 'BIP32_DERIVATION';\n OutputTypes[(OutputTypes['TAP_INTERNAL_KEY'] = 5)] = 'TAP_INTERNAL_KEY';\n OutputTypes[(OutputTypes['TAP_TREE'] = 6)] = 'TAP_TREE';\n OutputTypes[(OutputTypes['TAP_BIP32_DERIVATION'] = 7)] =\n 'TAP_BIP32_DERIVATION';\n})((OutputTypes = exports.OutputTypes || (exports.OutputTypes = {})));\nexports.OUTPUT_TYPE_NAMES = [\n 'redeemScript',\n 'witnessScript',\n 'bip32Derivation',\n 'tapInternalKey',\n 'tapTree',\n 'tapBip32Derivation',\n];\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nconst converter = require('./converter');\nfunction checkForInput(inputs, inputIndex) {\n const input = inputs[inputIndex];\n if (input === undefined) throw new Error(`No input #${inputIndex}`);\n return input;\n}\nexports.checkForInput = checkForInput;\nfunction checkForOutput(outputs, outputIndex) {\n const output = outputs[outputIndex];\n if (output === undefined) throw new Error(`No output #${outputIndex}`);\n return output;\n}\nexports.checkForOutput = checkForOutput;\nfunction checkHasKey(checkKeyVal, keyVals, enumLength) {\n if (checkKeyVal.key[0] < enumLength) {\n throw new Error(\n `Use the method for your specific key instead of addUnknownKeyVal*`,\n );\n }\n if (\n keyVals &&\n keyVals.filter(kv => kv.key.equals(checkKeyVal.key)).length !== 0\n ) {\n throw new Error(`Duplicate Key: ${checkKeyVal.key.toString('hex')}`);\n }\n}\nexports.checkHasKey = checkHasKey;\nfunction getEnumLength(myenum) {\n let count = 0;\n Object.keys(myenum).forEach(val => {\n if (Number(isNaN(Number(val)))) {\n count++;\n }\n });\n return count;\n}\nexports.getEnumLength = getEnumLength;\nfunction inputCheckUncleanFinalized(inputIndex, input) {\n let result = false;\n if (input.nonWitnessUtxo || input.witnessUtxo) {\n const needScriptSig = !!input.redeemScript;\n const needWitnessScript = !!input.witnessScript;\n const scriptSigOK = !needScriptSig || !!input.finalScriptSig;\n const witnessScriptOK = !needWitnessScript || !!input.finalScriptWitness;\n const hasOneFinal = !!input.finalScriptSig || !!input.finalScriptWitness;\n result = scriptSigOK && witnessScriptOK && hasOneFinal;\n }\n if (result === false) {\n throw new Error(\n `Input #${inputIndex} has too much or too little data to clean`,\n );\n }\n}\nexports.inputCheckUncleanFinalized = inputCheckUncleanFinalized;\nfunction throwForUpdateMaker(typeName, name, expected, data) {\n throw new Error(\n `Data for ${typeName} key ${name} is incorrect: Expected ` +\n `${expected} and got ${JSON.stringify(data)}`,\n );\n}\nfunction updateMaker(typeName) {\n return (updateData, mainData) => {\n for (const name of Object.keys(updateData)) {\n // @ts-ignore\n const data = updateData[name];\n // @ts-ignore\n const { canAdd, canAddToArray, check, expected } =\n // @ts-ignore\n converter[typeName + 's'][name] || {};\n const isArray = !!canAddToArray;\n // If unknown data. ignore and do not add\n if (check) {\n if (isArray) {\n if (\n !Array.isArray(data) ||\n // @ts-ignore\n (mainData[name] && !Array.isArray(mainData[name]))\n ) {\n throw new Error(`Key type ${name} must be an array`);\n }\n if (!data.every(check)) {\n throwForUpdateMaker(typeName, name, expected, data);\n }\n // @ts-ignore\n const arr = mainData[name] || [];\n const dupeCheckSet = new Set();\n if (!data.every(v => canAddToArray(arr, v, dupeCheckSet))) {\n throw new Error('Can not add duplicate data to array');\n }\n // @ts-ignore\n mainData[name] = arr.concat(data);\n } else {\n if (!check(data)) {\n throwForUpdateMaker(typeName, name, expected, data);\n }\n if (!canAdd(mainData, data)) {\n throw new Error(`Can not add duplicate data to ${typeName}`);\n }\n // @ts-ignore\n mainData[name] = data;\n }\n }\n }\n };\n}\nexports.updateGlobal = updateMaker('global');\nexports.updateInput = updateMaker('input');\nexports.updateOutput = updateMaker('output');\nfunction addInputAttributes(inputs, data) {\n const index = inputs.length - 1;\n const input = checkForInput(inputs, index);\n exports.updateInput(data, input);\n}\nexports.addInputAttributes = addInputAttributes;\nfunction addOutputAttributes(outputs, data) {\n const index = outputs.length - 1;\n const output = checkForOutput(outputs, index);\n exports.updateOutput(data, output);\n}\nexports.addOutputAttributes = addOutputAttributes;\nfunction defaultVersionSetter(version, txBuf) {\n if (!Buffer.isBuffer(txBuf) || txBuf.length < 4) {\n throw new Error('Set Version: Invalid Transaction');\n }\n txBuf.writeUInt32LE(version, 0);\n return txBuf;\n}\nexports.defaultVersionSetter = defaultVersionSetter;\nfunction defaultLocktimeSetter(locktime, txBuf) {\n if (!Buffer.isBuffer(txBuf) || txBuf.length < 4) {\n throw new Error('Set Locktime: Invalid Transaction');\n }\n txBuf.writeUInt32LE(locktime, txBuf.length - 4);\n return txBuf;\n}\nexports.defaultLocktimeSetter = defaultLocktimeSetter;\n","\"use strict\";\n/*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bytes = exports.stringToBytes = exports.str = exports.bytesToString = exports.hex = exports.utf8 = exports.bech32m = exports.bech32 = exports.base58check = exports.createBase58check = exports.base58xmr = exports.base58xrp = exports.base58flickr = exports.base58 = exports.base64urlnopad = exports.base64url = exports.base64 = exports.base32crockford = exports.base32hex = exports.base32 = exports.base16 = exports.utils = exports.assertNumber = void 0;\n// Utilities\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction assertNumber(n) {\n if (!Number.isSafeInteger(n))\n throw new Error(`Wrong integer: ${n}`);\n}\nexports.assertNumber = assertNumber;\nfunction isBytes(a) {\n return (a instanceof Uint8Array ||\n (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array'));\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 * @__NO_SIDE_EFFECTS__\n */\nfunction alphabet(alphabet) {\n return {\n encode: (digits) => {\n if (!Array.isArray(digits) || (digits.length && typeof digits[0] !== 'number'))\n throw new Error('alphabet.encode input should be an array of numbers');\n return digits.map((i) => {\n assertNumber(i);\n if (i < 0 || i >= alphabet.length)\n throw new Error(`Digit index outside alphabet: ${i} (alphabet: ${alphabet.length})`);\n return alphabet[i];\n });\n },\n decode: (input) => {\n if (!Array.isArray(input) || (input.length && typeof input[0] !== 'string'))\n throw new Error('alphabet.decode input should be array of strings');\n return input.map((letter) => {\n if (typeof letter !== 'string')\n throw new Error(`alphabet.decode: not string element=${letter}`);\n const index = alphabet.indexOf(letter);\n if (index === -1)\n throw new Error(`Unknown letter: \"${letter}\". Allowed: ${alphabet}`);\n return index;\n });\n },\n };\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction join(separator = '') {\n if (typeof separator !== 'string')\n throw new Error('join separator should be string');\n return {\n encode: (from) => {\n if (!Array.isArray(from) || (from.length && typeof from[0] !== 'string'))\n throw new Error('join.encode input should be array of strings');\n for (let i of from)\n if (typeof i !== 'string')\n throw new Error(`join.encode: non-string input=${i}`);\n return from.join(separator);\n },\n decode: (to) => {\n if (typeof to !== 'string')\n throw new Error('join.decode input should be string');\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 assertNumber(bits);\n if (typeof chr !== 'string')\n throw new Error('padding chr should be string');\n return {\n encode(data) {\n if (!Array.isArray(data) || (data.length && typeof data[0] !== 'string'))\n throw new Error('padding.encode input should be array of strings');\n for (let i of data)\n if (typeof i !== 'string')\n throw new Error(`padding.encode: non-string input=${i}`);\n while ((data.length * bits) % 8)\n data.push(chr);\n return data;\n },\n decode(input) {\n if (!Array.isArray(input) || (input.length && typeof input[0] !== 'string'))\n throw new Error('padding.encode input should be array of strings');\n for (let i of input)\n if (typeof i !== 'string')\n throw new Error(`padding.decode: non-string input=${i}`);\n let end = input.length;\n if ((end * bits) % 8)\n throw new Error('Invalid padding: string should have whole number of bytes');\n for (; end > 0 && input[end - 1] === chr; end--) {\n if (!(((end - 1) * bits) % 8))\n throw new Error('Invalid padding: 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 if (typeof fn !== 'function')\n throw new Error('normalize fn should be function');\n return { encode: (from) => from, decode: (to) => fn(to) };\n}\n/**\n * Slow: O(n^2) time complexity\n * @__NO_SIDE_EFFECTS__\n */\nfunction convertRadix(data, from, to) {\n // base 1 is impossible\n if (from < 2)\n throw new Error(`convertRadix: wrong from=${from}, base cannot be less than 2`);\n if (to < 2)\n throw new Error(`convertRadix: wrong to=${to}, base cannot be less than 2`);\n if (!Array.isArray(data))\n throw new Error('convertRadix: data should be array');\n if (!data.length)\n return [];\n let pos = 0;\n const res = [];\n const digits = Array.from(data);\n digits.forEach((d) => {\n assertNumber(d);\n if (d < 0 || d >= from)\n throw new Error(`Wrong integer: ${d}`);\n });\n while (true) {\n let carry = 0;\n let done = true;\n for (let i = pos; i < digits.length; i++) {\n const digit = digits[i];\n const digitBase = from * carry + digit;\n if (!Number.isSafeInteger(digitBase) ||\n (from * carry) / from !== carry ||\n digitBase - digit !== from * carry) {\n throw new Error('convertRadix: carry overflow');\n }\n carry = digitBase % to;\n const rounded = Math.floor(digitBase / to);\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 = /* @__NO_SIDE_EFFECTS__ */ (a, b) => (!b ? a : gcd(b, a % b));\nconst radix2carry = /*@__NO_SIDE_EFFECTS__ */ (from, to) => from + (to - gcd(from, to));\n/**\n * Implemented with numbers, because BigInt is 5x slower\n * @__NO_SIDE_EFFECTS__\n */\nfunction convertRadix2(data, from, to, padding) {\n if (!Array.isArray(data))\n throw new Error('convertRadix2: data should be array');\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 mask = 2 ** to - 1;\n const res = [];\n for (const n of data) {\n assertNumber(n);\n if (n >= 2 ** from)\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 carry &= 2 ** pos - 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)\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 assertNumber(num);\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), 2 ** 8, num);\n },\n decode: (digits) => {\n if (!Array.isArray(digits) || (digits.length && typeof digits[0] !== 'number'))\n throw new Error('radix.decode input should be array of numbers');\n return Uint8Array.from(convertRadix(digits, num, 2 ** 8));\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 assertNumber(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 if (!Array.isArray(digits) || (digits.length && typeof digits[0] !== 'number'))\n throw new Error('radix2.decode input should be array of numbers');\n return Uint8Array.from(convertRadix2(digits, bits, 8, revPadding));\n },\n };\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction unsafeWrapper(fn) {\n if (typeof fn !== 'function')\n throw new Error('unsafeWrapper fn should be function');\n return function (...args) {\n try {\n return fn.apply(null, args);\n }\n catch (e) { }\n };\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction checksum(len, fn) {\n assertNumber(len);\n if (typeof fn !== 'function')\n throw new Error('checksum fn should be function');\n return {\n encode(data) {\n if (!isBytes(data))\n throw new Error('checksum.encode: input should be Uint8Array');\n const checksum = fn(data).slice(0, len);\n const res = new Uint8Array(data.length + len);\n res.set(data);\n res.set(checksum, 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 newChecksum = fn(payload).slice(0, len);\n const oldChecksum = data.slice(-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\nexports.utils = {\n alphabet, chain, checksum, convertRadix, convertRadix2, radix, radix2, join, padding,\n};\n// RFC 4648 aka RFC 3548\n// ---------------------\nexports.base16 = chain(radix2(4), alphabet('0123456789ABCDEF'), join(''));\nexports.base32 = chain(radix2(5), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'), padding(5), join(''));\nexports.base32hex = chain(radix2(5), alphabet('0123456789ABCDEFGHIJKLMNOPQRSTUV'), padding(5), join(''));\nexports.base32crockford = chain(radix2(5), alphabet('0123456789ABCDEFGHJKMNPQRSTVWXYZ'), join(''), normalize((s) => s.toUpperCase().replace(/O/g, '0').replace(/[IL]/g, '1')));\nexports.base64 = chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'), padding(6), join(''));\nexports.base64url = chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'), padding(6), join(''));\nexports.base64urlnopad = chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'), join(''));\n// base58 code\n// -----------\nconst genBase58 = (abc) => chain(radix(58), alphabet(abc), join(''));\nexports.base58 = genBase58('123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz');\nexports.base58flickr = genBase58('123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ');\nexports.base58xrp = genBase58('rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz');\n// xmr ver is 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// Data len (index) -> encoded block len\nconst XMR_BLOCK_LEN = [0, 2, 3, 5, 6, 7, 9, 10, 11];\nexports.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 += exports.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 = exports.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};\nconst createBase58check = (sha256) => chain(checksum(4, (data) => sha256(sha256(data))), exports.base58);\nexports.createBase58check = createBase58check;\n// legacy export, bad name\nexports.base58check = exports.createBase58check;\nconst BECH_ALPHABET = /* @__PURE__ */ chain(alphabet('qpzry9x8gf2tvdw0s3jn54khce6mua7l'), join(''));\nconst POLYMOD_GENERATORS = [0x3b6a57b2, 0x26508e6d, 0x1ea119fa, 0x3d4233dd, 0x2a1462b3];\n/**\n * @__NO_SIDE_EFFECTS__\n */\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}\n/**\n * @__NO_SIDE_EFFECTS__\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 % 2 ** 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 if (typeof prefix !== 'string')\n throw new Error(`bech32.encode prefix should be string, not ${typeof prefix}`);\n if (!Array.isArray(words) || (words.length && typeof words[0] !== 'number'))\n throw new Error(`bech32.encode words should be array of numbers, not ${typeof words}`);\n const actualLength = prefix.length + 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 if (typeof str !== 'string')\n throw new Error(`bech32.decode input should be string, not ${typeof str}`);\n if (str.length < 8 || (limit !== false && str.length > limit))\n throw new TypeError(`Wrong string length: ${str.length} (${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 str = lowered;\n const sepIndex = str.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 = str.slice(0, sepIndex);\n const _words = str.slice(sepIndex + 1);\n if (_words.length < 6)\n throw new Error('Data must be at least 6 characters long');\n const words = BECH_ALPHABET.decode(_words).slice(0, -6);\n const sum = bechChecksum(prefix, words, ENCODING_CONST);\n if (!_words.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 return { encode, decode, decodeToBytes, decodeUnsafe, fromWords, fromWordsUnsafe, toWords };\n}\nexports.bech32 = genBech32('bech32');\nexports.bech32m = genBech32('bech32m');\nexports.utf8 = {\n encode: (data) => new TextDecoder().decode(data),\n decode: (str) => new TextEncoder().encode(str),\n};\nexports.hex = chain(radix2(4), alphabet('0123456789abcdef'), join(''), normalize((s) => {\n if (typeof s !== 'string' || s.length % 2)\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: exports.utf8, hex: exports.hex, base16: exports.base16, base32: exports.base32, base64: exports.base64, base64url: exports.base64url, base58: exports.base58, base58xmr: exports.base58xmr\n};\nconst coderTypeError = 'Invalid encoding type. Available types: utf8, hex, base16, base32, base64, base64url, base58, base58xmr';\nconst 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};\nexports.bytesToString = bytesToString;\nexports.str = exports.bytesToString; // as in python, but for bytes only\nconst 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};\nexports.stringToBytes = stringToBytes;\nexports.bytes = exports.stringToBytes;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BIP32Factory = void 0;\nconst crypto = require(\"./crypto\");\nconst testecc_1 = require(\"./testecc\");\nconst base_1 = require(\"@scure/base\");\nconst sha256_1 = require(\"@noble/hashes/sha256\");\nconst typeforce = require('typeforce');\nconst wif = require('wif');\nconst _bs58check = (0, base_1.base58check)(sha256_1.sha256);\nconst bs58check = {\n encode: (data) => _bs58check.encode(Uint8Array.from(data)),\n decode: (str) => Buffer.from(_bs58check.decode(str)),\n};\nfunction BIP32Factory(ecc) {\n (0, testecc_1.testEcc)(ecc);\n const UINT256_TYPE = typeforce.BufferN(32);\n const NETWORK_TYPE = typeforce.compile({\n wif: typeforce.UInt8,\n bip32: {\n public: typeforce.UInt32,\n private: typeforce.UInt32,\n },\n });\n const BITCOIN = {\n messagePrefix: '\\x18Bitcoin Signed Message:\\n',\n bech32: 'bc',\n bip32: {\n public: 0x0488b21e,\n private: 0x0488ade4,\n },\n pubKeyHash: 0x00,\n scriptHash: 0x05,\n wif: 0x80,\n };\n const HIGHEST_BIT = 0x80000000;\n const UINT31_MAX = Math.pow(2, 31) - 1;\n function BIP32Path(value) {\n return (typeforce.String(value) && value.match(/^(m\\/)?(\\d+'?\\/)*\\d+'?$/) !== null);\n }\n function UInt31(value) {\n return typeforce.UInt32(value) && value <= UINT31_MAX;\n }\n function toXOnly(pubKey) {\n return pubKey.length === 32 ? pubKey : pubKey.slice(1, 33);\n }\n class Bip32Signer {\n constructor(__D, __Q) {\n this.__D = __D;\n this.__Q = __Q;\n this.lowR = false;\n }\n get publicKey() {\n if (this.__Q === undefined)\n this.__Q = Buffer.from(ecc.pointFromScalar(this.__D, true));\n return this.__Q;\n }\n get privateKey() {\n return this.__D;\n }\n sign(hash, lowR) {\n if (!this.privateKey)\n throw new Error('Missing private key');\n if (lowR === undefined)\n lowR = this.lowR;\n if (lowR === false) {\n return Buffer.from(ecc.sign(hash, this.privateKey));\n }\n else {\n let sig = Buffer.from(ecc.sign(hash, this.privateKey));\n const extraData = Buffer.alloc(32, 0);\n let counter = 0;\n // if first try is lowR, skip the loop\n // for second try and on, add extra entropy counting up\n while (sig[0] > 0x7f) {\n counter++;\n extraData.writeUIntLE(counter, 0, 6);\n sig = Buffer.from(ecc.sign(hash, this.privateKey, extraData));\n }\n return sig;\n }\n }\n signSchnorr(hash) {\n if (!this.privateKey)\n throw new Error('Missing private key');\n if (!ecc.signSchnorr)\n throw new Error('signSchnorr not supported by ecc library');\n return Buffer.from(ecc.signSchnorr(hash, this.privateKey));\n }\n verify(hash, signature) {\n return ecc.verify(hash, this.publicKey, signature);\n }\n verifySchnorr(hash, signature) {\n if (!ecc.verifySchnorr)\n throw new Error('verifySchnorr not supported by ecc library');\n return ecc.verifySchnorr(hash, this.publicKey.subarray(1, 33), signature);\n }\n }\n class BIP32 extends Bip32Signer {\n constructor(__D, __Q, chainCode, network, __DEPTH = 0, __INDEX = 0, __PARENT_FINGERPRINT = 0x00000000) {\n super(__D, __Q);\n this.chainCode = chainCode;\n this.network = network;\n this.__DEPTH = __DEPTH;\n this.__INDEX = __INDEX;\n this.__PARENT_FINGERPRINT = __PARENT_FINGERPRINT;\n typeforce(NETWORK_TYPE, network);\n }\n get depth() {\n return this.__DEPTH;\n }\n get index() {\n return this.__INDEX;\n }\n get parentFingerprint() {\n return this.__PARENT_FINGERPRINT;\n }\n get identifier() {\n return crypto.hash160(this.publicKey);\n }\n get fingerprint() {\n return this.identifier.slice(0, 4);\n }\n get compressed() {\n return true;\n }\n // Private === not neutered\n // Public === neutered\n isNeutered() {\n return this.__D === undefined;\n }\n neutered() {\n return fromPublicKeyLocal(this.publicKey, this.chainCode, this.network, this.depth, this.index, this.parentFingerprint);\n }\n toBase58() {\n const network = this.network;\n const version = !this.isNeutered()\n ? network.bip32.private\n : network.bip32.public;\n const buffer = Buffer.allocUnsafe(78);\n // 4 bytes: version bytes\n buffer.writeUInt32BE(version, 0);\n // 1 byte: depth: 0x00 for master nodes, 0x01 for level-1 descendants, ....\n buffer.writeUInt8(this.depth, 4);\n // 4 bytes: the fingerprint of the parent's key (0x00000000 if master key)\n buffer.writeUInt32BE(this.parentFingerprint, 5);\n // 4 bytes: child number. This is the number i in xi = xpar/i, with xi the key being serialized.\n // This is encoded in big endian. (0x00000000 if master key)\n buffer.writeUInt32BE(this.index, 9);\n // 32 bytes: the chain code\n this.chainCode.copy(buffer, 13);\n // 33 bytes: the public key or private key data\n if (!this.isNeutered()) {\n // 0x00 + k for private keys\n buffer.writeUInt8(0, 45);\n this.privateKey.copy(buffer, 46);\n // 33 bytes: the public key\n }\n else {\n // X9.62 encoding for public keys\n this.publicKey.copy(buffer, 45);\n }\n return bs58check.encode(buffer);\n }\n toWIF() {\n if (!this.privateKey)\n throw new TypeError('Missing private key');\n return wif.encode(this.network.wif, this.privateKey, true);\n }\n // https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki#child-key-derivation-ckd-functions\n derive(index) {\n typeforce(typeforce.UInt32, index);\n const isHardened = index >= HIGHEST_BIT;\n const data = Buffer.allocUnsafe(37);\n // Hardened child\n if (isHardened) {\n if (this.isNeutered())\n throw new TypeError('Missing private key for hardened child key');\n // data = 0x00 || ser256(kpar) || ser32(index)\n data[0] = 0x00;\n this.privateKey.copy(data, 1);\n data.writeUInt32BE(index, 33);\n // Normal child\n }\n else {\n // data = serP(point(kpar)) || ser32(index)\n // = serP(Kpar) || ser32(index)\n this.publicKey.copy(data, 0);\n data.writeUInt32BE(index, 33);\n }\n const I = crypto.hmacSHA512(this.chainCode, data);\n const IL = I.slice(0, 32);\n const IR = I.slice(32);\n // if parse256(IL) >= n, proceed with the next value for i\n if (!ecc.isPrivate(IL))\n return this.derive(index + 1);\n // Private parent key -> private child key\n let hd;\n if (!this.isNeutered()) {\n // ki = parse256(IL) + kpar (mod n)\n const ki = Buffer.from(ecc.privateAdd(this.privateKey, IL));\n // In case ki == 0, proceed with the next value for i\n if (ki == null)\n return this.derive(index + 1);\n hd = fromPrivateKeyLocal(ki, IR, this.network, this.depth + 1, index, this.fingerprint.readUInt32BE(0));\n // Public parent key -> public child key\n }\n else {\n // Ki = point(parse256(IL)) + Kpar\n // = G*IL + Kpar\n const Ki = Buffer.from(ecc.pointAddScalar(this.publicKey, IL, true));\n // In case Ki is the point at infinity, proceed with the next value for i\n if (Ki === null)\n return this.derive(index + 1);\n hd = fromPublicKeyLocal(Ki, IR, this.network, this.depth + 1, index, this.fingerprint.readUInt32BE(0));\n }\n return hd;\n }\n deriveHardened(index) {\n typeforce(UInt31, index);\n // Only derives hardened private keys by default\n return this.derive(index + HIGHEST_BIT);\n }\n derivePath(path) {\n typeforce(BIP32Path, path);\n let splitPath = path.split('/');\n if (splitPath[0] === 'm') {\n if (this.parentFingerprint)\n throw new TypeError('Expected master, got child');\n splitPath = splitPath.slice(1);\n }\n return splitPath.reduce((prevHd, indexStr) => {\n let index;\n if (indexStr.slice(-1) === `'`) {\n index = parseInt(indexStr.slice(0, -1), 10);\n return prevHd.deriveHardened(index);\n }\n else {\n index = parseInt(indexStr, 10);\n return prevHd.derive(index);\n }\n }, this);\n }\n tweak(t) {\n if (this.privateKey)\n return this.tweakFromPrivateKey(t);\n return this.tweakFromPublicKey(t);\n }\n tweakFromPublicKey(t) {\n const xOnlyPubKey = toXOnly(this.publicKey);\n if (!ecc.xOnlyPointAddTweak)\n throw new Error('xOnlyPointAddTweak not supported by ecc library');\n const tweakedPublicKey = ecc.xOnlyPointAddTweak(xOnlyPubKey, t);\n if (!tweakedPublicKey || tweakedPublicKey.xOnlyPubkey === null)\n throw new Error('Cannot tweak public key!');\n const parityByte = Buffer.from([\n tweakedPublicKey.parity === 0 ? 0x02 : 0x03,\n ]);\n const tweakedPublicKeyCompresed = Buffer.concat([\n parityByte,\n tweakedPublicKey.xOnlyPubkey,\n ]);\n return new Bip32Signer(undefined, tweakedPublicKeyCompresed);\n }\n tweakFromPrivateKey(t) {\n const hasOddY = this.publicKey[0] === 3 ||\n (this.publicKey[0] === 4 && (this.publicKey[64] & 1) === 1);\n const privateKey = (() => {\n if (!hasOddY)\n return this.privateKey;\n else if (!ecc.privateNegate)\n throw new Error('privateNegate not supported by ecc library');\n else\n return ecc.privateNegate(this.privateKey);\n })();\n const tweakedPrivateKey = ecc.privateAdd(privateKey, t);\n if (!tweakedPrivateKey)\n throw new Error('Invalid tweaked private key!');\n return new Bip32Signer(Buffer.from(tweakedPrivateKey), undefined);\n }\n }\n function fromBase58(inString, network) {\n const buffer = bs58check.decode(inString);\n if (buffer.length !== 78)\n throw new TypeError('Invalid buffer length');\n network = network || BITCOIN;\n // 4 bytes: version bytes\n const version = buffer.readUInt32BE(0);\n if (version !== network.bip32.private && version !== network.bip32.public)\n throw new TypeError('Invalid network version');\n // 1 byte: depth: 0x00 for master nodes, 0x01 for level-1 descendants, ...\n const depth = buffer[4];\n // 4 bytes: the fingerprint of the parent's key (0x00000000 if master key)\n const parentFingerprint = buffer.readUInt32BE(5);\n if (depth === 0) {\n if (parentFingerprint !== 0x00000000)\n throw new TypeError('Invalid parent fingerprint');\n }\n // 4 bytes: child number. This is the number i in xi = xpar/i, with xi the key being serialized.\n // This is encoded in MSB order. (0x00000000 if master key)\n const index = buffer.readUInt32BE(9);\n if (depth === 0 && index !== 0)\n throw new TypeError('Invalid index');\n // 32 bytes: the chain code\n const chainCode = buffer.slice(13, 45);\n let hd;\n // 33 bytes: private key data (0x00 + k)\n if (version === network.bip32.private) {\n if (buffer.readUInt8(45) !== 0x00)\n throw new TypeError('Invalid private key');\n const k = buffer.slice(46, 78);\n hd = fromPrivateKeyLocal(k, chainCode, network, depth, index, parentFingerprint);\n // 33 bytes: public key data (0x02 + X or 0x03 + X)\n }\n else {\n const X = buffer.slice(45, 78);\n hd = fromPublicKeyLocal(X, chainCode, network, depth, index, parentFingerprint);\n }\n return hd;\n }\n function fromPrivateKey(privateKey, chainCode, network) {\n return fromPrivateKeyLocal(privateKey, chainCode, network);\n }\n function fromPrivateKeyLocal(privateKey, chainCode, network, depth, index, parentFingerprint) {\n typeforce({\n privateKey: UINT256_TYPE,\n chainCode: UINT256_TYPE,\n }, { privateKey, chainCode });\n network = network || BITCOIN;\n if (!ecc.isPrivate(privateKey))\n throw new TypeError('Private key not in range [1, n)');\n return new BIP32(privateKey, undefined, chainCode, network, depth, index, parentFingerprint);\n }\n function fromPublicKey(publicKey, chainCode, network) {\n return fromPublicKeyLocal(publicKey, chainCode, network);\n }\n function fromPublicKeyLocal(publicKey, chainCode, network, depth, index, parentFingerprint) {\n typeforce({\n publicKey: typeforce.BufferN(33),\n chainCode: UINT256_TYPE,\n }, { publicKey, chainCode });\n network = network || BITCOIN;\n // verify the X coordinate is a point on the curve\n if (!ecc.isPoint(publicKey))\n throw new TypeError('Point is not on the curve');\n return new BIP32(undefined, publicKey, chainCode, network, depth, index, parentFingerprint);\n }\n function fromSeed(seed, network) {\n typeforce(typeforce.Buffer, seed);\n if (seed.length < 16)\n throw new TypeError('Seed should be at least 128 bits');\n if (seed.length > 64)\n throw new TypeError('Seed should be at most 512 bits');\n network = network || BITCOIN;\n const I = crypto.hmacSHA512(Buffer.from('Bitcoin seed', 'utf8'), seed);\n const IL = I.slice(0, 32);\n const IR = I.slice(32);\n return fromPrivateKey(IL, IR, network);\n }\n return {\n fromSeed,\n fromBase58,\n fromPublicKey,\n fromPrivateKey,\n };\n}\nexports.BIP32Factory = BIP32Factory;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hmacSHA512 = exports.hash160 = void 0;\nconst hmac_1 = require(\"@noble/hashes/hmac\");\nconst ripemd160_1 = require(\"@noble/hashes/ripemd160\");\nconst sha256_1 = require(\"@noble/hashes/sha256\");\nconst sha512_1 = require(\"@noble/hashes/sha512\");\nfunction hash160(buffer) {\n const sha256Hash = (0, sha256_1.sha256)(Uint8Array.from(buffer));\n return Buffer.from((0, ripemd160_1.ripemd160)(sha256Hash));\n}\nexports.hash160 = hash160;\nfunction hmacSHA512(key, data) {\n return Buffer.from((0, hmac_1.hmac)(sha512_1.sha512, key, data));\n}\nexports.hmacSHA512 = hmacSHA512;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BIP32Factory = exports.default = void 0;\nvar bip32_1 = require(\"./bip32\");\nObject.defineProperty(exports, \"default\", { enumerable: true, get: function () { return bip32_1.BIP32Factory; } });\nObject.defineProperty(exports, \"BIP32Factory\", { enumerable: true, get: function () { return bip32_1.BIP32Factory; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.testEcc = void 0;\nconst h = (hex) => Buffer.from(hex, 'hex');\nfunction testEcc(ecc) {\n assert(ecc.isPoint(h('0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798')));\n assert(!ecc.isPoint(h('030000000000000000000000000000000000000000000000000000000000000005')));\n assert(ecc.isPrivate(h('79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798')));\n // order - 1\n assert(ecc.isPrivate(h('fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364140')));\n // 0\n assert(!ecc.isPrivate(h('0000000000000000000000000000000000000000000000000000000000000000')));\n // order\n assert(!ecc.isPrivate(h('fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141')));\n // order + 1\n assert(!ecc.isPrivate(h('fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364142')));\n assert(Buffer.from(ecc.pointFromScalar(h('b1121e4088a66a28f5b6b0f5844943ecd9f610196d7bb83b25214b60452c09af'))).equals(h('02b07ba9dca9523b7ef4bd97703d43d20399eb698e194704791a25ce77a400df99')));\n if (ecc.xOnlyPointAddTweak) {\n assert(ecc.xOnlyPointAddTweak(h('79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798'), h('fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364140')) === null);\n let xOnlyRes = ecc.xOnlyPointAddTweak(h('1617d38ed8d8657da4d4761e8057bc396ea9e4b9d29776d4be096016dbd2509b'), h('a8397a935f0dfceba6ba9618f6451ef4d80637abf4e6af2669fbc9de6a8fd2ac'));\n assert(Buffer.from(xOnlyRes.xOnlyPubkey).equals(h('e478f99dab91052ab39a33ea35fd5e6e4933f4d28023cd597c9a1f6760346adf')) && xOnlyRes.parity === 1);\n xOnlyRes = ecc.xOnlyPointAddTweak(h('2c0b7cf95324a07d05398b240174dc0c2be444d96b159aa6c7f7b1e668680991'), h('823c3cd2142744b075a87eade7e1b8678ba308d566226a0056ca2b7a76f86b47'));\n }\n assert(Buffer.from(ecc.pointAddScalar(h('0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798'), h('0000000000000000000000000000000000000000000000000000000000000003'))).equals(h('02c6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee5')));\n assert(Buffer.from(ecc.privateAdd(h('fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd036413e'), h('0000000000000000000000000000000000000000000000000000000000000002'))).equals(h('fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364140')));\n if (ecc.privateNegate) {\n assert(Buffer.from(ecc.privateNegate(h('0000000000000000000000000000000000000000000000000000000000000001'))).equals(h('fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364140')));\n assert(Buffer.from(ecc.privateNegate(h('fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd036413e'))).equals(h('0000000000000000000000000000000000000000000000000000000000000003')));\n assert(Buffer.from(ecc.privateNegate(h('b1121e4088a66a28f5b6b0f5844943ecd9f610196d7bb83b25214b60452c09af'))).equals(h('4eede1bf775995d70a494f0a7bb6bc11e0b8cccd41cce8009ab1132c8b0a3792')));\n }\n assert(Buffer.from(ecc.sign(h('5e9f0a0d593efdcf78ac923bc3313e4e7d408d574354ee2b3288c0da9fbba6ed'), h('fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364140'))).equals(h('54c4a33c6423d689378f160a7ff8b61330444abb58fb470f96ea16d99d4a2fed07082304410efa6b2943111b6a4e0aaa7b7db55a07e9861d1fb3cb1f421044a5')));\n assert(ecc.verify(h('5e9f0a0d593efdcf78ac923bc3313e4e7d408d574354ee2b3288c0da9fbba6ed'), h('0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798'), h('54c4a33c6423d689378f160a7ff8b61330444abb58fb470f96ea16d99d4a2fed07082304410efa6b2943111b6a4e0aaa7b7db55a07e9861d1fb3cb1f421044a5')));\n if (ecc.signSchnorr) {\n assert(Buffer.from(ecc.signSchnorr(h('7e2d58d8b3bcdf1abadec7829054f90dda9805aab56c77333024b9d0a508b75c'), h('c90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b14e5c9'), h('c87aa53824b4d7ae2eb035a2b5bbbccc080e76cdc6d1692c4b0b62d798e6d906'))).equals(h('5831aaeed7b44bb74e5eab94ba9d4294c49bcf2a60728d8b4c200f50dd313c1bab745879a5ad954a72c45a91c3a51d3c7adea98d82f8481e0e1e03674a6f3fb7')));\n }\n if (ecc.verifySchnorr) {\n assert(ecc.verifySchnorr(h('7e2d58d8b3bcdf1abadec7829054f90dda9805aab56c77333024b9d0a508b75c'), h('dd308afec5777e13121fa72b9cc1b7cc0139715309b086c960e18fd969774eb8'), h('5831aaeed7b44bb74e5eab94ba9d4294c49bcf2a60728d8b4c200f50dd313c1bab745879a5ad954a72c45a91c3a51d3c7adea98d82f8481e0e1e03674a6f3fb7')));\n }\n}\nexports.testEcc = testEcc;\nfunction assert(bool) {\n if (!bool)\n throw new Error('ecc library invalid');\n}\n","'use strict';\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bech32m = exports.bech32 = void 0;\nconst ALPHABET = 'qpzry9x8gf2tvdw0s3jn54khce6mua7l';\nconst ALPHABET_MAP = {};\nfor (let z = 0; z < ALPHABET.length; z++) {\n const x = ALPHABET.charAt(z);\n ALPHABET_MAP[x] = z;\n}\nfunction polymodStep(pre) {\n const b = pre >> 25;\n return (((pre & 0x1ffffff) << 5) ^\n (-((b >> 0) & 1) & 0x3b6a57b2) ^\n (-((b >> 1) & 1) & 0x26508e6d) ^\n (-((b >> 2) & 1) & 0x1ea119fa) ^\n (-((b >> 3) & 1) & 0x3d4233dd) ^\n (-((b >> 4) & 1) & 0x2a1462b3));\n}\nfunction prefixChk(prefix) {\n let chk = 1;\n for (let i = 0; i < prefix.length; ++i) {\n const c = prefix.charCodeAt(i);\n if (c < 33 || c > 126)\n return 'Invalid prefix (' + prefix + ')';\n chk = polymodStep(chk) ^ (c >> 5);\n }\n chk = polymodStep(chk);\n for (let i = 0; i < prefix.length; ++i) {\n const v = prefix.charCodeAt(i);\n chk = polymodStep(chk) ^ (v & 0x1f);\n }\n return chk;\n}\nfunction convert(data, inBits, outBits, pad) {\n let value = 0;\n let bits = 0;\n const maxV = (1 << outBits) - 1;\n const result = [];\n for (let i = 0; i < data.length; ++i) {\n value = (value << inBits) | data[i];\n bits += inBits;\n while (bits >= outBits) {\n bits -= outBits;\n result.push((value >> bits) & maxV);\n }\n }\n if (pad) {\n if (bits > 0) {\n result.push((value << (outBits - bits)) & maxV);\n }\n }\n else {\n if (bits >= inBits)\n return 'Excess padding';\n if ((value << (outBits - bits)) & maxV)\n return 'Non-zero padding';\n }\n return result;\n}\nfunction toWords(bytes) {\n return convert(bytes, 8, 5, true);\n}\nfunction fromWordsUnsafe(words) {\n const res = convert(words, 5, 8, false);\n if (Array.isArray(res))\n return res;\n}\nfunction fromWords(words) {\n const res = convert(words, 5, 8, false);\n if (Array.isArray(res))\n return res;\n throw new Error(res);\n}\nfunction getLibraryFromEncoding(encoding) {\n let ENCODING_CONST;\n if (encoding === 'bech32') {\n ENCODING_CONST = 1;\n }\n else {\n ENCODING_CONST = 0x2bc830a3;\n }\n function encode(prefix, words, LIMIT) {\n LIMIT = LIMIT || 90;\n if (prefix.length + 7 + words.length > LIMIT)\n throw new TypeError('Exceeds length limit');\n prefix = prefix.toLowerCase();\n // determine chk mod\n let chk = prefixChk(prefix);\n if (typeof chk === 'string')\n throw new Error(chk);\n let result = prefix + '1';\n for (let i = 0; i < words.length; ++i) {\n const x = words[i];\n if (x >> 5 !== 0)\n throw new Error('Non 5-bit word');\n chk = polymodStep(chk) ^ x;\n result += ALPHABET.charAt(x);\n }\n for (let i = 0; i < 6; ++i) {\n chk = polymodStep(chk);\n }\n chk ^= ENCODING_CONST;\n for (let i = 0; i < 6; ++i) {\n const v = (chk >> ((5 - i) * 5)) & 0x1f;\n result += ALPHABET.charAt(v);\n }\n return result;\n }\n function __decode(str, LIMIT) {\n LIMIT = LIMIT || 90;\n if (str.length < 8)\n return str + ' too short';\n if (str.length > LIMIT)\n return 'Exceeds length limit';\n // don't allow mixed case\n const lowered = str.toLowerCase();\n const uppered = str.toUpperCase();\n if (str !== lowered && str !== uppered)\n return 'Mixed-case string ' + str;\n str = lowered;\n const split = str.lastIndexOf('1');\n if (split === -1)\n return 'No separator character for ' + str;\n if (split === 0)\n return 'Missing prefix for ' + str;\n const prefix = str.slice(0, split);\n const wordChars = str.slice(split + 1);\n if (wordChars.length < 6)\n return 'Data too short';\n let chk = prefixChk(prefix);\n if (typeof chk === 'string')\n return chk;\n const words = [];\n for (let i = 0; i < wordChars.length; ++i) {\n const c = wordChars.charAt(i);\n const v = ALPHABET_MAP[c];\n if (v === undefined)\n return 'Unknown character ' + c;\n chk = polymodStep(chk) ^ v;\n // not in the checksum?\n if (i + 6 >= wordChars.length)\n continue;\n words.push(v);\n }\n if (chk !== ENCODING_CONST)\n return 'Invalid checksum for ' + str;\n return { prefix, words };\n }\n function decodeUnsafe(str, LIMIT) {\n const res = __decode(str, LIMIT);\n if (typeof res === 'object')\n return res;\n }\n function decode(str, LIMIT) {\n const res = __decode(str, LIMIT);\n if (typeof res === 'object')\n return res;\n throw new Error(res);\n }\n return {\n decodeUnsafe,\n decode,\n encode,\n toWords,\n fromWordsUnsafe,\n fromWords,\n };\n}\nexports.bech32 = getLibraryFromEncoding('bech32');\nexports.bech32m = getLibraryFromEncoding('bech32m');\n","'use strict'\n\nvar base58 = require('bs58')\n\nmodule.exports = function (checksumFn) {\n // Encode a buffer as a base58-check encoded string\n function encode (payload) {\n var payloadU8 = Uint8Array.from(payload)\n var checksum = checksumFn(payloadU8)\n var length = payloadU8.length + 4\n var both = new Uint8Array(length)\n both.set(payloadU8, 0)\n both.set(checksum.subarray(0, 4), payloadU8.length)\n return base58.encode(both, length)\n }\n\n function decodeRaw (buffer) {\n var payload = buffer.slice(0, -4)\n var checksum = buffer.slice(-4)\n var newChecksum = checksumFn(payload)\n\n if (checksum[0] ^ newChecksum[0] |\n checksum[1] ^ newChecksum[1] |\n checksum[2] ^ newChecksum[2] |\n checksum[3] ^ newChecksum[3]) return\n\n return payload\n }\n\n // Decode a base58-check encoded string to a buffer, no result if checksum is wrong\n function decodeUnsafe (string) {\n var buffer = base58.decodeUnsafe(string)\n if (!buffer) return\n\n return decodeRaw(buffer)\n }\n\n function decode (string) {\n var buffer = base58.decode(string)\n var payload = decodeRaw(buffer, checksumFn)\n if (!payload) throw new Error('Invalid checksum')\n return payload\n }\n\n return {\n encode: encode,\n decode: decode,\n decodeUnsafe: decodeUnsafe\n }\n}\n","'use strict'\n\nvar { sha256 } = require('@noble/hashes/sha256')\nvar bs58checkBase = require('./base')\n\n// SHA256(SHA256(buffer))\nfunction sha256x2 (buffer) {\n return sha256(sha256(buffer))\n}\n\nmodule.exports = bs58checkBase(sha256x2)\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nexports.toOutputScript =\n exports.fromOutputScript =\n exports.toBech32 =\n exports.toBase58Check =\n exports.fromBech32 =\n exports.fromBase58Check =\n void 0;\nconst networks = require('./networks');\nconst payments = require('./payments');\nconst bscript = require('./script');\nconst types_1 = require('./types');\nconst bech32_1 = require('bech32');\nconst bs58check = require('bs58check');\nconst FUTURE_SEGWIT_MAX_SIZE = 40;\nconst FUTURE_SEGWIT_MIN_SIZE = 2;\nconst FUTURE_SEGWIT_MAX_VERSION = 16;\nconst FUTURE_SEGWIT_MIN_VERSION = 2;\nconst FUTURE_SEGWIT_VERSION_DIFF = 0x50;\nconst FUTURE_SEGWIT_VERSION_WARNING =\n 'WARNING: Sending to a future segwit version address can lead to loss of funds. ' +\n 'End users MUST be warned carefully in the GUI and asked if they wish to proceed ' +\n 'with caution. Wallets should verify the segwit version from the output of fromBech32, ' +\n 'then decide when it is safe to use which version of segwit.';\nfunction _toFutureSegwitAddress(output, network) {\n const data = output.slice(2);\n if (\n data.length < FUTURE_SEGWIT_MIN_SIZE ||\n data.length > FUTURE_SEGWIT_MAX_SIZE\n )\n throw new TypeError('Invalid program length for segwit address');\n const version = output[0] - FUTURE_SEGWIT_VERSION_DIFF;\n if (\n version < FUTURE_SEGWIT_MIN_VERSION ||\n version > FUTURE_SEGWIT_MAX_VERSION\n )\n throw new TypeError('Invalid version for segwit address');\n if (output[1] !== data.length)\n throw new TypeError('Invalid script for segwit address');\n console.warn(FUTURE_SEGWIT_VERSION_WARNING);\n return toBech32(data, version, network.bech32);\n}\nfunction fromBase58Check(address) {\n const payload = Buffer.from(bs58check.decode(address));\n // TODO: 4.0.0, move to \"toOutputScript\"\n if (payload.length < 21) throw new TypeError(address + ' is too short');\n if (payload.length > 21) throw new TypeError(address + ' is too long');\n const version = payload.readUInt8(0);\n const hash = payload.slice(1);\n return { version, hash };\n}\nexports.fromBase58Check = fromBase58Check;\nfunction fromBech32(address) {\n let result;\n let version;\n try {\n result = bech32_1.bech32.decode(address);\n } catch (e) {}\n if (result) {\n version = result.words[0];\n if (version !== 0) throw new TypeError(address + ' uses wrong encoding');\n } else {\n result = bech32_1.bech32m.decode(address);\n version = result.words[0];\n if (version === 0) throw new TypeError(address + ' uses wrong encoding');\n }\n const data = bech32_1.bech32.fromWords(result.words.slice(1));\n return {\n version,\n prefix: result.prefix,\n data: Buffer.from(data),\n };\n}\nexports.fromBech32 = fromBech32;\nfunction toBase58Check(hash, version) {\n (0, types_1.typeforce)(\n (0, types_1.tuple)(types_1.Hash160bit, types_1.UInt8),\n arguments,\n );\n const payload = Buffer.allocUnsafe(21);\n payload.writeUInt8(version, 0);\n hash.copy(payload, 1);\n return bs58check.encode(payload);\n}\nexports.toBase58Check = toBase58Check;\nfunction toBech32(data, version, prefix) {\n const words = bech32_1.bech32.toWords(data);\n words.unshift(version);\n return version === 0\n ? bech32_1.bech32.encode(prefix, words)\n : bech32_1.bech32m.encode(prefix, words);\n}\nexports.toBech32 = toBech32;\nfunction fromOutputScript(output, network) {\n // TODO: Network\n network = network || networks.bitcoin;\n try {\n return payments.p2pkh({ output, network }).address;\n } catch (e) {}\n try {\n return payments.p2sh({ output, network }).address;\n } catch (e) {}\n try {\n return payments.p2wpkh({ output, network }).address;\n } catch (e) {}\n try {\n return payments.p2wsh({ output, network }).address;\n } catch (e) {}\n try {\n return payments.p2tr({ output, network }).address;\n } catch (e) {}\n try {\n return _toFutureSegwitAddress(output, network);\n } catch (e) {}\n throw new Error(bscript.toASM(output) + ' has no matching Address');\n}\nexports.fromOutputScript = fromOutputScript;\nfunction toOutputScript(address, network) {\n network = network || networks.bitcoin;\n let decodeBase58;\n let decodeBech32;\n try {\n decodeBase58 = fromBase58Check(address);\n } catch (e) {}\n if (decodeBase58) {\n if (decodeBase58.version === network.pubKeyHash)\n return payments.p2pkh({ hash: decodeBase58.hash }).output;\n if (decodeBase58.version === network.scriptHash)\n return payments.p2sh({ hash: decodeBase58.hash }).output;\n } else {\n try {\n decodeBech32 = fromBech32(address);\n } catch (e) {}\n if (decodeBech32) {\n if (decodeBech32.prefix !== network.bech32)\n throw new Error(address + ' has an invalid prefix');\n if (decodeBech32.version === 0) {\n if (decodeBech32.data.length === 20)\n return payments.p2wpkh({ hash: decodeBech32.data }).output;\n if (decodeBech32.data.length === 32)\n return payments.p2wsh({ hash: decodeBech32.data }).output;\n } else if (decodeBech32.version === 1) {\n if (decodeBech32.data.length === 32)\n return payments.p2tr({ pubkey: decodeBech32.data }).output;\n } else if (\n decodeBech32.version >= FUTURE_SEGWIT_MIN_VERSION &&\n decodeBech32.version <= FUTURE_SEGWIT_MAX_VERSION &&\n decodeBech32.data.length >= FUTURE_SEGWIT_MIN_SIZE &&\n decodeBech32.data.length <= FUTURE_SEGWIT_MAX_SIZE\n ) {\n console.warn(FUTURE_SEGWIT_VERSION_WARNING);\n return bscript.compile([\n decodeBech32.version + FUTURE_SEGWIT_VERSION_DIFF,\n decodeBech32.data,\n ]);\n }\n }\n }\n throw new Error(address + ' has no matching Script');\n}\nexports.toOutputScript = toOutputScript;\n","'use strict';\n// Reference https://github.com/bitcoin/bips/blob/master/bip-0066.mediawiki\n// Format: 0x30 [total-length] 0x02 [R-length] [R] 0x02 [S-length] [S]\n// NOTE: SIGHASH byte ignored AND restricted, truncate before use\nObject.defineProperty(exports, '__esModule', { value: true });\nexports.encode = exports.decode = exports.check = void 0;\nfunction check(buffer) {\n if (buffer.length < 8) return false;\n if (buffer.length > 72) return false;\n if (buffer[0] !== 0x30) return false;\n if (buffer[1] !== buffer.length - 2) return false;\n if (buffer[2] !== 0x02) return false;\n const lenR = buffer[3];\n if (lenR === 0) return false;\n if (5 + lenR >= buffer.length) return false;\n if (buffer[4 + lenR] !== 0x02) return false;\n const lenS = buffer[5 + lenR];\n if (lenS === 0) return false;\n if (6 + lenR + lenS !== buffer.length) return false;\n if (buffer[4] & 0x80) return false;\n if (lenR > 1 && buffer[4] === 0x00 && !(buffer[5] & 0x80)) return false;\n if (buffer[lenR + 6] & 0x80) return false;\n if (lenS > 1 && buffer[lenR + 6] === 0x00 && !(buffer[lenR + 7] & 0x80))\n return false;\n return true;\n}\nexports.check = check;\nfunction decode(buffer) {\n if (buffer.length < 8) throw new Error('DER sequence length is too short');\n if (buffer.length > 72) throw new Error('DER sequence length is too long');\n if (buffer[0] !== 0x30) throw new Error('Expected DER sequence');\n if (buffer[1] !== buffer.length - 2)\n throw new Error('DER sequence length is invalid');\n if (buffer[2] !== 0x02) throw new Error('Expected DER integer');\n const lenR = buffer[3];\n if (lenR === 0) throw new Error('R length is zero');\n if (5 + lenR >= buffer.length) throw new Error('R length is too long');\n if (buffer[4 + lenR] !== 0x02) throw new Error('Expected DER integer (2)');\n const lenS = buffer[5 + lenR];\n if (lenS === 0) throw new Error('S length is zero');\n if (6 + lenR + lenS !== buffer.length) throw new Error('S length is invalid');\n if (buffer[4] & 0x80) throw new Error('R value is negative');\n if (lenR > 1 && buffer[4] === 0x00 && !(buffer[5] & 0x80))\n throw new Error('R value excessively padded');\n if (buffer[lenR + 6] & 0x80) throw new Error('S value is negative');\n if (lenS > 1 && buffer[lenR + 6] === 0x00 && !(buffer[lenR + 7] & 0x80))\n throw new Error('S value excessively padded');\n // non-BIP66 - extract R, S values\n return {\n r: buffer.slice(4, 4 + lenR),\n s: buffer.slice(6 + lenR),\n };\n}\nexports.decode = decode;\n/*\n * Expects r and s to be positive DER integers.\n *\n * The DER format uses the most significant bit as a sign bit (& 0x80).\n * If the significant bit is set AND the integer is positive, a 0x00 is prepended.\n *\n * Examples:\n *\n * 0 => 0x00\n * 1 => 0x01\n * -1 => 0xff\n * 127 => 0x7f\n * -127 => 0x81\n * 128 => 0x0080\n * -128 => 0x80\n * 255 => 0x00ff\n * -255 => 0xff01\n * 16300 => 0x3fac\n * -16300 => 0xc054\n * 62300 => 0x00f35c\n * -62300 => 0xff0ca4\n */\nfunction encode(r, s) {\n const lenR = r.length;\n const lenS = s.length;\n if (lenR === 0) throw new Error('R length is zero');\n if (lenS === 0) throw new Error('S length is zero');\n if (lenR > 33) throw new Error('R length is too long');\n if (lenS > 33) throw new Error('S length is too long');\n if (r[0] & 0x80) throw new Error('R value is negative');\n if (s[0] & 0x80) throw new Error('S value is negative');\n if (lenR > 1 && r[0] === 0x00 && !(r[1] & 0x80))\n throw new Error('R value excessively padded');\n if (lenS > 1 && s[0] === 0x00 && !(s[1] & 0x80))\n throw new Error('S value excessively padded');\n const signature = Buffer.allocUnsafe(6 + lenR + lenS);\n // 0x30 [total-length] 0x02 [R-length] [R] 0x02 [S-length] [S]\n signature[0] = 0x30;\n signature[1] = signature.length - 2;\n signature[2] = 0x02;\n signature[3] = r.length;\n r.copy(signature, 4);\n signature[4 + lenR] = 0x02;\n signature[5 + lenR] = s.length;\n s.copy(signature, 6 + lenR);\n return signature;\n}\nexports.encode = encode;\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nexports.Block = void 0;\nconst bufferutils_1 = require('./bufferutils');\nconst bcrypto = require('./crypto');\nconst merkle_1 = require('./merkle');\nconst transaction_1 = require('./transaction');\nconst types = require('./types');\nconst { typeforce } = types;\nconst errorMerkleNoTxes = new TypeError(\n 'Cannot compute merkle root for zero transactions',\n);\nconst errorWitnessNotSegwit = new TypeError(\n 'Cannot compute witness commit for non-segwit block',\n);\nclass Block {\n constructor() {\n this.version = 1;\n this.prevHash = undefined;\n this.merkleRoot = undefined;\n this.timestamp = 0;\n this.witnessCommit = undefined;\n this.bits = 0;\n this.nonce = 0;\n this.transactions = undefined;\n }\n static fromBuffer(buffer) {\n if (buffer.length < 80) throw new Error('Buffer too small (< 80 bytes)');\n const bufferReader = new bufferutils_1.BufferReader(buffer);\n const block = new Block();\n block.version = bufferReader.readInt32();\n block.prevHash = bufferReader.readSlice(32);\n block.merkleRoot = bufferReader.readSlice(32);\n block.timestamp = bufferReader.readUInt32();\n block.bits = bufferReader.readUInt32();\n block.nonce = bufferReader.readUInt32();\n if (buffer.length === 80) return block;\n const readTransaction = () => {\n const tx = transaction_1.Transaction.fromBuffer(\n bufferReader.buffer.slice(bufferReader.offset),\n true,\n );\n bufferReader.offset += tx.byteLength();\n return tx;\n };\n const nTransactions = bufferReader.readVarInt();\n block.transactions = [];\n for (let i = 0; i < nTransactions; ++i) {\n const tx = readTransaction();\n block.transactions.push(tx);\n }\n const witnessCommit = block.getWitnessCommit();\n // This Block contains a witness commit\n if (witnessCommit) block.witnessCommit = witnessCommit;\n return block;\n }\n static fromHex(hex) {\n return Block.fromBuffer(Buffer.from(hex, 'hex'));\n }\n static calculateTarget(bits) {\n const exponent = ((bits & 0xff000000) >> 24) - 3;\n const mantissa = bits & 0x007fffff;\n const target = Buffer.alloc(32, 0);\n target.writeUIntBE(mantissa, 29 - exponent, 3);\n return target;\n }\n static calculateMerkleRoot(transactions, forWitness) {\n typeforce([{ getHash: types.Function }], transactions);\n if (transactions.length === 0) throw errorMerkleNoTxes;\n if (forWitness && !txesHaveWitnessCommit(transactions))\n throw errorWitnessNotSegwit;\n const hashes = transactions.map(transaction =>\n transaction.getHash(forWitness),\n );\n const rootHash = (0, merkle_1.fastMerkleRoot)(hashes, bcrypto.hash256);\n return forWitness\n ? bcrypto.hash256(\n Buffer.concat([rootHash, transactions[0].ins[0].witness[0]]),\n )\n : rootHash;\n }\n getWitnessCommit() {\n if (!txesHaveWitnessCommit(this.transactions)) return null;\n // The merkle root for the witness data is in an OP_RETURN output.\n // There is no rule for the index of the output, so use filter to find it.\n // The root is prepended with 0xaa21a9ed so check for 0x6a24aa21a9ed\n // If multiple commits are found, the output with highest index is assumed.\n const witnessCommits = this.transactions[0].outs\n .filter(out =>\n out.script.slice(0, 6).equals(Buffer.from('6a24aa21a9ed', 'hex')),\n )\n .map(out => out.script.slice(6, 38));\n if (witnessCommits.length === 0) return null;\n // Use the commit with the highest output (should only be one though)\n const result = witnessCommits[witnessCommits.length - 1];\n if (!(result instanceof Buffer && result.length === 32)) return null;\n return result;\n }\n hasWitnessCommit() {\n if (\n this.witnessCommit instanceof Buffer &&\n this.witnessCommit.length === 32\n )\n return true;\n if (this.getWitnessCommit() !== null) return true;\n return false;\n }\n hasWitness() {\n return anyTxHasWitness(this.transactions);\n }\n weight() {\n const base = this.byteLength(false, false);\n const total = this.byteLength(false, true);\n return base * 3 + total;\n }\n byteLength(headersOnly, allowWitness = true) {\n if (headersOnly || !this.transactions) return 80;\n return (\n 80 +\n bufferutils_1.varuint.encodingLength(this.transactions.length) +\n this.transactions.reduce((a, x) => a + x.byteLength(allowWitness), 0)\n );\n }\n getHash() {\n return bcrypto.hash256(this.toBuffer(true));\n }\n getId() {\n return (0, bufferutils_1.reverseBuffer)(this.getHash()).toString('hex');\n }\n getUTCDate() {\n const date = new Date(0); // epoch\n date.setUTCSeconds(this.timestamp);\n return date;\n }\n // TODO: buffer, offset compatibility\n toBuffer(headersOnly) {\n const buffer = Buffer.allocUnsafe(this.byteLength(headersOnly));\n const bufferWriter = new bufferutils_1.BufferWriter(buffer);\n bufferWriter.writeInt32(this.version);\n bufferWriter.writeSlice(this.prevHash);\n bufferWriter.writeSlice(this.merkleRoot);\n bufferWriter.writeUInt32(this.timestamp);\n bufferWriter.writeUInt32(this.bits);\n bufferWriter.writeUInt32(this.nonce);\n if (headersOnly || !this.transactions) return buffer;\n bufferutils_1.varuint.encode(\n this.transactions.length,\n buffer,\n bufferWriter.offset,\n );\n bufferWriter.offset += bufferutils_1.varuint.encode.bytes;\n this.transactions.forEach(tx => {\n const txSize = tx.byteLength(); // TODO: extract from toBuffer?\n tx.toBuffer(buffer, bufferWriter.offset);\n bufferWriter.offset += txSize;\n });\n return buffer;\n }\n toHex(headersOnly) {\n return this.toBuffer(headersOnly).toString('hex');\n }\n checkTxRoots() {\n // If the Block has segwit transactions but no witness commit,\n // there's no way it can be valid, so fail the check.\n const hasWitnessCommit = this.hasWitnessCommit();\n if (!hasWitnessCommit && this.hasWitness()) return false;\n return (\n this.__checkMerkleRoot() &&\n (hasWitnessCommit ? this.__checkWitnessCommit() : true)\n );\n }\n checkProofOfWork() {\n const hash = (0, bufferutils_1.reverseBuffer)(this.getHash());\n const target = Block.calculateTarget(this.bits);\n return hash.compare(target) <= 0;\n }\n __checkMerkleRoot() {\n if (!this.transactions) throw errorMerkleNoTxes;\n const actualMerkleRoot = Block.calculateMerkleRoot(this.transactions);\n return this.merkleRoot.compare(actualMerkleRoot) === 0;\n }\n __checkWitnessCommit() {\n if (!this.transactions) throw errorMerkleNoTxes;\n if (!this.hasWitnessCommit()) throw errorWitnessNotSegwit;\n const actualWitnessCommit = Block.calculateMerkleRoot(\n this.transactions,\n true,\n );\n return this.witnessCommit.compare(actualWitnessCommit) === 0;\n }\n}\nexports.Block = Block;\nfunction txesHaveWitnessCommit(transactions) {\n return (\n transactions instanceof Array &&\n transactions[0] &&\n transactions[0].ins &&\n transactions[0].ins instanceof Array &&\n transactions[0].ins[0] &&\n transactions[0].ins[0].witness &&\n transactions[0].ins[0].witness instanceof Array &&\n transactions[0].ins[0].witness.length > 0\n );\n}\nfunction anyTxHasWitness(transactions) {\n return (\n transactions instanceof Array &&\n transactions.some(\n tx =>\n typeof tx === 'object' &&\n tx.ins instanceof Array &&\n tx.ins.some(\n input =>\n typeof input === 'object' &&\n input.witness instanceof Array &&\n input.witness.length > 0,\n ),\n )\n );\n}\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nexports.BufferReader =\n exports.BufferWriter =\n exports.cloneBuffer =\n exports.reverseBuffer =\n exports.writeUInt64LE =\n exports.readUInt64LE =\n exports.varuint =\n void 0;\nconst types = require('./types');\nconst { typeforce } = types;\nconst varuint = require('varuint-bitcoin');\nexports.varuint = varuint;\n// https://github.com/feross/buffer/blob/master/index.js#L1127\nfunction verifuint(value, max) {\n if (typeof value !== 'number')\n throw new Error('cannot write a non-number as a number');\n if (value < 0)\n throw new Error('specified a negative value for writing an unsigned value');\n if (value > max) throw new Error('RangeError: value out of range');\n if (Math.floor(value) !== value)\n throw new Error('value has a fractional component');\n}\nfunction readUInt64LE(buffer, offset) {\n const a = buffer.readUInt32LE(offset);\n let b = buffer.readUInt32LE(offset + 4);\n b *= 0x100000000;\n verifuint(b + a, 0x001fffffffffffff);\n return b + a;\n}\nexports.readUInt64LE = readUInt64LE;\nfunction writeUInt64LE(buffer, value, offset) {\n verifuint(value, 0x001fffffffffffff);\n buffer.writeInt32LE(value & -1, offset);\n buffer.writeUInt32LE(Math.floor(value / 0x100000000), offset + 4);\n return offset + 8;\n}\nexports.writeUInt64LE = writeUInt64LE;\nfunction reverseBuffer(buffer) {\n if (buffer.length < 1) return buffer;\n let j = buffer.length - 1;\n let tmp = 0;\n for (let i = 0; i < buffer.length / 2; i++) {\n tmp = buffer[i];\n buffer[i] = buffer[j];\n buffer[j] = tmp;\n j--;\n }\n return buffer;\n}\nexports.reverseBuffer = reverseBuffer;\nfunction cloneBuffer(buffer) {\n const clone = Buffer.allocUnsafe(buffer.length);\n buffer.copy(clone);\n return clone;\n}\nexports.cloneBuffer = cloneBuffer;\n/**\n * Helper class for serialization of bitcoin data types into a pre-allocated buffer.\n */\nclass BufferWriter {\n static withCapacity(size) {\n return new BufferWriter(Buffer.alloc(size));\n }\n constructor(buffer, offset = 0) {\n this.buffer = buffer;\n this.offset = offset;\n typeforce(types.tuple(types.Buffer, types.UInt32), [buffer, offset]);\n }\n writeUInt8(i) {\n this.offset = this.buffer.writeUInt8(i, this.offset);\n }\n writeInt32(i) {\n this.offset = this.buffer.writeInt32LE(i, this.offset);\n }\n writeUInt32(i) {\n this.offset = this.buffer.writeUInt32LE(i, this.offset);\n }\n writeUInt64(i) {\n this.offset = writeUInt64LE(this.buffer, i, this.offset);\n }\n writeVarInt(i) {\n varuint.encode(i, this.buffer, this.offset);\n this.offset += varuint.encode.bytes;\n }\n writeSlice(slice) {\n if (this.buffer.length < this.offset + slice.length) {\n throw new Error('Cannot write slice out of bounds');\n }\n this.offset += slice.copy(this.buffer, this.offset);\n }\n writeVarSlice(slice) {\n this.writeVarInt(slice.length);\n this.writeSlice(slice);\n }\n writeVector(vector) {\n this.writeVarInt(vector.length);\n vector.forEach(buf => this.writeVarSlice(buf));\n }\n end() {\n if (this.buffer.length === this.offset) {\n return this.buffer;\n }\n throw new Error(`buffer size ${this.buffer.length}, offset ${this.offset}`);\n }\n}\nexports.BufferWriter = BufferWriter;\n/**\n * Helper class for reading of bitcoin data types from a buffer.\n */\nclass BufferReader {\n constructor(buffer, offset = 0) {\n this.buffer = buffer;\n this.offset = offset;\n typeforce(types.tuple(types.Buffer, types.UInt32), [buffer, offset]);\n }\n readUInt8() {\n const result = this.buffer.readUInt8(this.offset);\n this.offset++;\n return result;\n }\n readInt32() {\n const result = this.buffer.readInt32LE(this.offset);\n this.offset += 4;\n return result;\n }\n readUInt32() {\n const result = this.buffer.readUInt32LE(this.offset);\n this.offset += 4;\n return result;\n }\n readUInt64() {\n const result = readUInt64LE(this.buffer, this.offset);\n this.offset += 8;\n return result;\n }\n readVarInt() {\n const vi = varuint.decode(this.buffer, this.offset);\n this.offset += varuint.decode.bytes;\n return vi;\n }\n readSlice(n) {\n if (this.buffer.length < this.offset + n) {\n throw new Error('Cannot read slice out of bounds');\n }\n const result = this.buffer.slice(this.offset, this.offset + n);\n this.offset += n;\n return result;\n }\n readVarSlice() {\n return this.readSlice(this.readVarInt());\n }\n readVector() {\n const count = this.readVarInt();\n const vector = [];\n for (let i = 0; i < count; i++) vector.push(this.readVarSlice());\n return vector;\n }\n}\nexports.BufferReader = BufferReader;\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nexports.taggedHash =\n exports.TAGGED_HASH_PREFIXES =\n exports.TAGS =\n exports.hash256 =\n exports.hash160 =\n exports.sha256 =\n exports.sha1 =\n exports.ripemd160 =\n void 0;\nconst ripemd160_1 = require('@noble/hashes/ripemd160');\nconst sha1_1 = require('@noble/hashes/sha1');\nconst sha256_1 = require('@noble/hashes/sha256');\nfunction ripemd160(buffer) {\n return Buffer.from((0, ripemd160_1.ripemd160)(Uint8Array.from(buffer)));\n}\nexports.ripemd160 = ripemd160;\nfunction sha1(buffer) {\n return Buffer.from((0, sha1_1.sha1)(Uint8Array.from(buffer)));\n}\nexports.sha1 = sha1;\nfunction sha256(buffer) {\n return Buffer.from((0, sha256_1.sha256)(Uint8Array.from(buffer)));\n}\nexports.sha256 = sha256;\nfunction hash160(buffer) {\n return Buffer.from(\n (0, ripemd160_1.ripemd160)((0, sha256_1.sha256)(Uint8Array.from(buffer))),\n );\n}\nexports.hash160 = hash160;\nfunction hash256(buffer) {\n return Buffer.from(\n (0, sha256_1.sha256)((0, sha256_1.sha256)(Uint8Array.from(buffer))),\n );\n}\nexports.hash256 = hash256;\nexports.TAGS = [\n 'BIP0340/challenge',\n 'BIP0340/aux',\n 'BIP0340/nonce',\n 'TapLeaf',\n 'TapBranch',\n 'TapSighash',\n 'TapTweak',\n 'KeyAgg list',\n 'KeyAgg coefficient',\n];\n/** An object mapping tags to their tagged hash prefix of [SHA256(tag) | SHA256(tag)] */\nexports.TAGGED_HASH_PREFIXES = {\n 'BIP0340/challenge': Buffer.from([\n 123, 181, 45, 122, 159, 239, 88, 50, 62, 177, 191, 122, 64, 125, 179, 130,\n 210, 243, 242, 216, 27, 177, 34, 79, 73, 254, 81, 143, 109, 72, 211, 124,\n 123, 181, 45, 122, 159, 239, 88, 50, 62, 177, 191, 122, 64, 125, 179, 130,\n 210, 243, 242, 216, 27, 177, 34, 79, 73, 254, 81, 143, 109, 72, 211, 124,\n ]),\n 'BIP0340/aux': Buffer.from([\n 241, 239, 78, 94, 192, 99, 202, 218, 109, 148, 202, 250, 157, 152, 126, 160,\n 105, 38, 88, 57, 236, 193, 31, 151, 45, 119, 165, 46, 216, 193, 204, 144,\n 241, 239, 78, 94, 192, 99, 202, 218, 109, 148, 202, 250, 157, 152, 126, 160,\n 105, 38, 88, 57, 236, 193, 31, 151, 45, 119, 165, 46, 216, 193, 204, 144,\n ]),\n 'BIP0340/nonce': Buffer.from([\n 7, 73, 119, 52, 167, 155, 203, 53, 91, 155, 140, 125, 3, 79, 18, 28, 244,\n 52, 215, 62, 247, 45, 218, 25, 135, 0, 97, 251, 82, 191, 235, 47, 7, 73,\n 119, 52, 167, 155, 203, 53, 91, 155, 140, 125, 3, 79, 18, 28, 244, 52, 215,\n 62, 247, 45, 218, 25, 135, 0, 97, 251, 82, 191, 235, 47,\n ]),\n TapLeaf: Buffer.from([\n 174, 234, 143, 220, 66, 8, 152, 49, 5, 115, 75, 88, 8, 29, 30, 38, 56, 211,\n 95, 28, 181, 64, 8, 212, 211, 87, 202, 3, 190, 120, 233, 238, 174, 234, 143,\n 220, 66, 8, 152, 49, 5, 115, 75, 88, 8, 29, 30, 38, 56, 211, 95, 28, 181,\n 64, 8, 212, 211, 87, 202, 3, 190, 120, 233, 238,\n ]),\n TapBranch: Buffer.from([\n 25, 65, 161, 242, 229, 110, 185, 95, 162, 169, 241, 148, 190, 92, 1, 247,\n 33, 111, 51, 237, 130, 176, 145, 70, 52, 144, 208, 91, 245, 22, 160, 21, 25,\n 65, 161, 242, 229, 110, 185, 95, 162, 169, 241, 148, 190, 92, 1, 247, 33,\n 111, 51, 237, 130, 176, 145, 70, 52, 144, 208, 91, 245, 22, 160, 21,\n ]),\n TapSighash: Buffer.from([\n 244, 10, 72, 223, 75, 42, 112, 200, 180, 146, 75, 242, 101, 70, 97, 237, 61,\n 149, 253, 102, 163, 19, 235, 135, 35, 117, 151, 198, 40, 228, 160, 49, 244,\n 10, 72, 223, 75, 42, 112, 200, 180, 146, 75, 242, 101, 70, 97, 237, 61, 149,\n 253, 102, 163, 19, 235, 135, 35, 117, 151, 198, 40, 228, 160, 49,\n ]),\n TapTweak: Buffer.from([\n 232, 15, 225, 99, 156, 156, 160, 80, 227, 175, 27, 57, 193, 67, 198, 62, 66,\n 156, 188, 235, 21, 217, 64, 251, 181, 197, 161, 244, 175, 87, 197, 233, 232,\n 15, 225, 99, 156, 156, 160, 80, 227, 175, 27, 57, 193, 67, 198, 62, 66, 156,\n 188, 235, 21, 217, 64, 251, 181, 197, 161, 244, 175, 87, 197, 233,\n ]),\n 'KeyAgg list': Buffer.from([\n 72, 28, 151, 28, 60, 11, 70, 215, 240, 178, 117, 174, 89, 141, 78, 44, 126,\n 215, 49, 156, 89, 74, 92, 110, 199, 158, 160, 212, 153, 2, 148, 240, 72, 28,\n 151, 28, 60, 11, 70, 215, 240, 178, 117, 174, 89, 141, 78, 44, 126, 215, 49,\n 156, 89, 74, 92, 110, 199, 158, 160, 212, 153, 2, 148, 240,\n ]),\n 'KeyAgg coefficient': Buffer.from([\n 191, 201, 4, 3, 77, 28, 136, 232, 200, 14, 34, 229, 61, 36, 86, 109, 100,\n 130, 78, 214, 66, 114, 129, 192, 145, 0, 249, 77, 205, 82, 201, 129, 191,\n 201, 4, 3, 77, 28, 136, 232, 200, 14, 34, 229, 61, 36, 86, 109, 100, 130,\n 78, 214, 66, 114, 129, 192, 145, 0, 249, 77, 205, 82, 201, 129,\n ]),\n};\nfunction taggedHash(prefix, data) {\n return sha256(Buffer.concat([exports.TAGGED_HASH_PREFIXES[prefix], data]));\n}\nexports.taggedHash = taggedHash;\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nexports.getEccLib = exports.initEccLib = void 0;\nconst _ECCLIB_CACHE = {};\nfunction initEccLib(eccLib) {\n if (!eccLib) {\n // allow clearing the library\n _ECCLIB_CACHE.eccLib = eccLib;\n } else if (eccLib !== _ECCLIB_CACHE.eccLib) {\n // new instance, verify it\n verifyEcc(eccLib);\n _ECCLIB_CACHE.eccLib = eccLib;\n }\n}\nexports.initEccLib = initEccLib;\nfunction getEccLib() {\n if (!_ECCLIB_CACHE.eccLib)\n throw new Error(\n 'No ECC Library provided. You must call initEccLib() with a valid TinySecp256k1Interface instance',\n );\n return _ECCLIB_CACHE.eccLib;\n}\nexports.getEccLib = getEccLib;\nconst h = hex => Buffer.from(hex, 'hex');\nfunction verifyEcc(ecc) {\n assert(typeof ecc.isXOnlyPoint === 'function');\n assert(\n ecc.isXOnlyPoint(\n h('79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798'),\n ),\n );\n assert(\n ecc.isXOnlyPoint(\n h('fffffffffffffffffffffffffffffffffffffffffffffffffffffffeeffffc2e'),\n ),\n );\n assert(\n ecc.isXOnlyPoint(\n h('f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9'),\n ),\n );\n assert(\n ecc.isXOnlyPoint(\n h('0000000000000000000000000000000000000000000000000000000000000001'),\n ),\n );\n assert(\n !ecc.isXOnlyPoint(\n h('0000000000000000000000000000000000000000000000000000000000000000'),\n ),\n );\n assert(\n !ecc.isXOnlyPoint(\n h('fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f'),\n ),\n );\n assert(typeof ecc.xOnlyPointAddTweak === 'function');\n tweakAddVectors.forEach(t => {\n const r = ecc.xOnlyPointAddTweak(h(t.pubkey), h(t.tweak));\n if (t.result === null) {\n assert(r === null);\n } else {\n assert(r !== null);\n assert(r.parity === t.parity);\n assert(Buffer.from(r.xOnlyPubkey).equals(h(t.result)));\n }\n });\n}\nfunction assert(bool) {\n if (!bool) throw new Error('ecc library invalid');\n}\nconst tweakAddVectors = [\n {\n pubkey: '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n tweak: 'fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364140',\n parity: -1,\n result: null,\n },\n {\n pubkey: '1617d38ed8d8657da4d4761e8057bc396ea9e4b9d29776d4be096016dbd2509b',\n tweak: 'a8397a935f0dfceba6ba9618f6451ef4d80637abf4e6af2669fbc9de6a8fd2ac',\n parity: 1,\n result: 'e478f99dab91052ab39a33ea35fd5e6e4933f4d28023cd597c9a1f6760346adf',\n },\n {\n pubkey: '2c0b7cf95324a07d05398b240174dc0c2be444d96b159aa6c7f7b1e668680991',\n tweak: '823c3cd2142744b075a87eade7e1b8678ba308d566226a0056ca2b7a76f86b47',\n parity: 0,\n result: '9534f8dc8c6deda2dc007655981c78b49c5d96c778fbf363462a11ec9dfd948c',\n },\n];\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nexports.initEccLib =\n exports.Transaction =\n exports.opcodes =\n exports.Psbt =\n exports.Block =\n exports.script =\n exports.payments =\n exports.networks =\n exports.crypto =\n exports.address =\n void 0;\nconst address = require('./address');\nexports.address = address;\nconst crypto = require('./crypto');\nexports.crypto = crypto;\nconst networks = require('./networks');\nexports.networks = networks;\nconst payments = require('./payments');\nexports.payments = payments;\nconst script = require('./script');\nexports.script = script;\nvar block_1 = require('./block');\nObject.defineProperty(exports, 'Block', {\n enumerable: true,\n get: function () {\n return block_1.Block;\n },\n});\nvar psbt_1 = require('./psbt');\nObject.defineProperty(exports, 'Psbt', {\n enumerable: true,\n get: function () {\n return psbt_1.Psbt;\n },\n});\nvar ops_1 = require('./ops');\nObject.defineProperty(exports, 'opcodes', {\n enumerable: true,\n get: function () {\n return ops_1.OPS;\n },\n});\nvar transaction_1 = require('./transaction');\nObject.defineProperty(exports, 'Transaction', {\n enumerable: true,\n get: function () {\n return transaction_1.Transaction;\n },\n});\nvar ecc_lib_1 = require('./ecc_lib');\nObject.defineProperty(exports, 'initEccLib', {\n enumerable: true,\n get: function () {\n return ecc_lib_1.initEccLib;\n },\n});\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nexports.fastMerkleRoot = void 0;\nfunction fastMerkleRoot(values, digestFn) {\n if (!Array.isArray(values)) throw TypeError('Expected values Array');\n if (typeof digestFn !== 'function')\n throw TypeError('Expected digest Function');\n let length = values.length;\n const results = values.concat();\n while (length > 1) {\n let j = 0;\n for (let i = 0; i < length; i += 2, ++j) {\n const left = results[i];\n const right = i + 1 === length ? left : results[i + 1];\n const data = Buffer.concat([left, right]);\n results[j] = digestFn(data);\n }\n length = j;\n }\n return results[0];\n}\nexports.fastMerkleRoot = fastMerkleRoot;\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nexports.testnet = exports.regtest = exports.bitcoin = void 0;\nexports.bitcoin = {\n messagePrefix: '\\x18Bitcoin Signed Message:\\n',\n bech32: 'bc',\n bip32: {\n public: 0x0488b21e,\n private: 0x0488ade4,\n },\n pubKeyHash: 0x00,\n scriptHash: 0x05,\n wif: 0x80,\n};\nexports.regtest = {\n messagePrefix: '\\x18Bitcoin Signed Message:\\n',\n bech32: 'bcrt',\n bip32: {\n public: 0x043587cf,\n private: 0x04358394,\n },\n pubKeyHash: 0x6f,\n scriptHash: 0xc4,\n wif: 0xef,\n};\nexports.testnet = {\n messagePrefix: '\\x18Bitcoin Signed Message:\\n',\n bech32: 'tb',\n bip32: {\n public: 0x043587cf,\n private: 0x04358394,\n },\n pubKeyHash: 0x6f,\n scriptHash: 0xc4,\n wif: 0xef,\n};\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nexports.REVERSE_OPS = exports.OPS = void 0;\nconst OPS = {\n OP_FALSE: 0,\n OP_0: 0,\n OP_PUSHDATA1: 76,\n OP_PUSHDATA2: 77,\n OP_PUSHDATA4: 78,\n OP_1NEGATE: 79,\n OP_RESERVED: 80,\n OP_TRUE: 81,\n OP_1: 81,\n OP_2: 82,\n OP_3: 83,\n OP_4: 84,\n OP_5: 85,\n OP_6: 86,\n OP_7: 87,\n OP_8: 88,\n OP_9: 89,\n OP_10: 90,\n OP_11: 91,\n OP_12: 92,\n OP_13: 93,\n OP_14: 94,\n OP_15: 95,\n OP_16: 96,\n OP_NOP: 97,\n OP_VER: 98,\n OP_IF: 99,\n OP_NOTIF: 100,\n OP_VERIF: 101,\n OP_VERNOTIF: 102,\n OP_ELSE: 103,\n OP_ENDIF: 104,\n OP_VERIFY: 105,\n OP_RETURN: 106,\n OP_TOALTSTACK: 107,\n OP_FROMALTSTACK: 108,\n OP_2DROP: 109,\n OP_2DUP: 110,\n OP_3DUP: 111,\n OP_2OVER: 112,\n OP_2ROT: 113,\n OP_2SWAP: 114,\n OP_IFDUP: 115,\n OP_DEPTH: 116,\n OP_DROP: 117,\n OP_DUP: 118,\n OP_NIP: 119,\n OP_OVER: 120,\n OP_PICK: 121,\n OP_ROLL: 122,\n OP_ROT: 123,\n OP_SWAP: 124,\n OP_TUCK: 125,\n OP_CAT: 126,\n OP_SUBSTR: 127,\n OP_LEFT: 128,\n OP_RIGHT: 129,\n OP_SIZE: 130,\n OP_INVERT: 131,\n OP_AND: 132,\n OP_OR: 133,\n OP_XOR: 134,\n OP_EQUAL: 135,\n OP_EQUALVERIFY: 136,\n OP_RESERVED1: 137,\n OP_RESERVED2: 138,\n OP_1ADD: 139,\n OP_1SUB: 140,\n OP_2MUL: 141,\n OP_2DIV: 142,\n OP_NEGATE: 143,\n OP_ABS: 144,\n OP_NOT: 145,\n OP_0NOTEQUAL: 146,\n OP_ADD: 147,\n OP_SUB: 148,\n OP_MUL: 149,\n OP_DIV: 150,\n OP_MOD: 151,\n OP_LSHIFT: 152,\n OP_RSHIFT: 153,\n OP_BOOLAND: 154,\n OP_BOOLOR: 155,\n OP_NUMEQUAL: 156,\n OP_NUMEQUALVERIFY: 157,\n OP_NUMNOTEQUAL: 158,\n OP_LESSTHAN: 159,\n OP_GREATERTHAN: 160,\n OP_LESSTHANOREQUAL: 161,\n OP_GREATERTHANOREQUAL: 162,\n OP_MIN: 163,\n OP_MAX: 164,\n OP_WITHIN: 165,\n OP_RIPEMD160: 166,\n OP_SHA1: 167,\n OP_SHA256: 168,\n OP_HASH160: 169,\n OP_HASH256: 170,\n OP_CODESEPARATOR: 171,\n OP_CHECKSIG: 172,\n OP_CHECKSIGVERIFY: 173,\n OP_CHECKMULTISIG: 174,\n OP_CHECKMULTISIGVERIFY: 175,\n OP_NOP1: 176,\n OP_NOP2: 177,\n OP_CHECKLOCKTIMEVERIFY: 177,\n OP_NOP3: 178,\n OP_CHECKSEQUENCEVERIFY: 178,\n OP_NOP4: 179,\n OP_NOP5: 180,\n OP_NOP6: 181,\n OP_NOP7: 182,\n OP_NOP8: 183,\n OP_NOP9: 184,\n OP_NOP10: 185,\n OP_CHECKSIGADD: 186,\n OP_PUBKEYHASH: 253,\n OP_PUBKEY: 254,\n OP_INVALIDOPCODE: 255,\n};\nexports.OPS = OPS;\nconst REVERSE_OPS = {};\nexports.REVERSE_OPS = REVERSE_OPS;\nfor (const op of Object.keys(OPS)) {\n const code = OPS[op];\n REVERSE_OPS[code] = op;\n}\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nexports.tweakKey =\n exports.tapTweakHash =\n exports.tapleafHash =\n exports.findScriptPath =\n exports.toHashTree =\n exports.rootHashFromPath =\n exports.MAX_TAPTREE_DEPTH =\n exports.LEAF_VERSION_TAPSCRIPT =\n void 0;\nconst buffer_1 = require('buffer');\nconst ecc_lib_1 = require('../ecc_lib');\nconst bcrypto = require('../crypto');\nconst bufferutils_1 = require('../bufferutils');\nconst types_1 = require('../types');\nexports.LEAF_VERSION_TAPSCRIPT = 0xc0;\nexports.MAX_TAPTREE_DEPTH = 128;\nconst isHashBranch = ht => 'left' in ht && 'right' in ht;\nfunction rootHashFromPath(controlBlock, leafHash) {\n if (controlBlock.length < 33)\n throw new TypeError(\n `The control-block length is too small. Got ${controlBlock.length}, expected min 33.`,\n );\n const m = (controlBlock.length - 33) / 32;\n let kj = leafHash;\n for (let j = 0; j < m; j++) {\n const ej = controlBlock.slice(33 + 32 * j, 65 + 32 * j);\n if (kj.compare(ej) < 0) {\n kj = tapBranchHash(kj, ej);\n } else {\n kj = tapBranchHash(ej, kj);\n }\n }\n return kj;\n}\nexports.rootHashFromPath = rootHashFromPath;\n/**\n * Build a hash tree of merkle nodes from the scripts binary tree.\n * @param scriptTree - the tree of scripts to pairwise hash.\n */\nfunction toHashTree(scriptTree) {\n if ((0, types_1.isTapleaf)(scriptTree))\n return { hash: tapleafHash(scriptTree) };\n const hashes = [toHashTree(scriptTree[0]), toHashTree(scriptTree[1])];\n hashes.sort((a, b) => a.hash.compare(b.hash));\n const [left, right] = hashes;\n return {\n hash: tapBranchHash(left.hash, right.hash),\n left,\n right,\n };\n}\nexports.toHashTree = toHashTree;\n/**\n * Given a HashTree, finds the path from a particular hash to the root.\n * @param node - the root of the tree\n * @param hash - the hash to search for\n * @returns - array of sibling hashes, from leaf (inclusive) to root\n * (exclusive) needed to prove inclusion of the specified hash. undefined if no\n * path is found\n */\nfunction findScriptPath(node, hash) {\n if (isHashBranch(node)) {\n const leftPath = findScriptPath(node.left, hash);\n if (leftPath !== undefined) return [...leftPath, node.right.hash];\n const rightPath = findScriptPath(node.right, hash);\n if (rightPath !== undefined) return [...rightPath, node.left.hash];\n } else if (node.hash.equals(hash)) {\n return [];\n }\n return undefined;\n}\nexports.findScriptPath = findScriptPath;\nfunction tapleafHash(leaf) {\n const version = leaf.version || exports.LEAF_VERSION_TAPSCRIPT;\n return bcrypto.taggedHash(\n 'TapLeaf',\n buffer_1.Buffer.concat([\n buffer_1.Buffer.from([version]),\n serializeScript(leaf.output),\n ]),\n );\n}\nexports.tapleafHash = tapleafHash;\nfunction tapTweakHash(pubKey, h) {\n return bcrypto.taggedHash(\n 'TapTweak',\n buffer_1.Buffer.concat(h ? [pubKey, h] : [pubKey]),\n );\n}\nexports.tapTweakHash = tapTweakHash;\nfunction tweakKey(pubKey, h) {\n if (!buffer_1.Buffer.isBuffer(pubKey)) return null;\n if (pubKey.length !== 32) return null;\n if (h && h.length !== 32) return null;\n const tweakHash = tapTweakHash(pubKey, h);\n const res = (0, ecc_lib_1.getEccLib)().xOnlyPointAddTweak(pubKey, tweakHash);\n if (!res || res.xOnlyPubkey === null) return null;\n return {\n parity: res.parity,\n x: buffer_1.Buffer.from(res.xOnlyPubkey),\n };\n}\nexports.tweakKey = tweakKey;\nfunction tapBranchHash(a, b) {\n return bcrypto.taggedHash('TapBranch', buffer_1.Buffer.concat([a, b]));\n}\nfunction serializeScript(s) {\n const varintLen = bufferutils_1.varuint.encodingLength(s.length);\n const buffer = buffer_1.Buffer.allocUnsafe(varintLen); // better\n bufferutils_1.varuint.encode(s.length, buffer);\n return buffer_1.Buffer.concat([buffer, s]);\n}\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nexports.p2data = void 0;\nconst networks_1 = require('../networks');\nconst bscript = require('../script');\nconst types_1 = require('../types');\nconst lazy = require('./lazy');\nconst OPS = bscript.OPS;\nfunction stacksEqual(a, b) {\n if (a.length !== b.length) return false;\n return a.every((x, i) => {\n return x.equals(b[i]);\n });\n}\n// output: OP_RETURN ...\nfunction p2data(a, opts) {\n if (!a.data && !a.output) throw new TypeError('Not enough data');\n opts = Object.assign({ validate: true }, opts || {});\n (0, types_1.typeforce)(\n {\n network: types_1.typeforce.maybe(types_1.typeforce.Object),\n output: types_1.typeforce.maybe(types_1.typeforce.Buffer),\n data: types_1.typeforce.maybe(\n types_1.typeforce.arrayOf(types_1.typeforce.Buffer),\n ),\n },\n a,\n );\n const network = a.network || networks_1.bitcoin;\n const o = { name: 'embed', network };\n lazy.prop(o, 'output', () => {\n if (!a.data) return;\n return bscript.compile([OPS.OP_RETURN].concat(a.data));\n });\n lazy.prop(o, 'data', () => {\n if (!a.output) return;\n return bscript.decompile(a.output).slice(1);\n });\n // extended validation\n if (opts.validate) {\n if (a.output) {\n const chunks = bscript.decompile(a.output);\n if (chunks[0] !== OPS.OP_RETURN) throw new TypeError('Output is invalid');\n if (!chunks.slice(1).every(types_1.typeforce.Buffer))\n throw new TypeError('Output is invalid');\n if (a.data && !stacksEqual(a.data, o.data))\n throw new TypeError('Data mismatch');\n }\n }\n return Object.assign(o, a);\n}\nexports.p2data = p2data;\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nexports.p2tr =\n exports.p2wsh =\n exports.p2wpkh =\n exports.p2sh =\n exports.p2pkh =\n exports.p2pk =\n exports.p2ms =\n exports.embed =\n void 0;\nconst embed_1 = require('./embed');\nObject.defineProperty(exports, 'embed', {\n enumerable: true,\n get: function () {\n return embed_1.p2data;\n },\n});\nconst p2ms_1 = require('./p2ms');\nObject.defineProperty(exports, 'p2ms', {\n enumerable: true,\n get: function () {\n return p2ms_1.p2ms;\n },\n});\nconst p2pk_1 = require('./p2pk');\nObject.defineProperty(exports, 'p2pk', {\n enumerable: true,\n get: function () {\n return p2pk_1.p2pk;\n },\n});\nconst p2pkh_1 = require('./p2pkh');\nObject.defineProperty(exports, 'p2pkh', {\n enumerable: true,\n get: function () {\n return p2pkh_1.p2pkh;\n },\n});\nconst p2sh_1 = require('./p2sh');\nObject.defineProperty(exports, 'p2sh', {\n enumerable: true,\n get: function () {\n return p2sh_1.p2sh;\n },\n});\nconst p2wpkh_1 = require('./p2wpkh');\nObject.defineProperty(exports, 'p2wpkh', {\n enumerable: true,\n get: function () {\n return p2wpkh_1.p2wpkh;\n },\n});\nconst p2wsh_1 = require('./p2wsh');\nObject.defineProperty(exports, 'p2wsh', {\n enumerable: true,\n get: function () {\n return p2wsh_1.p2wsh;\n },\n});\nconst p2tr_1 = require('./p2tr');\nObject.defineProperty(exports, 'p2tr', {\n enumerable: true,\n get: function () {\n return p2tr_1.p2tr;\n },\n});\n// TODO\n// witness commitment\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nexports.value = exports.prop = void 0;\nfunction prop(object, name, f) {\n Object.defineProperty(object, name, {\n configurable: true,\n enumerable: true,\n get() {\n const _value = f.call(this);\n this[name] = _value;\n return _value;\n },\n set(_value) {\n Object.defineProperty(this, name, {\n configurable: true,\n enumerable: true,\n value: _value,\n writable: true,\n });\n },\n });\n}\nexports.prop = prop;\nfunction value(f) {\n let _value;\n return () => {\n if (_value !== undefined) return _value;\n _value = f();\n return _value;\n };\n}\nexports.value = value;\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nexports.p2ms = void 0;\nconst networks_1 = require('../networks');\nconst bscript = require('../script');\nconst types_1 = require('../types');\nconst lazy = require('./lazy');\nconst OPS = bscript.OPS;\nconst OP_INT_BASE = OPS.OP_RESERVED; // OP_1 - 1\nfunction stacksEqual(a, b) {\n if (a.length !== b.length) return false;\n return a.every((x, i) => {\n return x.equals(b[i]);\n });\n}\n// input: OP_0 [signatures ...]\n// output: m [pubKeys ...] n OP_CHECKMULTISIG\nfunction p2ms(a, opts) {\n if (\n !a.input &&\n !a.output &&\n !(a.pubkeys && a.m !== undefined) &&\n !a.signatures\n )\n throw new TypeError('Not enough data');\n opts = Object.assign({ validate: true }, opts || {});\n function isAcceptableSignature(x) {\n return (\n bscript.isCanonicalScriptSignature(x) ||\n (opts.allowIncomplete && x === OPS.OP_0) !== undefined\n );\n }\n (0, types_1.typeforce)(\n {\n network: types_1.typeforce.maybe(types_1.typeforce.Object),\n m: types_1.typeforce.maybe(types_1.typeforce.Number),\n n: types_1.typeforce.maybe(types_1.typeforce.Number),\n output: types_1.typeforce.maybe(types_1.typeforce.Buffer),\n pubkeys: types_1.typeforce.maybe(\n types_1.typeforce.arrayOf(types_1.isPoint),\n ),\n signatures: types_1.typeforce.maybe(\n types_1.typeforce.arrayOf(isAcceptableSignature),\n ),\n input: types_1.typeforce.maybe(types_1.typeforce.Buffer),\n },\n a,\n );\n const network = a.network || networks_1.bitcoin;\n const o = { network };\n let chunks = [];\n let decoded = false;\n function decode(output) {\n if (decoded) return;\n decoded = true;\n chunks = bscript.decompile(output);\n o.m = chunks[0] - OP_INT_BASE;\n o.n = chunks[chunks.length - 2] - OP_INT_BASE;\n o.pubkeys = chunks.slice(1, -2);\n }\n lazy.prop(o, 'output', () => {\n if (!a.m) return;\n if (!o.n) return;\n if (!a.pubkeys) return;\n return bscript.compile(\n [].concat(\n OP_INT_BASE + a.m,\n a.pubkeys,\n OP_INT_BASE + o.n,\n OPS.OP_CHECKMULTISIG,\n ),\n );\n });\n lazy.prop(o, 'm', () => {\n if (!o.output) return;\n decode(o.output);\n return o.m;\n });\n lazy.prop(o, 'n', () => {\n if (!o.pubkeys) return;\n return o.pubkeys.length;\n });\n lazy.prop(o, 'pubkeys', () => {\n if (!a.output) return;\n decode(a.output);\n return o.pubkeys;\n });\n lazy.prop(o, 'signatures', () => {\n if (!a.input) return;\n return bscript.decompile(a.input).slice(1);\n });\n lazy.prop(o, 'input', () => {\n if (!a.signatures) return;\n return bscript.compile([OPS.OP_0].concat(a.signatures));\n });\n lazy.prop(o, 'witness', () => {\n if (!o.input) return;\n return [];\n });\n lazy.prop(o, 'name', () => {\n if (!o.m || !o.n) return;\n return `p2ms(${o.m} of ${o.n})`;\n });\n // extended validation\n if (opts.validate) {\n if (a.output) {\n decode(a.output);\n if (!types_1.typeforce.Number(chunks[0]))\n throw new TypeError('Output is invalid');\n if (!types_1.typeforce.Number(chunks[chunks.length - 2]))\n throw new TypeError('Output is invalid');\n if (chunks[chunks.length - 1] !== OPS.OP_CHECKMULTISIG)\n throw new TypeError('Output is invalid');\n if (o.m <= 0 || o.n > 16 || o.m > o.n || o.n !== chunks.length - 3)\n throw new TypeError('Output is invalid');\n if (!o.pubkeys.every(x => (0, types_1.isPoint)(x)))\n throw new TypeError('Output is invalid');\n if (a.m !== undefined && a.m !== o.m) throw new TypeError('m mismatch');\n if (a.n !== undefined && a.n !== o.n) throw new TypeError('n mismatch');\n if (a.pubkeys && !stacksEqual(a.pubkeys, o.pubkeys))\n throw new TypeError('Pubkeys mismatch');\n }\n if (a.pubkeys) {\n if (a.n !== undefined && a.n !== a.pubkeys.length)\n throw new TypeError('Pubkey count mismatch');\n o.n = a.pubkeys.length;\n if (o.n < o.m) throw new TypeError('Pubkey count cannot be less than m');\n }\n if (a.signatures) {\n if (a.signatures.length < o.m)\n throw new TypeError('Not enough signatures provided');\n if (a.signatures.length > o.m)\n throw new TypeError('Too many signatures provided');\n }\n if (a.input) {\n if (a.input[0] !== OPS.OP_0) throw new TypeError('Input is invalid');\n if (\n o.signatures.length === 0 ||\n !o.signatures.every(isAcceptableSignature)\n )\n throw new TypeError('Input has invalid signature(s)');\n if (a.signatures && !stacksEqual(a.signatures, o.signatures))\n throw new TypeError('Signature mismatch');\n if (a.m !== undefined && a.m !== a.signatures.length)\n throw new TypeError('Signature count mismatch');\n }\n }\n return Object.assign(o, a);\n}\nexports.p2ms = p2ms;\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nexports.p2pk = void 0;\nconst networks_1 = require('../networks');\nconst bscript = require('../script');\nconst types_1 = require('../types');\nconst lazy = require('./lazy');\nconst OPS = bscript.OPS;\n// input: {signature}\n// output: {pubKey} OP_CHECKSIG\nfunction p2pk(a, opts) {\n if (!a.input && !a.output && !a.pubkey && !a.input && !a.signature)\n throw new TypeError('Not enough data');\n opts = Object.assign({ validate: true }, opts || {});\n (0, types_1.typeforce)(\n {\n network: types_1.typeforce.maybe(types_1.typeforce.Object),\n output: types_1.typeforce.maybe(types_1.typeforce.Buffer),\n pubkey: types_1.typeforce.maybe(types_1.isPoint),\n signature: types_1.typeforce.maybe(bscript.isCanonicalScriptSignature),\n input: types_1.typeforce.maybe(types_1.typeforce.Buffer),\n },\n a,\n );\n const _chunks = lazy.value(() => {\n return bscript.decompile(a.input);\n });\n const network = a.network || networks_1.bitcoin;\n const o = { name: 'p2pk', network };\n lazy.prop(o, 'output', () => {\n if (!a.pubkey) return;\n return bscript.compile([a.pubkey, OPS.OP_CHECKSIG]);\n });\n lazy.prop(o, 'pubkey', () => {\n if (!a.output) return;\n return a.output.slice(1, -1);\n });\n lazy.prop(o, 'signature', () => {\n if (!a.input) return;\n return _chunks()[0];\n });\n lazy.prop(o, 'input', () => {\n if (!a.signature) return;\n return bscript.compile([a.signature]);\n });\n lazy.prop(o, 'witness', () => {\n if (!o.input) return;\n return [];\n });\n // extended validation\n if (opts.validate) {\n if (a.output) {\n if (a.output[a.output.length - 1] !== OPS.OP_CHECKSIG)\n throw new TypeError('Output is invalid');\n if (!(0, types_1.isPoint)(o.pubkey))\n throw new TypeError('Output pubkey is invalid');\n if (a.pubkey && !a.pubkey.equals(o.pubkey))\n throw new TypeError('Pubkey mismatch');\n }\n if (a.signature) {\n if (a.input && !a.input.equals(o.input))\n throw new TypeError('Signature mismatch');\n }\n if (a.input) {\n if (_chunks().length !== 1) throw new TypeError('Input is invalid');\n if (!bscript.isCanonicalScriptSignature(o.signature))\n throw new TypeError('Input has invalid signature');\n }\n }\n return Object.assign(o, a);\n}\nexports.p2pk = p2pk;\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nexports.p2pkh = void 0;\nconst bcrypto = require('../crypto');\nconst networks_1 = require('../networks');\nconst bscript = require('../script');\nconst types_1 = require('../types');\nconst lazy = require('./lazy');\nconst bs58check = require('bs58check');\nconst OPS = bscript.OPS;\n// input: {signature} {pubkey}\n// output: OP_DUP OP_HASH160 {hash160(pubkey)} OP_EQUALVERIFY OP_CHECKSIG\nfunction p2pkh(a, opts) {\n if (!a.address && !a.hash && !a.output && !a.pubkey && !a.input)\n throw new TypeError('Not enough data');\n opts = Object.assign({ validate: true }, opts || {});\n (0, types_1.typeforce)(\n {\n network: types_1.typeforce.maybe(types_1.typeforce.Object),\n address: types_1.typeforce.maybe(types_1.typeforce.String),\n hash: types_1.typeforce.maybe(types_1.typeforce.BufferN(20)),\n output: types_1.typeforce.maybe(types_1.typeforce.BufferN(25)),\n pubkey: types_1.typeforce.maybe(types_1.isPoint),\n signature: types_1.typeforce.maybe(bscript.isCanonicalScriptSignature),\n input: types_1.typeforce.maybe(types_1.typeforce.Buffer),\n },\n a,\n );\n const _address = lazy.value(() => {\n const payload = Buffer.from(bs58check.decode(a.address));\n const version = payload.readUInt8(0);\n const hash = payload.slice(1);\n return { version, hash };\n });\n const _chunks = lazy.value(() => {\n return bscript.decompile(a.input);\n });\n const network = a.network || networks_1.bitcoin;\n const o = { name: 'p2pkh', network };\n lazy.prop(o, 'address', () => {\n if (!o.hash) return;\n const payload = Buffer.allocUnsafe(21);\n payload.writeUInt8(network.pubKeyHash, 0);\n o.hash.copy(payload, 1);\n return bs58check.encode(payload);\n });\n lazy.prop(o, 'hash', () => {\n if (a.output) return a.output.slice(3, 23);\n if (a.address) return _address().hash;\n if (a.pubkey || o.pubkey) return bcrypto.hash160(a.pubkey || o.pubkey);\n });\n lazy.prop(o, 'output', () => {\n if (!o.hash) return;\n return bscript.compile([\n OPS.OP_DUP,\n OPS.OP_HASH160,\n o.hash,\n OPS.OP_EQUALVERIFY,\n OPS.OP_CHECKSIG,\n ]);\n });\n lazy.prop(o, 'pubkey', () => {\n if (!a.input) return;\n return _chunks()[1];\n });\n lazy.prop(o, 'signature', () => {\n if (!a.input) return;\n return _chunks()[0];\n });\n lazy.prop(o, 'input', () => {\n if (!a.pubkey) return;\n if (!a.signature) return;\n return bscript.compile([a.signature, a.pubkey]);\n });\n lazy.prop(o, 'witness', () => {\n if (!o.input) return;\n return [];\n });\n // extended validation\n if (opts.validate) {\n let hash = Buffer.from([]);\n if (a.address) {\n if (_address().version !== network.pubKeyHash)\n throw new TypeError('Invalid version or Network mismatch');\n if (_address().hash.length !== 20) throw new TypeError('Invalid address');\n hash = _address().hash;\n }\n if (a.hash) {\n if (hash.length > 0 && !hash.equals(a.hash))\n throw new TypeError('Hash mismatch');\n else hash = a.hash;\n }\n if (a.output) {\n if (\n a.output.length !== 25 ||\n a.output[0] !== OPS.OP_DUP ||\n a.output[1] !== OPS.OP_HASH160 ||\n a.output[2] !== 0x14 ||\n a.output[23] !== OPS.OP_EQUALVERIFY ||\n a.output[24] !== OPS.OP_CHECKSIG\n )\n throw new TypeError('Output is invalid');\n const hash2 = a.output.slice(3, 23);\n if (hash.length > 0 && !hash.equals(hash2))\n throw new TypeError('Hash mismatch');\n else hash = hash2;\n }\n if (a.pubkey) {\n const pkh = bcrypto.hash160(a.pubkey);\n if (hash.length > 0 && !hash.equals(pkh))\n throw new TypeError('Hash mismatch');\n else hash = pkh;\n }\n if (a.input) {\n const chunks = _chunks();\n if (chunks.length !== 2) throw new TypeError('Input is invalid');\n if (!bscript.isCanonicalScriptSignature(chunks[0]))\n throw new TypeError('Input has invalid signature');\n if (!(0, types_1.isPoint)(chunks[1]))\n throw new TypeError('Input has invalid pubkey');\n if (a.signature && !a.signature.equals(chunks[0]))\n throw new TypeError('Signature mismatch');\n if (a.pubkey && !a.pubkey.equals(chunks[1]))\n throw new TypeError('Pubkey mismatch');\n const pkh = bcrypto.hash160(chunks[1]);\n if (hash.length > 0 && !hash.equals(pkh))\n throw new TypeError('Hash mismatch');\n }\n }\n return Object.assign(o, a);\n}\nexports.p2pkh = p2pkh;\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nexports.p2sh = void 0;\nconst bcrypto = require('../crypto');\nconst networks_1 = require('../networks');\nconst bscript = require('../script');\nconst types_1 = require('../types');\nconst lazy = require('./lazy');\nconst bs58check = require('bs58check');\nconst OPS = bscript.OPS;\nfunction stacksEqual(a, b) {\n if (a.length !== b.length) return false;\n return a.every((x, i) => {\n return x.equals(b[i]);\n });\n}\n// input: [redeemScriptSig ...] {redeemScript}\n// witness: \n// output: OP_HASH160 {hash160(redeemScript)} OP_EQUAL\nfunction p2sh(a, opts) {\n if (!a.address && !a.hash && !a.output && !a.redeem && !a.input)\n throw new TypeError('Not enough data');\n opts = Object.assign({ validate: true }, opts || {});\n (0, types_1.typeforce)(\n {\n network: types_1.typeforce.maybe(types_1.typeforce.Object),\n address: types_1.typeforce.maybe(types_1.typeforce.String),\n hash: types_1.typeforce.maybe(types_1.typeforce.BufferN(20)),\n output: types_1.typeforce.maybe(types_1.typeforce.BufferN(23)),\n redeem: types_1.typeforce.maybe({\n network: types_1.typeforce.maybe(types_1.typeforce.Object),\n output: types_1.typeforce.maybe(types_1.typeforce.Buffer),\n input: types_1.typeforce.maybe(types_1.typeforce.Buffer),\n witness: types_1.typeforce.maybe(\n types_1.typeforce.arrayOf(types_1.typeforce.Buffer),\n ),\n }),\n input: types_1.typeforce.maybe(types_1.typeforce.Buffer),\n witness: types_1.typeforce.maybe(\n types_1.typeforce.arrayOf(types_1.typeforce.Buffer),\n ),\n },\n a,\n );\n let network = a.network;\n if (!network) {\n network = (a.redeem && a.redeem.network) || networks_1.bitcoin;\n }\n const o = { network };\n const _address = lazy.value(() => {\n const payload = Buffer.from(bs58check.decode(a.address));\n const version = payload.readUInt8(0);\n const hash = payload.slice(1);\n return { version, hash };\n });\n const _chunks = lazy.value(() => {\n return bscript.decompile(a.input);\n });\n const _redeem = lazy.value(() => {\n const chunks = _chunks();\n const lastChunk = chunks[chunks.length - 1];\n return {\n network,\n output: lastChunk === OPS.OP_FALSE ? Buffer.from([]) : lastChunk,\n input: bscript.compile(chunks.slice(0, -1)),\n witness: a.witness || [],\n };\n });\n // output dependents\n lazy.prop(o, 'address', () => {\n if (!o.hash) return;\n const payload = Buffer.allocUnsafe(21);\n payload.writeUInt8(o.network.scriptHash, 0);\n o.hash.copy(payload, 1);\n return bs58check.encode(payload);\n });\n lazy.prop(o, 'hash', () => {\n // in order of least effort\n if (a.output) return a.output.slice(2, 22);\n if (a.address) return _address().hash;\n if (o.redeem && o.redeem.output) return bcrypto.hash160(o.redeem.output);\n });\n lazy.prop(o, 'output', () => {\n if (!o.hash) return;\n return bscript.compile([OPS.OP_HASH160, o.hash, OPS.OP_EQUAL]);\n });\n // input dependents\n lazy.prop(o, 'redeem', () => {\n if (!a.input) return;\n return _redeem();\n });\n lazy.prop(o, 'input', () => {\n if (!a.redeem || !a.redeem.input || !a.redeem.output) return;\n return bscript.compile(\n [].concat(bscript.decompile(a.redeem.input), a.redeem.output),\n );\n });\n lazy.prop(o, 'witness', () => {\n if (o.redeem && o.redeem.witness) return o.redeem.witness;\n if (o.input) return [];\n });\n lazy.prop(o, 'name', () => {\n const nameParts = ['p2sh'];\n if (o.redeem !== undefined && o.redeem.name !== undefined)\n nameParts.push(o.redeem.name);\n return nameParts.join('-');\n });\n if (opts.validate) {\n let hash = Buffer.from([]);\n if (a.address) {\n if (_address().version !== network.scriptHash)\n throw new TypeError('Invalid version or Network mismatch');\n if (_address().hash.length !== 20) throw new TypeError('Invalid address');\n hash = _address().hash;\n }\n if (a.hash) {\n if (hash.length > 0 && !hash.equals(a.hash))\n throw new TypeError('Hash mismatch');\n else hash = a.hash;\n }\n if (a.output) {\n if (\n a.output.length !== 23 ||\n a.output[0] !== OPS.OP_HASH160 ||\n a.output[1] !== 0x14 ||\n a.output[22] !== OPS.OP_EQUAL\n )\n throw new TypeError('Output is invalid');\n const hash2 = a.output.slice(2, 22);\n if (hash.length > 0 && !hash.equals(hash2))\n throw new TypeError('Hash mismatch');\n else hash = hash2;\n }\n // inlined to prevent 'no-inner-declarations' failing\n const checkRedeem = redeem => {\n // is the redeem output empty/invalid?\n if (redeem.output) {\n const decompile = bscript.decompile(redeem.output);\n if (!decompile || decompile.length < 1)\n throw new TypeError('Redeem.output too short');\n if (redeem.output.byteLength > 520)\n throw new TypeError(\n 'Redeem.output unspendable if larger than 520 bytes',\n );\n if (bscript.countNonPushOnlyOPs(decompile) > 201)\n throw new TypeError(\n 'Redeem.output unspendable with more than 201 non-push ops',\n );\n // match hash against other sources\n const hash2 = bcrypto.hash160(redeem.output);\n if (hash.length > 0 && !hash.equals(hash2))\n throw new TypeError('Hash mismatch');\n else hash = hash2;\n }\n if (redeem.input) {\n const hasInput = redeem.input.length > 0;\n const hasWitness = redeem.witness && redeem.witness.length > 0;\n if (!hasInput && !hasWitness) throw new TypeError('Empty input');\n if (hasInput && hasWitness)\n throw new TypeError('Input and witness provided');\n if (hasInput) {\n const richunks = bscript.decompile(redeem.input);\n if (!bscript.isPushOnly(richunks))\n throw new TypeError('Non push-only scriptSig');\n }\n }\n };\n if (a.input) {\n const chunks = _chunks();\n if (!chunks || chunks.length < 1) throw new TypeError('Input too short');\n if (!Buffer.isBuffer(_redeem().output))\n throw new TypeError('Input is invalid');\n checkRedeem(_redeem());\n }\n if (a.redeem) {\n if (a.redeem.network && a.redeem.network !== network)\n throw new TypeError('Network mismatch');\n if (a.input) {\n const redeem = _redeem();\n if (a.redeem.output && !a.redeem.output.equals(redeem.output))\n throw new TypeError('Redeem.output mismatch');\n if (a.redeem.input && !a.redeem.input.equals(redeem.input))\n throw new TypeError('Redeem.input mismatch');\n }\n checkRedeem(a.redeem);\n }\n if (a.witness) {\n if (\n a.redeem &&\n a.redeem.witness &&\n !stacksEqual(a.redeem.witness, a.witness)\n )\n throw new TypeError('Witness and redeem.witness mismatch');\n }\n }\n return Object.assign(o, a);\n}\nexports.p2sh = p2sh;\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nexports.p2tr = void 0;\nconst buffer_1 = require('buffer');\nconst networks_1 = require('../networks');\nconst bscript = require('../script');\nconst types_1 = require('../types');\nconst ecc_lib_1 = require('../ecc_lib');\nconst bip341_1 = require('./bip341');\nconst lazy = require('./lazy');\nconst bech32_1 = require('bech32');\nconst OPS = bscript.OPS;\nconst TAPROOT_WITNESS_VERSION = 0x01;\nconst ANNEX_PREFIX = 0x50;\nfunction p2tr(a, opts) {\n if (\n !a.address &&\n !a.output &&\n !a.pubkey &&\n !a.internalPubkey &&\n !(a.witness && a.witness.length > 1)\n )\n throw new TypeError('Not enough data');\n opts = Object.assign({ validate: true }, opts || {});\n (0, types_1.typeforce)(\n {\n address: types_1.typeforce.maybe(types_1.typeforce.String),\n input: types_1.typeforce.maybe(types_1.typeforce.BufferN(0)),\n network: types_1.typeforce.maybe(types_1.typeforce.Object),\n output: types_1.typeforce.maybe(types_1.typeforce.BufferN(34)),\n internalPubkey: types_1.typeforce.maybe(types_1.typeforce.BufferN(32)),\n hash: types_1.typeforce.maybe(types_1.typeforce.BufferN(32)),\n pubkey: types_1.typeforce.maybe(types_1.typeforce.BufferN(32)),\n signature: types_1.typeforce.maybe(\n types_1.typeforce.anyOf(\n types_1.typeforce.BufferN(64),\n types_1.typeforce.BufferN(65),\n ),\n ),\n witness: types_1.typeforce.maybe(\n types_1.typeforce.arrayOf(types_1.typeforce.Buffer),\n ),\n scriptTree: types_1.typeforce.maybe(types_1.isTaptree),\n redeem: types_1.typeforce.maybe({\n output: types_1.typeforce.maybe(types_1.typeforce.Buffer),\n redeemVersion: types_1.typeforce.maybe(types_1.typeforce.Number),\n witness: types_1.typeforce.maybe(\n types_1.typeforce.arrayOf(types_1.typeforce.Buffer),\n ),\n }),\n redeemVersion: types_1.typeforce.maybe(types_1.typeforce.Number),\n },\n a,\n );\n const _address = lazy.value(() => {\n const result = bech32_1.bech32m.decode(a.address);\n const version = result.words.shift();\n const data = bech32_1.bech32m.fromWords(result.words);\n return {\n version,\n prefix: result.prefix,\n data: buffer_1.Buffer.from(data),\n };\n });\n // remove annex if present, ignored by taproot\n const _witness = lazy.value(() => {\n if (!a.witness || !a.witness.length) return;\n if (\n a.witness.length >= 2 &&\n a.witness[a.witness.length - 1][0] === ANNEX_PREFIX\n ) {\n return a.witness.slice(0, -1);\n }\n return a.witness.slice();\n });\n const _hashTree = lazy.value(() => {\n if (a.scriptTree) return (0, bip341_1.toHashTree)(a.scriptTree);\n if (a.hash) return { hash: a.hash };\n return;\n });\n const network = a.network || networks_1.bitcoin;\n const o = { name: 'p2tr', network };\n lazy.prop(o, 'address', () => {\n if (!o.pubkey) return;\n const words = bech32_1.bech32m.toWords(o.pubkey);\n words.unshift(TAPROOT_WITNESS_VERSION);\n return bech32_1.bech32m.encode(network.bech32, words);\n });\n lazy.prop(o, 'hash', () => {\n const hashTree = _hashTree();\n if (hashTree) return hashTree.hash;\n const w = _witness();\n if (w && w.length > 1) {\n const controlBlock = w[w.length - 1];\n const leafVersion = controlBlock[0] & types_1.TAPLEAF_VERSION_MASK;\n const script = w[w.length - 2];\n const leafHash = (0, bip341_1.tapleafHash)({\n output: script,\n version: leafVersion,\n });\n return (0, bip341_1.rootHashFromPath)(controlBlock, leafHash);\n }\n return null;\n });\n lazy.prop(o, 'output', () => {\n if (!o.pubkey) return;\n return bscript.compile([OPS.OP_1, o.pubkey]);\n });\n lazy.prop(o, 'redeemVersion', () => {\n if (a.redeemVersion) return a.redeemVersion;\n if (\n a.redeem &&\n a.redeem.redeemVersion !== undefined &&\n a.redeem.redeemVersion !== null\n ) {\n return a.redeem.redeemVersion;\n }\n return bip341_1.LEAF_VERSION_TAPSCRIPT;\n });\n lazy.prop(o, 'redeem', () => {\n const witness = _witness(); // witness without annex\n if (!witness || witness.length < 2) return;\n return {\n output: witness[witness.length - 2],\n witness: witness.slice(0, -2),\n redeemVersion:\n witness[witness.length - 1][0] & types_1.TAPLEAF_VERSION_MASK,\n };\n });\n lazy.prop(o, 'pubkey', () => {\n if (a.pubkey) return a.pubkey;\n if (a.output) return a.output.slice(2);\n if (a.address) return _address().data;\n if (o.internalPubkey) {\n const tweakedKey = (0, bip341_1.tweakKey)(o.internalPubkey, o.hash);\n if (tweakedKey) return tweakedKey.x;\n }\n });\n lazy.prop(o, 'internalPubkey', () => {\n if (a.internalPubkey) return a.internalPubkey;\n const witness = _witness();\n if (witness && witness.length > 1)\n return witness[witness.length - 1].slice(1, 33);\n });\n lazy.prop(o, 'signature', () => {\n if (a.signature) return a.signature;\n const witness = _witness(); // witness without annex\n if (!witness || witness.length !== 1) return;\n return witness[0];\n });\n lazy.prop(o, 'witness', () => {\n if (a.witness) return a.witness;\n const hashTree = _hashTree();\n if (hashTree && a.redeem && a.redeem.output && a.internalPubkey) {\n const leafHash = (0, bip341_1.tapleafHash)({\n output: a.redeem.output,\n version: o.redeemVersion,\n });\n const path = (0, bip341_1.findScriptPath)(hashTree, leafHash);\n if (!path) return;\n const outputKey = (0, bip341_1.tweakKey)(a.internalPubkey, hashTree.hash);\n if (!outputKey) return;\n const controlBock = buffer_1.Buffer.concat(\n [\n buffer_1.Buffer.from([o.redeemVersion | outputKey.parity]),\n a.internalPubkey,\n ].concat(path),\n );\n return [a.redeem.output, controlBock];\n }\n if (a.signature) return [a.signature];\n });\n // extended validation\n if (opts.validate) {\n let pubkey = buffer_1.Buffer.from([]);\n if (a.address) {\n if (network && network.bech32 !== _address().prefix)\n throw new TypeError('Invalid prefix or Network mismatch');\n if (_address().version !== TAPROOT_WITNESS_VERSION)\n throw new TypeError('Invalid address version');\n if (_address().data.length !== 32)\n throw new TypeError('Invalid address data');\n pubkey = _address().data;\n }\n if (a.pubkey) {\n if (pubkey.length > 0 && !pubkey.equals(a.pubkey))\n throw new TypeError('Pubkey mismatch');\n else pubkey = a.pubkey;\n }\n if (a.output) {\n if (\n a.output.length !== 34 ||\n a.output[0] !== OPS.OP_1 ||\n a.output[1] !== 0x20\n )\n throw new TypeError('Output is invalid');\n if (pubkey.length > 0 && !pubkey.equals(a.output.slice(2)))\n throw new TypeError('Pubkey mismatch');\n else pubkey = a.output.slice(2);\n }\n if (a.internalPubkey) {\n const tweakedKey = (0, bip341_1.tweakKey)(a.internalPubkey, o.hash);\n if (pubkey.length > 0 && !pubkey.equals(tweakedKey.x))\n throw new TypeError('Pubkey mismatch');\n else pubkey = tweakedKey.x;\n }\n if (pubkey && pubkey.length) {\n if (!(0, ecc_lib_1.getEccLib)().isXOnlyPoint(pubkey))\n throw new TypeError('Invalid pubkey for p2tr');\n }\n const hashTree = _hashTree();\n if (a.hash && hashTree) {\n if (!a.hash.equals(hashTree.hash)) throw new TypeError('Hash mismatch');\n }\n if (a.redeem && a.redeem.output && hashTree) {\n const leafHash = (0, bip341_1.tapleafHash)({\n output: a.redeem.output,\n version: o.redeemVersion,\n });\n if (!(0, bip341_1.findScriptPath)(hashTree, leafHash))\n throw new TypeError('Redeem script not in tree');\n }\n const witness = _witness();\n // compare the provided redeem data with the one computed from witness\n if (a.redeem && o.redeem) {\n if (a.redeem.redeemVersion) {\n if (a.redeem.redeemVersion !== o.redeem.redeemVersion)\n throw new TypeError('Redeem.redeemVersion and witness mismatch');\n }\n if (a.redeem.output) {\n if (bscript.decompile(a.redeem.output).length === 0)\n throw new TypeError('Redeem.output is invalid');\n // output redeem is constructed from the witness\n if (o.redeem.output && !a.redeem.output.equals(o.redeem.output))\n throw new TypeError('Redeem.output and witness mismatch');\n }\n if (a.redeem.witness) {\n if (\n o.redeem.witness &&\n !stacksEqual(a.redeem.witness, o.redeem.witness)\n )\n throw new TypeError('Redeem.witness and witness mismatch');\n }\n }\n if (witness && witness.length) {\n if (witness.length === 1) {\n // key spending\n if (a.signature && !a.signature.equals(witness[0]))\n throw new TypeError('Signature mismatch');\n } else {\n // script path spending\n const controlBlock = witness[witness.length - 1];\n if (controlBlock.length < 33)\n throw new TypeError(\n `The control-block length is too small. Got ${controlBlock.length}, expected min 33.`,\n );\n if ((controlBlock.length - 33) % 32 !== 0)\n throw new TypeError(\n `The control-block length of ${controlBlock.length} is incorrect!`,\n );\n const m = (controlBlock.length - 33) / 32;\n if (m > 128)\n throw new TypeError(\n `The script path is too long. Got ${m}, expected max 128.`,\n );\n const internalPubkey = controlBlock.slice(1, 33);\n if (a.internalPubkey && !a.internalPubkey.equals(internalPubkey))\n throw new TypeError('Internal pubkey mismatch');\n if (!(0, ecc_lib_1.getEccLib)().isXOnlyPoint(internalPubkey))\n throw new TypeError('Invalid internalPubkey for p2tr witness');\n const leafVersion = controlBlock[0] & types_1.TAPLEAF_VERSION_MASK;\n const script = witness[witness.length - 2];\n const leafHash = (0, bip341_1.tapleafHash)({\n output: script,\n version: leafVersion,\n });\n const hash = (0, bip341_1.rootHashFromPath)(controlBlock, leafHash);\n const outputKey = (0, bip341_1.tweakKey)(internalPubkey, hash);\n if (!outputKey)\n // todo: needs test data\n throw new TypeError('Invalid outputKey for p2tr witness');\n if (pubkey.length && !pubkey.equals(outputKey.x))\n throw new TypeError('Pubkey mismatch for p2tr witness');\n if (outputKey.parity !== (controlBlock[0] & 1))\n throw new Error('Incorrect parity');\n }\n }\n }\n return Object.assign(o, a);\n}\nexports.p2tr = p2tr;\nfunction stacksEqual(a, b) {\n if (a.length !== b.length) return false;\n return a.every((x, i) => {\n return x.equals(b[i]);\n });\n}\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nexports.p2wpkh = void 0;\nconst bcrypto = require('../crypto');\nconst networks_1 = require('../networks');\nconst bscript = require('../script');\nconst types_1 = require('../types');\nconst lazy = require('./lazy');\nconst bech32_1 = require('bech32');\nconst OPS = bscript.OPS;\nconst EMPTY_BUFFER = Buffer.alloc(0);\n// witness: {signature} {pubKey}\n// input: <>\n// output: OP_0 {pubKeyHash}\nfunction p2wpkh(a, opts) {\n if (!a.address && !a.hash && !a.output && !a.pubkey && !a.witness)\n throw new TypeError('Not enough data');\n opts = Object.assign({ validate: true }, opts || {});\n (0, types_1.typeforce)(\n {\n address: types_1.typeforce.maybe(types_1.typeforce.String),\n hash: types_1.typeforce.maybe(types_1.typeforce.BufferN(20)),\n input: types_1.typeforce.maybe(types_1.typeforce.BufferN(0)),\n network: types_1.typeforce.maybe(types_1.typeforce.Object),\n output: types_1.typeforce.maybe(types_1.typeforce.BufferN(22)),\n pubkey: types_1.typeforce.maybe(types_1.isPoint),\n signature: types_1.typeforce.maybe(bscript.isCanonicalScriptSignature),\n witness: types_1.typeforce.maybe(\n types_1.typeforce.arrayOf(types_1.typeforce.Buffer),\n ),\n },\n a,\n );\n const _address = lazy.value(() => {\n const result = bech32_1.bech32.decode(a.address);\n const version = result.words.shift();\n const data = bech32_1.bech32.fromWords(result.words);\n return {\n version,\n prefix: result.prefix,\n data: Buffer.from(data),\n };\n });\n const network = a.network || networks_1.bitcoin;\n const o = { name: 'p2wpkh', network };\n lazy.prop(o, 'address', () => {\n if (!o.hash) return;\n const words = bech32_1.bech32.toWords(o.hash);\n words.unshift(0x00);\n return bech32_1.bech32.encode(network.bech32, words);\n });\n lazy.prop(o, 'hash', () => {\n if (a.output) return a.output.slice(2, 22);\n if (a.address) return _address().data;\n if (a.pubkey || o.pubkey) return bcrypto.hash160(a.pubkey || o.pubkey);\n });\n lazy.prop(o, 'output', () => {\n if (!o.hash) return;\n return bscript.compile([OPS.OP_0, o.hash]);\n });\n lazy.prop(o, 'pubkey', () => {\n if (a.pubkey) return a.pubkey;\n if (!a.witness) return;\n return a.witness[1];\n });\n lazy.prop(o, 'signature', () => {\n if (!a.witness) return;\n return a.witness[0];\n });\n lazy.prop(o, 'input', () => {\n if (!o.witness) return;\n return EMPTY_BUFFER;\n });\n lazy.prop(o, 'witness', () => {\n if (!a.pubkey) return;\n if (!a.signature) return;\n return [a.signature, a.pubkey];\n });\n // extended validation\n if (opts.validate) {\n let hash = Buffer.from([]);\n if (a.address) {\n if (network && network.bech32 !== _address().prefix)\n throw new TypeError('Invalid prefix or Network mismatch');\n if (_address().version !== 0x00)\n throw new TypeError('Invalid address version');\n if (_address().data.length !== 20)\n throw new TypeError('Invalid address data');\n hash = _address().data;\n }\n if (a.hash) {\n if (hash.length > 0 && !hash.equals(a.hash))\n throw new TypeError('Hash mismatch');\n else hash = a.hash;\n }\n if (a.output) {\n if (\n a.output.length !== 22 ||\n a.output[0] !== OPS.OP_0 ||\n a.output[1] !== 0x14\n )\n throw new TypeError('Output is invalid');\n if (hash.length > 0 && !hash.equals(a.output.slice(2)))\n throw new TypeError('Hash mismatch');\n else hash = a.output.slice(2);\n }\n if (a.pubkey) {\n const pkh = bcrypto.hash160(a.pubkey);\n if (hash.length > 0 && !hash.equals(pkh))\n throw new TypeError('Hash mismatch');\n else hash = pkh;\n if (!(0, types_1.isPoint)(a.pubkey) || a.pubkey.length !== 33)\n throw new TypeError('Invalid pubkey for p2wpkh');\n }\n if (a.witness) {\n if (a.witness.length !== 2) throw new TypeError('Witness is invalid');\n if (!bscript.isCanonicalScriptSignature(a.witness[0]))\n throw new TypeError('Witness has invalid signature');\n if (!(0, types_1.isPoint)(a.witness[1]) || a.witness[1].length !== 33)\n throw new TypeError('Witness has invalid pubkey');\n if (a.signature && !a.signature.equals(a.witness[0]))\n throw new TypeError('Signature mismatch');\n if (a.pubkey && !a.pubkey.equals(a.witness[1]))\n throw new TypeError('Pubkey mismatch');\n const pkh = bcrypto.hash160(a.witness[1]);\n if (hash.length > 0 && !hash.equals(pkh))\n throw new TypeError('Hash mismatch');\n }\n }\n return Object.assign(o, a);\n}\nexports.p2wpkh = p2wpkh;\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nexports.p2wsh = void 0;\nconst bcrypto = require('../crypto');\nconst networks_1 = require('../networks');\nconst bscript = require('../script');\nconst types_1 = require('../types');\nconst lazy = require('./lazy');\nconst bech32_1 = require('bech32');\nconst OPS = bscript.OPS;\nconst EMPTY_BUFFER = Buffer.alloc(0);\nfunction stacksEqual(a, b) {\n if (a.length !== b.length) return false;\n return a.every((x, i) => {\n return x.equals(b[i]);\n });\n}\nfunction chunkHasUncompressedPubkey(chunk) {\n if (\n Buffer.isBuffer(chunk) &&\n chunk.length === 65 &&\n chunk[0] === 0x04 &&\n (0, types_1.isPoint)(chunk)\n ) {\n return true;\n } else {\n return false;\n }\n}\n// input: <>\n// witness: [redeemScriptSig ...] {redeemScript}\n// output: OP_0 {sha256(redeemScript)}\nfunction p2wsh(a, opts) {\n if (!a.address && !a.hash && !a.output && !a.redeem && !a.witness)\n throw new TypeError('Not enough data');\n opts = Object.assign({ validate: true }, opts || {});\n (0, types_1.typeforce)(\n {\n network: types_1.typeforce.maybe(types_1.typeforce.Object),\n address: types_1.typeforce.maybe(types_1.typeforce.String),\n hash: types_1.typeforce.maybe(types_1.typeforce.BufferN(32)),\n output: types_1.typeforce.maybe(types_1.typeforce.BufferN(34)),\n redeem: types_1.typeforce.maybe({\n input: types_1.typeforce.maybe(types_1.typeforce.Buffer),\n network: types_1.typeforce.maybe(types_1.typeforce.Object),\n output: types_1.typeforce.maybe(types_1.typeforce.Buffer),\n witness: types_1.typeforce.maybe(\n types_1.typeforce.arrayOf(types_1.typeforce.Buffer),\n ),\n }),\n input: types_1.typeforce.maybe(types_1.typeforce.BufferN(0)),\n witness: types_1.typeforce.maybe(\n types_1.typeforce.arrayOf(types_1.typeforce.Buffer),\n ),\n },\n a,\n );\n const _address = lazy.value(() => {\n const result = bech32_1.bech32.decode(a.address);\n const version = result.words.shift();\n const data = bech32_1.bech32.fromWords(result.words);\n return {\n version,\n prefix: result.prefix,\n data: Buffer.from(data),\n };\n });\n const _rchunks = lazy.value(() => {\n return bscript.decompile(a.redeem.input);\n });\n let network = a.network;\n if (!network) {\n network = (a.redeem && a.redeem.network) || networks_1.bitcoin;\n }\n const o = { network };\n lazy.prop(o, 'address', () => {\n if (!o.hash) return;\n const words = bech32_1.bech32.toWords(o.hash);\n words.unshift(0x00);\n return bech32_1.bech32.encode(network.bech32, words);\n });\n lazy.prop(o, 'hash', () => {\n if (a.output) return a.output.slice(2);\n if (a.address) return _address().data;\n if (o.redeem && o.redeem.output) return bcrypto.sha256(o.redeem.output);\n });\n lazy.prop(o, 'output', () => {\n if (!o.hash) return;\n return bscript.compile([OPS.OP_0, o.hash]);\n });\n lazy.prop(o, 'redeem', () => {\n if (!a.witness) return;\n return {\n output: a.witness[a.witness.length - 1],\n input: EMPTY_BUFFER,\n witness: a.witness.slice(0, -1),\n };\n });\n lazy.prop(o, 'input', () => {\n if (!o.witness) return;\n return EMPTY_BUFFER;\n });\n lazy.prop(o, 'witness', () => {\n // transform redeem input to witness stack?\n if (\n a.redeem &&\n a.redeem.input &&\n a.redeem.input.length > 0 &&\n a.redeem.output &&\n a.redeem.output.length > 0\n ) {\n const stack = bscript.toStack(_rchunks());\n // assign, and blank the existing input\n o.redeem = Object.assign({ witness: stack }, a.redeem);\n o.redeem.input = EMPTY_BUFFER;\n return [].concat(stack, a.redeem.output);\n }\n if (!a.redeem) return;\n if (!a.redeem.output) return;\n if (!a.redeem.witness) return;\n return [].concat(a.redeem.witness, a.redeem.output);\n });\n lazy.prop(o, 'name', () => {\n const nameParts = ['p2wsh'];\n if (o.redeem !== undefined && o.redeem.name !== undefined)\n nameParts.push(o.redeem.name);\n return nameParts.join('-');\n });\n // extended validation\n if (opts.validate) {\n let hash = Buffer.from([]);\n if (a.address) {\n if (_address().prefix !== network.bech32)\n throw new TypeError('Invalid prefix or Network mismatch');\n if (_address().version !== 0x00)\n throw new TypeError('Invalid address version');\n if (_address().data.length !== 32)\n throw new TypeError('Invalid address data');\n hash = _address().data;\n }\n if (a.hash) {\n if (hash.length > 0 && !hash.equals(a.hash))\n throw new TypeError('Hash mismatch');\n else hash = a.hash;\n }\n if (a.output) {\n if (\n a.output.length !== 34 ||\n a.output[0] !== OPS.OP_0 ||\n a.output[1] !== 0x20\n )\n throw new TypeError('Output is invalid');\n const hash2 = a.output.slice(2);\n if (hash.length > 0 && !hash.equals(hash2))\n throw new TypeError('Hash mismatch');\n else hash = hash2;\n }\n if (a.redeem) {\n if (a.redeem.network && a.redeem.network !== network)\n throw new TypeError('Network mismatch');\n // is there two redeem sources?\n if (\n a.redeem.input &&\n a.redeem.input.length > 0 &&\n a.redeem.witness &&\n a.redeem.witness.length > 0\n )\n throw new TypeError('Ambiguous witness source');\n // is the redeem output non-empty/valid?\n if (a.redeem.output) {\n const decompile = bscript.decompile(a.redeem.output);\n if (!decompile || decompile.length < 1)\n throw new TypeError('Redeem.output is invalid');\n if (a.redeem.output.byteLength > 3600)\n throw new TypeError(\n 'Redeem.output unspendable if larger than 3600 bytes',\n );\n if (bscript.countNonPushOnlyOPs(decompile) > 201)\n throw new TypeError(\n 'Redeem.output unspendable with more than 201 non-push ops',\n );\n // match hash against other sources\n const hash2 = bcrypto.sha256(a.redeem.output);\n if (hash.length > 0 && !hash.equals(hash2))\n throw new TypeError('Hash mismatch');\n else hash = hash2;\n }\n if (a.redeem.input && !bscript.isPushOnly(_rchunks()))\n throw new TypeError('Non push-only scriptSig');\n if (\n a.witness &&\n a.redeem.witness &&\n !stacksEqual(a.witness, a.redeem.witness)\n )\n throw new TypeError('Witness and redeem.witness mismatch');\n if (\n (a.redeem.input && _rchunks().some(chunkHasUncompressedPubkey)) ||\n (a.redeem.output &&\n (bscript.decompile(a.redeem.output) || []).some(\n chunkHasUncompressedPubkey,\n ))\n ) {\n throw new TypeError(\n 'redeem.input or redeem.output contains uncompressed pubkey',\n );\n }\n }\n if (a.witness && a.witness.length > 0) {\n const wScript = a.witness[a.witness.length - 1];\n if (a.redeem && a.redeem.output && !a.redeem.output.equals(wScript))\n throw new TypeError('Witness and redeem.output mismatch');\n if (\n a.witness.some(chunkHasUncompressedPubkey) ||\n (bscript.decompile(wScript) || []).some(chunkHasUncompressedPubkey)\n )\n throw new TypeError('Witness contains uncompressed pubkey');\n }\n }\n return Object.assign(o, a);\n}\nexports.p2wsh = p2wsh;\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nexports.Psbt = void 0;\nconst bip174_1 = require('bip174');\nconst varuint = require('bip174/src/lib/converter/varint');\nconst utils_1 = require('bip174/src/lib/utils');\nconst address_1 = require('./address');\nconst bufferutils_1 = require('./bufferutils');\nconst networks_1 = require('./networks');\nconst payments = require('./payments');\nconst bip341_1 = require('./payments/bip341');\nconst bscript = require('./script');\nconst transaction_1 = require('./transaction');\nconst bip371_1 = require('./psbt/bip371');\nconst psbtutils_1 = require('./psbt/psbtutils');\n/**\n * These are the default arguments for a Psbt instance.\n */\nconst DEFAULT_OPTS = {\n /**\n * A bitcoinjs Network object. This is only used if you pass an `address`\n * parameter to addOutput. Otherwise it is not needed and can be left default.\n */\n network: networks_1.bitcoin,\n /**\n * When extractTransaction is called, the fee rate is checked.\n * THIS IS NOT TO BE RELIED ON.\n * It is only here as a last ditch effort to prevent sending a 500 BTC fee etc.\n */\n maximumFeeRate: 5000, // satoshi per byte\n};\n/**\n * Psbt class can parse and generate a PSBT binary based off of the BIP174.\n * There are 6 roles that this class fulfills. (Explained in BIP174)\n *\n * Creator: This can be done with `new Psbt()`\n * Updater: This can be done with `psbt.addInput(input)`, `psbt.addInputs(inputs)`,\n * `psbt.addOutput(output)`, `psbt.addOutputs(outputs)` when you are looking to\n * add new inputs and outputs to the PSBT, and `psbt.updateGlobal(itemObject)`,\n * `psbt.updateInput(itemObject)`, `psbt.updateOutput(itemObject)`\n * addInput requires hash: Buffer | string; and index: number; as attributes\n * and can also include any attributes that are used in updateInput method.\n * addOutput requires script: Buffer; and value: number; and likewise can include\n * data for updateOutput.\n * For a list of what attributes should be what types. Check the bip174 library.\n * Also, check the integration tests for some examples of usage.\n * Signer: There are a few methods. signAllInputs and signAllInputsAsync, which will search all input\n * information for your pubkey or pubkeyhash, and only sign inputs where it finds\n * your info. Or you can explicitly sign a specific input with signInput and\n * signInputAsync. For the async methods you can create a SignerAsync object\n * and use something like a hardware wallet to sign with. (You must implement this)\n * Combiner: psbts can be combined easily with `psbt.combine(psbt2, psbt3, psbt4 ...)`\n * the psbt calling combine will always have precedence when a conflict occurs.\n * Combine checks if the internal bitcoin transaction is the same, so be sure that\n * all sequences, version, locktime, etc. are the same before combining.\n * Input Finalizer: This role is fairly important. Not only does it need to construct\n * the input scriptSigs and witnesses, but it SHOULD verify the signatures etc.\n * Before running `psbt.finalizeAllInputs()` please run `psbt.validateSignaturesOfAllInputs()`\n * Running any finalize method will delete any data in the input(s) that are no longer\n * needed due to the finalized scripts containing the information.\n * Transaction Extractor: This role will perform some checks before returning a\n * Transaction object. Such as fee rate not being larger than maximumFeeRate etc.\n */\nclass Psbt {\n static fromBase64(data, opts = {}) {\n const buffer = Buffer.from(data, 'base64');\n return this.fromBuffer(buffer, opts);\n }\n static fromHex(data, opts = {}) {\n const buffer = Buffer.from(data, 'hex');\n return this.fromBuffer(buffer, opts);\n }\n static fromBuffer(buffer, opts = {}) {\n const psbtBase = bip174_1.Psbt.fromBuffer(buffer, transactionFromBuffer);\n const psbt = new Psbt(opts, psbtBase);\n checkTxForDupeIns(psbt.__CACHE.__TX, psbt.__CACHE);\n return psbt;\n }\n constructor(opts = {}, data = new bip174_1.Psbt(new PsbtTransaction())) {\n this.data = data;\n // set defaults\n this.opts = Object.assign({}, DEFAULT_OPTS, opts);\n this.__CACHE = {\n __NON_WITNESS_UTXO_TX_CACHE: [],\n __NON_WITNESS_UTXO_BUF_CACHE: [],\n __TX_IN_CACHE: {},\n __TX: this.data.globalMap.unsignedTx.tx,\n // Psbt's predecesor (TransactionBuilder - now removed) behavior\n // was to not confirm input values before signing.\n // Even though we highly encourage people to get\n // the full parent transaction to verify values, the ability to\n // sign non-segwit inputs without the full transaction was often\n // requested. So the only way to activate is to use @ts-ignore.\n // We will disable exporting the Psbt when unsafe sign is active.\n // because it is not BIP174 compliant.\n __UNSAFE_SIGN_NONSEGWIT: false,\n };\n if (this.data.inputs.length === 0) this.setVersion(2);\n // Make data hidden when enumerating\n const dpew = (obj, attr, enumerable, writable) =>\n Object.defineProperty(obj, attr, {\n enumerable,\n writable,\n });\n dpew(this, '__CACHE', false, true);\n dpew(this, 'opts', false, true);\n }\n get inputCount() {\n return this.data.inputs.length;\n }\n get version() {\n return this.__CACHE.__TX.version;\n }\n set version(version) {\n this.setVersion(version);\n }\n get locktime() {\n return this.__CACHE.__TX.locktime;\n }\n set locktime(locktime) {\n this.setLocktime(locktime);\n }\n get txInputs() {\n return this.__CACHE.__TX.ins.map(input => ({\n hash: (0, bufferutils_1.cloneBuffer)(input.hash),\n index: input.index,\n sequence: input.sequence,\n }));\n }\n get txOutputs() {\n return this.__CACHE.__TX.outs.map(output => {\n let address;\n try {\n address = (0, address_1.fromOutputScript)(\n output.script,\n this.opts.network,\n );\n } catch (_) {}\n return {\n script: (0, bufferutils_1.cloneBuffer)(output.script),\n value: output.value,\n address,\n };\n });\n }\n combine(...those) {\n this.data.combine(...those.map(o => o.data));\n return this;\n }\n clone() {\n // TODO: more efficient cloning\n const res = Psbt.fromBuffer(this.data.toBuffer());\n res.opts = JSON.parse(JSON.stringify(this.opts));\n return res;\n }\n setMaximumFeeRate(satoshiPerByte) {\n check32Bit(satoshiPerByte); // 42.9 BTC per byte IS excessive... so throw\n this.opts.maximumFeeRate = satoshiPerByte;\n }\n setVersion(version) {\n check32Bit(version);\n checkInputsForPartialSig(this.data.inputs, 'setVersion');\n const c = this.__CACHE;\n c.__TX.version = version;\n c.__EXTRACTED_TX = undefined;\n return this;\n }\n setLocktime(locktime) {\n check32Bit(locktime);\n checkInputsForPartialSig(this.data.inputs, 'setLocktime');\n const c = this.__CACHE;\n c.__TX.locktime = locktime;\n c.__EXTRACTED_TX = undefined;\n return this;\n }\n setInputSequence(inputIndex, sequence) {\n check32Bit(sequence);\n checkInputsForPartialSig(this.data.inputs, 'setInputSequence');\n const c = this.__CACHE;\n if (c.__TX.ins.length <= inputIndex) {\n throw new Error('Input index too high');\n }\n c.__TX.ins[inputIndex].sequence = sequence;\n c.__EXTRACTED_TX = undefined;\n return this;\n }\n addInputs(inputDatas) {\n inputDatas.forEach(inputData => this.addInput(inputData));\n return this;\n }\n addInput(inputData) {\n if (\n arguments.length > 1 ||\n !inputData ||\n inputData.hash === undefined ||\n inputData.index === undefined\n ) {\n throw new Error(\n `Invalid arguments for Psbt.addInput. ` +\n `Requires single object with at least [hash] and [index]`,\n );\n }\n (0, bip371_1.checkTaprootInputFields)(inputData, inputData, 'addInput');\n checkInputsForPartialSig(this.data.inputs, 'addInput');\n if (inputData.witnessScript) checkInvalidP2WSH(inputData.witnessScript);\n const c = this.__CACHE;\n this.data.addInput(inputData);\n const txIn = c.__TX.ins[c.__TX.ins.length - 1];\n checkTxInputCache(c, txIn);\n const inputIndex = this.data.inputs.length - 1;\n const input = this.data.inputs[inputIndex];\n if (input.nonWitnessUtxo) {\n addNonWitnessTxCache(this.__CACHE, input, inputIndex);\n }\n c.__FEE = undefined;\n c.__FEE_RATE = undefined;\n c.__EXTRACTED_TX = undefined;\n return this;\n }\n addOutputs(outputDatas) {\n outputDatas.forEach(outputData => this.addOutput(outputData));\n return this;\n }\n addOutput(outputData) {\n if (\n arguments.length > 1 ||\n !outputData ||\n outputData.value === undefined ||\n (outputData.address === undefined && outputData.script === undefined)\n ) {\n throw new Error(\n `Invalid arguments for Psbt.addOutput. ` +\n `Requires single object with at least [script or address] and [value]`,\n );\n }\n checkInputsForPartialSig(this.data.inputs, 'addOutput');\n const { address } = outputData;\n if (typeof address === 'string') {\n const { network } = this.opts;\n const script = (0, address_1.toOutputScript)(address, network);\n outputData = Object.assign(outputData, { script });\n }\n (0, bip371_1.checkTaprootOutputFields)(outputData, outputData, 'addOutput');\n const c = this.__CACHE;\n this.data.addOutput(outputData);\n c.__FEE = undefined;\n c.__FEE_RATE = undefined;\n c.__EXTRACTED_TX = undefined;\n return this;\n }\n extractTransaction(disableFeeCheck) {\n if (!this.data.inputs.every(isFinalized)) throw new Error('Not finalized');\n const c = this.__CACHE;\n if (!disableFeeCheck) {\n checkFees(this, c, this.opts);\n }\n if (c.__EXTRACTED_TX) return c.__EXTRACTED_TX;\n const tx = c.__TX.clone();\n inputFinalizeGetAmts(this.data.inputs, tx, c, true);\n return tx;\n }\n getFeeRate() {\n return getTxCacheValue(\n '__FEE_RATE',\n 'fee rate',\n this.data.inputs,\n this.__CACHE,\n );\n }\n getFee() {\n return getTxCacheValue('__FEE', 'fee', this.data.inputs, this.__CACHE);\n }\n finalizeAllInputs() {\n (0, utils_1.checkForInput)(this.data.inputs, 0); // making sure we have at least one\n range(this.data.inputs.length).forEach(idx => this.finalizeInput(idx));\n return this;\n }\n finalizeInput(inputIndex, finalScriptsFunc) {\n const input = (0, utils_1.checkForInput)(this.data.inputs, inputIndex);\n if ((0, bip371_1.isTaprootInput)(input))\n return this._finalizeTaprootInput(\n inputIndex,\n input,\n undefined,\n finalScriptsFunc,\n );\n return this._finalizeInput(inputIndex, input, finalScriptsFunc);\n }\n finalizeTaprootInput(\n inputIndex,\n tapLeafHashToFinalize,\n finalScriptsFunc = bip371_1.tapScriptFinalizer,\n ) {\n const input = (0, utils_1.checkForInput)(this.data.inputs, inputIndex);\n if ((0, bip371_1.isTaprootInput)(input))\n return this._finalizeTaprootInput(\n inputIndex,\n input,\n tapLeafHashToFinalize,\n finalScriptsFunc,\n );\n throw new Error(`Cannot finalize input #${inputIndex}. Not Taproot.`);\n }\n _finalizeInput(inputIndex, input, finalScriptsFunc = getFinalScripts) {\n const { script, isP2SH, isP2WSH, isSegwit } = getScriptFromInput(\n inputIndex,\n input,\n this.__CACHE,\n );\n if (!script) throw new Error(`No script found for input #${inputIndex}`);\n checkPartialSigSighashes(input);\n const { finalScriptSig, finalScriptWitness } = finalScriptsFunc(\n inputIndex,\n input,\n script,\n isSegwit,\n isP2SH,\n isP2WSH,\n );\n if (finalScriptSig) this.data.updateInput(inputIndex, { finalScriptSig });\n if (finalScriptWitness)\n this.data.updateInput(inputIndex, { finalScriptWitness });\n if (!finalScriptSig && !finalScriptWitness)\n throw new Error(`Unknown error finalizing input #${inputIndex}`);\n this.data.clearFinalizedInput(inputIndex);\n return this;\n }\n _finalizeTaprootInput(\n inputIndex,\n input,\n tapLeafHashToFinalize,\n finalScriptsFunc = bip371_1.tapScriptFinalizer,\n ) {\n if (!input.witnessUtxo)\n throw new Error(\n `Cannot finalize input #${inputIndex}. Missing withness utxo.`,\n );\n // Check key spend first. Increased privacy and reduced block space.\n if (input.tapKeySig) {\n const payment = payments.p2tr({\n output: input.witnessUtxo.script,\n signature: input.tapKeySig,\n });\n const finalScriptWitness = (0, psbtutils_1.witnessStackToScriptWitness)(\n payment.witness,\n );\n this.data.updateInput(inputIndex, { finalScriptWitness });\n } else {\n const { finalScriptWitness } = finalScriptsFunc(\n inputIndex,\n input,\n tapLeafHashToFinalize,\n );\n this.data.updateInput(inputIndex, { finalScriptWitness });\n }\n this.data.clearFinalizedInput(inputIndex);\n return this;\n }\n getInputType(inputIndex) {\n const input = (0, utils_1.checkForInput)(this.data.inputs, inputIndex);\n const script = getScriptFromUtxo(inputIndex, input, this.__CACHE);\n const result = getMeaningfulScript(\n script,\n inputIndex,\n 'input',\n input.redeemScript || redeemFromFinalScriptSig(input.finalScriptSig),\n input.witnessScript ||\n redeemFromFinalWitnessScript(input.finalScriptWitness),\n );\n const type = result.type === 'raw' ? '' : result.type + '-';\n const mainType = classifyScript(result.meaningfulScript);\n return type + mainType;\n }\n inputHasPubkey(inputIndex, pubkey) {\n const input = (0, utils_1.checkForInput)(this.data.inputs, inputIndex);\n return pubkeyInInput(pubkey, input, inputIndex, this.__CACHE);\n }\n inputHasHDKey(inputIndex, root) {\n const input = (0, utils_1.checkForInput)(this.data.inputs, inputIndex);\n const derivationIsMine = bip32DerivationIsMine(root);\n return (\n !!input.bip32Derivation && input.bip32Derivation.some(derivationIsMine)\n );\n }\n outputHasPubkey(outputIndex, pubkey) {\n const output = (0, utils_1.checkForOutput)(this.data.outputs, outputIndex);\n return pubkeyInOutput(pubkey, output, outputIndex, this.__CACHE);\n }\n outputHasHDKey(outputIndex, root) {\n const output = (0, utils_1.checkForOutput)(this.data.outputs, outputIndex);\n const derivationIsMine = bip32DerivationIsMine(root);\n return (\n !!output.bip32Derivation && output.bip32Derivation.some(derivationIsMine)\n );\n }\n validateSignaturesOfAllInputs(validator) {\n (0, utils_1.checkForInput)(this.data.inputs, 0); // making sure we have at least one\n const results = range(this.data.inputs.length).map(idx =>\n this.validateSignaturesOfInput(idx, validator),\n );\n return results.reduce((final, res) => res === true && final, true);\n }\n validateSignaturesOfInput(inputIndex, validator, pubkey) {\n const input = this.data.inputs[inputIndex];\n if ((0, bip371_1.isTaprootInput)(input))\n return this.validateSignaturesOfTaprootInput(\n inputIndex,\n validator,\n pubkey,\n );\n return this._validateSignaturesOfInput(inputIndex, validator, pubkey);\n }\n _validateSignaturesOfInput(inputIndex, validator, pubkey) {\n const input = this.data.inputs[inputIndex];\n const partialSig = (input || {}).partialSig;\n if (!input || !partialSig || partialSig.length < 1)\n throw new Error('No signatures to validate');\n if (typeof validator !== 'function')\n throw new Error('Need validator function to validate signatures');\n const mySigs = pubkey\n ? partialSig.filter(sig => sig.pubkey.equals(pubkey))\n : partialSig;\n if (mySigs.length < 1) throw new Error('No signatures for this pubkey');\n const results = [];\n let hashCache;\n let scriptCache;\n let sighashCache;\n for (const pSig of mySigs) {\n const sig = bscript.signature.decode(pSig.signature);\n const { hash, script } =\n sighashCache !== sig.hashType\n ? getHashForSig(\n inputIndex,\n Object.assign({}, input, { sighashType: sig.hashType }),\n this.__CACHE,\n true,\n )\n : { hash: hashCache, script: scriptCache };\n sighashCache = sig.hashType;\n hashCache = hash;\n scriptCache = script;\n checkScriptForPubkey(pSig.pubkey, script, 'verify');\n results.push(validator(pSig.pubkey, hash, sig.signature));\n }\n return results.every(res => res === true);\n }\n validateSignaturesOfTaprootInput(inputIndex, validator, pubkey) {\n const input = this.data.inputs[inputIndex];\n const tapKeySig = (input || {}).tapKeySig;\n const tapScriptSig = (input || {}).tapScriptSig;\n if (!input && !tapKeySig && !(tapScriptSig && !tapScriptSig.length))\n throw new Error('No signatures to validate');\n if (typeof validator !== 'function')\n throw new Error('Need validator function to validate signatures');\n pubkey = pubkey && (0, bip371_1.toXOnly)(pubkey);\n const allHashses = pubkey\n ? getTaprootHashesForSig(\n inputIndex,\n input,\n this.data.inputs,\n pubkey,\n this.__CACHE,\n )\n : getAllTaprootHashesForSig(\n inputIndex,\n input,\n this.data.inputs,\n this.__CACHE,\n );\n if (!allHashses.length) throw new Error('No signatures for this pubkey');\n const tapKeyHash = allHashses.find(h => !h.leafHash);\n let validationResultCount = 0;\n if (tapKeySig && tapKeyHash) {\n const isValidTapkeySig = validator(\n tapKeyHash.pubkey,\n tapKeyHash.hash,\n trimTaprootSig(tapKeySig),\n );\n if (!isValidTapkeySig) return false;\n validationResultCount++;\n }\n if (tapScriptSig) {\n for (const tapSig of tapScriptSig) {\n const tapSigHash = allHashses.find(h => tapSig.pubkey.equals(h.pubkey));\n if (tapSigHash) {\n const isValidTapScriptSig = validator(\n tapSig.pubkey,\n tapSigHash.hash,\n trimTaprootSig(tapSig.signature),\n );\n if (!isValidTapScriptSig) return false;\n validationResultCount++;\n }\n }\n }\n return validationResultCount > 0;\n }\n signAllInputsHD(\n hdKeyPair,\n sighashTypes = [transaction_1.Transaction.SIGHASH_ALL],\n ) {\n if (!hdKeyPair || !hdKeyPair.publicKey || !hdKeyPair.fingerprint) {\n throw new Error('Need HDSigner to sign input');\n }\n const results = [];\n for (const i of range(this.data.inputs.length)) {\n try {\n this.signInputHD(i, hdKeyPair, sighashTypes);\n results.push(true);\n } catch (err) {\n results.push(false);\n }\n }\n if (results.every(v => v === false)) {\n throw new Error('No inputs were signed');\n }\n return this;\n }\n signAllInputsHDAsync(\n hdKeyPair,\n sighashTypes = [transaction_1.Transaction.SIGHASH_ALL],\n ) {\n return new Promise((resolve, reject) => {\n if (!hdKeyPair || !hdKeyPair.publicKey || !hdKeyPair.fingerprint) {\n return reject(new Error('Need HDSigner to sign input'));\n }\n const results = [];\n const promises = [];\n for (const i of range(this.data.inputs.length)) {\n promises.push(\n this.signInputHDAsync(i, hdKeyPair, sighashTypes).then(\n () => {\n results.push(true);\n },\n () => {\n results.push(false);\n },\n ),\n );\n }\n return Promise.all(promises).then(() => {\n if (results.every(v => v === false)) {\n return reject(new Error('No inputs were signed'));\n }\n resolve();\n });\n });\n }\n signInputHD(\n inputIndex,\n hdKeyPair,\n sighashTypes = [transaction_1.Transaction.SIGHASH_ALL],\n ) {\n if (!hdKeyPair || !hdKeyPair.publicKey || !hdKeyPair.fingerprint) {\n throw new Error('Need HDSigner to sign input');\n }\n const signers = getSignersFromHD(inputIndex, this.data.inputs, hdKeyPair);\n signers.forEach(signer => this.signInput(inputIndex, signer, sighashTypes));\n return this;\n }\n signInputHDAsync(\n inputIndex,\n hdKeyPair,\n sighashTypes = [transaction_1.Transaction.SIGHASH_ALL],\n ) {\n return new Promise((resolve, reject) => {\n if (!hdKeyPair || !hdKeyPair.publicKey || !hdKeyPair.fingerprint) {\n return reject(new Error('Need HDSigner to sign input'));\n }\n const signers = getSignersFromHD(inputIndex, this.data.inputs, hdKeyPair);\n const promises = signers.map(signer =>\n this.signInputAsync(inputIndex, signer, sighashTypes),\n );\n return Promise.all(promises)\n .then(() => {\n resolve();\n })\n .catch(reject);\n });\n }\n signAllInputs(keyPair, sighashTypes) {\n if (!keyPair || !keyPair.publicKey)\n throw new Error('Need Signer to sign input');\n // TODO: Add a pubkey/pubkeyhash cache to each input\n // as input information is added, then eventually\n // optimize this method.\n const results = [];\n for (const i of range(this.data.inputs.length)) {\n try {\n this.signInput(i, keyPair, sighashTypes);\n results.push(true);\n } catch (err) {\n results.push(false);\n }\n }\n if (results.every(v => v === false)) {\n throw new Error('No inputs were signed');\n }\n return this;\n }\n signAllInputsAsync(keyPair, sighashTypes) {\n return new Promise((resolve, reject) => {\n if (!keyPair || !keyPair.publicKey)\n return reject(new Error('Need Signer to sign input'));\n // TODO: Add a pubkey/pubkeyhash cache to each input\n // as input information is added, then eventually\n // optimize this method.\n const results = [];\n const promises = [];\n for (const [i] of this.data.inputs.entries()) {\n promises.push(\n this.signInputAsync(i, keyPair, sighashTypes).then(\n () => {\n results.push(true);\n },\n () => {\n results.push(false);\n },\n ),\n );\n }\n return Promise.all(promises).then(() => {\n if (results.every(v => v === false)) {\n return reject(new Error('No inputs were signed'));\n }\n resolve();\n });\n });\n }\n signInput(inputIndex, keyPair, sighashTypes) {\n if (!keyPair || !keyPair.publicKey)\n throw new Error('Need Signer to sign input');\n const input = (0, utils_1.checkForInput)(this.data.inputs, inputIndex);\n if ((0, bip371_1.isTaprootInput)(input)) {\n return this._signTaprootInput(\n inputIndex,\n input,\n keyPair,\n undefined,\n sighashTypes,\n );\n }\n return this._signInput(inputIndex, keyPair, sighashTypes);\n }\n signTaprootInput(inputIndex, keyPair, tapLeafHashToSign, sighashTypes) {\n if (!keyPair || !keyPair.publicKey)\n throw new Error('Need Signer to sign input');\n const input = (0, utils_1.checkForInput)(this.data.inputs, inputIndex);\n if ((0, bip371_1.isTaprootInput)(input))\n return this._signTaprootInput(\n inputIndex,\n input,\n keyPair,\n tapLeafHashToSign,\n sighashTypes,\n );\n throw new Error(`Input #${inputIndex} is not of type Taproot.`);\n }\n _signInput(\n inputIndex,\n keyPair,\n sighashTypes = [transaction_1.Transaction.SIGHASH_ALL],\n ) {\n const { hash, sighashType } = getHashAndSighashType(\n this.data.inputs,\n inputIndex,\n keyPair.publicKey,\n this.__CACHE,\n sighashTypes,\n );\n const partialSig = [\n {\n pubkey: keyPair.publicKey,\n signature: bscript.signature.encode(keyPair.sign(hash), sighashType),\n },\n ];\n this.data.updateInput(inputIndex, { partialSig });\n return this;\n }\n _signTaprootInput(\n inputIndex,\n input,\n keyPair,\n tapLeafHashToSign,\n allowedSighashTypes = [transaction_1.Transaction.SIGHASH_DEFAULT],\n ) {\n const hashesForSig = this.checkTaprootHashesForSig(\n inputIndex,\n input,\n keyPair,\n tapLeafHashToSign,\n allowedSighashTypes,\n );\n const tapKeySig = hashesForSig\n .filter(h => !h.leafHash)\n .map(h =>\n (0, bip371_1.serializeTaprootSignature)(\n keyPair.signSchnorr(h.hash),\n input.sighashType,\n ),\n )[0];\n const tapScriptSig = hashesForSig\n .filter(h => !!h.leafHash)\n .map(h => ({\n pubkey: (0, bip371_1.toXOnly)(keyPair.publicKey),\n signature: (0, bip371_1.serializeTaprootSignature)(\n keyPair.signSchnorr(h.hash),\n input.sighashType,\n ),\n leafHash: h.leafHash,\n }));\n if (tapKeySig) {\n this.data.updateInput(inputIndex, { tapKeySig });\n }\n if (tapScriptSig.length) {\n this.data.updateInput(inputIndex, { tapScriptSig });\n }\n return this;\n }\n signInputAsync(inputIndex, keyPair, sighashTypes) {\n return Promise.resolve().then(() => {\n if (!keyPair || !keyPair.publicKey)\n throw new Error('Need Signer to sign input');\n const input = (0, utils_1.checkForInput)(this.data.inputs, inputIndex);\n if ((0, bip371_1.isTaprootInput)(input))\n return this._signTaprootInputAsync(\n inputIndex,\n input,\n keyPair,\n undefined,\n sighashTypes,\n );\n return this._signInputAsync(inputIndex, keyPair, sighashTypes);\n });\n }\n signTaprootInputAsync(inputIndex, keyPair, tapLeafHash, sighashTypes) {\n return Promise.resolve().then(() => {\n if (!keyPair || !keyPair.publicKey)\n throw new Error('Need Signer to sign input');\n const input = (0, utils_1.checkForInput)(this.data.inputs, inputIndex);\n if ((0, bip371_1.isTaprootInput)(input))\n return this._signTaprootInputAsync(\n inputIndex,\n input,\n keyPair,\n tapLeafHash,\n sighashTypes,\n );\n throw new Error(`Input #${inputIndex} is not of type Taproot.`);\n });\n }\n _signInputAsync(\n inputIndex,\n keyPair,\n sighashTypes = [transaction_1.Transaction.SIGHASH_ALL],\n ) {\n const { hash, sighashType } = getHashAndSighashType(\n this.data.inputs,\n inputIndex,\n keyPair.publicKey,\n this.__CACHE,\n sighashTypes,\n );\n return Promise.resolve(keyPair.sign(hash)).then(signature => {\n const partialSig = [\n {\n pubkey: keyPair.publicKey,\n signature: bscript.signature.encode(signature, sighashType),\n },\n ];\n this.data.updateInput(inputIndex, { partialSig });\n });\n }\n async _signTaprootInputAsync(\n inputIndex,\n input,\n keyPair,\n tapLeafHash,\n sighashTypes = [transaction_1.Transaction.SIGHASH_DEFAULT],\n ) {\n const hashesForSig = this.checkTaprootHashesForSig(\n inputIndex,\n input,\n keyPair,\n tapLeafHash,\n sighashTypes,\n );\n const signaturePromises = [];\n const tapKeyHash = hashesForSig.filter(h => !h.leafHash)[0];\n if (tapKeyHash) {\n const tapKeySigPromise = Promise.resolve(\n keyPair.signSchnorr(tapKeyHash.hash),\n ).then(sig => {\n return {\n tapKeySig: (0, bip371_1.serializeTaprootSignature)(\n sig,\n input.sighashType,\n ),\n };\n });\n signaturePromises.push(tapKeySigPromise);\n }\n const tapScriptHashes = hashesForSig.filter(h => !!h.leafHash);\n if (tapScriptHashes.length) {\n const tapScriptSigPromises = tapScriptHashes.map(tsh => {\n return Promise.resolve(keyPair.signSchnorr(tsh.hash)).then(\n signature => {\n const tapScriptSig = [\n {\n pubkey: (0, bip371_1.toXOnly)(keyPair.publicKey),\n signature: (0, bip371_1.serializeTaprootSignature)(\n signature,\n input.sighashType,\n ),\n leafHash: tsh.leafHash,\n },\n ];\n return { tapScriptSig };\n },\n );\n });\n signaturePromises.push(...tapScriptSigPromises);\n }\n return Promise.all(signaturePromises).then(results => {\n results.forEach(v => this.data.updateInput(inputIndex, v));\n });\n }\n checkTaprootHashesForSig(\n inputIndex,\n input,\n keyPair,\n tapLeafHashToSign,\n allowedSighashTypes,\n ) {\n if (typeof keyPair.signSchnorr !== 'function')\n throw new Error(\n `Need Schnorr Signer to sign taproot input #${inputIndex}.`,\n );\n const hashesForSig = getTaprootHashesForSig(\n inputIndex,\n input,\n this.data.inputs,\n keyPair.publicKey,\n this.__CACHE,\n tapLeafHashToSign,\n allowedSighashTypes,\n );\n if (!hashesForSig || !hashesForSig.length)\n throw new Error(\n `Can not sign for input #${inputIndex} with the key ${keyPair.publicKey.toString(\n 'hex',\n )}`,\n );\n return hashesForSig;\n }\n toBuffer() {\n checkCache(this.__CACHE);\n return this.data.toBuffer();\n }\n toHex() {\n checkCache(this.__CACHE);\n return this.data.toHex();\n }\n toBase64() {\n checkCache(this.__CACHE);\n return this.data.toBase64();\n }\n updateGlobal(updateData) {\n this.data.updateGlobal(updateData);\n return this;\n }\n updateInput(inputIndex, updateData) {\n if (updateData.witnessScript) checkInvalidP2WSH(updateData.witnessScript);\n (0, bip371_1.checkTaprootInputFields)(\n this.data.inputs[inputIndex],\n updateData,\n 'updateInput',\n );\n this.data.updateInput(inputIndex, updateData);\n if (updateData.nonWitnessUtxo) {\n addNonWitnessTxCache(\n this.__CACHE,\n this.data.inputs[inputIndex],\n inputIndex,\n );\n }\n return this;\n }\n updateOutput(outputIndex, updateData) {\n const outputData = this.data.outputs[outputIndex];\n (0, bip371_1.checkTaprootOutputFields)(\n outputData,\n updateData,\n 'updateOutput',\n );\n this.data.updateOutput(outputIndex, updateData);\n return this;\n }\n addUnknownKeyValToGlobal(keyVal) {\n this.data.addUnknownKeyValToGlobal(keyVal);\n return this;\n }\n addUnknownKeyValToInput(inputIndex, keyVal) {\n this.data.addUnknownKeyValToInput(inputIndex, keyVal);\n return this;\n }\n addUnknownKeyValToOutput(outputIndex, keyVal) {\n this.data.addUnknownKeyValToOutput(outputIndex, keyVal);\n return this;\n }\n clearFinalizedInput(inputIndex) {\n this.data.clearFinalizedInput(inputIndex);\n return this;\n }\n}\nexports.Psbt = Psbt;\n/**\n * This function is needed to pass to the bip174 base class's fromBuffer.\n * It takes the \"transaction buffer\" portion of the psbt buffer and returns a\n * Transaction (From the bip174 library) interface.\n */\nconst transactionFromBuffer = buffer => new PsbtTransaction(buffer);\n/**\n * This class implements the Transaction interface from bip174 library.\n * It contains a bitcoinjs-lib Transaction object.\n */\nclass PsbtTransaction {\n constructor(buffer = Buffer.from([2, 0, 0, 0, 0, 0, 0, 0, 0, 0])) {\n this.tx = transaction_1.Transaction.fromBuffer(buffer);\n checkTxEmpty(this.tx);\n Object.defineProperty(this, 'tx', {\n enumerable: false,\n writable: true,\n });\n }\n getInputOutputCounts() {\n return {\n inputCount: this.tx.ins.length,\n outputCount: this.tx.outs.length,\n };\n }\n addInput(input) {\n if (\n input.hash === undefined ||\n input.index === undefined ||\n (!Buffer.isBuffer(input.hash) && typeof input.hash !== 'string') ||\n typeof input.index !== 'number'\n ) {\n throw new Error('Error adding input.');\n }\n const hash =\n typeof input.hash === 'string'\n ? (0, bufferutils_1.reverseBuffer)(Buffer.from(input.hash, 'hex'))\n : input.hash;\n this.tx.addInput(hash, input.index, input.sequence);\n }\n addOutput(output) {\n if (\n output.script === undefined ||\n output.value === undefined ||\n !Buffer.isBuffer(output.script) ||\n typeof output.value !== 'number'\n ) {\n throw new Error('Error adding output.');\n }\n this.tx.addOutput(output.script, output.value);\n }\n toBuffer() {\n return this.tx.toBuffer();\n }\n}\nfunction canFinalize(input, script, scriptType) {\n switch (scriptType) {\n case 'pubkey':\n case 'pubkeyhash':\n case 'witnesspubkeyhash':\n return hasSigs(1, input.partialSig);\n case 'multisig':\n const p2ms = payments.p2ms({ output: script });\n return hasSigs(p2ms.m, input.partialSig, p2ms.pubkeys);\n default:\n return false;\n }\n}\nfunction checkCache(cache) {\n if (cache.__UNSAFE_SIGN_NONSEGWIT !== false) {\n throw new Error('Not BIP174 compliant, can not export');\n }\n}\nfunction hasSigs(neededSigs, partialSig, pubkeys) {\n if (!partialSig) return false;\n let sigs;\n if (pubkeys) {\n sigs = pubkeys\n .map(pkey => {\n const pubkey = compressPubkey(pkey);\n return partialSig.find(pSig => pSig.pubkey.equals(pubkey));\n })\n .filter(v => !!v);\n } else {\n sigs = partialSig;\n }\n if (sigs.length > neededSigs) throw new Error('Too many signatures');\n return sigs.length === neededSigs;\n}\nfunction isFinalized(input) {\n return !!input.finalScriptSig || !!input.finalScriptWitness;\n}\nfunction bip32DerivationIsMine(root) {\n return d => {\n if (!d.masterFingerprint.equals(root.fingerprint)) return false;\n if (!root.derivePath(d.path).publicKey.equals(d.pubkey)) return false;\n return true;\n };\n}\nfunction check32Bit(num) {\n if (\n typeof num !== 'number' ||\n num !== Math.floor(num) ||\n num > 0xffffffff ||\n num < 0\n ) {\n throw new Error('Invalid 32 bit integer');\n }\n}\nfunction checkFees(psbt, cache, opts) {\n const feeRate = cache.__FEE_RATE || psbt.getFeeRate();\n const vsize = cache.__EXTRACTED_TX.virtualSize();\n const satoshis = feeRate * vsize;\n if (feeRate >= opts.maximumFeeRate) {\n throw new Error(\n `Warning: You are paying around ${(satoshis / 1e8).toFixed(8)} in ` +\n `fees, which is ${feeRate} satoshi per byte for a transaction ` +\n `with a VSize of ${vsize} bytes (segwit counted as 0.25 byte per ` +\n `byte). Use setMaximumFeeRate method to raise your threshold, or ` +\n `pass true to the first arg of extractTransaction.`,\n );\n }\n}\nfunction checkInputsForPartialSig(inputs, action) {\n inputs.forEach(input => {\n const throws = (0, bip371_1.isTaprootInput)(input)\n ? (0, bip371_1.checkTaprootInputForSigs)(input, action)\n : (0, psbtutils_1.checkInputForSig)(input, action);\n if (throws)\n throw new Error('Can not modify transaction, signatures exist.');\n });\n}\nfunction checkPartialSigSighashes(input) {\n if (!input.sighashType || !input.partialSig) return;\n const { partialSig, sighashType } = input;\n partialSig.forEach(pSig => {\n const { hashType } = bscript.signature.decode(pSig.signature);\n if (sighashType !== hashType) {\n throw new Error('Signature sighash does not match input sighash type');\n }\n });\n}\nfunction checkScriptForPubkey(pubkey, script, action) {\n if (!(0, psbtutils_1.pubkeyInScript)(pubkey, script)) {\n throw new Error(\n `Can not ${action} for this input with the key ${pubkey.toString('hex')}`,\n );\n }\n}\nfunction checkTxEmpty(tx) {\n const isEmpty = tx.ins.every(\n input =>\n input.script &&\n input.script.length === 0 &&\n input.witness &&\n input.witness.length === 0,\n );\n if (!isEmpty) {\n throw new Error('Format Error: Transaction ScriptSigs are not empty');\n }\n}\nfunction checkTxForDupeIns(tx, cache) {\n tx.ins.forEach(input => {\n checkTxInputCache(cache, input);\n });\n}\nfunction checkTxInputCache(cache, input) {\n const key =\n (0, bufferutils_1.reverseBuffer)(Buffer.from(input.hash)).toString('hex') +\n ':' +\n input.index;\n if (cache.__TX_IN_CACHE[key]) throw new Error('Duplicate input detected.');\n cache.__TX_IN_CACHE[key] = 1;\n}\nfunction scriptCheckerFactory(payment, paymentScriptName) {\n return (inputIndex, scriptPubKey, redeemScript, ioType) => {\n const redeemScriptOutput = payment({\n redeem: { output: redeemScript },\n }).output;\n if (!scriptPubKey.equals(redeemScriptOutput)) {\n throw new Error(\n `${paymentScriptName} for ${ioType} #${inputIndex} doesn't match the scriptPubKey in the prevout`,\n );\n }\n };\n}\nconst checkRedeemScript = scriptCheckerFactory(payments.p2sh, 'Redeem script');\nconst checkWitnessScript = scriptCheckerFactory(\n payments.p2wsh,\n 'Witness script',\n);\nfunction getTxCacheValue(key, name, inputs, c) {\n if (!inputs.every(isFinalized))\n throw new Error(`PSBT must be finalized to calculate ${name}`);\n if (key === '__FEE_RATE' && c.__FEE_RATE) return c.__FEE_RATE;\n if (key === '__FEE' && c.__FEE) return c.__FEE;\n let tx;\n let mustFinalize = true;\n if (c.__EXTRACTED_TX) {\n tx = c.__EXTRACTED_TX;\n mustFinalize = false;\n } else {\n tx = c.__TX.clone();\n }\n inputFinalizeGetAmts(inputs, tx, c, mustFinalize);\n if (key === '__FEE_RATE') return c.__FEE_RATE;\n else if (key === '__FEE') return c.__FEE;\n}\nfunction getFinalScripts(inputIndex, input, script, isSegwit, isP2SH, isP2WSH) {\n const scriptType = classifyScript(script);\n if (!canFinalize(input, script, scriptType))\n throw new Error(`Can not finalize input #${inputIndex}`);\n return prepareFinalScripts(\n script,\n scriptType,\n input.partialSig,\n isSegwit,\n isP2SH,\n isP2WSH,\n );\n}\nfunction prepareFinalScripts(\n script,\n scriptType,\n partialSig,\n isSegwit,\n isP2SH,\n isP2WSH,\n) {\n let finalScriptSig;\n let finalScriptWitness;\n // Wow, the payments API is very handy\n const payment = getPayment(script, scriptType, partialSig);\n const p2wsh = !isP2WSH ? null : payments.p2wsh({ redeem: payment });\n const p2sh = !isP2SH ? null : payments.p2sh({ redeem: p2wsh || payment });\n if (isSegwit) {\n if (p2wsh) {\n finalScriptWitness = (0, psbtutils_1.witnessStackToScriptWitness)(\n p2wsh.witness,\n );\n } else {\n finalScriptWitness = (0, psbtutils_1.witnessStackToScriptWitness)(\n payment.witness,\n );\n }\n if (p2sh) {\n finalScriptSig = p2sh.input;\n }\n } else {\n if (p2sh) {\n finalScriptSig = p2sh.input;\n } else {\n finalScriptSig = payment.input;\n }\n }\n return {\n finalScriptSig,\n finalScriptWitness,\n };\n}\nfunction getHashAndSighashType(\n inputs,\n inputIndex,\n pubkey,\n cache,\n sighashTypes,\n) {\n const input = (0, utils_1.checkForInput)(inputs, inputIndex);\n const { hash, sighashType, script } = getHashForSig(\n inputIndex,\n input,\n cache,\n false,\n sighashTypes,\n );\n checkScriptForPubkey(pubkey, script, 'sign');\n return {\n hash,\n sighashType,\n };\n}\nfunction getHashForSig(inputIndex, input, cache, forValidate, sighashTypes) {\n const unsignedTx = cache.__TX;\n const sighashType =\n input.sighashType || transaction_1.Transaction.SIGHASH_ALL;\n checkSighashTypeAllowed(sighashType, sighashTypes);\n let hash;\n let prevout;\n if (input.nonWitnessUtxo) {\n const nonWitnessUtxoTx = nonWitnessUtxoTxFromCache(\n cache,\n input,\n inputIndex,\n );\n const prevoutHash = unsignedTx.ins[inputIndex].hash;\n const utxoHash = nonWitnessUtxoTx.getHash();\n // If a non-witness UTXO is provided, its hash must match the hash specified in the prevout\n if (!prevoutHash.equals(utxoHash)) {\n throw new Error(\n `Non-witness UTXO hash for input #${inputIndex} doesn't match the hash specified in the prevout`,\n );\n }\n const prevoutIndex = unsignedTx.ins[inputIndex].index;\n prevout = nonWitnessUtxoTx.outs[prevoutIndex];\n } else if (input.witnessUtxo) {\n prevout = input.witnessUtxo;\n } else {\n throw new Error('Need a Utxo input item for signing');\n }\n const { meaningfulScript, type } = getMeaningfulScript(\n prevout.script,\n inputIndex,\n 'input',\n input.redeemScript,\n input.witnessScript,\n );\n if (['p2sh-p2wsh', 'p2wsh'].indexOf(type) >= 0) {\n hash = unsignedTx.hashForWitnessV0(\n inputIndex,\n meaningfulScript,\n prevout.value,\n sighashType,\n );\n } else if ((0, psbtutils_1.isP2WPKH)(meaningfulScript)) {\n // P2WPKH uses the P2PKH template for prevoutScript when signing\n const signingScript = payments.p2pkh({\n hash: meaningfulScript.slice(2),\n }).output;\n hash = unsignedTx.hashForWitnessV0(\n inputIndex,\n signingScript,\n prevout.value,\n sighashType,\n );\n } else {\n // non-segwit\n if (\n input.nonWitnessUtxo === undefined &&\n cache.__UNSAFE_SIGN_NONSEGWIT === false\n )\n throw new Error(\n `Input #${inputIndex} has witnessUtxo but non-segwit script: ` +\n `${meaningfulScript.toString('hex')}`,\n );\n if (!forValidate && cache.__UNSAFE_SIGN_NONSEGWIT !== false)\n console.warn(\n 'Warning: Signing non-segwit inputs without the full parent transaction ' +\n 'means there is a chance that a miner could feed you incorrect information ' +\n \"to trick you into paying large fees. This behavior is the same as Psbt's predecesor \" +\n '(TransactionBuilder - now removed) when signing non-segwit scripts. You are not ' +\n 'able to export this Psbt with toBuffer|toBase64|toHex since it is not ' +\n 'BIP174 compliant.\\n*********************\\nPROCEED WITH CAUTION!\\n' +\n '*********************',\n );\n hash = unsignedTx.hashForSignature(\n inputIndex,\n meaningfulScript,\n sighashType,\n );\n }\n return {\n script: meaningfulScript,\n sighashType,\n hash,\n };\n}\nfunction getAllTaprootHashesForSig(inputIndex, input, inputs, cache) {\n const allPublicKeys = [];\n if (input.tapInternalKey) {\n const key = getPrevoutTaprootKey(inputIndex, input, cache);\n if (key) {\n allPublicKeys.push(key);\n }\n }\n if (input.tapScriptSig) {\n const tapScriptPubkeys = input.tapScriptSig.map(tss => tss.pubkey);\n allPublicKeys.push(...tapScriptPubkeys);\n }\n const allHashes = allPublicKeys.map(pubicKey =>\n getTaprootHashesForSig(inputIndex, input, inputs, pubicKey, cache),\n );\n return allHashes.flat();\n}\nfunction getPrevoutTaprootKey(inputIndex, input, cache) {\n const { script } = getScriptAndAmountFromUtxo(inputIndex, input, cache);\n return (0, psbtutils_1.isP2TR)(script) ? script.subarray(2, 34) : null;\n}\nfunction trimTaprootSig(signature) {\n return signature.length === 64 ? signature : signature.subarray(0, 64);\n}\nfunction getTaprootHashesForSig(\n inputIndex,\n input,\n inputs,\n pubkey,\n cache,\n tapLeafHashToSign,\n allowedSighashTypes,\n) {\n const unsignedTx = cache.__TX;\n const sighashType =\n input.sighashType || transaction_1.Transaction.SIGHASH_DEFAULT;\n checkSighashTypeAllowed(sighashType, allowedSighashTypes);\n const prevOuts = inputs.map((i, index) =>\n getScriptAndAmountFromUtxo(index, i, cache),\n );\n const signingScripts = prevOuts.map(o => o.script);\n const values = prevOuts.map(o => o.value);\n const hashes = [];\n if (input.tapInternalKey && !tapLeafHashToSign) {\n const outputKey =\n getPrevoutTaprootKey(inputIndex, input, cache) || Buffer.from([]);\n if ((0, bip371_1.toXOnly)(pubkey).equals(outputKey)) {\n const tapKeyHash = unsignedTx.hashForWitnessV1(\n inputIndex,\n signingScripts,\n values,\n sighashType,\n );\n hashes.push({ pubkey, hash: tapKeyHash });\n }\n }\n const tapLeafHashes = (input.tapLeafScript || [])\n .filter(tapLeaf => (0, psbtutils_1.pubkeyInScript)(pubkey, tapLeaf.script))\n .map(tapLeaf => {\n const hash = (0, bip341_1.tapleafHash)({\n output: tapLeaf.script,\n version: tapLeaf.leafVersion,\n });\n return Object.assign({ hash }, tapLeaf);\n })\n .filter(\n tapLeaf => !tapLeafHashToSign || tapLeafHashToSign.equals(tapLeaf.hash),\n )\n .map(tapLeaf => {\n const tapScriptHash = unsignedTx.hashForWitnessV1(\n inputIndex,\n signingScripts,\n values,\n transaction_1.Transaction.SIGHASH_DEFAULT,\n tapLeaf.hash,\n );\n return {\n pubkey,\n hash: tapScriptHash,\n leafHash: tapLeaf.hash,\n };\n });\n return hashes.concat(tapLeafHashes);\n}\nfunction checkSighashTypeAllowed(sighashType, sighashTypes) {\n if (sighashTypes && sighashTypes.indexOf(sighashType) < 0) {\n const str = sighashTypeToString(sighashType);\n throw new Error(\n `Sighash type is not allowed. Retry the sign method passing the ` +\n `sighashTypes array of whitelisted types. Sighash type: ${str}`,\n );\n }\n}\nfunction getPayment(script, scriptType, partialSig) {\n let payment;\n switch (scriptType) {\n case 'multisig':\n const sigs = getSortedSigs(script, partialSig);\n payment = payments.p2ms({\n output: script,\n signatures: sigs,\n });\n break;\n case 'pubkey':\n payment = payments.p2pk({\n output: script,\n signature: partialSig[0].signature,\n });\n break;\n case 'pubkeyhash':\n payment = payments.p2pkh({\n output: script,\n pubkey: partialSig[0].pubkey,\n signature: partialSig[0].signature,\n });\n break;\n case 'witnesspubkeyhash':\n payment = payments.p2wpkh({\n output: script,\n pubkey: partialSig[0].pubkey,\n signature: partialSig[0].signature,\n });\n break;\n }\n return payment;\n}\nfunction getScriptFromInput(inputIndex, input, cache) {\n const unsignedTx = cache.__TX;\n const res = {\n script: null,\n isSegwit: false,\n isP2SH: false,\n isP2WSH: false,\n };\n res.isP2SH = !!input.redeemScript;\n res.isP2WSH = !!input.witnessScript;\n if (input.witnessScript) {\n res.script = input.witnessScript;\n } else if (input.redeemScript) {\n res.script = input.redeemScript;\n } else {\n if (input.nonWitnessUtxo) {\n const nonWitnessUtxoTx = nonWitnessUtxoTxFromCache(\n cache,\n input,\n inputIndex,\n );\n const prevoutIndex = unsignedTx.ins[inputIndex].index;\n res.script = nonWitnessUtxoTx.outs[prevoutIndex].script;\n } else if (input.witnessUtxo) {\n res.script = input.witnessUtxo.script;\n }\n }\n if (input.witnessScript || (0, psbtutils_1.isP2WPKH)(res.script)) {\n res.isSegwit = true;\n }\n return res;\n}\nfunction getSignersFromHD(inputIndex, inputs, hdKeyPair) {\n const input = (0, utils_1.checkForInput)(inputs, inputIndex);\n if (!input.bip32Derivation || input.bip32Derivation.length === 0) {\n throw new Error('Need bip32Derivation to sign with HD');\n }\n const myDerivations = input.bip32Derivation\n .map(bipDv => {\n if (bipDv.masterFingerprint.equals(hdKeyPair.fingerprint)) {\n return bipDv;\n } else {\n return;\n }\n })\n .filter(v => !!v);\n if (myDerivations.length === 0) {\n throw new Error(\n 'Need one bip32Derivation masterFingerprint to match the HDSigner fingerprint',\n );\n }\n const signers = myDerivations.map(bipDv => {\n const node = hdKeyPair.derivePath(bipDv.path);\n if (!bipDv.pubkey.equals(node.publicKey)) {\n throw new Error('pubkey did not match bip32Derivation');\n }\n return node;\n });\n return signers;\n}\nfunction getSortedSigs(script, partialSig) {\n const p2ms = payments.p2ms({ output: script });\n // for each pubkey in order of p2ms script\n return p2ms.pubkeys\n .map(pk => {\n // filter partialSig array by pubkey being equal\n return (\n partialSig.filter(ps => {\n return ps.pubkey.equals(pk);\n })[0] || {}\n ).signature;\n // Any pubkey without a match will return undefined\n // this last filter removes all the undefined items in the array.\n })\n .filter(v => !!v);\n}\nfunction scriptWitnessToWitnessStack(buffer) {\n let offset = 0;\n function readSlice(n) {\n offset += n;\n return buffer.slice(offset - n, offset);\n }\n function readVarInt() {\n const vi = varuint.decode(buffer, offset);\n offset += varuint.decode.bytes;\n return vi;\n }\n function readVarSlice() {\n return readSlice(readVarInt());\n }\n function readVector() {\n const count = readVarInt();\n const vector = [];\n for (let i = 0; i < count; i++) vector.push(readVarSlice());\n return vector;\n }\n return readVector();\n}\nfunction sighashTypeToString(sighashType) {\n let text =\n sighashType & transaction_1.Transaction.SIGHASH_ANYONECANPAY\n ? 'SIGHASH_ANYONECANPAY | '\n : '';\n const sigMod = sighashType & 0x1f;\n switch (sigMod) {\n case transaction_1.Transaction.SIGHASH_ALL:\n text += 'SIGHASH_ALL';\n break;\n case transaction_1.Transaction.SIGHASH_SINGLE:\n text += 'SIGHASH_SINGLE';\n break;\n case transaction_1.Transaction.SIGHASH_NONE:\n text += 'SIGHASH_NONE';\n break;\n }\n return text;\n}\nfunction addNonWitnessTxCache(cache, input, inputIndex) {\n cache.__NON_WITNESS_UTXO_BUF_CACHE[inputIndex] = input.nonWitnessUtxo;\n const tx = transaction_1.Transaction.fromBuffer(input.nonWitnessUtxo);\n cache.__NON_WITNESS_UTXO_TX_CACHE[inputIndex] = tx;\n const self = cache;\n const selfIndex = inputIndex;\n delete input.nonWitnessUtxo;\n Object.defineProperty(input, 'nonWitnessUtxo', {\n enumerable: true,\n get() {\n const buf = self.__NON_WITNESS_UTXO_BUF_CACHE[selfIndex];\n const txCache = self.__NON_WITNESS_UTXO_TX_CACHE[selfIndex];\n if (buf !== undefined) {\n return buf;\n } else {\n const newBuf = txCache.toBuffer();\n self.__NON_WITNESS_UTXO_BUF_CACHE[selfIndex] = newBuf;\n return newBuf;\n }\n },\n set(data) {\n self.__NON_WITNESS_UTXO_BUF_CACHE[selfIndex] = data;\n },\n });\n}\nfunction inputFinalizeGetAmts(inputs, tx, cache, mustFinalize) {\n let inputAmount = 0;\n inputs.forEach((input, idx) => {\n if (mustFinalize && input.finalScriptSig)\n tx.ins[idx].script = input.finalScriptSig;\n if (mustFinalize && input.finalScriptWitness) {\n tx.ins[idx].witness = scriptWitnessToWitnessStack(\n input.finalScriptWitness,\n );\n }\n if (input.witnessUtxo) {\n inputAmount += input.witnessUtxo.value;\n } else if (input.nonWitnessUtxo) {\n const nwTx = nonWitnessUtxoTxFromCache(cache, input, idx);\n const vout = tx.ins[idx].index;\n const out = nwTx.outs[vout];\n inputAmount += out.value;\n }\n });\n const outputAmount = tx.outs.reduce((total, o) => total + o.value, 0);\n const fee = inputAmount - outputAmount;\n if (fee < 0) {\n throw new Error('Outputs are spending more than Inputs');\n }\n const bytes = tx.virtualSize();\n cache.__FEE = fee;\n cache.__EXTRACTED_TX = tx;\n cache.__FEE_RATE = Math.floor(fee / bytes);\n}\nfunction nonWitnessUtxoTxFromCache(cache, input, inputIndex) {\n const c = cache.__NON_WITNESS_UTXO_TX_CACHE;\n if (!c[inputIndex]) {\n addNonWitnessTxCache(cache, input, inputIndex);\n }\n return c[inputIndex];\n}\nfunction getScriptFromUtxo(inputIndex, input, cache) {\n const { script } = getScriptAndAmountFromUtxo(inputIndex, input, cache);\n return script;\n}\nfunction getScriptAndAmountFromUtxo(inputIndex, input, cache) {\n if (input.witnessUtxo !== undefined) {\n return {\n script: input.witnessUtxo.script,\n value: input.witnessUtxo.value,\n };\n } else if (input.nonWitnessUtxo !== undefined) {\n const nonWitnessUtxoTx = nonWitnessUtxoTxFromCache(\n cache,\n input,\n inputIndex,\n );\n const o = nonWitnessUtxoTx.outs[cache.__TX.ins[inputIndex].index];\n return { script: o.script, value: o.value };\n } else {\n throw new Error(\"Can't find pubkey in input without Utxo data\");\n }\n}\nfunction pubkeyInInput(pubkey, input, inputIndex, cache) {\n const script = getScriptFromUtxo(inputIndex, input, cache);\n const { meaningfulScript } = getMeaningfulScript(\n script,\n inputIndex,\n 'input',\n input.redeemScript,\n input.witnessScript,\n );\n return (0, psbtutils_1.pubkeyInScript)(pubkey, meaningfulScript);\n}\nfunction pubkeyInOutput(pubkey, output, outputIndex, cache) {\n const script = cache.__TX.outs[outputIndex].script;\n const { meaningfulScript } = getMeaningfulScript(\n script,\n outputIndex,\n 'output',\n output.redeemScript,\n output.witnessScript,\n );\n return (0, psbtutils_1.pubkeyInScript)(pubkey, meaningfulScript);\n}\nfunction redeemFromFinalScriptSig(finalScript) {\n if (!finalScript) return;\n const decomp = bscript.decompile(finalScript);\n if (!decomp) return;\n const lastItem = decomp[decomp.length - 1];\n if (\n !Buffer.isBuffer(lastItem) ||\n isPubkeyLike(lastItem) ||\n isSigLike(lastItem)\n )\n return;\n const sDecomp = bscript.decompile(lastItem);\n if (!sDecomp) return;\n return lastItem;\n}\nfunction redeemFromFinalWitnessScript(finalScript) {\n if (!finalScript) return;\n const decomp = scriptWitnessToWitnessStack(finalScript);\n const lastItem = decomp[decomp.length - 1];\n if (isPubkeyLike(lastItem)) return;\n const sDecomp = bscript.decompile(lastItem);\n if (!sDecomp) return;\n return lastItem;\n}\nfunction compressPubkey(pubkey) {\n if (pubkey.length === 65) {\n const parity = pubkey[64] & 1;\n const newKey = pubkey.slice(0, 33);\n newKey[0] = 2 | parity;\n return newKey;\n }\n return pubkey.slice();\n}\nfunction isPubkeyLike(buf) {\n return buf.length === 33 && bscript.isCanonicalPubKey(buf);\n}\nfunction isSigLike(buf) {\n return bscript.isCanonicalScriptSignature(buf);\n}\nfunction getMeaningfulScript(\n script,\n index,\n ioType,\n redeemScript,\n witnessScript,\n) {\n const isP2SH = (0, psbtutils_1.isP2SHScript)(script);\n const isP2SHP2WSH =\n isP2SH && redeemScript && (0, psbtutils_1.isP2WSHScript)(redeemScript);\n const isP2WSH = (0, psbtutils_1.isP2WSHScript)(script);\n if (isP2SH && redeemScript === undefined)\n throw new Error('scriptPubkey is P2SH but redeemScript missing');\n if ((isP2WSH || isP2SHP2WSH) && witnessScript === undefined)\n throw new Error(\n 'scriptPubkey or redeemScript is P2WSH but witnessScript missing',\n );\n let meaningfulScript;\n if (isP2SHP2WSH) {\n meaningfulScript = witnessScript;\n checkRedeemScript(index, script, redeemScript, ioType);\n checkWitnessScript(index, redeemScript, witnessScript, ioType);\n checkInvalidP2WSH(meaningfulScript);\n } else if (isP2WSH) {\n meaningfulScript = witnessScript;\n checkWitnessScript(index, script, witnessScript, ioType);\n checkInvalidP2WSH(meaningfulScript);\n } else if (isP2SH) {\n meaningfulScript = redeemScript;\n checkRedeemScript(index, script, redeemScript, ioType);\n } else {\n meaningfulScript = script;\n }\n return {\n meaningfulScript,\n type: isP2SHP2WSH\n ? 'p2sh-p2wsh'\n : isP2SH\n ? 'p2sh'\n : isP2WSH\n ? 'p2wsh'\n : 'raw',\n };\n}\nfunction checkInvalidP2WSH(script) {\n if (\n (0, psbtutils_1.isP2WPKH)(script) ||\n (0, psbtutils_1.isP2SHScript)(script)\n ) {\n throw new Error('P2WPKH or P2SH can not be contained within P2WSH');\n }\n}\nfunction classifyScript(script) {\n if ((0, psbtutils_1.isP2WPKH)(script)) return 'witnesspubkeyhash';\n if ((0, psbtutils_1.isP2PKH)(script)) return 'pubkeyhash';\n if ((0, psbtutils_1.isP2MS)(script)) return 'multisig';\n if ((0, psbtutils_1.isP2PK)(script)) return 'pubkey';\n return 'nonstandard';\n}\nfunction range(n) {\n return [...Array(n).keys()];\n}\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nexports.checkTaprootInputForSigs =\n exports.tapTreeFromList =\n exports.tapTreeToList =\n exports.tweakInternalPubKey =\n exports.checkTaprootOutputFields =\n exports.checkTaprootInputFields =\n exports.isTaprootOutput =\n exports.isTaprootInput =\n exports.serializeTaprootSignature =\n exports.tapScriptFinalizer =\n exports.toXOnly =\n void 0;\nconst types_1 = require('../types');\nconst transaction_1 = require('../transaction');\nconst psbtutils_1 = require('./psbtutils');\nconst bip341_1 = require('../payments/bip341');\nconst payments_1 = require('../payments');\nconst psbtutils_2 = require('./psbtutils');\nconst toXOnly = pubKey => (pubKey.length === 32 ? pubKey : pubKey.slice(1, 33));\nexports.toXOnly = toXOnly;\n/**\n * Default tapscript finalizer. It searches for the `tapLeafHashToFinalize` if provided.\n * Otherwise it will search for the tapleaf that has at least one signature and has the shortest path.\n * @param inputIndex the position of the PSBT input.\n * @param input the PSBT input.\n * @param tapLeafHashToFinalize optional, if provided the finalizer will search for a tapleaf that has this hash\n * and will try to build the finalScriptWitness.\n * @returns the finalScriptWitness or throws an exception if no tapleaf found.\n */\nfunction tapScriptFinalizer(inputIndex, input, tapLeafHashToFinalize) {\n const tapLeaf = findTapLeafToFinalize(\n input,\n inputIndex,\n tapLeafHashToFinalize,\n );\n try {\n const sigs = sortSignatures(input, tapLeaf);\n const witness = sigs.concat(tapLeaf.script).concat(tapLeaf.controlBlock);\n return {\n finalScriptWitness: (0, psbtutils_1.witnessStackToScriptWitness)(witness),\n };\n } catch (err) {\n throw new Error(`Can not finalize taproot input #${inputIndex}: ${err}`);\n }\n}\nexports.tapScriptFinalizer = tapScriptFinalizer;\nfunction serializeTaprootSignature(sig, sighashType) {\n const sighashTypeByte = sighashType\n ? Buffer.from([sighashType])\n : Buffer.from([]);\n return Buffer.concat([sig, sighashTypeByte]);\n}\nexports.serializeTaprootSignature = serializeTaprootSignature;\nfunction isTaprootInput(input) {\n return (\n input &&\n !!(\n input.tapInternalKey ||\n input.tapMerkleRoot ||\n (input.tapLeafScript && input.tapLeafScript.length) ||\n (input.tapBip32Derivation && input.tapBip32Derivation.length) ||\n (input.witnessUtxo && (0, psbtutils_1.isP2TR)(input.witnessUtxo.script))\n )\n );\n}\nexports.isTaprootInput = isTaprootInput;\nfunction isTaprootOutput(output, script) {\n return (\n output &&\n !!(\n output.tapInternalKey ||\n output.tapTree ||\n (output.tapBip32Derivation && output.tapBip32Derivation.length) ||\n (script && (0, psbtutils_1.isP2TR)(script))\n )\n );\n}\nexports.isTaprootOutput = isTaprootOutput;\nfunction checkTaprootInputFields(inputData, newInputData, action) {\n checkMixedTaprootAndNonTaprootInputFields(inputData, newInputData, action);\n checkIfTapLeafInTree(inputData, newInputData, action);\n}\nexports.checkTaprootInputFields = checkTaprootInputFields;\nfunction checkTaprootOutputFields(outputData, newOutputData, action) {\n checkMixedTaprootAndNonTaprootOutputFields(outputData, newOutputData, action);\n checkTaprootScriptPubkey(outputData, newOutputData);\n}\nexports.checkTaprootOutputFields = checkTaprootOutputFields;\nfunction checkTaprootScriptPubkey(outputData, newOutputData) {\n if (!newOutputData.tapTree && !newOutputData.tapInternalKey) return;\n const tapInternalKey =\n newOutputData.tapInternalKey || outputData.tapInternalKey;\n const tapTree = newOutputData.tapTree || outputData.tapTree;\n if (tapInternalKey) {\n const { script: scriptPubkey } = outputData;\n const script = getTaprootScripPubkey(tapInternalKey, tapTree);\n if (scriptPubkey && !scriptPubkey.equals(script))\n throw new Error('Error adding output. Script or address missmatch.');\n }\n}\nfunction getTaprootScripPubkey(tapInternalKey, tapTree) {\n const scriptTree = tapTree && tapTreeFromList(tapTree.leaves);\n const { output } = (0, payments_1.p2tr)({\n internalPubkey: tapInternalKey,\n scriptTree,\n });\n return output;\n}\nfunction tweakInternalPubKey(inputIndex, input) {\n const tapInternalKey = input.tapInternalKey;\n const outputKey =\n tapInternalKey &&\n (0, bip341_1.tweakKey)(tapInternalKey, input.tapMerkleRoot);\n if (!outputKey)\n throw new Error(\n `Cannot tweak tap internal key for input #${inputIndex}. Public key: ${\n tapInternalKey && tapInternalKey.toString('hex')\n }`,\n );\n return outputKey.x;\n}\nexports.tweakInternalPubKey = tweakInternalPubKey;\n/**\n * Convert a binary tree to a BIP371 type list. Each element of the list is (according to BIP371):\n * One or more tuples representing the depth, leaf version, and script for a leaf in the Taproot tree,\n * allowing the entire tree to be reconstructed. The tuples must be in depth first search order so that\n * the tree is correctly reconstructed.\n * @param tree the binary tap tree\n * @returns a list of BIP 371 tapleaves\n */\nfunction tapTreeToList(tree) {\n if (!(0, types_1.isTaptree)(tree))\n throw new Error(\n 'Cannot convert taptree to tapleaf list. Expecting a tapree structure.',\n );\n return _tapTreeToList(tree);\n}\nexports.tapTreeToList = tapTreeToList;\n/**\n * Convert a BIP371 TapLeaf list to a TapTree (binary).\n * @param leaves a list of tapleaves where each element of the list is (according to BIP371):\n * One or more tuples representing the depth, leaf version, and script for a leaf in the Taproot tree,\n * allowing the entire tree to be reconstructed. The tuples must be in depth first search order so that\n * the tree is correctly reconstructed.\n * @returns the corresponding taptree, or throws an exception if the tree cannot be reconstructed\n */\nfunction tapTreeFromList(leaves = []) {\n if (leaves.length === 1 && leaves[0].depth === 0)\n return {\n output: leaves[0].script,\n version: leaves[0].leafVersion,\n };\n return instertLeavesInTree(leaves);\n}\nexports.tapTreeFromList = tapTreeFromList;\nfunction checkTaprootInputForSigs(input, action) {\n const sigs = extractTaprootSigs(input);\n return sigs.some(sig =>\n (0, psbtutils_2.signatureBlocksAction)(sig, decodeSchnorrSignature, action),\n );\n}\nexports.checkTaprootInputForSigs = checkTaprootInputForSigs;\nfunction decodeSchnorrSignature(signature) {\n return {\n signature: signature.slice(0, 64),\n hashType:\n signature.slice(64)[0] || transaction_1.Transaction.SIGHASH_DEFAULT,\n };\n}\nfunction extractTaprootSigs(input) {\n const sigs = [];\n if (input.tapKeySig) sigs.push(input.tapKeySig);\n if (input.tapScriptSig)\n sigs.push(...input.tapScriptSig.map(s => s.signature));\n if (!sigs.length) {\n const finalTapKeySig = getTapKeySigFromWithness(input.finalScriptWitness);\n if (finalTapKeySig) sigs.push(finalTapKeySig);\n }\n return sigs;\n}\nfunction getTapKeySigFromWithness(finalScriptWitness) {\n if (!finalScriptWitness) return;\n const witness = finalScriptWitness.slice(2);\n // todo: add schnorr signature validation\n if (witness.length === 64 || witness.length === 65) return witness;\n}\nfunction _tapTreeToList(tree, leaves = [], depth = 0) {\n if (depth > bip341_1.MAX_TAPTREE_DEPTH)\n throw new Error('Max taptree depth exceeded.');\n if (!tree) return [];\n if ((0, types_1.isTapleaf)(tree)) {\n leaves.push({\n depth,\n leafVersion: tree.version || bip341_1.LEAF_VERSION_TAPSCRIPT,\n script: tree.output,\n });\n return leaves;\n }\n if (tree[0]) _tapTreeToList(tree[0], leaves, depth + 1);\n if (tree[1]) _tapTreeToList(tree[1], leaves, depth + 1);\n return leaves;\n}\nfunction instertLeavesInTree(leaves) {\n let tree;\n for (const leaf of leaves) {\n tree = instertLeafInTree(leaf, tree);\n if (!tree) throw new Error(`No room left to insert tapleaf in tree`);\n }\n return tree;\n}\nfunction instertLeafInTree(leaf, tree, depth = 0) {\n if (depth > bip341_1.MAX_TAPTREE_DEPTH)\n throw new Error('Max taptree depth exceeded.');\n if (leaf.depth === depth) {\n if (!tree)\n return {\n output: leaf.script,\n version: leaf.leafVersion,\n };\n return;\n }\n if ((0, types_1.isTapleaf)(tree)) return;\n const leftSide = instertLeafInTree(leaf, tree && tree[0], depth + 1);\n if (leftSide) return [leftSide, tree && tree[1]];\n const rightSide = instertLeafInTree(leaf, tree && tree[1], depth + 1);\n if (rightSide) return [tree && tree[0], rightSide];\n}\nfunction checkMixedTaprootAndNonTaprootInputFields(\n inputData,\n newInputData,\n action,\n) {\n const isBadTaprootUpdate =\n isTaprootInput(inputData) && hasNonTaprootFields(newInputData);\n const isBadNonTaprootUpdate =\n hasNonTaprootFields(inputData) && isTaprootInput(newInputData);\n const hasMixedFields =\n inputData === newInputData &&\n isTaprootInput(newInputData) &&\n hasNonTaprootFields(newInputData); // todo: bad? use !===\n if (isBadTaprootUpdate || isBadNonTaprootUpdate || hasMixedFields)\n throw new Error(\n `Invalid arguments for Psbt.${action}. ` +\n `Cannot use both taproot and non-taproot fields.`,\n );\n}\nfunction checkMixedTaprootAndNonTaprootOutputFields(\n inputData,\n newInputData,\n action,\n) {\n const isBadTaprootUpdate =\n isTaprootOutput(inputData) && hasNonTaprootFields(newInputData);\n const isBadNonTaprootUpdate =\n hasNonTaprootFields(inputData) && isTaprootOutput(newInputData);\n const hasMixedFields =\n inputData === newInputData &&\n isTaprootOutput(newInputData) &&\n hasNonTaprootFields(newInputData);\n if (isBadTaprootUpdate || isBadNonTaprootUpdate || hasMixedFields)\n throw new Error(\n `Invalid arguments for Psbt.${action}. ` +\n `Cannot use both taproot and non-taproot fields.`,\n );\n}\nfunction checkIfTapLeafInTree(inputData, newInputData, action) {\n if (newInputData.tapMerkleRoot) {\n const newLeafsInTree = (newInputData.tapLeafScript || []).every(l =>\n isTapLeafInTree(l, newInputData.tapMerkleRoot),\n );\n const oldLeafsInTree = (inputData.tapLeafScript || []).every(l =>\n isTapLeafInTree(l, newInputData.tapMerkleRoot),\n );\n if (!newLeafsInTree || !oldLeafsInTree)\n throw new Error(\n `Invalid arguments for Psbt.${action}. Tapleaf not part of taptree.`,\n );\n } else if (inputData.tapMerkleRoot) {\n const newLeafsInTree = (newInputData.tapLeafScript || []).every(l =>\n isTapLeafInTree(l, inputData.tapMerkleRoot),\n );\n if (!newLeafsInTree)\n throw new Error(\n `Invalid arguments for Psbt.${action}. Tapleaf not part of taptree.`,\n );\n }\n}\nfunction isTapLeafInTree(tapLeaf, merkleRoot) {\n if (!merkleRoot) return true;\n const leafHash = (0, bip341_1.tapleafHash)({\n output: tapLeaf.script,\n version: tapLeaf.leafVersion,\n });\n const rootHash = (0, bip341_1.rootHashFromPath)(\n tapLeaf.controlBlock,\n leafHash,\n );\n return rootHash.equals(merkleRoot);\n}\nfunction sortSignatures(input, tapLeaf) {\n const leafHash = (0, bip341_1.tapleafHash)({\n output: tapLeaf.script,\n version: tapLeaf.leafVersion,\n });\n return (input.tapScriptSig || [])\n .filter(tss => tss.leafHash.equals(leafHash))\n .map(tss => addPubkeyPositionInScript(tapLeaf.script, tss))\n .sort((t1, t2) => t2.positionInScript - t1.positionInScript)\n .map(t => t.signature);\n}\nfunction addPubkeyPositionInScript(script, tss) {\n return Object.assign(\n {\n positionInScript: (0, psbtutils_1.pubkeyPositionInScript)(\n tss.pubkey,\n script,\n ),\n },\n tss,\n );\n}\n/**\n * Find tapleaf by hash, or get the signed tapleaf with the shortest path.\n */\nfunction findTapLeafToFinalize(input, inputIndex, leafHashToFinalize) {\n if (!input.tapScriptSig || !input.tapScriptSig.length)\n throw new Error(\n `Can not finalize taproot input #${inputIndex}. No tapleaf script signature provided.`,\n );\n const tapLeaf = (input.tapLeafScript || [])\n .sort((a, b) => a.controlBlock.length - b.controlBlock.length)\n .find(leaf =>\n canFinalizeLeaf(leaf, input.tapScriptSig, leafHashToFinalize),\n );\n if (!tapLeaf)\n throw new Error(\n `Can not finalize taproot input #${inputIndex}. Signature for tapleaf script not found.`,\n );\n return tapLeaf;\n}\nfunction canFinalizeLeaf(leaf, tapScriptSig, hash) {\n const leafHash = (0, bip341_1.tapleafHash)({\n output: leaf.script,\n version: leaf.leafVersion,\n });\n const whiteListedHash = !hash || hash.equals(leafHash);\n return (\n whiteListedHash &&\n tapScriptSig.find(tss => tss.leafHash.equals(leafHash)) !== undefined\n );\n}\nfunction hasNonTaprootFields(io) {\n return (\n io &&\n !!(\n io.redeemScript ||\n io.witnessScript ||\n (io.bip32Derivation && io.bip32Derivation.length)\n )\n );\n}\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nexports.signatureBlocksAction =\n exports.checkInputForSig =\n exports.pubkeyInScript =\n exports.pubkeyPositionInScript =\n exports.witnessStackToScriptWitness =\n exports.isP2TR =\n exports.isP2SHScript =\n exports.isP2WSHScript =\n exports.isP2WPKH =\n exports.isP2PKH =\n exports.isP2PK =\n exports.isP2MS =\n void 0;\nconst varuint = require('bip174/src/lib/converter/varint');\nconst bscript = require('../script');\nconst transaction_1 = require('../transaction');\nconst crypto_1 = require('../crypto');\nconst payments = require('../payments');\nfunction isPaymentFactory(payment) {\n return script => {\n try {\n payment({ output: script });\n return true;\n } catch (err) {\n return false;\n }\n };\n}\nexports.isP2MS = isPaymentFactory(payments.p2ms);\nexports.isP2PK = isPaymentFactory(payments.p2pk);\nexports.isP2PKH = isPaymentFactory(payments.p2pkh);\nexports.isP2WPKH = isPaymentFactory(payments.p2wpkh);\nexports.isP2WSHScript = isPaymentFactory(payments.p2wsh);\nexports.isP2SHScript = isPaymentFactory(payments.p2sh);\nexports.isP2TR = isPaymentFactory(payments.p2tr);\nfunction witnessStackToScriptWitness(witness) {\n let buffer = Buffer.allocUnsafe(0);\n function writeSlice(slice) {\n buffer = Buffer.concat([buffer, Buffer.from(slice)]);\n }\n function writeVarInt(i) {\n const currentLen = buffer.length;\n const varintLen = varuint.encodingLength(i);\n buffer = Buffer.concat([buffer, Buffer.allocUnsafe(varintLen)]);\n varuint.encode(i, buffer, currentLen);\n }\n function writeVarSlice(slice) {\n writeVarInt(slice.length);\n writeSlice(slice);\n }\n function writeVector(vector) {\n writeVarInt(vector.length);\n vector.forEach(writeVarSlice);\n }\n writeVector(witness);\n return buffer;\n}\nexports.witnessStackToScriptWitness = witnessStackToScriptWitness;\nfunction pubkeyPositionInScript(pubkey, script) {\n const pubkeyHash = (0, crypto_1.hash160)(pubkey);\n const pubkeyXOnly = pubkey.slice(1, 33); // slice before calling?\n const decompiled = bscript.decompile(script);\n if (decompiled === null) throw new Error('Unknown script error');\n return decompiled.findIndex(element => {\n if (typeof element === 'number') return false;\n return (\n element.equals(pubkey) ||\n element.equals(pubkeyHash) ||\n element.equals(pubkeyXOnly)\n );\n });\n}\nexports.pubkeyPositionInScript = pubkeyPositionInScript;\nfunction pubkeyInScript(pubkey, script) {\n return pubkeyPositionInScript(pubkey, script) !== -1;\n}\nexports.pubkeyInScript = pubkeyInScript;\nfunction checkInputForSig(input, action) {\n const pSigs = extractPartialSigs(input);\n return pSigs.some(pSig =>\n signatureBlocksAction(pSig, bscript.signature.decode, action),\n );\n}\nexports.checkInputForSig = checkInputForSig;\nfunction signatureBlocksAction(signature, signatureDecodeFn, action) {\n const { hashType } = signatureDecodeFn(signature);\n const whitelist = [];\n const isAnyoneCanPay =\n hashType & transaction_1.Transaction.SIGHASH_ANYONECANPAY;\n if (isAnyoneCanPay) whitelist.push('addInput');\n const hashMod = hashType & 0x1f;\n switch (hashMod) {\n case transaction_1.Transaction.SIGHASH_ALL:\n break;\n case transaction_1.Transaction.SIGHASH_SINGLE:\n case transaction_1.Transaction.SIGHASH_NONE:\n whitelist.push('addOutput');\n whitelist.push('setInputSequence');\n break;\n }\n if (whitelist.indexOf(action) === -1) {\n return true;\n }\n return false;\n}\nexports.signatureBlocksAction = signatureBlocksAction;\nfunction extractPartialSigs(input) {\n let pSigs = [];\n if ((input.partialSig || []).length === 0) {\n if (!input.finalScriptSig && !input.finalScriptWitness) return [];\n pSigs = getPsigsFromInputFinalScripts(input);\n } else {\n pSigs = input.partialSig;\n }\n return pSigs.map(p => p.signature);\n}\nfunction getPsigsFromInputFinalScripts(input) {\n const scriptItems = !input.finalScriptSig\n ? []\n : bscript.decompile(input.finalScriptSig) || [];\n const witnessItems = !input.finalScriptWitness\n ? []\n : bscript.decompile(input.finalScriptWitness) || [];\n return scriptItems\n .concat(witnessItems)\n .filter(item => {\n return Buffer.isBuffer(item) && bscript.isCanonicalScriptSignature(item);\n })\n .map(sig => ({ signature: sig }));\n}\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nexports.decode = exports.encode = exports.encodingLength = void 0;\nconst ops_1 = require('./ops');\nfunction encodingLength(i) {\n return i < ops_1.OPS.OP_PUSHDATA1 ? 1 : i <= 0xff ? 2 : i <= 0xffff ? 3 : 5;\n}\nexports.encodingLength = encodingLength;\nfunction encode(buffer, num, offset) {\n const size = encodingLength(num);\n // ~6 bit\n if (size === 1) {\n buffer.writeUInt8(num, offset);\n // 8 bit\n } else if (size === 2) {\n buffer.writeUInt8(ops_1.OPS.OP_PUSHDATA1, offset);\n buffer.writeUInt8(num, offset + 1);\n // 16 bit\n } else if (size === 3) {\n buffer.writeUInt8(ops_1.OPS.OP_PUSHDATA2, offset);\n buffer.writeUInt16LE(num, offset + 1);\n // 32 bit\n } else {\n buffer.writeUInt8(ops_1.OPS.OP_PUSHDATA4, offset);\n buffer.writeUInt32LE(num, offset + 1);\n }\n return size;\n}\nexports.encode = encode;\nfunction decode(buffer, offset) {\n const opcode = buffer.readUInt8(offset);\n let num;\n let size;\n // ~6 bit\n if (opcode < ops_1.OPS.OP_PUSHDATA1) {\n num = opcode;\n size = 1;\n // 8 bit\n } else if (opcode === ops_1.OPS.OP_PUSHDATA1) {\n if (offset + 2 > buffer.length) return null;\n num = buffer.readUInt8(offset + 1);\n size = 2;\n // 16 bit\n } else if (opcode === ops_1.OPS.OP_PUSHDATA2) {\n if (offset + 3 > buffer.length) return null;\n num = buffer.readUInt16LE(offset + 1);\n size = 3;\n // 32 bit\n } else {\n if (offset + 5 > buffer.length) return null;\n if (opcode !== ops_1.OPS.OP_PUSHDATA4) throw new Error('Unexpected opcode');\n num = buffer.readUInt32LE(offset + 1);\n size = 5;\n }\n return {\n opcode,\n number: num,\n size,\n };\n}\nexports.decode = decode;\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nexports.signature =\n exports.number =\n exports.isCanonicalScriptSignature =\n exports.isDefinedHashType =\n exports.isCanonicalPubKey =\n exports.toStack =\n exports.fromASM =\n exports.toASM =\n exports.decompile =\n exports.compile =\n exports.countNonPushOnlyOPs =\n exports.isPushOnly =\n exports.OPS =\n void 0;\nconst bip66 = require('./bip66');\nconst ops_1 = require('./ops');\nObject.defineProperty(exports, 'OPS', {\n enumerable: true,\n get: function () {\n return ops_1.OPS;\n },\n});\nconst pushdata = require('./push_data');\nconst scriptNumber = require('./script_number');\nconst scriptSignature = require('./script_signature');\nconst types = require('./types');\nconst { typeforce } = types;\nconst OP_INT_BASE = ops_1.OPS.OP_RESERVED; // OP_1 - 1\nfunction isOPInt(value) {\n return (\n types.Number(value) &&\n (value === ops_1.OPS.OP_0 ||\n (value >= ops_1.OPS.OP_1 && value <= ops_1.OPS.OP_16) ||\n value === ops_1.OPS.OP_1NEGATE)\n );\n}\nfunction isPushOnlyChunk(value) {\n return types.Buffer(value) || isOPInt(value);\n}\nfunction isPushOnly(value) {\n return types.Array(value) && value.every(isPushOnlyChunk);\n}\nexports.isPushOnly = isPushOnly;\nfunction countNonPushOnlyOPs(value) {\n return value.length - value.filter(isPushOnlyChunk).length;\n}\nexports.countNonPushOnlyOPs = countNonPushOnlyOPs;\nfunction asMinimalOP(buffer) {\n if (buffer.length === 0) return ops_1.OPS.OP_0;\n if (buffer.length !== 1) return;\n if (buffer[0] >= 1 && buffer[0] <= 16) return OP_INT_BASE + buffer[0];\n if (buffer[0] === 0x81) return ops_1.OPS.OP_1NEGATE;\n}\nfunction chunksIsBuffer(buf) {\n return Buffer.isBuffer(buf);\n}\nfunction chunksIsArray(buf) {\n return types.Array(buf);\n}\nfunction singleChunkIsBuffer(buf) {\n return Buffer.isBuffer(buf);\n}\nfunction compile(chunks) {\n // TODO: remove me\n if (chunksIsBuffer(chunks)) return chunks;\n typeforce(types.Array, chunks);\n const bufferSize = chunks.reduce((accum, chunk) => {\n // data chunk\n if (singleChunkIsBuffer(chunk)) {\n // adhere to BIP62.3, minimal push policy\n if (chunk.length === 1 && asMinimalOP(chunk) !== undefined) {\n return accum + 1;\n }\n return accum + pushdata.encodingLength(chunk.length) + chunk.length;\n }\n // opcode\n return accum + 1;\n }, 0.0);\n const buffer = Buffer.allocUnsafe(bufferSize);\n let offset = 0;\n chunks.forEach(chunk => {\n // data chunk\n if (singleChunkIsBuffer(chunk)) {\n // adhere to BIP62.3, minimal push policy\n const opcode = asMinimalOP(chunk);\n if (opcode !== undefined) {\n buffer.writeUInt8(opcode, offset);\n offset += 1;\n return;\n }\n offset += pushdata.encode(buffer, chunk.length, offset);\n chunk.copy(buffer, offset);\n offset += chunk.length;\n // opcode\n } else {\n buffer.writeUInt8(chunk, offset);\n offset += 1;\n }\n });\n if (offset !== buffer.length) throw new Error('Could not decode chunks');\n return buffer;\n}\nexports.compile = compile;\nfunction decompile(buffer) {\n // TODO: remove me\n if (chunksIsArray(buffer)) return buffer;\n typeforce(types.Buffer, buffer);\n const chunks = [];\n let i = 0;\n while (i < buffer.length) {\n const opcode = buffer[i];\n // data chunk\n if (opcode > ops_1.OPS.OP_0 && opcode <= ops_1.OPS.OP_PUSHDATA4) {\n const d = pushdata.decode(buffer, i);\n // did reading a pushDataInt fail?\n if (d === null) return null;\n i += d.size;\n // attempt to read too much data?\n if (i + d.number > buffer.length) return null;\n const data = buffer.slice(i, i + d.number);\n i += d.number;\n // decompile minimally\n const op = asMinimalOP(data);\n if (op !== undefined) {\n chunks.push(op);\n } else {\n chunks.push(data);\n }\n // opcode\n } else {\n chunks.push(opcode);\n i += 1;\n }\n }\n return chunks;\n}\nexports.decompile = decompile;\nfunction toASM(chunks) {\n if (chunksIsBuffer(chunks)) {\n chunks = decompile(chunks);\n }\n return chunks\n .map(chunk => {\n // data?\n if (singleChunkIsBuffer(chunk)) {\n const op = asMinimalOP(chunk);\n if (op === undefined) return chunk.toString('hex');\n chunk = op;\n }\n // opcode!\n return ops_1.REVERSE_OPS[chunk];\n })\n .join(' ');\n}\nexports.toASM = toASM;\nfunction fromASM(asm) {\n typeforce(types.String, asm);\n return compile(\n asm.split(' ').map(chunkStr => {\n // opcode?\n if (ops_1.OPS[chunkStr] !== undefined) return ops_1.OPS[chunkStr];\n typeforce(types.Hex, chunkStr);\n // data!\n return Buffer.from(chunkStr, 'hex');\n }),\n );\n}\nexports.fromASM = fromASM;\nfunction toStack(chunks) {\n chunks = decompile(chunks);\n typeforce(isPushOnly, chunks);\n return chunks.map(op => {\n if (singleChunkIsBuffer(op)) return op;\n if (op === ops_1.OPS.OP_0) return Buffer.allocUnsafe(0);\n return scriptNumber.encode(op - OP_INT_BASE);\n });\n}\nexports.toStack = toStack;\nfunction isCanonicalPubKey(buffer) {\n return types.isPoint(buffer);\n}\nexports.isCanonicalPubKey = isCanonicalPubKey;\nfunction isDefinedHashType(hashType) {\n const hashTypeMod = hashType & ~0x80;\n // return hashTypeMod > SIGHASH_ALL && hashTypeMod < SIGHASH_SINGLE\n return hashTypeMod > 0x00 && hashTypeMod < 0x04;\n}\nexports.isDefinedHashType = isDefinedHashType;\nfunction isCanonicalScriptSignature(buffer) {\n if (!Buffer.isBuffer(buffer)) return false;\n if (!isDefinedHashType(buffer[buffer.length - 1])) return false;\n return bip66.check(buffer.slice(0, -1));\n}\nexports.isCanonicalScriptSignature = isCanonicalScriptSignature;\nexports.number = scriptNumber;\nexports.signature = scriptSignature;\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nexports.encode = exports.decode = void 0;\nfunction decode(buffer, maxLength, minimal) {\n maxLength = maxLength || 4;\n minimal = minimal === undefined ? true : minimal;\n const length = buffer.length;\n if (length === 0) return 0;\n if (length > maxLength) throw new TypeError('Script number overflow');\n if (minimal) {\n if ((buffer[length - 1] & 0x7f) === 0) {\n if (length <= 1 || (buffer[length - 2] & 0x80) === 0)\n throw new Error('Non-minimally encoded script number');\n }\n }\n // 40-bit\n if (length === 5) {\n const a = buffer.readUInt32LE(0);\n const b = buffer.readUInt8(4);\n if (b & 0x80) return -((b & ~0x80) * 0x100000000 + a);\n return b * 0x100000000 + a;\n }\n // 32-bit / 24-bit / 16-bit / 8-bit\n let result = 0;\n for (let i = 0; i < length; ++i) {\n result |= buffer[i] << (8 * i);\n }\n if (buffer[length - 1] & 0x80)\n return -(result & ~(0x80 << (8 * (length - 1))));\n return result;\n}\nexports.decode = decode;\nfunction scriptNumSize(i) {\n return i > 0x7fffffff\n ? 5\n : i > 0x7fffff\n ? 4\n : i > 0x7fff\n ? 3\n : i > 0x7f\n ? 2\n : i > 0x00\n ? 1\n : 0;\n}\nfunction encode(_number) {\n let value = Math.abs(_number);\n const size = scriptNumSize(value);\n const buffer = Buffer.allocUnsafe(size);\n const negative = _number < 0;\n for (let i = 0; i < size; ++i) {\n buffer.writeUInt8(value & 0xff, i);\n value >>= 8;\n }\n if (buffer[size - 1] & 0x80) {\n buffer.writeUInt8(negative ? 0x80 : 0x00, size - 1);\n } else if (negative) {\n buffer[size - 1] |= 0x80;\n }\n return buffer;\n}\nexports.encode = encode;\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nexports.encode = exports.decode = void 0;\nconst bip66 = require('./bip66');\nconst types = require('./types');\nconst { typeforce } = types;\nconst ZERO = Buffer.alloc(1, 0);\nfunction toDER(x) {\n let i = 0;\n while (x[i] === 0) ++i;\n if (i === x.length) return ZERO;\n x = x.slice(i);\n if (x[0] & 0x80) return Buffer.concat([ZERO, x], 1 + x.length);\n return x;\n}\nfunction fromDER(x) {\n if (x[0] === 0x00) x = x.slice(1);\n const buffer = Buffer.alloc(32, 0);\n const bstart = Math.max(0, 32 - x.length);\n x.copy(buffer, bstart);\n return buffer;\n}\n// BIP62: 1 byte hashType flag (only 0x01, 0x02, 0x03, 0x81, 0x82 and 0x83 are allowed)\nfunction decode(buffer) {\n const hashType = buffer.readUInt8(buffer.length - 1);\n const hashTypeMod = hashType & ~0x80;\n if (hashTypeMod <= 0 || hashTypeMod >= 4)\n throw new Error('Invalid hashType ' + hashType);\n const decoded = bip66.decode(buffer.slice(0, -1));\n const r = fromDER(decoded.r);\n const s = fromDER(decoded.s);\n const signature = Buffer.concat([r, s], 64);\n return { signature, hashType };\n}\nexports.decode = decode;\nfunction encode(signature, hashType) {\n typeforce(\n {\n signature: types.BufferN(64),\n hashType: types.UInt8,\n },\n { signature, hashType },\n );\n const hashTypeMod = hashType & ~0x80;\n if (hashTypeMod <= 0 || hashTypeMod >= 4)\n throw new Error('Invalid hashType ' + hashType);\n const hashTypeBuffer = Buffer.allocUnsafe(1);\n hashTypeBuffer.writeUInt8(hashType, 0);\n const r = toDER(signature.slice(0, 32));\n const s = toDER(signature.slice(32, 64));\n return Buffer.concat([bip66.encode(r, s), hashTypeBuffer]);\n}\nexports.encode = encode;\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nexports.Transaction = void 0;\nconst bufferutils_1 = require('./bufferutils');\nconst bcrypto = require('./crypto');\nconst bscript = require('./script');\nconst script_1 = require('./script');\nconst types = require('./types');\nconst { typeforce } = types;\nfunction varSliceSize(someScript) {\n const length = someScript.length;\n return bufferutils_1.varuint.encodingLength(length) + length;\n}\nfunction vectorSize(someVector) {\n const length = someVector.length;\n return (\n bufferutils_1.varuint.encodingLength(length) +\n someVector.reduce((sum, witness) => {\n return sum + varSliceSize(witness);\n }, 0)\n );\n}\nconst EMPTY_BUFFER = Buffer.allocUnsafe(0);\nconst EMPTY_WITNESS = [];\nconst ZERO = Buffer.from(\n '0000000000000000000000000000000000000000000000000000000000000000',\n 'hex',\n);\nconst ONE = Buffer.from(\n '0000000000000000000000000000000000000000000000000000000000000001',\n 'hex',\n);\nconst VALUE_UINT64_MAX = Buffer.from('ffffffffffffffff', 'hex');\nconst BLANK_OUTPUT = {\n script: EMPTY_BUFFER,\n valueBuffer: VALUE_UINT64_MAX,\n};\nfunction isOutput(out) {\n return out.value !== undefined;\n}\nclass Transaction {\n constructor() {\n this.version = 1;\n this.locktime = 0;\n this.ins = [];\n this.outs = [];\n }\n static fromBuffer(buffer, _NO_STRICT) {\n const bufferReader = new bufferutils_1.BufferReader(buffer);\n const tx = new Transaction();\n tx.version = bufferReader.readInt32();\n const marker = bufferReader.readUInt8();\n const flag = bufferReader.readUInt8();\n let hasWitnesses = false;\n if (\n marker === Transaction.ADVANCED_TRANSACTION_MARKER &&\n flag === Transaction.ADVANCED_TRANSACTION_FLAG\n ) {\n hasWitnesses = true;\n } else {\n bufferReader.offset -= 2;\n }\n const vinLen = bufferReader.readVarInt();\n for (let i = 0; i < vinLen; ++i) {\n tx.ins.push({\n hash: bufferReader.readSlice(32),\n index: bufferReader.readUInt32(),\n script: bufferReader.readVarSlice(),\n sequence: bufferReader.readUInt32(),\n witness: EMPTY_WITNESS,\n });\n }\n const voutLen = bufferReader.readVarInt();\n for (let i = 0; i < voutLen; ++i) {\n tx.outs.push({\n value: bufferReader.readUInt64(),\n script: bufferReader.readVarSlice(),\n });\n }\n if (hasWitnesses) {\n for (let i = 0; i < vinLen; ++i) {\n tx.ins[i].witness = bufferReader.readVector();\n }\n // was this pointless?\n if (!tx.hasWitnesses())\n throw new Error('Transaction has superfluous witness data');\n }\n tx.locktime = bufferReader.readUInt32();\n if (_NO_STRICT) return tx;\n if (bufferReader.offset !== buffer.length)\n throw new Error('Transaction has unexpected data');\n return tx;\n }\n static fromHex(hex) {\n return Transaction.fromBuffer(Buffer.from(hex, 'hex'), false);\n }\n static isCoinbaseHash(buffer) {\n typeforce(types.Hash256bit, buffer);\n for (let i = 0; i < 32; ++i) {\n if (buffer[i] !== 0) return false;\n }\n return true;\n }\n isCoinbase() {\n return (\n this.ins.length === 1 && Transaction.isCoinbaseHash(this.ins[0].hash)\n );\n }\n addInput(hash, index, sequence, scriptSig) {\n typeforce(\n types.tuple(\n types.Hash256bit,\n types.UInt32,\n types.maybe(types.UInt32),\n types.maybe(types.Buffer),\n ),\n arguments,\n );\n if (types.Null(sequence)) {\n sequence = Transaction.DEFAULT_SEQUENCE;\n }\n // Add the input and return the input's index\n return (\n this.ins.push({\n hash,\n index,\n script: scriptSig || EMPTY_BUFFER,\n sequence: sequence,\n witness: EMPTY_WITNESS,\n }) - 1\n );\n }\n addOutput(scriptPubKey, value) {\n typeforce(types.tuple(types.Buffer, types.Satoshi), arguments);\n // Add the output and return the output's index\n return (\n this.outs.push({\n script: scriptPubKey,\n value,\n }) - 1\n );\n }\n hasWitnesses() {\n return this.ins.some(x => {\n return x.witness.length !== 0;\n });\n }\n weight() {\n const base = this.byteLength(false);\n const total = this.byteLength(true);\n return base * 3 + total;\n }\n virtualSize() {\n return Math.ceil(this.weight() / 4);\n }\n byteLength(_ALLOW_WITNESS = true) {\n const hasWitnesses = _ALLOW_WITNESS && this.hasWitnesses();\n return (\n (hasWitnesses ? 10 : 8) +\n bufferutils_1.varuint.encodingLength(this.ins.length) +\n bufferutils_1.varuint.encodingLength(this.outs.length) +\n this.ins.reduce((sum, input) => {\n return sum + 40 + varSliceSize(input.script);\n }, 0) +\n this.outs.reduce((sum, output) => {\n return sum + 8 + varSliceSize(output.script);\n }, 0) +\n (hasWitnesses\n ? this.ins.reduce((sum, input) => {\n return sum + vectorSize(input.witness);\n }, 0)\n : 0)\n );\n }\n clone() {\n const newTx = new Transaction();\n newTx.version = this.version;\n newTx.locktime = this.locktime;\n newTx.ins = this.ins.map(txIn => {\n return {\n hash: txIn.hash,\n index: txIn.index,\n script: txIn.script,\n sequence: txIn.sequence,\n witness: txIn.witness,\n };\n });\n newTx.outs = this.outs.map(txOut => {\n return {\n script: txOut.script,\n value: txOut.value,\n };\n });\n return newTx;\n }\n /**\n * Hash transaction for signing a specific input.\n *\n * Bitcoin uses a different hash for each signed transaction input.\n * This method copies the transaction, makes the necessary changes based on the\n * hashType, and then hashes the result.\n * This hash can then be used to sign the provided transaction input.\n */\n hashForSignature(inIndex, prevOutScript, hashType) {\n typeforce(\n types.tuple(types.UInt32, types.Buffer, /* types.UInt8 */ types.Number),\n arguments,\n );\n // https://github.com/bitcoin/bitcoin/blob/master/src/test/sighash_tests.cpp#L29\n if (inIndex >= this.ins.length) return ONE;\n // ignore OP_CODESEPARATOR\n const ourScript = bscript.compile(\n bscript.decompile(prevOutScript).filter(x => {\n return x !== script_1.OPS.OP_CODESEPARATOR;\n }),\n );\n const txTmp = this.clone();\n // SIGHASH_NONE: ignore all outputs? (wildcard payee)\n if ((hashType & 0x1f) === Transaction.SIGHASH_NONE) {\n txTmp.outs = [];\n // ignore sequence numbers (except at inIndex)\n txTmp.ins.forEach((input, i) => {\n if (i === inIndex) return;\n input.sequence = 0;\n });\n // SIGHASH_SINGLE: ignore all outputs, except at the same index?\n } else if ((hashType & 0x1f) === Transaction.SIGHASH_SINGLE) {\n // https://github.com/bitcoin/bitcoin/blob/master/src/test/sighash_tests.cpp#L60\n if (inIndex >= this.outs.length) return ONE;\n // truncate outputs after\n txTmp.outs.length = inIndex + 1;\n // \"blank\" outputs before\n for (let i = 0; i < inIndex; i++) {\n txTmp.outs[i] = BLANK_OUTPUT;\n }\n // ignore sequence numbers (except at inIndex)\n txTmp.ins.forEach((input, y) => {\n if (y === inIndex) return;\n input.sequence = 0;\n });\n }\n // SIGHASH_ANYONECANPAY: ignore inputs entirely?\n if (hashType & Transaction.SIGHASH_ANYONECANPAY) {\n txTmp.ins = [txTmp.ins[inIndex]];\n txTmp.ins[0].script = ourScript;\n // SIGHASH_ALL: only ignore input scripts\n } else {\n // \"blank\" others input scripts\n txTmp.ins.forEach(input => {\n input.script = EMPTY_BUFFER;\n });\n txTmp.ins[inIndex].script = ourScript;\n }\n // serialize and hash\n const buffer = Buffer.allocUnsafe(txTmp.byteLength(false) + 4);\n buffer.writeInt32LE(hashType, buffer.length - 4);\n txTmp.__toBuffer(buffer, 0, false);\n return bcrypto.hash256(buffer);\n }\n hashForWitnessV1(inIndex, prevOutScripts, values, hashType, leafHash, annex) {\n // https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki#common-signature-message\n typeforce(\n types.tuple(\n types.UInt32,\n typeforce.arrayOf(types.Buffer),\n typeforce.arrayOf(types.Satoshi),\n types.UInt32,\n ),\n arguments,\n );\n if (\n values.length !== this.ins.length ||\n prevOutScripts.length !== this.ins.length\n ) {\n throw new Error('Must supply prevout script and value for all inputs');\n }\n const outputType =\n hashType === Transaction.SIGHASH_DEFAULT\n ? Transaction.SIGHASH_ALL\n : hashType & Transaction.SIGHASH_OUTPUT_MASK;\n const inputType = hashType & Transaction.SIGHASH_INPUT_MASK;\n const isAnyoneCanPay = inputType === Transaction.SIGHASH_ANYONECANPAY;\n const isNone = outputType === Transaction.SIGHASH_NONE;\n const isSingle = outputType === Transaction.SIGHASH_SINGLE;\n let hashPrevouts = EMPTY_BUFFER;\n let hashAmounts = EMPTY_BUFFER;\n let hashScriptPubKeys = EMPTY_BUFFER;\n let hashSequences = EMPTY_BUFFER;\n let hashOutputs = EMPTY_BUFFER;\n if (!isAnyoneCanPay) {\n let bufferWriter = bufferutils_1.BufferWriter.withCapacity(\n 36 * this.ins.length,\n );\n this.ins.forEach(txIn => {\n bufferWriter.writeSlice(txIn.hash);\n bufferWriter.writeUInt32(txIn.index);\n });\n hashPrevouts = bcrypto.sha256(bufferWriter.end());\n bufferWriter = bufferutils_1.BufferWriter.withCapacity(\n 8 * this.ins.length,\n );\n values.forEach(value => bufferWriter.writeUInt64(value));\n hashAmounts = bcrypto.sha256(bufferWriter.end());\n bufferWriter = bufferutils_1.BufferWriter.withCapacity(\n prevOutScripts.map(varSliceSize).reduce((a, b) => a + b),\n );\n prevOutScripts.forEach(prevOutScript =>\n bufferWriter.writeVarSlice(prevOutScript),\n );\n hashScriptPubKeys = bcrypto.sha256(bufferWriter.end());\n bufferWriter = bufferutils_1.BufferWriter.withCapacity(\n 4 * this.ins.length,\n );\n this.ins.forEach(txIn => bufferWriter.writeUInt32(txIn.sequence));\n hashSequences = bcrypto.sha256(bufferWriter.end());\n }\n if (!(isNone || isSingle)) {\n const txOutsSize = this.outs\n .map(output => 8 + varSliceSize(output.script))\n .reduce((a, b) => a + b);\n const bufferWriter = bufferutils_1.BufferWriter.withCapacity(txOutsSize);\n this.outs.forEach(out => {\n bufferWriter.writeUInt64(out.value);\n bufferWriter.writeVarSlice(out.script);\n });\n hashOutputs = bcrypto.sha256(bufferWriter.end());\n } else if (isSingle && inIndex < this.outs.length) {\n const output = this.outs[inIndex];\n const bufferWriter = bufferutils_1.BufferWriter.withCapacity(\n 8 + varSliceSize(output.script),\n );\n bufferWriter.writeUInt64(output.value);\n bufferWriter.writeVarSlice(output.script);\n hashOutputs = bcrypto.sha256(bufferWriter.end());\n }\n const spendType = (leafHash ? 2 : 0) + (annex ? 1 : 0);\n // Length calculation from:\n // https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki#cite_note-14\n // With extension from:\n // https://github.com/bitcoin/bips/blob/master/bip-0342.mediawiki#signature-validation\n const sigMsgSize =\n 174 -\n (isAnyoneCanPay ? 49 : 0) -\n (isNone ? 32 : 0) +\n (annex ? 32 : 0) +\n (leafHash ? 37 : 0);\n const sigMsgWriter = bufferutils_1.BufferWriter.withCapacity(sigMsgSize);\n sigMsgWriter.writeUInt8(hashType);\n // Transaction\n sigMsgWriter.writeInt32(this.version);\n sigMsgWriter.writeUInt32(this.locktime);\n sigMsgWriter.writeSlice(hashPrevouts);\n sigMsgWriter.writeSlice(hashAmounts);\n sigMsgWriter.writeSlice(hashScriptPubKeys);\n sigMsgWriter.writeSlice(hashSequences);\n if (!(isNone || isSingle)) {\n sigMsgWriter.writeSlice(hashOutputs);\n }\n // Input\n sigMsgWriter.writeUInt8(spendType);\n if (isAnyoneCanPay) {\n const input = this.ins[inIndex];\n sigMsgWriter.writeSlice(input.hash);\n sigMsgWriter.writeUInt32(input.index);\n sigMsgWriter.writeUInt64(values[inIndex]);\n sigMsgWriter.writeVarSlice(prevOutScripts[inIndex]);\n sigMsgWriter.writeUInt32(input.sequence);\n } else {\n sigMsgWriter.writeUInt32(inIndex);\n }\n if (annex) {\n const bufferWriter = bufferutils_1.BufferWriter.withCapacity(\n varSliceSize(annex),\n );\n bufferWriter.writeVarSlice(annex);\n sigMsgWriter.writeSlice(bcrypto.sha256(bufferWriter.end()));\n }\n // Output\n if (isSingle) {\n sigMsgWriter.writeSlice(hashOutputs);\n }\n // BIP342 extension\n if (leafHash) {\n sigMsgWriter.writeSlice(leafHash);\n sigMsgWriter.writeUInt8(0);\n sigMsgWriter.writeUInt32(0xffffffff);\n }\n // Extra zero byte because:\n // https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki#cite_note-19\n return bcrypto.taggedHash(\n 'TapSighash',\n Buffer.concat([Buffer.from([0x00]), sigMsgWriter.end()]),\n );\n }\n hashForWitnessV0(inIndex, prevOutScript, value, hashType) {\n typeforce(\n types.tuple(types.UInt32, types.Buffer, types.Satoshi, types.UInt32),\n arguments,\n );\n let tbuffer = Buffer.from([]);\n let bufferWriter;\n let hashOutputs = ZERO;\n let hashPrevouts = ZERO;\n let hashSequence = ZERO;\n if (!(hashType & Transaction.SIGHASH_ANYONECANPAY)) {\n tbuffer = Buffer.allocUnsafe(36 * this.ins.length);\n bufferWriter = new bufferutils_1.BufferWriter(tbuffer, 0);\n this.ins.forEach(txIn => {\n bufferWriter.writeSlice(txIn.hash);\n bufferWriter.writeUInt32(txIn.index);\n });\n hashPrevouts = bcrypto.hash256(tbuffer);\n }\n if (\n !(hashType & Transaction.SIGHASH_ANYONECANPAY) &&\n (hashType & 0x1f) !== Transaction.SIGHASH_SINGLE &&\n (hashType & 0x1f) !== Transaction.SIGHASH_NONE\n ) {\n tbuffer = Buffer.allocUnsafe(4 * this.ins.length);\n bufferWriter = new bufferutils_1.BufferWriter(tbuffer, 0);\n this.ins.forEach(txIn => {\n bufferWriter.writeUInt32(txIn.sequence);\n });\n hashSequence = bcrypto.hash256(tbuffer);\n }\n if (\n (hashType & 0x1f) !== Transaction.SIGHASH_SINGLE &&\n (hashType & 0x1f) !== Transaction.SIGHASH_NONE\n ) {\n const txOutsSize = this.outs.reduce((sum, output) => {\n return sum + 8 + varSliceSize(output.script);\n }, 0);\n tbuffer = Buffer.allocUnsafe(txOutsSize);\n bufferWriter = new bufferutils_1.BufferWriter(tbuffer, 0);\n this.outs.forEach(out => {\n bufferWriter.writeUInt64(out.value);\n bufferWriter.writeVarSlice(out.script);\n });\n hashOutputs = bcrypto.hash256(tbuffer);\n } else if (\n (hashType & 0x1f) === Transaction.SIGHASH_SINGLE &&\n inIndex < this.outs.length\n ) {\n const output = this.outs[inIndex];\n tbuffer = Buffer.allocUnsafe(8 + varSliceSize(output.script));\n bufferWriter = new bufferutils_1.BufferWriter(tbuffer, 0);\n bufferWriter.writeUInt64(output.value);\n bufferWriter.writeVarSlice(output.script);\n hashOutputs = bcrypto.hash256(tbuffer);\n }\n tbuffer = Buffer.allocUnsafe(156 + varSliceSize(prevOutScript));\n bufferWriter = new bufferutils_1.BufferWriter(tbuffer, 0);\n const input = this.ins[inIndex];\n bufferWriter.writeInt32(this.version);\n bufferWriter.writeSlice(hashPrevouts);\n bufferWriter.writeSlice(hashSequence);\n bufferWriter.writeSlice(input.hash);\n bufferWriter.writeUInt32(input.index);\n bufferWriter.writeVarSlice(prevOutScript);\n bufferWriter.writeUInt64(value);\n bufferWriter.writeUInt32(input.sequence);\n bufferWriter.writeSlice(hashOutputs);\n bufferWriter.writeUInt32(this.locktime);\n bufferWriter.writeUInt32(hashType);\n return bcrypto.hash256(tbuffer);\n }\n getHash(forWitness) {\n // wtxid for coinbase is always 32 bytes of 0x00\n if (forWitness && this.isCoinbase()) return Buffer.alloc(32, 0);\n return bcrypto.hash256(this.__toBuffer(undefined, undefined, forWitness));\n }\n getId() {\n // transaction hash's are displayed in reverse order\n return (0, bufferutils_1.reverseBuffer)(this.getHash(false)).toString(\n 'hex',\n );\n }\n toBuffer(buffer, initialOffset) {\n return this.__toBuffer(buffer, initialOffset, true);\n }\n toHex() {\n return this.toBuffer(undefined, undefined).toString('hex');\n }\n setInputScript(index, scriptSig) {\n typeforce(types.tuple(types.Number, types.Buffer), arguments);\n this.ins[index].script = scriptSig;\n }\n setWitness(index, witness) {\n typeforce(types.tuple(types.Number, [types.Buffer]), arguments);\n this.ins[index].witness = witness;\n }\n __toBuffer(buffer, initialOffset, _ALLOW_WITNESS = false) {\n if (!buffer) buffer = Buffer.allocUnsafe(this.byteLength(_ALLOW_WITNESS));\n const bufferWriter = new bufferutils_1.BufferWriter(\n buffer,\n initialOffset || 0,\n );\n bufferWriter.writeInt32(this.version);\n const hasWitnesses = _ALLOW_WITNESS && this.hasWitnesses();\n if (hasWitnesses) {\n bufferWriter.writeUInt8(Transaction.ADVANCED_TRANSACTION_MARKER);\n bufferWriter.writeUInt8(Transaction.ADVANCED_TRANSACTION_FLAG);\n }\n bufferWriter.writeVarInt(this.ins.length);\n this.ins.forEach(txIn => {\n bufferWriter.writeSlice(txIn.hash);\n bufferWriter.writeUInt32(txIn.index);\n bufferWriter.writeVarSlice(txIn.script);\n bufferWriter.writeUInt32(txIn.sequence);\n });\n bufferWriter.writeVarInt(this.outs.length);\n this.outs.forEach(txOut => {\n if (isOutput(txOut)) {\n bufferWriter.writeUInt64(txOut.value);\n } else {\n bufferWriter.writeSlice(txOut.valueBuffer);\n }\n bufferWriter.writeVarSlice(txOut.script);\n });\n if (hasWitnesses) {\n this.ins.forEach(input => {\n bufferWriter.writeVector(input.witness);\n });\n }\n bufferWriter.writeUInt32(this.locktime);\n // avoid slicing unless necessary\n if (initialOffset !== undefined)\n return buffer.slice(initialOffset, bufferWriter.offset);\n return buffer;\n }\n}\nexports.Transaction = Transaction;\nTransaction.DEFAULT_SEQUENCE = 0xffffffff;\nTransaction.SIGHASH_DEFAULT = 0x00;\nTransaction.SIGHASH_ALL = 0x01;\nTransaction.SIGHASH_NONE = 0x02;\nTransaction.SIGHASH_SINGLE = 0x03;\nTransaction.SIGHASH_ANYONECANPAY = 0x80;\nTransaction.SIGHASH_OUTPUT_MASK = 0x03;\nTransaction.SIGHASH_INPUT_MASK = 0x80;\nTransaction.ADVANCED_TRANSACTION_MARKER = 0x00;\nTransaction.ADVANCED_TRANSACTION_FLAG = 0x01;\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nexports.oneOf =\n exports.Null =\n exports.BufferN =\n exports.Function =\n exports.UInt32 =\n exports.UInt8 =\n exports.tuple =\n exports.maybe =\n exports.Hex =\n exports.Buffer =\n exports.String =\n exports.Boolean =\n exports.Array =\n exports.Number =\n exports.Hash256bit =\n exports.Hash160bit =\n exports.Buffer256bit =\n exports.isTaptree =\n exports.isTapleaf =\n exports.TAPLEAF_VERSION_MASK =\n exports.Network =\n exports.ECPoint =\n exports.Satoshi =\n exports.Signer =\n exports.BIP32Path =\n exports.UInt31 =\n exports.isPoint =\n exports.typeforce =\n void 0;\nconst buffer_1 = require('buffer');\nexports.typeforce = require('typeforce');\nconst ZERO32 = buffer_1.Buffer.alloc(32, 0);\nconst EC_P = buffer_1.Buffer.from(\n 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f',\n 'hex',\n);\nfunction isPoint(p) {\n if (!buffer_1.Buffer.isBuffer(p)) return false;\n if (p.length < 33) return false;\n const t = p[0];\n const x = p.slice(1, 33);\n if (x.compare(ZERO32) === 0) return false;\n if (x.compare(EC_P) >= 0) return false;\n if ((t === 0x02 || t === 0x03) && p.length === 33) {\n return true;\n }\n const y = p.slice(33);\n if (y.compare(ZERO32) === 0) return false;\n if (y.compare(EC_P) >= 0) return false;\n if (t === 0x04 && p.length === 65) return true;\n return false;\n}\nexports.isPoint = isPoint;\nconst UINT31_MAX = Math.pow(2, 31) - 1;\nfunction UInt31(value) {\n return exports.typeforce.UInt32(value) && value <= UINT31_MAX;\n}\nexports.UInt31 = UInt31;\nfunction BIP32Path(value) {\n return (\n exports.typeforce.String(value) && !!value.match(/^(m\\/)?(\\d+'?\\/)*\\d+'?$/)\n );\n}\nexports.BIP32Path = BIP32Path;\nBIP32Path.toJSON = () => {\n return 'BIP32 derivation path';\n};\nfunction Signer(obj) {\n return (\n (exports.typeforce.Buffer(obj.publicKey) ||\n typeof obj.getPublicKey === 'function') &&\n typeof obj.sign === 'function'\n );\n}\nexports.Signer = Signer;\nconst SATOSHI_MAX = 21 * 1e14;\nfunction Satoshi(value) {\n return exports.typeforce.UInt53(value) && value <= SATOSHI_MAX;\n}\nexports.Satoshi = Satoshi;\n// external dependent types\nexports.ECPoint = exports.typeforce.quacksLike('Point');\n// exposed, external API\nexports.Network = exports.typeforce.compile({\n messagePrefix: exports.typeforce.oneOf(\n exports.typeforce.Buffer,\n exports.typeforce.String,\n ),\n bip32: {\n public: exports.typeforce.UInt32,\n private: exports.typeforce.UInt32,\n },\n pubKeyHash: exports.typeforce.UInt8,\n scriptHash: exports.typeforce.UInt8,\n wif: exports.typeforce.UInt8,\n});\nexports.TAPLEAF_VERSION_MASK = 0xfe;\nfunction isTapleaf(o) {\n if (!o || !('output' in o)) return false;\n if (!buffer_1.Buffer.isBuffer(o.output)) return false;\n if (o.version !== undefined)\n return (o.version & exports.TAPLEAF_VERSION_MASK) === o.version;\n return true;\n}\nexports.isTapleaf = isTapleaf;\nfunction isTaptree(scriptTree) {\n if (!(0, exports.Array)(scriptTree)) return isTapleaf(scriptTree);\n if (scriptTree.length !== 2) return false;\n return scriptTree.every(t => isTaptree(t));\n}\nexports.isTaptree = isTaptree;\nexports.Buffer256bit = exports.typeforce.BufferN(32);\nexports.Hash160bit = exports.typeforce.BufferN(20);\nexports.Hash256bit = exports.typeforce.BufferN(32);\nexports.Number = exports.typeforce.Number;\nexports.Array = exports.typeforce.Array;\nexports.Boolean = exports.typeforce.Boolean;\nexports.String = exports.typeforce.String;\nexports.Buffer = exports.typeforce.Buffer;\nexports.Hex = exports.typeforce.Hex;\nexports.maybe = exports.typeforce.maybe;\nexports.tuple = exports.typeforce.tuple;\nexports.UInt8 = exports.typeforce.UInt8;\nexports.UInt32 = exports.typeforce.UInt32;\nexports.Function = exports.typeforce.Function;\nexports.BufferN = exports.typeforce.BufferN;\nexports.Null = exports.typeforce.Null;\nexports.oneOf = exports.typeforce.oneOf;\n","const basex = require('base-x')\nconst ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n\nmodule.exports = basex(ALPHABET)\n","'use strict'\n// base-x encoding / decoding\n// Copyright (c) 2018 base-x contributors\n// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp)\n// Distributed under the MIT software license, see the accompanying\n// file LICENSE or http://www.opensource.org/licenses/mit-license.php.\nfunction base (ALPHABET) {\n if (ALPHABET.length >= 255) { throw new TypeError('Alphabet too long') }\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) { throw new TypeError(x + ' is ambiguous') }\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) // log(BASE) / log(256), rounded up\n var iFACTOR = Math.log(256) / Math.log(BASE) // log(256) / log(BASE), rounded up\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)) { throw new TypeError('Expected Uint8Array') }\n if (source.length === 0) { return '' }\n // Skip & count leading zeroes.\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 // Allocate enough space in big-endian base58 representation.\n var size = ((pend - pbegin) * iFACTOR + 1) >>> 0\n var b58 = new Uint8Array(size)\n // Process the bytes.\n while (pbegin !== pend) {\n var carry = source[pbegin]\n // Apply \"b58 = b58 * 256 + ch\".\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) { throw new Error('Non-zero carry') }\n length = i\n pbegin++\n }\n // Skip leading zeroes in base58 result.\n var it2 = size - length\n while (it2 !== size && b58[it2] === 0) {\n it2++\n }\n // Translate the result into a string.\n var str = LEADER.repeat(zeroes)\n for (; it2 < size; ++it2) { str += ALPHABET.charAt(b58[it2]) }\n return str\n }\n function decodeUnsafe (source) {\n if (typeof source !== 'string') { throw new TypeError('Expected String') }\n if (source.length === 0) { return new Uint8Array() }\n var psz = 0\n // Skip and count leading '1's.\n var zeroes = 0\n var length = 0\n while (source[psz] === LEADER) {\n zeroes++\n psz++\n }\n // Allocate enough space in big-endian base256 representation.\n var size = (((source.length - psz) * FACTOR) + 1) >>> 0 // log(58) / log(256), rounded up.\n var b256 = new Uint8Array(size)\n // Process the characters.\n while (source[psz]) {\n // Decode character\n var carry = BASE_MAP[source.charCodeAt(psz)]\n // Invalid character\n if (carry === 255) { return }\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) { throw new Error('Non-zero carry') }\n length = i\n psz++\n }\n // Skip leading zeroes in b256.\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) { return buffer }\n throw new Error('Non-base' + BASE + ' character')\n }\n return {\n encode: encode,\n decodeUnsafe: decodeUnsafe,\n decode: decode\n }\n}\nmodule.exports = base\n","'use strict'\n\nvar base58 = require('bs58')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (checksumFn) {\n // Encode a buffer as a base58-check encoded string\n function encode (payload) {\n var checksum = checksumFn(payload)\n\n return base58.encode(Buffer.concat([\n payload,\n checksum\n ], payload.length + 4))\n }\n\n function decodeRaw (buffer) {\n var payload = buffer.slice(0, -4)\n var checksum = buffer.slice(-4)\n var newChecksum = checksumFn(payload)\n\n if (checksum[0] ^ newChecksum[0] |\n checksum[1] ^ newChecksum[1] |\n checksum[2] ^ newChecksum[2] |\n checksum[3] ^ newChecksum[3]) return\n\n return payload\n }\n\n // Decode a base58-check encoded string to a buffer, no result if checksum is wrong\n function decodeUnsafe (string) {\n var buffer = base58.decodeUnsafe(string)\n if (!buffer) return\n\n return decodeRaw(buffer)\n }\n\n function decode (string) {\n var buffer = base58.decode(string)\n var payload = decodeRaw(buffer, checksumFn)\n if (!payload) throw new Error('Invalid checksum')\n return payload\n }\n\n return {\n encode: encode,\n decode: decode,\n decodeUnsafe: decodeUnsafe\n }\n}\n","'use strict'\n\nvar createHash = require('create-hash')\nvar bs58checkBase = require('./base')\n\n// SHA256(SHA256(buffer))\nfunction sha256x2 (buffer) {\n var tmp = createHash('sha256').update(buffer).digest()\n return createHash('sha256').update(tmp).digest()\n}\n\nmodule.exports = bs58checkBase(sha256x2)\n","var basex = require('base-x')\nvar ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n\nmodule.exports = basex(ALPHABET)\n","module.exports = function reverse (src) {\n var buffer = new Buffer(src.length)\n\n for (var i = 0, j = src.length - 1; i <= j; ++i, --j) {\n buffer[i] = src[j]\n buffer[j] = src[i]\n }\n\n return buffer\n}\n","var Buffer = require('safe-buffer').Buffer\nvar Transform = require('stream').Transform\nvar StringDecoder = require('string_decoder').StringDecoder\nvar inherits = require('inherits')\n\nfunction CipherBase (hashMode) {\n Transform.call(this)\n this.hashMode = typeof hashMode === 'string'\n if (this.hashMode) {\n this[hashMode] = this._finalOrDigest\n } else {\n this.final = this._finalOrDigest\n }\n if (this._final) {\n this.__final = this._final\n this._final = null\n }\n this._decoder = null\n this._encoding = null\n}\ninherits(CipherBase, Transform)\n\nCipherBase.prototype.update = function (data, inputEnc, outputEnc) {\n if (typeof data === 'string') {\n data = Buffer.from(data, inputEnc)\n }\n\n var outData = this._update(data)\n if (this.hashMode) return this\n\n if (outputEnc) {\n outData = this._toString(outData, outputEnc)\n }\n\n return outData\n}\n\nCipherBase.prototype.setAutoPadding = function () {}\nCipherBase.prototype.getAuthTag = function () {\n throw new Error('trying to get auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAuthTag = function () {\n throw new Error('trying to set auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAAD = function () {\n throw new Error('trying to set aad in unsupported state')\n}\n\nCipherBase.prototype._transform = function (data, _, next) {\n var err\n try {\n if (this.hashMode) {\n this._update(data)\n } else {\n this.push(this._update(data))\n }\n } catch (e) {\n err = e\n } finally {\n next(err)\n }\n}\nCipherBase.prototype._flush = function (done) {\n var err\n try {\n this.push(this.__final())\n } catch (e) {\n err = e\n }\n\n done(err)\n}\nCipherBase.prototype._finalOrDigest = function (outputEnc) {\n var outData = this.__final() || Buffer.alloc(0)\n if (outputEnc) {\n outData = this._toString(outData, outputEnc, true)\n }\n return outData\n}\n\nCipherBase.prototype._toString = function (value, enc, fin) {\n if (!this._decoder) {\n this._decoder = new StringDecoder(enc)\n this._encoding = enc\n }\n\n if (this._encoding !== enc) throw new Error('can\\'t switch encodings')\n\n var out = this._decoder.write(value)\n if (fin) {\n out += this._decoder.end()\n }\n\n return out\n}\n\nmodule.exports = CipherBase\n","'use strict'\nvar inherits = require('inherits')\nvar MD5 = require('md5.js')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Base = require('cipher-base')\n\nfunction Hash (hash) {\n Base.call(this, 'digest')\n\n this._hash = hash\n}\n\ninherits(Hash, Base)\n\nHash.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHash.prototype._final = function () {\n return this._hash.digest()\n}\n\nmodule.exports = function createHash (alg) {\n alg = alg.toLowerCase()\n if (alg === 'md5') return new MD5()\n if (alg === 'rmd160' || alg === 'ripemd160') return new RIPEMD160()\n\n return new Hash(sha(alg))\n}\n","'use strict';\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp('(' + token + ')|([^%]+?)', 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn [decodeURIComponent(components.join(''))];\n\t} catch (err) {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tvar left = components.slice(0, split);\n\tvar right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch (err) {\n\t\tvar tokens = input.match(singleMatcher) || [];\n\n\t\tfor (var i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher) || [];\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tvar replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD'\n\t};\n\n\tvar match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch (err) {\n\t\t\tvar result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tvar entries = Object.keys(replaceMap);\n\n\tfor (var i = 0; i < entries.length; i++) {\n\t\t// Replace all decoded components\n\t\tvar key = entries[i];\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nmodule.exports = function (encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\tencodedURI = encodedURI.replace(/\\+/g, ' ');\n\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch (err) {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n};\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nexports.ECPairFactory = exports.networks = void 0;\nconst networks = require('./networks');\nexports.networks = networks;\nconst types = require('./types');\nconst randomBytes = require('randombytes');\nconst wif = require('wif');\nconst testecc_1 = require('./testecc');\nconst isOptions = types.typeforce.maybe(\n types.typeforce.compile({\n compressed: types.maybe(types.Boolean),\n network: types.maybe(types.Network),\n }),\n);\nconst toXOnly = (pubKey) =>\n pubKey.length === 32 ? pubKey : pubKey.slice(1, 33);\nfunction ECPairFactory(ecc) {\n (0, testecc_1.testEcc)(ecc);\n function isPoint(maybePoint) {\n return ecc.isPoint(maybePoint);\n }\n function fromPrivateKey(buffer, options) {\n types.typeforce(types.Buffer256bit, buffer);\n if (!ecc.isPrivate(buffer))\n throw new TypeError('Private key not in range [1, n)');\n types.typeforce(isOptions, options);\n return new ECPair(buffer, undefined, options);\n }\n function fromPublicKey(buffer, options) {\n types.typeforce(ecc.isPoint, buffer);\n types.typeforce(isOptions, options);\n return new ECPair(undefined, buffer, options);\n }\n function fromWIF(wifString, network) {\n const decoded = wif.decode(wifString);\n const version = decoded.version;\n // list of networks?\n if (types.Array(network)) {\n network = network\n .filter((x) => {\n return version === x.wif;\n })\n .pop();\n if (!network) throw new Error('Unknown network version');\n // otherwise, assume a network object (or default to bitcoin)\n } else {\n network = network || networks.bitcoin;\n if (version !== network.wif) throw new Error('Invalid network version');\n }\n return fromPrivateKey(decoded.privateKey, {\n compressed: decoded.compressed,\n network: network,\n });\n }\n function makeRandom(options) {\n types.typeforce(isOptions, options);\n if (options === undefined) options = {};\n const rng = options.rng || randomBytes;\n let d;\n do {\n d = rng(32);\n types.typeforce(types.Buffer256bit, d);\n } while (!ecc.isPrivate(d));\n return fromPrivateKey(d, options);\n }\n class ECPair {\n __D;\n __Q;\n compressed;\n network;\n lowR;\n constructor(__D, __Q, options) {\n this.__D = __D;\n this.__Q = __Q;\n this.lowR = false;\n if (options === undefined) options = {};\n this.compressed =\n options.compressed === undefined ? true : options.compressed;\n this.network = options.network || networks.bitcoin;\n if (__Q !== undefined)\n this.__Q = Buffer.from(ecc.pointCompress(__Q, this.compressed));\n }\n get privateKey() {\n return this.__D;\n }\n get publicKey() {\n if (!this.__Q) {\n // It is not possible for both `__Q` and `__D` to be `undefined` at the same time.\n // The factory methods guard for this.\n const p = ecc.pointFromScalar(this.__D, this.compressed);\n // It is not possible for `p` to be null.\n // `fromPrivateKey()` checks that `__D` is a valid scalar.\n this.__Q = Buffer.from(p);\n }\n return this.__Q;\n }\n toWIF() {\n if (!this.__D) throw new Error('Missing private key');\n return wif.encode(this.network.wif, this.__D, this.compressed);\n }\n tweak(t) {\n if (this.privateKey) return this.tweakFromPrivateKey(t);\n return this.tweakFromPublicKey(t);\n }\n sign(hash, lowR) {\n if (!this.__D) throw new Error('Missing private key');\n if (lowR === undefined) lowR = this.lowR;\n if (lowR === false) {\n return Buffer.from(ecc.sign(hash, this.__D));\n } else {\n let sig = ecc.sign(hash, this.__D);\n const extraData = Buffer.alloc(32, 0);\n let counter = 0;\n // if first try is lowR, skip the loop\n // for second try and on, add extra entropy counting up\n while (sig[0] > 0x7f) {\n counter++;\n extraData.writeUIntLE(counter, 0, 6);\n sig = ecc.sign(hash, this.__D, extraData);\n }\n return Buffer.from(sig);\n }\n }\n signSchnorr(hash) {\n if (!this.privateKey) throw new Error('Missing private key');\n if (!ecc.signSchnorr)\n throw new Error('signSchnorr not supported by ecc library');\n return Buffer.from(ecc.signSchnorr(hash, this.privateKey));\n }\n verify(hash, signature) {\n return ecc.verify(hash, this.publicKey, signature);\n }\n verifySchnorr(hash, signature) {\n if (!ecc.verifySchnorr)\n throw new Error('verifySchnorr not supported by ecc library');\n return ecc.verifySchnorr(hash, this.publicKey.subarray(1, 33), signature);\n }\n tweakFromPublicKey(t) {\n const xOnlyPubKey = toXOnly(this.publicKey);\n const tweakedPublicKey = ecc.xOnlyPointAddTweak(xOnlyPubKey, t);\n if (!tweakedPublicKey || tweakedPublicKey.xOnlyPubkey === null)\n throw new Error('Cannot tweak public key!');\n const parityByte = Buffer.from([\n tweakedPublicKey.parity === 0 ? 0x02 : 0x03,\n ]);\n return fromPublicKey(\n Buffer.concat([parityByte, tweakedPublicKey.xOnlyPubkey]),\n { network: this.network, compressed: this.compressed },\n );\n }\n tweakFromPrivateKey(t) {\n const hasOddY =\n this.publicKey[0] === 3 ||\n (this.publicKey[0] === 4 && (this.publicKey[64] & 1) === 1);\n const privateKey = hasOddY\n ? ecc.privateNegate(this.privateKey)\n : this.privateKey;\n const tweakedPrivateKey = ecc.privateAdd(privateKey, t);\n if (!tweakedPrivateKey) throw new Error('Invalid tweaked private key!');\n return fromPrivateKey(Buffer.from(tweakedPrivateKey), {\n network: this.network,\n compressed: this.compressed,\n });\n }\n }\n return {\n isPoint,\n fromPrivateKey,\n fromPublicKey,\n fromWIF,\n makeRandom,\n };\n}\nexports.ECPairFactory = ECPairFactory;\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nexports.networks = exports.ECPairFactory = exports.default = void 0;\nvar ecpair_1 = require('./ecpair');\nObject.defineProperty(exports, 'default', {\n enumerable: true,\n get: function () {\n return ecpair_1.ECPairFactory;\n },\n});\nObject.defineProperty(exports, 'ECPairFactory', {\n enumerable: true,\n get: function () {\n return ecpair_1.ECPairFactory;\n },\n});\nObject.defineProperty(exports, 'networks', {\n enumerable: true,\n get: function () {\n return ecpair_1.networks;\n },\n});\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nexports.testnet = exports.bitcoin = void 0;\nexports.bitcoin = {\n messagePrefix: '\\x18Bitcoin Signed Message:\\n',\n bech32: 'bc',\n bip32: {\n public: 0x0488b21e,\n private: 0x0488ade4,\n },\n pubKeyHash: 0x00,\n scriptHash: 0x05,\n wif: 0x80,\n};\nexports.testnet = {\n messagePrefix: '\\x18Bitcoin Signed Message:\\n',\n bech32: 'tb',\n bip32: {\n public: 0x043587cf,\n private: 0x04358394,\n },\n pubKeyHash: 0x6f,\n scriptHash: 0xc4,\n wif: 0xef,\n};\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nexports.testEcc = void 0;\nconst h = (hex) => Buffer.from(hex, 'hex');\nfunction testEcc(ecc) {\n assert(\n ecc.isPoint(\n h('0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798'),\n ),\n );\n assert(\n !ecc.isPoint(\n h('030000000000000000000000000000000000000000000000000000000000000005'),\n ),\n );\n assert(\n ecc.isPrivate(\n h('79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798'),\n ),\n );\n // order - 1\n assert(\n ecc.isPrivate(\n h('fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364140'),\n ),\n );\n // 0\n assert(\n !ecc.isPrivate(\n h('0000000000000000000000000000000000000000000000000000000000000000'),\n ),\n );\n // order\n assert(\n !ecc.isPrivate(\n h('fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141'),\n ),\n );\n // order + 1\n assert(\n !ecc.isPrivate(\n h('fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364142'),\n ),\n );\n // 1 + 0 == 1\n assert(\n Buffer.from(\n ecc.privateAdd(\n h('0000000000000000000000000000000000000000000000000000000000000001'),\n h('0000000000000000000000000000000000000000000000000000000000000000'),\n ),\n ).equals(\n h('0000000000000000000000000000000000000000000000000000000000000001'),\n ),\n );\n // -3 + 3 == 0\n assert(\n ecc.privateAdd(\n h('fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd036413e'),\n h('0000000000000000000000000000000000000000000000000000000000000003'),\n ) === null,\n );\n assert(\n Buffer.from(\n ecc.privateAdd(\n h('e211078564db65c3ce7704f08262b1f38f1ef412ad15b5ac2d76657a63b2c500'),\n h('b51fbb69051255d1becbd683de5848242a89c229348dd72896a87ada94ae8665'),\n ),\n ).equals(\n h('9730c2ee69edbb958d42db7460bafa18fef9d955325aec99044c81c8282b0a24'),\n ),\n );\n assert(\n Buffer.from(\n ecc.privateNegate(\n h('0000000000000000000000000000000000000000000000000000000000000001'),\n ),\n ).equals(\n h('fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364140'),\n ),\n );\n assert(\n Buffer.from(\n ecc.privateNegate(\n h('fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd036413e'),\n ),\n ).equals(\n h('0000000000000000000000000000000000000000000000000000000000000003'),\n ),\n );\n assert(\n Buffer.from(\n ecc.privateNegate(\n h('b1121e4088a66a28f5b6b0f5844943ecd9f610196d7bb83b25214b60452c09af'),\n ),\n ).equals(\n h('4eede1bf775995d70a494f0a7bb6bc11e0b8cccd41cce8009ab1132c8b0a3792'),\n ),\n );\n assert(\n Buffer.from(\n ecc.pointCompress(\n h(\n '0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n ),\n true,\n ),\n ).equals(\n h('0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798'),\n ),\n );\n assert(\n Buffer.from(\n ecc.pointCompress(\n h(\n '0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n ),\n false,\n ),\n ).equals(\n h(\n '0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n ),\n ),\n );\n assert(\n Buffer.from(\n ecc.pointCompress(\n h('0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798'),\n true,\n ),\n ).equals(\n h('0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798'),\n ),\n );\n assert(\n Buffer.from(\n ecc.pointCompress(\n h('0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798'),\n false,\n ),\n ).equals(\n h(\n '0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n ),\n ),\n );\n assert(\n Buffer.from(\n ecc.pointFromScalar(\n h('b1121e4088a66a28f5b6b0f5844943ecd9f610196d7bb83b25214b60452c09af'),\n ),\n ).equals(\n h('02b07ba9dca9523b7ef4bd97703d43d20399eb698e194704791a25ce77a400df99'),\n ),\n );\n assert(\n ecc.xOnlyPointAddTweak(\n h('79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798'),\n h('fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364140'),\n ) === null,\n );\n let xOnlyRes = ecc.xOnlyPointAddTweak(\n h('1617d38ed8d8657da4d4761e8057bc396ea9e4b9d29776d4be096016dbd2509b'),\n h('a8397a935f0dfceba6ba9618f6451ef4d80637abf4e6af2669fbc9de6a8fd2ac'),\n );\n assert(\n Buffer.from(xOnlyRes.xOnlyPubkey).equals(\n h('e478f99dab91052ab39a33ea35fd5e6e4933f4d28023cd597c9a1f6760346adf'),\n ) && xOnlyRes.parity === 1,\n );\n xOnlyRes = ecc.xOnlyPointAddTweak(\n h('2c0b7cf95324a07d05398b240174dc0c2be444d96b159aa6c7f7b1e668680991'),\n h('823c3cd2142744b075a87eade7e1b8678ba308d566226a0056ca2b7a76f86b47'),\n );\n assert(\n Buffer.from(xOnlyRes.xOnlyPubkey).equals(\n h('9534f8dc8c6deda2dc007655981c78b49c5d96c778fbf363462a11ec9dfd948c'),\n ) && xOnlyRes.parity === 0,\n );\n assert(\n Buffer.from(\n ecc.sign(\n h('5e9f0a0d593efdcf78ac923bc3313e4e7d408d574354ee2b3288c0da9fbba6ed'),\n h('fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364140'),\n ),\n ).equals(\n h(\n '54c4a33c6423d689378f160a7ff8b61330444abb58fb470f96ea16d99d4a2fed07082304410efa6b2943111b6a4e0aaa7b7db55a07e9861d1fb3cb1f421044a5',\n ),\n ),\n );\n assert(\n ecc.verify(\n h('5e9f0a0d593efdcf78ac923bc3313e4e7d408d574354ee2b3288c0da9fbba6ed'),\n h('0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798'),\n h(\n '54c4a33c6423d689378f160a7ff8b61330444abb58fb470f96ea16d99d4a2fed07082304410efa6b2943111b6a4e0aaa7b7db55a07e9861d1fb3cb1f421044a5',\n ),\n ),\n );\n if (ecc.signSchnorr) {\n assert(\n Buffer.from(\n ecc.signSchnorr(\n h('7e2d58d8b3bcdf1abadec7829054f90dda9805aab56c77333024b9d0a508b75c'),\n h('c90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b14e5c9'),\n h('c87aa53824b4d7ae2eb035a2b5bbbccc080e76cdc6d1692c4b0b62d798e6d906'),\n ),\n ).equals(\n h(\n '5831aaeed7b44bb74e5eab94ba9d4294c49bcf2a60728d8b4c200f50dd313c1bab745879a5ad954a72c45a91c3a51d3c7adea98d82f8481e0e1e03674a6f3fb7',\n ),\n ),\n );\n }\n if (ecc.verifySchnorr) {\n assert(\n ecc.verifySchnorr(\n h('7e2d58d8b3bcdf1abadec7829054f90dda9805aab56c77333024b9d0a508b75c'),\n h('dd308afec5777e13121fa72b9cc1b7cc0139715309b086c960e18fd969774eb8'),\n h(\n '5831aaeed7b44bb74e5eab94ba9d4294c49bcf2a60728d8b4c200f50dd313c1bab745879a5ad954a72c45a91c3a51d3c7adea98d82f8481e0e1e03674a6f3fb7',\n ),\n ),\n );\n }\n}\nexports.testEcc = testEcc;\nfunction assert(bool) {\n if (!bool) throw new Error('ecc library invalid');\n}\n","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nexports.maybe =\n exports.Boolean =\n exports.Array =\n exports.Buffer256bit =\n exports.Network =\n exports.typeforce =\n void 0;\nexports.typeforce = require('typeforce');\n// exposed, external API\nexports.Network = exports.typeforce.compile({\n messagePrefix: exports.typeforce.oneOf(\n exports.typeforce.Buffer,\n exports.typeforce.String,\n ),\n bip32: {\n public: exports.typeforce.UInt32,\n private: exports.typeforce.UInt32,\n },\n pubKeyHash: exports.typeforce.UInt8,\n scriptHash: exports.typeforce.UInt8,\n wif: exports.typeforce.UInt8,\n});\nexports.Buffer256bit = exports.typeforce.BufferN(32);\nexports.Array = exports.typeforce.Array;\nexports.Boolean = exports.typeforce.Boolean; // tslint:disable-line variable-name\nexports.maybe = exports.typeforce.maybe;\n","// 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","'use strict';\nmodule.exports = function (obj, predicate) {\n\tvar ret = {};\n\tvar keys = Object.keys(obj);\n\tvar isArr = Array.isArray(predicate);\n\n\tfor (var i = 0; i < keys.length; i++) {\n\t\tvar key = keys[i];\n\t\tvar val = obj[key];\n\n\t\tif (isArr ? predicate.indexOf(key) !== -1 : predicate(key, val, obj)) {\n\t\t\tret[key] = val;\n\t\t}\n\t}\n\n\treturn ret;\n};\n","'use strict'\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('readable-stream').Transform\nvar inherits = require('inherits')\n\nfunction throwIfNotStringOrBuffer (val, prefix) {\n if (!Buffer.isBuffer(val) && typeof val !== 'string') {\n throw new TypeError(prefix + ' must be a string or a buffer')\n }\n}\n\nfunction HashBase (blockSize) {\n Transform.call(this)\n\n this._block = Buffer.allocUnsafe(blockSize)\n this._blockSize = blockSize\n this._blockOffset = 0\n this._length = [0, 0, 0, 0]\n\n this._finalized = false\n}\n\ninherits(HashBase, Transform)\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n var error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype._flush = function (callback) {\n var error = null\n try {\n this.push(this.digest())\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype.update = function (data, encoding) {\n throwIfNotStringOrBuffer(data, 'Data')\n if (this._finalized) throw new Error('Digest already called')\n if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)\n\n // consume data\n var block = this._block\n var offset = 0\n while (this._blockOffset + data.length - offset >= this._blockSize) {\n for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]\n this._update()\n this._blockOffset = 0\n }\n while (offset < data.length) block[this._blockOffset++] = data[offset++]\n\n // update length\n for (var j = 0, carry = data.length * 8; carry > 0; ++j) {\n this._length[j] += carry\n carry = (this._length[j] / 0x0100000000) | 0\n if (carry > 0) this._length[j] -= 0x0100000000 * carry\n }\n\n return this\n}\n\nHashBase.prototype._update = function () {\n throw new Error('_update is not implemented')\n}\n\nHashBase.prototype.digest = function (encoding) {\n if (this._finalized) throw new Error('Digest already called')\n this._finalized = true\n\n var digest = this._digest()\n if (encoding !== undefined) digest = digest.toString(encoding)\n\n // reset state\n this._block.fill(0)\n this._blockOffset = 0\n for (var i = 0; i < 4; ++i) this._length[i] = 0\n\n return digest\n}\n\nHashBase.prototype._digest = function () {\n throw new Error('_digest is not implemented')\n}\n\nmodule.exports = HashBase\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decode = exports.encode = exports.unescape = exports.escape = exports.pad = void 0;\nconst base64_js_1 = require(\"base64-js\");\nfunction pad(base64) {\n return `${base64}${'='.repeat(4 - (base64.length % 4 || 4))}`;\n}\nexports.pad = pad;\nfunction escape(base64) {\n return base64.replace(/=/g, '').replace(/\\+/g, '-').replace(/\\//g, '_');\n}\nexports.escape = escape;\nfunction unescape(base64Url) {\n return pad(base64Url).replace(/-/g, '+').replace(/_/g, '/');\n}\nexports.unescape = unescape;\nfunction encode(base64) {\n return escape((0, base64_js_1.fromByteArray)(new TextEncoder().encode(base64)));\n}\nexports.encode = encode;\nfunction decode(base64Url) {\n return new TextDecoder().decode((0, base64_js_1.toByteArray)(pad(unescape(base64Url))));\n}\nexports.decode = decode;\n//# sourceMappingURL=base64Url.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cryptoClients = exports.SECP256K1Client = void 0;\nconst secp256k1_1 = require(\"./secp256k1\");\nObject.defineProperty(exports, \"SECP256K1Client\", { enumerable: true, get: function () { return secp256k1_1.SECP256K1Client; } });\nconst cryptoClients = {\n ES256K: secp256k1_1.SECP256K1Client,\n};\nexports.cryptoClients = cryptoClients;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SECP256K1Client = void 0;\nconst hmac_1 = require(\"@noble/hashes/hmac\");\nconst sha256_1 = require(\"@noble/hashes/sha256\");\nconst secp = require(\"@noble/secp256k1\");\nconst ecdsaSigFormatter_1 = require(\"../ecdsaSigFormatter\");\nconst errors_1 = require(\"../errors\");\nconst utils_1 = require(\"@noble/hashes/utils\");\n// required to use noble secp https://github.com/paulmillr/noble-secp256k1\nsecp.utils.hmacSha256Sync = (key, ...msgs) => {\n const h = hmac_1.hmac.create(sha256_1.sha256, key);\n msgs.forEach(msg => h.update(msg));\n return h.digest();\n};\nclass SECP256K1Client {\n static derivePublicKey(privateKey, compressed = true) {\n if (privateKey.length === 66) {\n privateKey = privateKey.slice(0, 64);\n }\n if (privateKey.length < 64) {\n // backward compatibly accept too short private keys\n privateKey = privateKey.padStart(64, '0');\n }\n return (0, utils_1.bytesToHex)(secp.getPublicKey(privateKey, compressed));\n }\n static signHash(signingInputHash, privateKey, format = 'jose') {\n // make sure the required parameters are provided\n if (!signingInputHash || !privateKey) {\n throw new errors_1.MissingParametersError('a signing input hash and private key are all required');\n }\n const derSignature = secp.signSync(signingInputHash, privateKey.slice(0, 64), {\n der: true,\n canonical: false,\n });\n if (format === 'der')\n return (0, utils_1.bytesToHex)(derSignature);\n if (format === 'jose')\n return (0, ecdsaSigFormatter_1.derToJose)(derSignature, 'ES256');\n throw Error('Invalid signature format');\n }\n static loadSignature(joseSignature) {\n // create and return the DER-formatted signature bytes\n return (0, ecdsaSigFormatter_1.joseToDer)(joseSignature, 'ES256');\n }\n static verifyHash(signingInputHash, derSignatureBytes, publicKey) {\n // make sure the required parameters are provided\n if (!signingInputHash || !derSignatureBytes || !publicKey) {\n throw new errors_1.MissingParametersError('a signing input hash, der signature, and public key are all required');\n }\n return secp.verify(derSignatureBytes, signingInputHash, publicKey, { strict: false });\n }\n}\nexports.SECP256K1Client = SECP256K1Client;\nSECP256K1Client.algorithmName = 'ES256K';\n//# sourceMappingURL=secp256k1.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hashSha256Async = exports.hashSha256 = void 0;\nconst sha256_1 = require(\"@noble/hashes/sha256\");\nfunction hashSha256(input) {\n return (0, sha256_1.sha256)(input);\n}\nexports.hashSha256 = hashSha256;\nfunction hashSha256Async(input) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const isSubtleCryptoAvailable = typeof crypto !== 'undefined' && typeof crypto.subtle !== 'undefined';\n if (isSubtleCryptoAvailable) {\n // Use the W3C Web Crypto API if available (running in a web browser).\n const bytes = typeof input === 'string' ? new TextEncoder().encode(input) : input;\n const hash = yield crypto.subtle.digest('SHA-256', bytes);\n return new Uint8Array(hash);\n }\n else {\n // Otherwise try loading the Node.js `crypto` module (running in Node.js, or an older browser with a polyfill).\n const nodeCrypto = require('crypto');\n if (!nodeCrypto.createHash) {\n throw new Error('`crypto` module does not contain `createHash`');\n }\n return Promise.resolve(nodeCrypto.createHash('sha256').update(input).digest());\n }\n }\n catch (error) {\n console.log(error);\n console.log('Crypto lib not found. Neither the global `crypto.subtle` Web Crypto API, ' +\n 'nor the or the Node.js `require(\"crypto\").createHash` module is available. ' +\n 'Falling back to JS implementation.');\n return Promise.resolve(hashSha256(input));\n }\n });\n}\nexports.hashSha256Async = hashSha256Async;\n//# sourceMappingURL=sha256.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeToken = void 0;\nconst base64url = require(\"./base64Url\");\nfunction decodeToken(token) {\n if (typeof token === 'string') {\n // decompose the token into parts\n const tokenParts = token.split('.');\n const header = JSON.parse(base64url.decode(tokenParts[0]));\n const payload = JSON.parse(base64url.decode(tokenParts[1]));\n const signature = tokenParts[2];\n // return the token object\n return {\n header: header,\n payload: payload,\n signature: signature,\n };\n }\n else if (typeof token === 'object') {\n if (typeof token.payload !== 'string') {\n throw new Error('Expected token payload to be a base64 or json string');\n }\n let payload = token.payload;\n if (token.payload[0] !== '{') {\n payload = base64url.decode(payload);\n }\n const allHeaders = [];\n token.header.map((headerValue) => {\n const header = JSON.parse(base64url.decode(headerValue));\n allHeaders.push(header);\n });\n return {\n header: allHeaders,\n payload: JSON.parse(payload),\n signature: token.signature,\n };\n }\n}\nexports.decodeToken = decodeToken;\n//# sourceMappingURL=decode.js.map","\"use strict\";\n// NOTICE\n// Copyright 2015 D2L Corporation\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.joseToDer = exports.derToJose = void 0;\n// The following code is adapted from https://github.com/Brightspace/node-ecdsa-sig-formatter\nconst base64_js_1 = require(\"base64-js\");\nconst base64Url_1 = require(\"./base64Url\");\nfunction getParamSize(keySize) {\n return ((keySize / 8) | 0) + (keySize % 8 === 0 ? 0 : 1);\n}\nconst paramBytesForAlg = {\n ES256: getParamSize(256),\n ES384: getParamSize(384),\n ES512: getParamSize(521),\n};\nfunction getParamBytesForAlg(alg) {\n const paramBytes = paramBytesForAlg[alg];\n if (paramBytes) {\n return paramBytes;\n }\n throw new Error(`Unknown algorithm \"${alg}\"`);\n}\nconst MAX_OCTET = 0x80;\nconst CLASS_UNIVERSAL = 0;\nconst PRIMITIVE_BIT = 0x20;\nconst TAG_SEQ = 0x10;\nconst TAG_INT = 0x02;\nconst ENCODED_TAG_SEQ = TAG_SEQ | PRIMITIVE_BIT | (CLASS_UNIVERSAL << 6);\nconst ENCODED_TAG_INT = TAG_INT | (CLASS_UNIVERSAL << 6);\nfunction signatureAsBytes(signature) {\n if (signature instanceof Uint8Array) {\n return signature;\n }\n else if ('string' === typeof signature) {\n return (0, base64_js_1.toByteArray)((0, base64Url_1.pad)(signature));\n }\n throw new TypeError('ECDSA signature must be a Base64 string or a Uint8Array');\n}\nfunction derToJose(signature, alg) {\n const signatureBytes = signatureAsBytes(signature);\n const paramBytes = getParamBytesForAlg(alg);\n // the DER encoded param should at most be the param size, plus a padding\n // zero, since due to being a signed integer\n const maxEncodedParamLength = paramBytes + 1;\n const inputLength = signatureBytes.length;\n let offset = 0;\n if (signatureBytes[offset++] !== ENCODED_TAG_SEQ) {\n throw new Error('Could not find expected \"seq\"');\n }\n let seqLength = signatureBytes[offset++];\n if (seqLength === (MAX_OCTET | 1)) {\n seqLength = signatureBytes[offset++];\n }\n if (inputLength - offset < seqLength) {\n throw new Error(`\"seq\" specified length of \"${seqLength}\", only \"${inputLength - offset}\" remaining`);\n }\n if (signatureBytes[offset++] !== ENCODED_TAG_INT) {\n throw new Error('Could not find expected \"int\" for \"r\"');\n }\n const rLength = signatureBytes[offset++];\n if (inputLength - offset - 2 < rLength) {\n throw new Error(`\"r\" specified length of \"${rLength}\", only \"${inputLength - offset - 2}\" available`);\n }\n if (maxEncodedParamLength < rLength) {\n throw new Error(`\"r\" specified length of \"${rLength}\", max of \"${maxEncodedParamLength}\" is acceptable`);\n }\n const rOffset = offset;\n offset += rLength;\n if (signatureBytes[offset++] !== ENCODED_TAG_INT) {\n throw new Error('Could not find expected \"int\" for \"s\"');\n }\n const sLength = signatureBytes[offset++];\n if (inputLength - offset !== sLength) {\n throw new Error(`\"s\" specified length of \"${sLength}\", expected \"${inputLength - offset}\"`);\n }\n if (maxEncodedParamLength < sLength) {\n throw new Error(`\"s\" specified length of \"${sLength}\", max of \"${maxEncodedParamLength}\" is acceptable`);\n }\n const sOffset = offset;\n offset += sLength;\n if (offset !== inputLength) {\n throw new Error(`Expected to consume entire array, but \"${inputLength - offset}\" bytes remain`);\n }\n const rPadding = paramBytes - rLength;\n const sPadding = paramBytes - sLength;\n const dst = new Uint8Array(rPadding + rLength + sPadding + sLength);\n for (offset = 0; offset < rPadding; ++offset) {\n dst[offset] = 0;\n }\n dst.set(signatureBytes.subarray(rOffset + Math.max(-rPadding, 0), rOffset + rLength), offset);\n offset = paramBytes;\n for (const o = offset; offset < o + sPadding; ++offset) {\n dst[offset] = 0;\n }\n dst.set(signatureBytes.subarray(sOffset + Math.max(-sPadding, 0), sOffset + sLength), offset);\n return (0, base64Url_1.escape)((0, base64_js_1.fromByteArray)(dst));\n}\nexports.derToJose = derToJose;\nfunction countPadding(buf, start, stop) {\n let padding = 0;\n while (start + padding < stop && buf[start + padding] === 0) {\n ++padding;\n }\n const needsSign = buf[start + padding] >= MAX_OCTET;\n if (needsSign) {\n --padding;\n }\n return padding;\n}\nfunction joseToDer(signature, alg) {\n signature = signatureAsBytes(signature);\n const paramBytes = getParamBytesForAlg(alg);\n const signatureBytes = signature.length;\n if (signatureBytes !== paramBytes * 2) {\n throw new TypeError(`\"${alg}\" signatures must be \"${paramBytes * 2}\" bytes, saw \"${signatureBytes}\"`);\n }\n const rPadding = countPadding(signature, 0, paramBytes);\n const sPadding = countPadding(signature, paramBytes, signature.length);\n const rLength = paramBytes - rPadding;\n const sLength = paramBytes - sPadding;\n const rsBytes = 1 + 1 + rLength + 1 + 1 + sLength;\n const shortLength = rsBytes < MAX_OCTET;\n const dst = new Uint8Array((shortLength ? 2 : 3) + rsBytes);\n let offset = 0;\n dst[offset++] = ENCODED_TAG_SEQ;\n if (shortLength) {\n // Bit 8 has value \"0\"\n // bits 7-1 give the length.\n dst[offset++] = rsBytes;\n }\n else {\n // Bit 8 of first octet has value \"1\"\n // bits 7-1 give the number of additional length octets.\n dst[offset++] = MAX_OCTET | 1;\n // length, base 256\n dst[offset++] = rsBytes & 0xff;\n }\n dst[offset++] = ENCODED_TAG_INT;\n dst[offset++] = rLength;\n if (rPadding < 0) {\n dst[offset++] = 0;\n dst.set(signature.subarray(0, paramBytes), offset);\n offset += paramBytes;\n }\n else {\n dst.set(signature.subarray(rPadding, paramBytes), offset);\n offset += paramBytes - rPadding;\n }\n dst[offset++] = ENCODED_TAG_INT;\n dst[offset++] = sLength;\n if (sPadding < 0) {\n dst[offset++] = 0;\n dst.set(signature.subarray(paramBytes), offset);\n }\n else {\n dst.set(signature.subarray(paramBytes + sPadding), offset);\n }\n return dst;\n}\nexports.joseToDer = joseToDer;\n//# sourceMappingURL=ecdsaSigFormatter.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InvalidTokenError = exports.MissingParametersError = void 0;\nclass MissingParametersError extends Error {\n constructor(message) {\n super();\n this.name = 'MissingParametersError';\n this.message = message || '';\n }\n}\nexports.MissingParametersError = MissingParametersError;\nclass InvalidTokenError extends Error {\n constructor(message) {\n super();\n this.name = 'InvalidTokenError';\n this.message = message || '';\n }\n}\nexports.InvalidTokenError = InvalidTokenError;\n//# sourceMappingURL=errors.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./signer\"), exports);\n__exportStar(require(\"./verifier\"), exports);\n__exportStar(require(\"./decode\"), exports);\n__exportStar(require(\"./errors\"), exports);\n__exportStar(require(\"./cryptoClients\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TokenSigner = exports.createUnsecuredToken = void 0;\nconst base64url = require(\"./base64Url\");\nconst cryptoClients_1 = require(\"./cryptoClients\");\nconst errors_1 = require(\"./errors\");\nconst sha256_1 = require(\"./cryptoClients/sha256\");\nfunction createSigningInput(payload, header) {\n const tokenParts = [];\n // add in the header\n const encodedHeader = base64url.encode(JSON.stringify(header));\n tokenParts.push(encodedHeader);\n // add in the payload\n const encodedPayload = base64url.encode(JSON.stringify(payload));\n tokenParts.push(encodedPayload);\n // prepare the message\n const signingInput = tokenParts.join('.');\n // return the signing input\n return signingInput;\n}\nfunction createUnsecuredToken(payload) {\n const header = { typ: 'JWT', alg: 'none' };\n return createSigningInput(payload, header) + '.';\n}\nexports.createUnsecuredToken = createUnsecuredToken;\nclass TokenSigner {\n constructor(signingAlgorithm, rawPrivateKey) {\n if (!(signingAlgorithm && rawPrivateKey)) {\n throw new errors_1.MissingParametersError('a signing algorithm and private key are required');\n }\n if (typeof signingAlgorithm !== 'string') {\n throw new Error('signing algorithm parameter must be a string');\n }\n signingAlgorithm = signingAlgorithm.toUpperCase();\n if (!cryptoClients_1.cryptoClients.hasOwnProperty(signingAlgorithm)) {\n throw new Error('invalid signing algorithm');\n }\n this.tokenType = 'JWT';\n this.cryptoClient = cryptoClients_1.cryptoClients[signingAlgorithm];\n this.rawPrivateKey = rawPrivateKey;\n }\n header(header = {}) {\n const defaultHeader = { typ: this.tokenType, alg: this.cryptoClient.algorithmName };\n return Object.assign({}, defaultHeader, header);\n }\n sign(payload, expanded = false, customHeader = {}) {\n // generate the token header\n const header = this.header(customHeader);\n // prepare the message to be signed\n const signingInput = createSigningInput(payload, header);\n const signingInputHash = (0, sha256_1.hashSha256)(signingInput);\n return this.createWithSignedHash(payload, expanded, header, signingInput, signingInputHash);\n }\n signAsync(payload, expanded = false, customHeader = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n // generate the token header\n const header = this.header(customHeader);\n // prepare the message to be signed\n const signingInput = createSigningInput(payload, header);\n const signingInputHash = yield (0, sha256_1.hashSha256Async)(signingInput);\n return this.createWithSignedHash(payload, expanded, header, signingInput, signingInputHash);\n });\n }\n createWithSignedHash(payload, expanded, header, signingInput, signingInputHash) {\n // sign the message and add in the signature\n const signature = this.cryptoClient.signHash(signingInputHash, this.rawPrivateKey);\n if (expanded) {\n const signedToken = {\n header: [base64url.encode(JSON.stringify(header))],\n payload: JSON.stringify(payload),\n signature: [signature],\n };\n return signedToken;\n }\n else {\n return [signingInput, signature].join('.');\n }\n }\n}\nexports.TokenSigner = TokenSigner;\n//# sourceMappingURL=signer.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TokenVerifier = void 0;\nconst base64url = require(\"./base64Url\");\nconst cryptoClients_1 = require(\"./cryptoClients\");\nconst errors_1 = require(\"./errors\");\nconst sha256_1 = require(\"./cryptoClients/sha256\");\nclass TokenVerifier {\n constructor(signingAlgorithm, rawPublicKey) {\n if (!(signingAlgorithm && rawPublicKey)) {\n throw new errors_1.MissingParametersError('a signing algorithm and public key are required');\n }\n if (typeof signingAlgorithm !== 'string') {\n throw 'signing algorithm parameter must be a string';\n }\n signingAlgorithm = signingAlgorithm.toUpperCase();\n if (!cryptoClients_1.cryptoClients.hasOwnProperty(signingAlgorithm)) {\n throw 'invalid signing algorithm';\n }\n this.tokenType = 'JWT';\n this.cryptoClient = cryptoClients_1.cryptoClients[signingAlgorithm];\n this.rawPublicKey = rawPublicKey;\n }\n verify(token) {\n if (typeof token === 'string') {\n return this.verifyCompact(token, false);\n }\n else if (typeof token === 'object') {\n return this.verifyExpanded(token, false);\n }\n else {\n return false;\n }\n }\n verifyAsync(token) {\n if (typeof token === 'string') {\n return this.verifyCompact(token, true);\n }\n else if (typeof token === 'object') {\n return this.verifyExpanded(token, true);\n }\n else {\n return Promise.resolve(false);\n }\n }\n verifyCompact(token, async) {\n // decompose the token into parts\n const tokenParts = token.split('.');\n // calculate the signing input hash\n const signingInput = tokenParts[0] + '.' + tokenParts[1];\n const performVerify = (signingInputHash) => {\n // extract the signature as a DER array\n const derSignatureBytes = this.cryptoClient.loadSignature(tokenParts[2]);\n // verify the signed hash\n return this.cryptoClient.verifyHash(signingInputHash, derSignatureBytes, this.rawPublicKey);\n };\n if (async) {\n return (0, sha256_1.hashSha256Async)(signingInput).then(signingInputHash => performVerify(signingInputHash));\n }\n else {\n const signingInputHash = (0, sha256_1.hashSha256)(signingInput);\n return performVerify(signingInputHash);\n }\n }\n verifyExpanded(token, async) {\n const signingInput = [token['header'].join('.'), base64url.encode(token['payload'])].join('.');\n let verified = true;\n const performVerify = (signingInputHash) => {\n token['signature'].map((signature) => {\n const derSignatureBytes = this.cryptoClient.loadSignature(signature);\n const signatureVerified = this.cryptoClient.verifyHash(signingInputHash, derSignatureBytes, this.rawPublicKey);\n if (!signatureVerified) {\n verified = false;\n }\n });\n return verified;\n };\n if (async) {\n return (0, sha256_1.hashSha256Async)(signingInput).then(signingInputHash => performVerify(signingInputHash));\n }\n else {\n const signingInputHash = (0, sha256_1.hashSha256)(signingInput);\n return performVerify(signingInputHash);\n }\n }\n}\nexports.TokenVerifier = TokenVerifier;\n//# sourceMappingURL=verifier.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.output = exports.exists = exports.hash = exports.bytes = exports.bool = exports.number = void 0;\nfunction number(n) {\n if (!Number.isSafeInteger(n) || n < 0)\n throw new Error(`Wrong positive integer: ${n}`);\n}\nexports.number = number;\nfunction bool(b) {\n if (typeof b !== 'boolean')\n throw new Error(`Expected boolean, not ${b}`);\n}\nexports.bool = bool;\nfunction bytes(b, ...lengths) {\n if (!(b instanceof Uint8Array))\n throw new TypeError('Expected Uint8Array');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new TypeError(`Expected Uint8Array of length ${lengths}, not of length=${b.length}`);\n}\nexports.bytes = bytes;\nfunction hash(hash) {\n if (typeof hash !== 'function' || typeof hash.create !== 'function')\n throw new Error('Hash should be wrapped by utils.wrapConstructor');\n number(hash.outputLen);\n number(hash.blockLen);\n}\nexports.hash = hash;\nfunction exists(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}\nexports.exists = exists;\nfunction output(out, instance) {\n bytes(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}\nexports.output = output;\nconst assert = {\n number,\n bool,\n bytes,\n hash,\n exists,\n output,\n};\nexports.default = assert;\n//# sourceMappingURL=_assert.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SHA2 = void 0;\nconst _assert_js_1 = require(\"./_assert.js\");\nconst utils_js_1 = require(\"./utils.js\");\n// Polyfill for Safari 14\nfunction 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// Base SHA2 class (RFC 6234)\nclass SHA2 extends utils_js_1.Hash {\n constructor(blockLen, outputLen, padOffset, isLE) {\n super();\n this.blockLen = blockLen;\n this.outputLen = outputLen;\n this.padOffset = padOffset;\n this.isLE = isLE;\n this.finished = false;\n this.length = 0;\n this.pos = 0;\n this.destroyed = false;\n this.buffer = new Uint8Array(blockLen);\n this.view = (0, utils_js_1.createView)(this.buffer);\n }\n update(data) {\n _assert_js_1.default.exists(this);\n const { view, buffer, blockLen } = this;\n data = (0, utils_js_1.toBytes)(data);\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path: we have at least one block in input, cast it to view and process\n if (take === blockLen) {\n const dataView = (0, utils_js_1.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 _assert_js_1.default.exists(this);\n _assert_js_1.default.output(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 this.buffer.subarray(pos).fill(0);\n // we have less than padOffset left in buffer, so we cannot put length in 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 = (0, utils_js_1.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.length = length;\n to.pos = pos;\n to.finished = finished;\n to.destroyed = destroyed;\n if (length % blockLen)\n to.buffer.set(buffer);\n return to;\n }\n}\nexports.SHA2 = SHA2;\n//# sourceMappingURL=_sha2.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.crypto = void 0;\nexports.crypto = {\n node: undefined,\n web: typeof self === 'object' && 'crypto' in self ? self.crypto : undefined,\n};\n//# sourceMappingURL=cryptoBrowser.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hmac = void 0;\nconst _assert_js_1 = require(\"./_assert.js\");\nconst utils_js_1 = require(\"./utils.js\");\n// HMAC (RFC 2104)\nclass HMAC extends utils_js_1.Hash {\n constructor(hash, _key) {\n super();\n this.finished = false;\n this.destroyed = false;\n _assert_js_1.default.hash(hash);\n const key = (0, utils_js_1.toBytes)(_key);\n this.iHash = hash.create();\n if (typeof this.iHash.update !== 'function')\n throw new TypeError('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 pad.fill(0);\n }\n update(buf) {\n _assert_js_1.default.exists(this);\n this.iHash.update(buf);\n return this;\n }\n digestInto(out) {\n _assert_js_1.default.exists(this);\n _assert_js_1.default.bytes(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 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 */\nconst hmac = (hash, key, message) => new HMAC(hash, key).update(message).digest();\nexports.hmac = hmac;\nexports.hmac.create = (hash, key) => new HMAC(hash, key);\n//# sourceMappingURL=hmac.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sha224 = exports.sha256 = void 0;\nconst _sha2_js_1 = require(\"./_sha2.js\");\nconst utils_js_1 = require(\"./utils.js\");\n// Choice: a ? b : c\nconst Chi = (a, b, c) => (a & b) ^ (~a & c);\n// Majority function, true if any two inpust is true\nconst Maj = (a, b, c) => (a & b) ^ (a & c) ^ (b & c);\n// Round constants:\n// first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311)\n// prettier-ignore\nconst SHA256_K = new Uint32Array([\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// Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n// prettier-ignore\nconst IV = new Uint32Array([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n]);\n// Temporary buffer, not used to store anything between runs\n// Named this way because it matches specification.\nconst SHA256_W = new Uint32Array(64);\nclass SHA256 extends _sha2_js_1.SHA2 {\n constructor() {\n super(64, 32, 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 = IV[0] | 0;\n this.B = IV[1] | 0;\n this.C = IV[2] | 0;\n this.D = IV[3] | 0;\n this.E = IV[4] | 0;\n this.F = IV[5] | 0;\n this.G = IV[6] | 0;\n this.H = 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 = (0, utils_js_1.rotr)(W15, 7) ^ (0, utils_js_1.rotr)(W15, 18) ^ (W15 >>> 3);\n const s1 = (0, utils_js_1.rotr)(W2, 17) ^ (0, utils_js_1.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 = (0, utils_js_1.rotr)(E, 6) ^ (0, utils_js_1.rotr)(E, 11) ^ (0, utils_js_1.rotr)(E, 25);\n const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const sigma0 = (0, utils_js_1.rotr)(A, 2) ^ (0, utils_js_1.rotr)(A, 13) ^ (0, utils_js_1.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 SHA256_W.fill(0);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n this.buffer.fill(0);\n }\n}\n// Constants from https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf\nclass SHA224 extends SHA256 {\n constructor() {\n super();\n this.A = 0xc1059ed8 | 0;\n this.B = 0x367cd507 | 0;\n this.C = 0x3070dd17 | 0;\n this.D = 0xf70e5939 | 0;\n this.E = 0xffc00b31 | 0;\n this.F = 0x68581511 | 0;\n this.G = 0x64f98fa7 | 0;\n this.H = 0xbefa4fa4 | 0;\n this.outputLen = 28;\n }\n}\n/**\n * SHA2-256 hash function\n * @param message - data that would be hashed\n */\nexports.sha256 = (0, utils_js_1.wrapConstructor)(() => new SHA256());\nexports.sha224 = (0, utils_js_1.wrapConstructor)(() => new SHA224());\n//# sourceMappingURL=sha256.js.map","\"use strict\";\n/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.randomBytes = exports.wrapConstructorWithOpts = exports.wrapConstructor = exports.checkOpts = exports.Hash = exports.concatBytes = exports.toBytes = exports.utf8ToBytes = exports.asyncLoop = exports.nextTick = exports.hexToBytes = exports.bytesToHex = exports.isLE = exports.rotr = exports.createView = exports.u32 = exports.u8 = void 0;\n// The import here is via the package name. This is to ensure\n// that exports mapping/resolution does fall into place.\nconst crypto_1 = require(\"@noble/hashes/crypto\");\n// Cast array to different type\nconst u8 = (arr) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\nexports.u8 = u8;\nconst u32 = (arr) => new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\nexports.u32 = u32;\n// Cast array to view\nconst createView = (arr) => new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\nexports.createView = createView;\n// The rotate right (circular right shift) operation for uint32\nconst rotr = (word, shift) => (word << (32 - shift)) | (word >>> shift);\nexports.rotr = rotr;\nexports.isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\n// There is almost no big endian hardware, but js typed arrays uses platform specific endianness.\n// So, just to be sure not to corrupt anything.\nif (!exports.isLE)\n throw new Error('Non little-endian hardware is not supported');\nconst hexes = Array.from({ length: 256 }, (v, i) => i.toString(16).padStart(2, '0'));\n/**\n * @example bytesToHex(Uint8Array.from([0xde, 0xad, 0xbe, 0xef]))\n */\nfunction bytesToHex(uint8a) {\n // pre-caching improves the speed 6x\n if (!(uint8a instanceof Uint8Array))\n throw new Error('Uint8Array expected');\n let hex = '';\n for (let i = 0; i < uint8a.length; i++) {\n hex += hexes[uint8a[i]];\n }\n return hex;\n}\nexports.bytesToHex = bytesToHex;\n/**\n * @example hexToBytes('deadbeef')\n */\nfunction hexToBytes(hex) {\n if (typeof hex !== 'string') {\n throw new TypeError('hexToBytes: expected string, got ' + typeof hex);\n }\n if (hex.length % 2)\n throw new Error('hexToBytes: received invalid unpadded hex');\n const array = new Uint8Array(hex.length / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n const hexByte = hex.slice(j, j + 2);\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte) || byte < 0)\n throw new Error('Invalid byte sequence');\n array[i] = byte;\n }\n return array;\n}\nexports.hexToBytes = hexToBytes;\n// There is no setImmediate in browser and setTimeout is slow. However, call to async function will return Promise\n// which will be fullfiled only on next scheduler queue processing step and this is exactly what we need.\nconst nextTick = async () => { };\nexports.nextTick = nextTick;\n// Returns control to thread each 'tick' ms to avoid blocking\nasync function asyncLoop(iters, tick, cb) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick)\n continue;\n await (0, exports.nextTick)();\n ts += diff;\n }\n}\nexports.asyncLoop = asyncLoop;\nfunction utf8ToBytes(str) {\n if (typeof str !== 'string') {\n throw new TypeError(`utf8ToBytes expected string, got ${typeof str}`);\n }\n return new TextEncoder().encode(str);\n}\nexports.utf8ToBytes = utf8ToBytes;\nfunction toBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n if (!(data instanceof Uint8Array))\n throw new TypeError(`Expected input type is Uint8Array (got ${typeof data})`);\n return data;\n}\nexports.toBytes = toBytes;\n/**\n * Concats Uint8Array-s into one; like `Buffer.concat([buf1, buf2])`\n * @example concatBytes(buf1, buf2)\n */\nfunction concatBytes(...arrays) {\n if (!arrays.every((a) => a instanceof Uint8Array))\n throw new Error('Uint8Array list expected');\n if (arrays.length === 1)\n return arrays[0];\n const length = arrays.reduce((a, arr) => a + arr.length, 0);\n const result = new Uint8Array(length);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const arr = arrays[i];\n result.set(arr, pad);\n pad += arr.length;\n }\n return result;\n}\nexports.concatBytes = concatBytes;\n// For runtime check if class implements interface\nclass Hash {\n // Safe version that clones internal state\n clone() {\n return this._cloneInto();\n }\n}\nexports.Hash = Hash;\n// Check if object doens't have custom constructor (like Uint8Array/Array)\nconst isPlainObject = (obj) => Object.prototype.toString.call(obj) === '[object Object]' && obj.constructor === Object;\nfunction checkOpts(defaults, opts) {\n if (opts !== undefined && (typeof opts !== 'object' || !isPlainObject(opts)))\n throw new TypeError('Options should be object or undefined');\n const merged = Object.assign(defaults, opts);\n return merged;\n}\nexports.checkOpts = checkOpts;\nfunction wrapConstructor(hashConstructor) {\n const hashC = (message) => hashConstructor().update(toBytes(message)).digest();\n const tmp = hashConstructor();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashConstructor();\n return hashC;\n}\nexports.wrapConstructor = wrapConstructor;\nfunction wrapConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\nexports.wrapConstructorWithOpts = wrapConstructorWithOpts;\n/**\n * Secure PRNG\n */\nfunction randomBytes(bytesLength = 32) {\n if (crypto_1.crypto.web) {\n return crypto_1.crypto.web.getRandomValues(new Uint8Array(bytesLength));\n }\n else if (crypto_1.crypto.node) {\n return new Uint8Array(crypto_1.crypto.node.randomBytes(bytesLength).buffer);\n }\n else {\n throw new Error(\"The environment doesn't have randomBytes function\");\n }\n}\nexports.randomBytes = randomBytes;\n//# sourceMappingURL=utils.js.map","'use strict'\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\nvar Buffer = require('safe-buffer').Buffer\n\nvar ARRAY16 = new Array(16)\n\nfunction MD5 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n}\n\ninherits(MD5, HashBase)\n\nMD5.prototype._update = function () {\n var M = ARRAY16\n for (var i = 0; i < 16; ++i) M[i] = this._block.readInt32LE(i * 4)\n\n var a = this._a\n var b = this._b\n var c = this._c\n var d = this._d\n\n a = fnF(a, b, c, d, M[0], 0xd76aa478, 7)\n d = fnF(d, a, b, c, M[1], 0xe8c7b756, 12)\n c = fnF(c, d, a, b, M[2], 0x242070db, 17)\n b = fnF(b, c, d, a, M[3], 0xc1bdceee, 22)\n a = fnF(a, b, c, d, M[4], 0xf57c0faf, 7)\n d = fnF(d, a, b, c, M[5], 0x4787c62a, 12)\n c = fnF(c, d, a, b, M[6], 0xa8304613, 17)\n b = fnF(b, c, d, a, M[7], 0xfd469501, 22)\n a = fnF(a, b, c, d, M[8], 0x698098d8, 7)\n d = fnF(d, a, b, c, M[9], 0x8b44f7af, 12)\n c = fnF(c, d, a, b, M[10], 0xffff5bb1, 17)\n b = fnF(b, c, d, a, M[11], 0x895cd7be, 22)\n a = fnF(a, b, c, d, M[12], 0x6b901122, 7)\n d = fnF(d, a, b, c, M[13], 0xfd987193, 12)\n c = fnF(c, d, a, b, M[14], 0xa679438e, 17)\n b = fnF(b, c, d, a, M[15], 0x49b40821, 22)\n\n a = fnG(a, b, c, d, M[1], 0xf61e2562, 5)\n d = fnG(d, a, b, c, M[6], 0xc040b340, 9)\n c = fnG(c, d, a, b, M[11], 0x265e5a51, 14)\n b = fnG(b, c, d, a, M[0], 0xe9b6c7aa, 20)\n a = fnG(a, b, c, d, M[5], 0xd62f105d, 5)\n d = fnG(d, a, b, c, M[10], 0x02441453, 9)\n c = fnG(c, d, a, b, M[15], 0xd8a1e681, 14)\n b = fnG(b, c, d, a, M[4], 0xe7d3fbc8, 20)\n a = fnG(a, b, c, d, M[9], 0x21e1cde6, 5)\n d = fnG(d, a, b, c, M[14], 0xc33707d6, 9)\n c = fnG(c, d, a, b, M[3], 0xf4d50d87, 14)\n b = fnG(b, c, d, a, M[8], 0x455a14ed, 20)\n a = fnG(a, b, c, d, M[13], 0xa9e3e905, 5)\n d = fnG(d, a, b, c, M[2], 0xfcefa3f8, 9)\n c = fnG(c, d, a, b, M[7], 0x676f02d9, 14)\n b = fnG(b, c, d, a, M[12], 0x8d2a4c8a, 20)\n\n a = fnH(a, b, c, d, M[5], 0xfffa3942, 4)\n d = fnH(d, a, b, c, M[8], 0x8771f681, 11)\n c = fnH(c, d, a, b, M[11], 0x6d9d6122, 16)\n b = fnH(b, c, d, a, M[14], 0xfde5380c, 23)\n a = fnH(a, b, c, d, M[1], 0xa4beea44, 4)\n d = fnH(d, a, b, c, M[4], 0x4bdecfa9, 11)\n c = fnH(c, d, a, b, M[7], 0xf6bb4b60, 16)\n b = fnH(b, c, d, a, M[10], 0xbebfbc70, 23)\n a = fnH(a, b, c, d, M[13], 0x289b7ec6, 4)\n d = fnH(d, a, b, c, M[0], 0xeaa127fa, 11)\n c = fnH(c, d, a, b, M[3], 0xd4ef3085, 16)\n b = fnH(b, c, d, a, M[6], 0x04881d05, 23)\n a = fnH(a, b, c, d, M[9], 0xd9d4d039, 4)\n d = fnH(d, a, b, c, M[12], 0xe6db99e5, 11)\n c = fnH(c, d, a, b, M[15], 0x1fa27cf8, 16)\n b = fnH(b, c, d, a, M[2], 0xc4ac5665, 23)\n\n a = fnI(a, b, c, d, M[0], 0xf4292244, 6)\n d = fnI(d, a, b, c, M[7], 0x432aff97, 10)\n c = fnI(c, d, a, b, M[14], 0xab9423a7, 15)\n b = fnI(b, c, d, a, M[5], 0xfc93a039, 21)\n a = fnI(a, b, c, d, M[12], 0x655b59c3, 6)\n d = fnI(d, a, b, c, M[3], 0x8f0ccc92, 10)\n c = fnI(c, d, a, b, M[10], 0xffeff47d, 15)\n b = fnI(b, c, d, a, M[1], 0x85845dd1, 21)\n a = fnI(a, b, c, d, M[8], 0x6fa87e4f, 6)\n d = fnI(d, a, b, c, M[15], 0xfe2ce6e0, 10)\n c = fnI(c, d, a, b, M[6], 0xa3014314, 15)\n b = fnI(b, c, d, a, M[13], 0x4e0811a1, 21)\n a = fnI(a, b, c, d, M[4], 0xf7537e82, 6)\n d = fnI(d, a, b, c, M[11], 0xbd3af235, 10)\n c = fnI(c, d, a, b, M[2], 0x2ad7d2bb, 15)\n b = fnI(b, c, d, a, M[9], 0xeb86d391, 21)\n\n this._a = (this._a + a) | 0\n this._b = (this._b + b) | 0\n this._c = (this._c + c) | 0\n this._d = (this._d + d) | 0\n}\n\nMD5.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.allocUnsafe(16)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fnF (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnG (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnH (a, b, c, d, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnI (a, b, c, d, m, k, s) {\n return (rotl((a + ((c ^ (b | (~d)))) + m + k) | 0, s) + b) | 0\n}\n\nmodule.exports = MD5\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","'use strict'\n\n// limit of Crypto.getRandomValues()\n// https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues\nvar MAX_BYTES = 65536\n\n// Node supports requesting up to this number of bytes\n// https://github.com/nodejs/node/blob/master/lib/internal/crypto/random.js#L48\nvar MAX_UINT32 = 4294967295\n\nfunction oldBrowser () {\n throw new Error('Secure random number generation is not supported by this browser.\\nUse Chrome, Firefox or Internet Explorer 11')\n}\n\nvar Buffer = require('safe-buffer').Buffer\nvar crypto = global.crypto || global.msCrypto\n\nif (crypto && crypto.getRandomValues) {\n module.exports = randomBytes\n} else {\n module.exports = oldBrowser\n}\n\nfunction randomBytes (size, cb) {\n // phantomjs needs to throw\n if (size > MAX_UINT32) throw new RangeError('requested too many random bytes')\n\n var bytes = Buffer.allocUnsafe(size)\n\n if (size > 0) { // getRandomValues fails on IE if size == 0\n if (size > MAX_BYTES) { // this is the max bytes crypto.getRandomValues\n // can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues\n for (var generated = 0; generated < size; generated += MAX_BYTES) {\n // buffer.slice automatically checks if the end is past the end of\n // the buffer so we don't have to here\n crypto.getRandomValues(bytes.slice(generated, generated + MAX_BYTES))\n }\n } else {\n crypto.getRandomValues(bytes)\n }\n }\n\n if (typeof cb === 'function') {\n return process.nextTick(function () {\n cb(null, bytes)\n })\n }\n\n return bytes\n}\n","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","// 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// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n'use strict';\n/**/\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n keys.push(key);\n }\n\n return keys;\n};\n/**/\n\n\nmodule.exports = Duplex;\n\nvar Readable = require('./_stream_readable');\n\nvar Writable = require('./_stream_writable');\n\nrequire('inherits')(Duplex, Readable);\n\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n}); // the no-half-open enforcer\n\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return; // no more data can be written.\n // But allow more writes to happen in this tick.\n\n process.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","// 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// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\nrequire('inherits')(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// 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'use strict';\n\nmodule.exports = Readable;\n/**/\n\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n/**/\n\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\n\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/**/\n\n\nvar debugUtil = require('util');\n\nvar debug;\n\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\n\nvar BufferList = require('./internal/streams/buffer_list');\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance.\n\n\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\n\nrequire('inherits')(Readable, Stream);\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n\n this.sync = true; // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish')\n\n this.autoDestroy = !!options.autoDestroy; // has it been destroyed\n\n this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\n\n this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex); // legacy\n\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\n\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n}; // Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\n\n\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n}; // Unshift should *always* be something directly out of read()\n\n\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n } // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n\n\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n\n return er;\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n}; // backwards compatibility.\n\n\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8\n\n this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers:\n\n var p = this._readableState.buffer.head;\n var content = '';\n\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n\n this._readableState.buffer.clear();\n\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n}; // Don't raise the hwm > 1GB\n\n\nvar MAX_HWM = 0x40000000;\n\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n\n return n;\n} // This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n } // If we're asking for more than the current hwm, then raise the hwm.\n\n\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n; // Don't have enough\n\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n\n return state.length;\n} // you can override either this method, or the async _read(n) below.\n\n\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up.\n\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n } // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n // if we need a readable event, then we need to do some reading.\n\n\n var doRead = state.needReadable;\n debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\n\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n } // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n\n\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true; // if the length is currently zero, then we *need* a readable event.\n\n if (state.length === 0) state.needReadable = true; // call internal read method\n\n this._read(state.highWaterMark);\n\n state.sync = false; // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick.\n\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n\n if (state.decoder) {\n var chunk = state.decoder.end();\n\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n\n state.ended = true;\n\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n} // Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\n\n\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\n\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n } // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n\n\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n} // at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\n\n\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length) // didn't get any data, stop spinning.\n break;\n }\n\n state.readingMore = false;\n} // abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\n\n\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n\n default:\n state.pipes.push(dest);\n break;\n }\n\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n } // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n\n\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n\n function cleanup() {\n debug('cleanup'); // cleanup event handlers once the pipe is broken\n\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true; // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n src.on('data', ondata);\n\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n\n src.pause();\n }\n } // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n\n\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n } // Make sure our error handler is attached before userland ones.\n\n\n prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\n\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n\n dest.once('close', onclose);\n\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n } // tell the dest that it's being piped to\n\n\n dest.emit('pipe', src); // start the flow if it hasn't been started already.\n\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n }; // if we're not piping anywhere, then do nothing.\n\n if (state.pipesCount === 0) return this; // just one destination. most common case.\n\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes; // got a match.\n\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n } // slow case. multiple pipe destinations.\n\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n }\n\n return this;\n } // try to find the right one.\n\n\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n}; // set up data events if they are asked for\n// Ensure readable listeners eventually get something\n\n\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused\n\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n\n return res;\n};\n\nReadable.prototype.addListener = Readable.prototype.on;\n\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true; // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n} // pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\n\n\nReadable.prototype.resume = function () {\n var state = this._readableState;\n\n if (!state.flowing) {\n debug('resume'); // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n\n state.paused = false;\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n\n if (!state.reading) {\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n\n this._readableState.paused = true;\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n\n while (state.flowing && stream.read() !== null) {\n ;\n }\n} // wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\n\n\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n\n if (!ret) {\n paused = true;\n stream.pause();\n }\n }); // proxy all the other methods.\n // important when wrapping filters and duplexes.\n\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n } // proxy certain important events.\n\n\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n } // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n\n\n this._read = function (n) {\n debug('wrapped _read', n);\n\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n\n return createReadableStreamAsyncIterator(this);\n };\n}\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n}); // exposed for testing purposes only.\n\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n}); // Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift.\n\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\n\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n\n return from(Readable, iterable, opts);\n };\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n\n return -1;\n}","// 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// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n'use strict';\n\nmodule.exports = Transform;\n\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n\nvar Duplex = require('./_stream_duplex');\n\nrequire('inherits')(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n }; // start out asking for a readable event once data is transformed.\n\n this._readableState.needReadable = true; // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n } // When the writable side finishes, then flush out anything remaining.\n\n\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n}; // This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\n\n\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n}; // Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\n\n\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data); // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","// 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// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n'use strict';\n\nmodule.exports = Writable;\n/* */\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\n\n\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n/**/\n\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n\nrequire('inherits')(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n\n this.sync = true; // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n\n while (current) {\n out.push(current);\n current = current.next;\n }\n\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex'); // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n} // Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n\n return true;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\n\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n}); // if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er); // this can emit finish, but finish must\n // always follow error\n\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n} // Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\n\n\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n} // if there's something in the buffer waiting, then process it\n\n\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n errorOrDestroy(stream, err);\n }\n\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n } // reuse the free corkReq.\n\n\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","'use strict';\n\nvar _Object$setPrototypeO;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar finished = require('./end-of-stream');\n\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\n\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\n\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n\n if (resolve !== null) {\n var data = iter[kStream].read(); // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\n\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\n\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\n\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n\n next: function next() {\n var _this = this;\n\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n\n if (error !== null) {\n return Promise.reject(error);\n }\n\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n } // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n\n\n var lastPromise = this[kLastPromise];\n var promise;\n\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n\n promise = new Promise(this[kHandlePromise]);\n }\n\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\n\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n\n iterator[kError] = err;\n return;\n }\n\n var resolve = iterator[kLastResolve];\n\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\n\nmodule.exports = createReadableStreamAsyncIterator;","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\n\nvar _require2 = require('util'),\n inspect = _require2.inspect;\n\nvar custom = inspect && inspect.custom || 'inspect';\n\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\n\nmodule.exports =\n/*#__PURE__*/\nfunction () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n\n while (p = p.next) {\n ret += s + p.data;\n }\n\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n\n return ret;\n } // Consumes a specified amount of bytes or characters from the buffered data.\n\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n } // Consumes a specified amount of characters from the buffered data.\n\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Consumes a specified amount of bytes from the buffered data.\n\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Make sure the linked list only shows the minimal necessary information.\n\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n\n return BufferList;\n}();","'use strict'; // undocumented cb() API, needed for core, not for public API\n\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n } // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n\n return this;\n}\n\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\n\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n callback.apply(this, args);\n };\n}\n\nfunction noop() {}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n\n var writableEnded = stream._writableState && stream._writableState.finished;\n\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n\n var onclose = function onclose() {\n var err;\n\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\n\nmodule.exports = eos;","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar eos;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\n\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true; // request.destroy just do .end - .abort is what we want\n\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\n\nfunction call(fn) {\n fn();\n}\n\nfunction pipe(from, to) {\n return from.pipe(to);\n}\n\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\n\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\n\nmodule.exports = pipeline;","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\n\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\n\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n\n return Math.floor(hwm);\n } // Default value\n\n\n return state.objectMode ? 16 : 16 * 1024;\n}\n\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","module.exports = require('events').EventEmitter;\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","'use strict'\nvar Buffer = require('buffer').Buffer\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\n\nvar ARRAY16 = new Array(16)\n\nvar zl = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n]\n\nvar zr = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n]\n\nvar sl = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n]\n\nvar sr = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n]\n\nvar hl = [0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e]\nvar hr = [0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000]\n\nfunction RIPEMD160 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n}\n\ninherits(RIPEMD160, HashBase)\n\nRIPEMD160.prototype._update = function () {\n var words = ARRAY16\n for (var j = 0; j < 16; ++j) words[j] = this._block.readInt32LE(j * 4)\n\n var al = this._a | 0\n var bl = this._b | 0\n var cl = this._c | 0\n var dl = this._d | 0\n var el = this._e | 0\n\n var ar = this._a | 0\n var br = this._b | 0\n var cr = this._c | 0\n var dr = this._d | 0\n var er = this._e | 0\n\n // computation\n for (var i = 0; i < 80; i += 1) {\n var tl\n var tr\n if (i < 16) {\n tl = fn1(al, bl, cl, dl, el, words[zl[i]], hl[0], sl[i])\n tr = fn5(ar, br, cr, dr, er, words[zr[i]], hr[0], sr[i])\n } else if (i < 32) {\n tl = fn2(al, bl, cl, dl, el, words[zl[i]], hl[1], sl[i])\n tr = fn4(ar, br, cr, dr, er, words[zr[i]], hr[1], sr[i])\n } else if (i < 48) {\n tl = fn3(al, bl, cl, dl, el, words[zl[i]], hl[2], sl[i])\n tr = fn3(ar, br, cr, dr, er, words[zr[i]], hr[2], sr[i])\n } else if (i < 64) {\n tl = fn4(al, bl, cl, dl, el, words[zl[i]], hl[3], sl[i])\n tr = fn2(ar, br, cr, dr, er, words[zr[i]], hr[3], sr[i])\n } else { // if (i<80) {\n tl = fn5(al, bl, cl, dl, el, words[zl[i]], hl[4], sl[i])\n tr = fn1(ar, br, cr, dr, er, words[zr[i]], hr[4], sr[i])\n }\n\n al = el\n el = dl\n dl = rotl(cl, 10)\n cl = bl\n bl = tl\n\n ar = er\n er = dr\n dr = rotl(cr, 10)\n cr = br\n br = tr\n }\n\n // update state\n var t = (this._b + cl + dr) | 0\n this._b = (this._c + dl + er) | 0\n this._c = (this._d + el + ar) | 0\n this._d = (this._e + al + br) | 0\n this._e = (this._a + bl + cr) | 0\n this._a = t\n}\n\nRIPEMD160.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.alloc ? Buffer.alloc(20) : new Buffer(20)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n buffer.writeInt32LE(this._e, 16)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fn1 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn2 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn3 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b | (~c)) ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn4 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn5 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ (c | (~d))) + m + k) | 0, s) + e) | 0\n}\n\nmodule.exports = RIPEMD160\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getAddress = void 0;\nconst jsontokens_1 = require(\"jsontokens\");\nconst provider_1 = require(\"../provider\");\nconst getAddress = async (options) => {\n const provider = await (0, provider_1.getProviderOrThrow)(options.getProvider);\n const { purposes } = options.payload;\n if (!purposes) {\n throw new Error('Address purposes are required');\n }\n try {\n const request = (0, jsontokens_1.createUnsecuredToken)(options.payload);\n const response = await provider.connect(request);\n options.onFinish?.(response);\n }\n catch (error) {\n console.error('[Connect] Error during address request', error);\n options.onCancel?.();\n }\n};\nexports.getAddress = getAddress;\n__exportStar(require(\"./types\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AddressPurpose = void 0;\nvar AddressPurpose;\n(function (AddressPurpose) {\n AddressPurpose[\"Ordinals\"] = \"ordinals\";\n AddressPurpose[\"Payment\"] = \"payment\";\n})(AddressPurpose = exports.AddressPurpose || (exports.AddressPurpose = {}));\n//# sourceMappingURL=types.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.callWalletPopup = void 0;\nconst jsontokens_1 = require(\"jsontokens\");\nconst provider_1 = require(\"../provider\");\nconst callWalletPopup = async (options) => {\n const provider = await (0, provider_1.getProviderOrThrow)(options.getProvider);\n const { method } = options.payload;\n if (!method) {\n throw new Error('A wallet method is required');\n }\n const request = (0, jsontokens_1.createUnsecuredToken)(options.payload);\n try {\n const response = await provider.call(request);\n options.onFinish?.(response);\n }\n catch (error) {\n console.error('[Connect] Error during call request', error);\n options.onCancel?.();\n }\n};\nexports.callWalletPopup = callWalletPopup;\n__exportStar(require(\"./types\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=types.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getCapabilities = void 0;\nconst jsontokens_1 = require(\"jsontokens\");\nconst provider_1 = require(\"../provider\");\nconst extractOrValidateCapabilities = (provider, reportedCapabilities) => {\n const validateCapability = (capability) => {\n if (!provider[capability]) {\n return false;\n }\n // The provider might have the method implemented but not ready for use\n if (reportedCapabilities && !reportedCapabilities.has(capability)) {\n return false;\n }\n return true;\n };\n const capabilityMap = {\n call: validateCapability('call'),\n connect: validateCapability('connect'),\n signMessage: validateCapability('signMessage'),\n signTransaction: validateCapability('signTransaction'),\n sendBtcTransaction: validateCapability('sendBtcTransaction'),\n createInscription: validateCapability('createInscription'),\n };\n return Object.entries(capabilityMap).reduce((acc, [capability, value]) => {\n if (value)\n return [...acc, capability];\n return acc;\n }, []);\n};\nconst getCapabilities = async (options) => {\n const provider = await (0, provider_1.getProviderOrThrow)(options.getProvider);\n const request = (0, jsontokens_1.createUnsecuredToken)(options.payload);\n if (provider.getCapabilities) {\n try {\n const response = await provider.getCapabilities(request);\n options.onFinish?.(extractOrValidateCapabilities(provider, new Set(response)));\n }\n catch (error) {\n console.error('[Connect] Error during capabilities request', error);\n }\n }\n try {\n const inferredCapabilities = extractOrValidateCapabilities(provider);\n options.onFinish?.(inferredCapabilities);\n }\n catch (error) {\n console.error('[Connect] Error during capabilities request', error);\n options.onCancel?.();\n }\n};\nexports.getCapabilities = getCapabilities;\n__exportStar(require(\"./types\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=types.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./addresses\"), exports);\n__exportStar(require(\"./call\"), exports);\n__exportStar(require(\"./capabilities\"), exports);\n__exportStar(require(\"./inscriptions\"), exports);\n__exportStar(require(\"./messages\"), exports);\n__exportStar(require(\"./provider\"), exports);\n__exportStar(require(\"./transactions\"), exports);\n__exportStar(require(\"./types\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createInscription = exports.validateInscriptionPayload = void 0;\nconst jsontokens_1 = require(\"jsontokens\");\nconst provider_1 = require(\"../provider\");\nconst MAX_CONTENT_LENGTH_MAINNET = 400e3; // 400kb is the max miners will mine\nconst MAX_CONTENT_LENGTH_TESTNET = 60e3; // 60kb limit on Testnet to prevent spam\nconst validateInscriptionPayload = (payload) => {\n const { contentType, content, payloadType, network, appFeeAddress, appFee } = payload;\n if (!/^[a-z]+\\/[a-z0-9\\-\\.\\+]+(?=;.*|$)/.test(contentType)) {\n throw new Error('Invalid content type detected');\n }\n if (!content || content.length === 0) {\n throw new Error('Empty content not allowed');\n }\n if (!payloadType || (payloadType !== 'BASE_64' && payloadType !== 'PLAIN_TEXT')) {\n throw new Error('Empty invalid payloadType specified');\n }\n if (content.length >\n (network.type === 'Mainnet' ? MAX_CONTENT_LENGTH_MAINNET : MAX_CONTENT_LENGTH_TESTNET)) {\n throw new Error('Content too large');\n }\n if ((appFeeAddress?.length ?? 0) > 0 && (appFee ?? 0) <= 0) {\n throw new Error('Invalid combination of app fee address and fee provided');\n }\n};\nexports.validateInscriptionPayload = validateInscriptionPayload;\nconst createInscription = async (options) => {\n const { getProvider } = options;\n const provider = await (0, provider_1.getProviderOrThrow)(getProvider);\n (0, exports.validateInscriptionPayload)(options.payload);\n try {\n const request = (0, jsontokens_1.createUnsecuredToken)(options.payload);\n const response = await provider.createInscription(request);\n options.onFinish?.(response);\n }\n catch (error) {\n console.error('[Connect] Error during create inscription', error);\n options.onCancel?.();\n }\n};\nexports.createInscription = createInscription;\n//# sourceMappingURL=createInscription.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./createInscription\"), exports);\n__exportStar(require(\"./types\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=types.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.signMessage = void 0;\nconst jsontokens_1 = require(\"jsontokens\");\nconst provider_1 = require(\"../provider\");\nconst signMessage = async (options) => {\n const provider = await (0, provider_1.getProviderOrThrow)(options.getProvider);\n const { address, message } = options.payload;\n if (!address) {\n throw new Error('An address is required to sign a message');\n }\n if (!message) {\n throw new Error('A message to be signed is required');\n }\n try {\n const request = (0, jsontokens_1.createUnsecuredToken)(options.payload);\n const response = await provider.signMessage(request);\n options.onFinish?.(response);\n }\n catch (error) {\n console.error('[Connect] Error during sign message request', error);\n options.onCancel?.();\n }\n};\nexports.signMessage = signMessage;\n__exportStar(require(\"./types\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=types.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getProviderOrThrow = void 0;\nasync function getProviderOrThrow(getProvider) {\n const provider = (await getProvider?.()) || window.BitcoinProvider;\n if (!provider) {\n throw new Error('No Bitcoin wallet installed');\n }\n return provider;\n}\nexports.getProviderOrThrow = getProviderOrThrow;\n__exportStar(require(\"./types\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=types.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./sendBtcTransaction\"), exports);\n__exportStar(require(\"./signTransaction\"), exports);\n__exportStar(require(\"./types\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sendBtcTransaction = void 0;\nconst jsontokens_1 = require(\"jsontokens\");\nconst provider_1 = require(\"../provider\");\nconst serializer = (recipient) => {\n return recipient.map((value) => {\n const { address, amountSats } = value;\n return {\n address,\n amountSats: amountSats.toString(),\n };\n });\n};\nconst sendBtcTransaction = async (options) => {\n const provider = await (0, provider_1.getProviderOrThrow)(options.getProvider);\n const { recipients, senderAddress, network, message } = options.payload;\n if (!recipients || recipients.length === 0) {\n throw new Error('At least one recipient is required');\n }\n if (recipients.some((item) => typeof item.address !== 'string' || typeof item.amountSats !== 'bigint')) {\n throw new Error('Incorrect recipient format');\n }\n if (!senderAddress) {\n throw new Error('The sender address is required');\n }\n try {\n const serializedRecipients = serializer(recipients);\n const serializedPayload = {\n network,\n senderAddress,\n message,\n recipients: serializedRecipients,\n };\n const request = (0, jsontokens_1.createUnsecuredToken)(serializedPayload);\n const response = await provider.sendBtcTransaction(request);\n options.onFinish?.(response);\n }\n catch (error) {\n console.error('[Connect] Error during send BTC transaction request', error);\n options.onCancel?.();\n }\n};\nexports.sendBtcTransaction = sendBtcTransaction;\n//# sourceMappingURL=sendBtcTransaction.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.signTransaction = void 0;\nconst jsontokens_1 = require(\"jsontokens\");\nconst provider_1 = require(\"../provider\");\nconst signTransaction = async (options) => {\n const provider = await (0, provider_1.getProviderOrThrow)(options.getProvider);\n const { psbtBase64, inputsToSign } = options.payload;\n if (!psbtBase64) {\n throw new Error('A value for psbtBase64 representing the tx hash is required');\n }\n if (!inputsToSign) {\n throw new Error('An array specifying the inputs to be signed by the wallet is required');\n }\n try {\n const request = (0, jsontokens_1.createUnsecuredToken)(options.payload);\n const response = await provider.signTransaction(request);\n options.onFinish?.(response);\n }\n catch (error) {\n console.error('[Connect] Error during sign transaction request', error);\n options.onCancel?.();\n }\n};\nexports.signTransaction = signTransaction;\n//# sourceMappingURL=signTransaction.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=types.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BitcoinNetworkType = void 0;\nvar BitcoinNetworkType;\n(function (BitcoinNetworkType) {\n BitcoinNetworkType[\"Mainnet\"] = \"Mainnet\";\n BitcoinNetworkType[\"Testnet\"] = \"Testnet\";\n})(BitcoinNetworkType = exports.BitcoinNetworkType || (exports.BitcoinNetworkType = {}));\n//# sourceMappingURL=types.js.map","var Buffer = require('safe-buffer').Buffer\n\n// prototype class for hash functions\nfunction Hash (blockSize, finalSize) {\n this._block = Buffer.alloc(blockSize)\n this._finalSize = finalSize\n this._blockSize = blockSize\n this._len = 0\n}\n\nHash.prototype.update = function (data, enc) {\n if (typeof data === 'string') {\n enc = enc || 'utf8'\n data = Buffer.from(data, enc)\n }\n\n var block = this._block\n var blockSize = this._blockSize\n var length = data.length\n var accum = this._len\n\n for (var offset = 0; offset < length;) {\n var assigned = accum % blockSize\n var remainder = Math.min(length - offset, blockSize - assigned)\n\n for (var i = 0; i < remainder; i++) {\n block[assigned + i] = data[offset + i]\n }\n\n accum += remainder\n offset += remainder\n\n if ((accum % blockSize) === 0) {\n this._update(block)\n }\n }\n\n this._len += length\n return this\n}\n\nHash.prototype.digest = function (enc) {\n var rem = this._len % this._blockSize\n\n this._block[rem] = 0x80\n\n // zero (rem + 1) trailing bits, where (rem + 1) is the smallest\n // non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize\n this._block.fill(0, rem + 1)\n\n if (rem >= this._finalSize) {\n this._update(this._block)\n this._block.fill(0)\n }\n\n var bits = this._len * 8\n\n // uint32\n if (bits <= 0xffffffff) {\n this._block.writeUInt32BE(bits, this._blockSize - 4)\n\n // uint64\n } else {\n var lowBits = (bits & 0xffffffff) >>> 0\n var highBits = (bits - lowBits) / 0x100000000\n\n this._block.writeUInt32BE(highBits, this._blockSize - 8)\n this._block.writeUInt32BE(lowBits, this._blockSize - 4)\n }\n\n this._update(this._block)\n var hash = this._hash()\n\n return enc ? hash.toString(enc) : hash\n}\n\nHash.prototype._update = function () {\n throw new Error('_update must be implemented by subclass')\n}\n\nmodule.exports = Hash\n","var exports = module.exports = function SHA (algorithm) {\n algorithm = algorithm.toLowerCase()\n\n var Algorithm = exports[algorithm]\n if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')\n\n return new Algorithm()\n}\n\nexports.sha = require('./sha')\nexports.sha1 = require('./sha1')\nexports.sha224 = require('./sha224')\nexports.sha256 = require('./sha256')\nexports.sha384 = require('./sha384')\nexports.sha512 = require('./sha512')\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined\n * in FIPS PUB 180-1\n * This source code is derived from sha1.js of the same repository.\n * The difference between SHA-0 and SHA-1 is just a bitwise rotate left\n * operation was added.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha, Hash)\n\nSha.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined\n * in FIPS PUB 180-1\n * Version 2.1a Copyright Paul Johnston 2000 - 2002.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for details.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha1 () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha1, Hash)\n\nSha1.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl1 (num) {\n return (num << 1) | (num >>> 31)\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha1.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = rotl1(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16])\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha1.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha1\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Sha256 = require('./sha256')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(64)\n\nfunction Sha224 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha224, Sha256)\n\nSha224.prototype.init = function () {\n this._a = 0xc1059ed8\n this._b = 0x367cd507\n this._c = 0x3070dd17\n this._d = 0xf70e5939\n this._e = 0xffc00b31\n this._f = 0x68581511\n this._g = 0x64f98fa7\n this._h = 0xbefa4fa4\n\n return this\n}\n\nSha224.prototype._hash = function () {\n var H = Buffer.allocUnsafe(28)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n\n return H\n}\n\nmodule.exports = Sha224\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,\n 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,\n 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,\n 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,\n 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,\n 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,\n 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,\n 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,\n 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,\n 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,\n 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,\n 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,\n 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,\n 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,\n 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,\n 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2\n]\n\nvar W = new Array(64)\n\nfunction Sha256 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha256, Hash)\n\nSha256.prototype.init = function () {\n this._a = 0x6a09e667\n this._b = 0xbb67ae85\n this._c = 0x3c6ef372\n this._d = 0xa54ff53a\n this._e = 0x510e527f\n this._f = 0x9b05688c\n this._g = 0x1f83d9ab\n this._h = 0x5be0cd19\n\n return this\n}\n\nfunction ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x) {\n return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10)\n}\n\nfunction sigma1 (x) {\n return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7)\n}\n\nfunction gamma0 (x) {\n return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ (x >>> 3)\n}\n\nfunction gamma1 (x) {\n return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ (x >>> 10)\n}\n\nSha256.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n var f = this._f | 0\n var g = this._g | 0\n var h = this._h | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 64; ++i) W[i] = (gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16]) | 0\n\n for (var j = 0; j < 64; ++j) {\n var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) | 0\n var T2 = (sigma0(a) + maj(a, b, c)) | 0\n\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\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n this._f = (f + this._f) | 0\n this._g = (g + this._g) | 0\n this._h = (h + this._h) | 0\n}\n\nSha256.prototype._hash = function () {\n var H = Buffer.allocUnsafe(32)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n H.writeInt32BE(this._h, 28)\n\n return H\n}\n\nmodule.exports = Sha256\n","var inherits = require('inherits')\nvar SHA512 = require('./sha512')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(160)\n\nfunction Sha384 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha384, SHA512)\n\nSha384.prototype.init = function () {\n this._ah = 0xcbbb9d5d\n this._bh = 0x629a292a\n this._ch = 0x9159015a\n this._dh = 0x152fecd8\n this._eh = 0x67332667\n this._fh = 0x8eb44a87\n this._gh = 0xdb0c2e0d\n this._hh = 0x47b5481d\n\n this._al = 0xc1059ed8\n this._bl = 0x367cd507\n this._cl = 0x3070dd17\n this._dl = 0xf70e5939\n this._el = 0xffc00b31\n this._fl = 0x68581511\n this._gl = 0x64f98fa7\n this._hl = 0xbefa4fa4\n\n return this\n}\n\nSha384.prototype._hash = function () {\n var H = Buffer.allocUnsafe(48)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n\n return H\n}\n\nmodule.exports = Sha384\n","var inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n]\n\nvar W = new Array(160)\n\nfunction Sha512 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha512, Hash)\n\nSha512.prototype.init = function () {\n this._ah = 0x6a09e667\n this._bh = 0xbb67ae85\n this._ch = 0x3c6ef372\n this._dh = 0xa54ff53a\n this._eh = 0x510e527f\n this._fh = 0x9b05688c\n this._gh = 0x1f83d9ab\n this._hh = 0x5be0cd19\n\n this._al = 0xf3bcc908\n this._bl = 0x84caa73b\n this._cl = 0xfe94f82b\n this._dl = 0x5f1d36f1\n this._el = 0xade682d1\n this._fl = 0x2b3e6c1f\n this._gl = 0xfb41bd6b\n this._hl = 0x137e2179\n\n return this\n}\n\nfunction Ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x, xl) {\n return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25)\n}\n\nfunction sigma1 (x, xl) {\n return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23)\n}\n\nfunction Gamma0 (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7)\n}\n\nfunction Gamma0l (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25)\n}\n\nfunction Gamma1 (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6)\n}\n\nfunction Gamma1l (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26)\n}\n\nfunction getCarry (a, b) {\n return (a >>> 0) < (b >>> 0) ? 1 : 0\n}\n\nSha512.prototype._update = function (M) {\n var W = this._w\n\n var ah = this._ah | 0\n var bh = this._bh | 0\n var ch = this._ch | 0\n var dh = this._dh | 0\n var eh = this._eh | 0\n var fh = this._fh | 0\n var gh = this._gh | 0\n var hh = this._hh | 0\n\n var al = this._al | 0\n var bl = this._bl | 0\n var cl = this._cl | 0\n var dl = this._dl | 0\n var el = this._el | 0\n var fl = this._fl | 0\n var gl = this._gl | 0\n var hl = this._hl | 0\n\n for (var i = 0; i < 32; i += 2) {\n W[i] = M.readInt32BE(i * 4)\n W[i + 1] = M.readInt32BE(i * 4 + 4)\n }\n for (; i < 160; i += 2) {\n var xh = W[i - 15 * 2]\n var xl = W[i - 15 * 2 + 1]\n var gamma0 = Gamma0(xh, xl)\n var gamma0l = Gamma0l(xl, xh)\n\n xh = W[i - 2 * 2]\n xl = W[i - 2 * 2 + 1]\n var gamma1 = Gamma1(xh, xl)\n var gamma1l = Gamma1l(xl, xh)\n\n // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n var Wi7h = W[i - 7 * 2]\n var Wi7l = W[i - 7 * 2 + 1]\n\n var Wi16h = W[i - 16 * 2]\n var Wi16l = W[i - 16 * 2 + 1]\n\n var Wil = (gamma0l + Wi7l) | 0\n var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0\n Wil = (Wil + gamma1l) | 0\n Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0\n Wil = (Wil + Wi16l) | 0\n Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0\n\n W[i] = Wih\n W[i + 1] = Wil\n }\n\n for (var j = 0; j < 160; j += 2) {\n Wih = W[j]\n Wil = W[j + 1]\n\n var majh = maj(ah, bh, ch)\n var majl = maj(al, bl, cl)\n\n var sigma0h = sigma0(ah, al)\n var sigma0l = sigma0(al, ah)\n var sigma1h = sigma1(eh, el)\n var sigma1l = sigma1(el, eh)\n\n // t1 = h + sigma1 + ch + K[j] + W[j]\n var Kih = K[j]\n var Kil = K[j + 1]\n\n var chh = Ch(eh, fh, gh)\n var chl = Ch(el, fl, gl)\n\n var t1l = (hl + sigma1l) | 0\n var t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0\n t1l = (t1l + chl) | 0\n t1h = (t1h + chh + getCarry(t1l, chl)) | 0\n t1l = (t1l + Kil) | 0\n t1h = (t1h + Kih + getCarry(t1l, Kil)) | 0\n t1l = (t1l + Wil) | 0\n t1h = (t1h + Wih + getCarry(t1l, Wil)) | 0\n\n // t2 = sigma0 + maj\n var t2l = (sigma0l + majl) | 0\n var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0\n\n hh = gh\n hl = gl\n gh = fh\n gl = fl\n fh = eh\n fl = el\n el = (dl + t1l) | 0\n eh = (dh + t1h + getCarry(el, dl)) | 0\n dh = ch\n dl = cl\n ch = bh\n cl = bl\n bh = ah\n bl = al\n al = (t1l + t2l) | 0\n ah = (t1h + t2h + getCarry(al, t1l)) | 0\n }\n\n this._al = (this._al + al) | 0\n this._bl = (this._bl + bl) | 0\n this._cl = (this._cl + cl) | 0\n this._dl = (this._dl + dl) | 0\n this._el = (this._el + el) | 0\n this._fl = (this._fl + fl) | 0\n this._gl = (this._gl + gl) | 0\n this._hl = (this._hl + hl) | 0\n\n this._ah = (this._ah + ah + getCarry(this._al, al)) | 0\n this._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0\n this._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0\n this._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0\n this._eh = (this._eh + eh + getCarry(this._el, el)) | 0\n this._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0\n this._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0\n this._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0\n}\n\nSha512.prototype._hash = function () {\n var H = Buffer.allocUnsafe(64)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n writeInt64BE(this._gh, this._gl, 48)\n writeInt64BE(this._hh, this._hl, 56)\n\n return H\n}\n\nmodule.exports = Sha512\n","'use strict';\n\nmodule.exports = (string, separator) => {\n\tif (!(typeof string === 'string' && typeof separator === 'string')) {\n\t\tthrow new TypeError('Expected the arguments to be of type `string`');\n\t}\n\n\tif (separator === '') {\n\t\treturn [string];\n\t}\n\n\tconst separatorIndex = string.indexOf(separator);\n\n\tif (separatorIndex === -1) {\n\t\treturn [string];\n\t}\n\n\treturn [\n\t\tstring.slice(0, separatorIndex),\n\t\tstring.slice(separatorIndex + separator.length)\n\t];\n};\n","'use strict';\nmodule.exports = str => encodeURIComponent(str).replace(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n","// 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\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\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","var native = require('./native')\n\nfunction getTypeName (fn) {\n return fn.name || fn.toString().match(/function (.*?)\\s*\\(/)[1]\n}\n\nfunction getValueTypeName (value) {\n return native.Nil(value) ? '' : getTypeName(value.constructor)\n}\n\nfunction getValue (value) {\n if (native.Function(value)) return ''\n if (native.String(value)) return JSON.stringify(value)\n if (value && native.Object(value)) return ''\n return value\n}\n\nfunction captureStackTrace (e, t) {\n if (Error.captureStackTrace) {\n Error.captureStackTrace(e, t)\n }\n}\n\nfunction tfJSON (type) {\n if (native.Function(type)) return type.toJSON ? type.toJSON() : getTypeName(type)\n if (native.Array(type)) return 'Array'\n if (type && native.Object(type)) return 'Object'\n\n return type !== undefined ? type : ''\n}\n\nfunction tfErrorString (type, value, valueTypeName) {\n var valueJson = getValue(value)\n\n return 'Expected ' + tfJSON(type) + ', got' +\n (valueTypeName !== '' ? ' ' + valueTypeName : '') +\n (valueJson !== '' ? ' ' + valueJson : '')\n}\n\nfunction TfTypeError (type, value, valueTypeName) {\n valueTypeName = valueTypeName || getValueTypeName(value)\n this.message = tfErrorString(type, value, valueTypeName)\n\n captureStackTrace(this, TfTypeError)\n this.__type = type\n this.__value = value\n this.__valueTypeName = valueTypeName\n}\n\nTfTypeError.prototype = Object.create(Error.prototype)\nTfTypeError.prototype.constructor = TfTypeError\n\nfunction tfPropertyErrorString (type, label, name, value, valueTypeName) {\n var description = '\" of type '\n if (label === 'key') description = '\" with key type '\n\n return tfErrorString('property \"' + tfJSON(name) + description + tfJSON(type), value, valueTypeName)\n}\n\nfunction TfPropertyTypeError (type, property, label, value, valueTypeName) {\n if (type) {\n valueTypeName = valueTypeName || getValueTypeName(value)\n this.message = tfPropertyErrorString(type, label, property, value, valueTypeName)\n } else {\n this.message = 'Unexpected property \"' + property + '\"'\n }\n\n captureStackTrace(this, TfTypeError)\n this.__label = label\n this.__property = property\n this.__type = type\n this.__value = value\n this.__valueTypeName = valueTypeName\n}\n\nTfPropertyTypeError.prototype = Object.create(Error.prototype)\nTfPropertyTypeError.prototype.constructor = TfTypeError\n\nfunction tfCustomError (expected, actual) {\n return new TfTypeError(expected, {}, actual)\n}\n\nfunction tfSubError (e, property, label) {\n // sub child?\n if (e instanceof TfPropertyTypeError) {\n property = property + '.' + e.__property\n\n e = new TfPropertyTypeError(\n e.__type, property, e.__label, e.__value, e.__valueTypeName\n )\n\n // child?\n } else if (e instanceof TfTypeError) {\n e = new TfPropertyTypeError(\n e.__type, property, label, e.__value, e.__valueTypeName\n )\n }\n\n captureStackTrace(e)\n return e\n}\n\nmodule.exports = {\n TfTypeError: TfTypeError,\n TfPropertyTypeError: TfPropertyTypeError,\n tfCustomError: tfCustomError,\n tfSubError: tfSubError,\n tfJSON: tfJSON,\n getValueTypeName: getValueTypeName\n}\n","var NATIVE = require('./native')\nvar ERRORS = require('./errors')\n\nfunction _Buffer (value) {\n return Buffer.isBuffer(value)\n}\n\nfunction Hex (value) {\n return typeof value === 'string' && /^([0-9a-f]{2})+$/i.test(value)\n}\n\nfunction _LengthN (type, length) {\n var name = type.toJSON()\n\n function Length (value) {\n if (!type(value)) return false\n if (value.length === length) return true\n\n throw ERRORS.tfCustomError(name + '(Length: ' + length + ')', name + '(Length: ' + value.length + ')')\n }\n Length.toJSON = function () { return name }\n\n return Length\n}\n\nvar _ArrayN = _LengthN.bind(null, NATIVE.Array)\nvar _BufferN = _LengthN.bind(null, _Buffer)\nvar _HexN = _LengthN.bind(null, Hex)\nvar _StringN = _LengthN.bind(null, NATIVE.String)\n\nfunction Range (a, b, f) {\n f = f || NATIVE.Number\n function _range (value, strict) {\n return f(value, strict) && (value > a) && (value < b)\n }\n _range.toJSON = function () {\n return `${f.toJSON()} between [${a}, ${b}]`\n }\n return _range\n}\n\nvar INT53_MAX = Math.pow(2, 53) - 1\n\nfunction Finite (value) {\n return typeof value === 'number' && isFinite(value)\n}\nfunction Int8 (value) { return ((value << 24) >> 24) === value }\nfunction Int16 (value) { return ((value << 16) >> 16) === value }\nfunction Int32 (value) { return (value | 0) === value }\nfunction Int53 (value) {\n return typeof value === 'number' &&\n value >= -INT53_MAX &&\n value <= INT53_MAX &&\n Math.floor(value) === value\n}\nfunction UInt8 (value) { return (value & 0xff) === value }\nfunction UInt16 (value) { return (value & 0xffff) === value }\nfunction UInt32 (value) { return (value >>> 0) === value }\nfunction UInt53 (value) {\n return typeof value === 'number' &&\n value >= 0 &&\n value <= INT53_MAX &&\n Math.floor(value) === value\n}\n\nvar types = {\n ArrayN: _ArrayN,\n Buffer: _Buffer,\n BufferN: _BufferN,\n Finite: Finite,\n Hex: Hex,\n HexN: _HexN,\n Int8: Int8,\n Int16: Int16,\n Int32: Int32,\n Int53: Int53,\n Range: Range,\n StringN: _StringN,\n UInt8: UInt8,\n UInt16: UInt16,\n UInt32: UInt32,\n UInt53: UInt53\n}\n\nfor (var typeName in types) {\n types[typeName].toJSON = function (t) {\n return t\n }.bind(null, typeName)\n}\n\nmodule.exports = types\n","var ERRORS = require('./errors')\nvar NATIVE = require('./native')\n\n// short-hand\nvar tfJSON = ERRORS.tfJSON\nvar TfTypeError = ERRORS.TfTypeError\nvar TfPropertyTypeError = ERRORS.TfPropertyTypeError\nvar tfSubError = ERRORS.tfSubError\nvar getValueTypeName = ERRORS.getValueTypeName\n\nvar TYPES = {\n arrayOf: function arrayOf (type, options) {\n type = compile(type)\n options = options || {}\n\n function _arrayOf (array, strict) {\n if (!NATIVE.Array(array)) return false\n if (NATIVE.Nil(array)) return false\n if (options.minLength !== undefined && array.length < options.minLength) return false\n if (options.maxLength !== undefined && array.length > options.maxLength) return false\n if (options.length !== undefined && array.length !== options.length) return false\n\n return array.every(function (value, i) {\n try {\n return typeforce(type, value, strict)\n } catch (e) {\n throw tfSubError(e, i)\n }\n })\n }\n _arrayOf.toJSON = function () {\n var str = '[' + tfJSON(type) + ']'\n if (options.length !== undefined) {\n str += '{' + options.length + '}'\n } else if (options.minLength !== undefined || options.maxLength !== undefined) {\n str += '{' +\n (options.minLength === undefined ? 0 : options.minLength) + ',' +\n (options.maxLength === undefined ? Infinity : options.maxLength) + '}'\n }\n return str\n }\n\n return _arrayOf\n },\n\n maybe: function maybe (type) {\n type = compile(type)\n\n function _maybe (value, strict) {\n return NATIVE.Nil(value) || type(value, strict, maybe)\n }\n _maybe.toJSON = function () { return '?' + tfJSON(type) }\n\n return _maybe\n },\n\n map: function map (propertyType, propertyKeyType) {\n propertyType = compile(propertyType)\n if (propertyKeyType) propertyKeyType = compile(propertyKeyType)\n\n function _map (value, strict) {\n if (!NATIVE.Object(value)) return false\n if (NATIVE.Nil(value)) return false\n\n for (var propertyName in value) {\n try {\n if (propertyKeyType) {\n typeforce(propertyKeyType, propertyName, strict)\n }\n } catch (e) {\n throw tfSubError(e, propertyName, 'key')\n }\n\n try {\n var propertyValue = value[propertyName]\n typeforce(propertyType, propertyValue, strict)\n } catch (e) {\n throw tfSubError(e, propertyName)\n }\n }\n\n return true\n }\n\n if (propertyKeyType) {\n _map.toJSON = function () {\n return '{' + tfJSON(propertyKeyType) + ': ' + tfJSON(propertyType) + '}'\n }\n } else {\n _map.toJSON = function () { return '{' + tfJSON(propertyType) + '}' }\n }\n\n return _map\n },\n\n object: function object (uncompiled) {\n var type = {}\n\n for (var typePropertyName in uncompiled) {\n type[typePropertyName] = compile(uncompiled[typePropertyName])\n }\n\n function _object (value, strict) {\n if (!NATIVE.Object(value)) return false\n if (NATIVE.Nil(value)) return false\n\n var propertyName\n\n try {\n for (propertyName in type) {\n var propertyType = type[propertyName]\n var propertyValue = value[propertyName]\n\n typeforce(propertyType, propertyValue, strict)\n }\n } catch (e) {\n throw tfSubError(e, propertyName)\n }\n\n if (strict) {\n for (propertyName in value) {\n if (type[propertyName]) continue\n\n throw new TfPropertyTypeError(undefined, propertyName)\n }\n }\n\n return true\n }\n _object.toJSON = function () { return tfJSON(type) }\n\n return _object\n },\n\n anyOf: function anyOf () {\n var types = [].slice.call(arguments).map(compile)\n\n function _anyOf (value, strict) {\n return types.some(function (type) {\n try {\n return typeforce(type, value, strict)\n } catch (e) {\n return false\n }\n })\n }\n _anyOf.toJSON = function () { return types.map(tfJSON).join('|') }\n\n return _anyOf\n },\n\n allOf: function allOf () {\n var types = [].slice.call(arguments).map(compile)\n\n function _allOf (value, strict) {\n return types.every(function (type) {\n try {\n return typeforce(type, value, strict)\n } catch (e) {\n return false\n }\n })\n }\n _allOf.toJSON = function () { return types.map(tfJSON).join(' & ') }\n\n return _allOf\n },\n\n quacksLike: function quacksLike (type) {\n function _quacksLike (value) {\n return type === getValueTypeName(value)\n }\n _quacksLike.toJSON = function () { return type }\n\n return _quacksLike\n },\n\n tuple: function tuple () {\n var types = [].slice.call(arguments).map(compile)\n\n function _tuple (values, strict) {\n if (NATIVE.Nil(values)) return false\n if (NATIVE.Nil(values.length)) return false\n if (strict && (values.length !== types.length)) return false\n\n return types.every(function (type, i) {\n try {\n return typeforce(type, values[i], strict)\n } catch (e) {\n throw tfSubError(e, i)\n }\n })\n }\n _tuple.toJSON = function () { return '(' + types.map(tfJSON).join(', ') + ')' }\n\n return _tuple\n },\n\n value: function value (expected) {\n function _value (actual) {\n return actual === expected\n }\n _value.toJSON = function () { return expected }\n\n return _value\n }\n}\n\n// TODO: deprecate\nTYPES.oneOf = TYPES.anyOf\n\nfunction compile (type) {\n if (NATIVE.String(type)) {\n if (type[0] === '?') return TYPES.maybe(type.slice(1))\n\n return NATIVE[type] || TYPES.quacksLike(type)\n } else if (type && NATIVE.Object(type)) {\n if (NATIVE.Array(type)) {\n if (type.length !== 1) throw new TypeError('Expected compile() parameter of type Array of length 1')\n return TYPES.arrayOf(type[0])\n }\n\n return TYPES.object(type)\n } else if (NATIVE.Function(type)) {\n return type\n }\n\n return TYPES.value(type)\n}\n\nfunction typeforce (type, value, strict, surrogate) {\n if (NATIVE.Function(type)) {\n if (type(value, strict)) return true\n\n throw new TfTypeError(surrogate || type, value)\n }\n\n // JIT\n return typeforce(compile(type), value, strict)\n}\n\n// assign types to typeforce function\nfor (var typeName in NATIVE) {\n typeforce[typeName] = NATIVE[typeName]\n}\n\nfor (typeName in TYPES) {\n typeforce[typeName] = TYPES[typeName]\n}\n\nvar EXTRA = require('./extra')\nfor (typeName in EXTRA) {\n typeforce[typeName] = EXTRA[typeName]\n}\n\ntypeforce.compile = compile\ntypeforce.TfTypeError = TfTypeError\ntypeforce.TfPropertyTypeError = TfPropertyTypeError\n\nmodule.exports = typeforce\n","var types = {\n Array: function (value) { return value !== null && value !== undefined && value.constructor === Array },\n Boolean: function (value) { return typeof value === 'boolean' },\n Function: function (value) { return typeof value === 'function' },\n Nil: function (value) { return value === undefined || value === null },\n Number: function (value) { return typeof value === 'number' },\n Object: function (value) { return typeof value === 'object' },\n String: function (value) { return typeof value === 'string' },\n '': function () { return true }\n}\n\n// TODO: deprecate\ntypes.Null = types.Nil\n\nfor (var typeName in types) {\n types[typeName].toJSON = function (t) {\n return t\n }.bind(null, typeName)\n}\n\nmodule.exports = types\n","/**\n * @license React\n * use-sync-external-store-shim.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var e=require(\"react\");function h(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var k=\"function\"===typeof Object.is?Object.is:h,l=e.useState,m=e.useEffect,n=e.useLayoutEffect,p=e.useDebugValue;function q(a,b){var d=b(),f=l({inst:{value:d,getSnapshot:b}}),c=f[0].inst,g=f[1];n(function(){c.value=d;c.getSnapshot=b;r(c)&&g({inst:c})},[a,d,b]);m(function(){r(c)&&g({inst:c});return a(function(){r(c)&&g({inst:c})})},[a]);p(d);return d}\nfunction r(a){var b=a.getSnapshot;a=a.value;try{var d=b();return!k(a,d)}catch(f){return!0}}function t(a,b){return b()}var u=\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement?t:q;exports.useSyncExternalStore=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:u;\n","/**\n * @license React\n * use-sync-external-store-shim/with-selector.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var h=require(\"react\"),n=require(\"use-sync-external-store/shim\");function p(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var q=\"function\"===typeof Object.is?Object.is:p,r=n.useSyncExternalStore,t=h.useRef,u=h.useEffect,v=h.useMemo,w=h.useDebugValue;\nexports.useSyncExternalStoreWithSelector=function(a,b,e,l,g){var c=t(null);if(null===c.current){var f={hasValue:!1,value:null};c.current=f}else f=c.current;c=v(function(){function a(a){if(!c){c=!0;d=a;a=l(a);if(void 0!==g&&f.hasValue){var b=f.value;if(g(b,a))return k=b}return k=a}b=k;if(q(d,a))return b;var e=l(a);if(void 0!==g&&g(b,e))return b;d=a;return k=e}var c=!1,d,k,m=void 0===e?null:e;return[function(){return a(b())},null===m?void 0:function(){return a(m())}]},[b,e,l,g]);var d=r(a,c[0],c[1]);\nu(function(){f.hasValue=!0;f.value=d},[d]);w(d);return d};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.development.js');\n}\n","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","'use strict'\nvar Buffer = require('safe-buffer').Buffer\n\n// Number.MAX_SAFE_INTEGER\nvar MAX_SAFE_INTEGER = 9007199254740991\n\nfunction checkUInt53 (n) {\n if (n < 0 || n > MAX_SAFE_INTEGER || n % 1 !== 0) throw new RangeError('value out of range')\n}\n\nfunction encode (number, buffer, offset) {\n checkUInt53(number)\n\n if (!buffer) buffer = Buffer.allocUnsafe(encodingLength(number))\n if (!Buffer.isBuffer(buffer)) throw new TypeError('buffer must be a Buffer instance')\n if (!offset) offset = 0\n\n // 8 bit\n if (number < 0xfd) {\n buffer.writeUInt8(number, offset)\n encode.bytes = 1\n\n // 16 bit\n } else if (number <= 0xffff) {\n buffer.writeUInt8(0xfd, offset)\n buffer.writeUInt16LE(number, offset + 1)\n encode.bytes = 3\n\n // 32 bit\n } else if (number <= 0xffffffff) {\n buffer.writeUInt8(0xfe, offset)\n buffer.writeUInt32LE(number, offset + 1)\n encode.bytes = 5\n\n // 64 bit\n } else {\n buffer.writeUInt8(0xff, offset)\n buffer.writeUInt32LE(number >>> 0, offset + 1)\n buffer.writeUInt32LE((number / 0x100000000) | 0, offset + 5)\n encode.bytes = 9\n }\n\n return buffer\n}\n\nfunction decode (buffer, offset) {\n if (!Buffer.isBuffer(buffer)) throw new TypeError('buffer must be a Buffer instance')\n if (!offset) offset = 0\n\n var first = buffer.readUInt8(offset)\n\n // 8 bit\n if (first < 0xfd) {\n decode.bytes = 1\n return first\n\n // 16 bit\n } else if (first === 0xfd) {\n decode.bytes = 3\n return buffer.readUInt16LE(offset + 1)\n\n // 32 bit\n } else if (first === 0xfe) {\n decode.bytes = 5\n return buffer.readUInt32LE(offset + 1)\n\n // 64 bit\n } else {\n decode.bytes = 9\n var lo = buffer.readUInt32LE(offset + 1)\n var hi = buffer.readUInt32LE(offset + 5)\n var number = hi * 0x0100000000 + lo\n checkUInt53(number)\n\n return number\n }\n}\n\nfunction encodingLength (number) {\n checkUInt53(number)\n\n return (\n number < 0xfd ? 1\n : number <= 0xffff ? 3\n : number <= 0xffffffff ? 5\n : 9\n )\n}\n\nmodule.exports = { encode: encode, decode: decode, encodingLength: encodingLength }\n","var bs58check = require('bs58check')\n\nfunction decodeRaw (buffer, version) {\n // check version only if defined\n if (version !== undefined && buffer[0] !== version) throw new Error('Invalid network version')\n\n // uncompressed\n if (buffer.length === 33) {\n return {\n version: buffer[0],\n privateKey: buffer.slice(1, 33),\n compressed: false\n }\n }\n\n // invalid length\n if (buffer.length !== 34) throw new Error('Invalid WIF length')\n\n // invalid compression flag\n if (buffer[33] !== 0x01) throw new Error('Invalid compression flag')\n\n return {\n version: buffer[0],\n privateKey: buffer.slice(1, 33),\n compressed: true\n }\n}\n\nfunction encodeRaw (version, privateKey, compressed) {\n var result = new Buffer(compressed ? 34 : 33)\n\n result.writeUInt8(version, 0)\n privateKey.copy(result, 1)\n\n if (compressed) {\n result[33] = 0x01\n }\n\n return result\n}\n\nfunction decode (string, version) {\n return decodeRaw(bs58check.decode(string), version)\n}\n\nfunction encode (version, privateKey, compressed) {\n if (typeof version === 'number') return bs58check.encode(encodeRaw(version, privateKey, compressed))\n\n return bs58check.encode(\n encodeRaw(\n version.version,\n version.privateKey,\n version.compressed\n )\n )\n}\n\nmodule.exports = {\n decode: decode,\n decodeRaw: decodeRaw,\n encode: encode,\n encodeRaw: encodeRaw\n}\n","var gt = Object.defineProperty;\nvar mt = (i, t, e) => t in i ? gt(i, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : i[t] = e;\nvar h = (i, t, e) => (mt(i, typeof t != \"symbol\" ? t + \"\" : t, e), e), at = (i, t, e) => {\n if (!t.has(i))\n throw TypeError(\"Cannot \" + e);\n};\nvar a = (i, t, e) => (at(i, t, \"read from private field\"), e ? e.call(i) : t.get(i)), l = (i, t, e) => {\n if (t.has(i))\n throw TypeError(\"Cannot add the same private member more than once\");\n t instanceof WeakSet ? t.add(i) : t.set(i, e);\n}, p = (i, t, e, s) => (at(i, t, \"write to private field\"), s ? s.call(i, e) : t.set(i, e), e);\nimport * as It from \"@bitcoinerlab/secp256k1\";\nimport { Transaction as st, Psbt as nt, initEccLib as St } from \"bitcoinjs-lib\";\nimport { U as bt, O as f, o as ut, g as K, M as Tt, a as ht, B as yt, b as _, C as At, t as dt, c as lt, d as Ot, I as xt, e as L, f as Z, h as vt } from \"./index-7cd24a6f.js\";\nimport { k as te, A as ee, l as se, m as ne, n as ie, p as re, i as oe, j as ae } from \"./index-7cd24a6f.js\";\nimport ct from \"cross-fetch\";\nimport Ut from \"buffer-reverse\";\nimport \"bitcoin-address-validation\";\nimport \"bip32\";\nimport \"ecpair\";\nclass Et {\n constructor({ network: t }) {\n h(this, \"network\");\n this.network = t;\n }\n}\nclass q {\n /**\n * Parses an inscription.\n *\n * @param inscription Inscription\n * @param options Options\n * - `decodeMetadata` decodes the metadata object into [valid URI components](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent).\n * @returns Parsed inscription\n */\n static parseInscription(t, { decodeMetadata: e }) {\n return {\n ...t,\n meta: e && t.meta ? bt(t.meta) : t.meta\n };\n }\n /**\n * Parses inscriptions.\n *\n * @param inscriptions Inscriptions\n * @param options Options\n * - `decodeMetadata` decodes the metadata object into [valid URI components](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent).\n * @returns Parsed inscriptions\n */\n static parseInscriptions(t, { decodeMetadata: e }) {\n return t.map(\n (s) => this.parseInscription(s, { decodeMetadata: e })\n );\n }\n static segregateUTXOsBySpendStatus({\n utxos: t\n }) {\n const { spendableUTXOs: e, unspendableUTXOs: s } = t.reduce(\n (n, r) => (r.safeToSpend ? n.spendableUTXOs.push(r) : n.unspendableUTXOs.push(r), n),\n {\n spendableUTXOs: [],\n unspendableUTXOs: []\n }\n );\n return {\n totalUTXOs: t.length,\n spendableUTXOs: e,\n unspendableUTXOs: s\n };\n }\n}\nconst Q = {\n version: \"0.0.0.10\",\n apis: {\n mainnet: {\n batter: \"https://mainnet.ordit.io/\"\n },\n regtest: {\n batter: \"https://regtest.ordit.io/\"\n },\n testnet: {\n batter: \"https://testnet.ordit.io/\"\n }\n }\n};\nfunction Nt(i) {\n return typeof i == \"number\" && i > Number.NEGATIVE_INFINITY && i < Number.POSITIVE_INFINITY;\n}\nfunction Pt(i) {\n return Nt(i) && i % 1 === 0;\n}\nfunction Mt(i) {\n return typeof i == \"string\";\n}\nfunction jt(i) {\n return Mt(i) || Pt(i) || i === null;\n}\nfunction tt(i) {\n return i[i.length - 1] === \"/\" ? i.substring(0, i.length - 1) : i;\n}\nclass et {\n constructor(t) {\n this.url = t;\n }\n /**\n * Send a JSON-RPC 2.0 notification to the connected Sado compliant server.\n *\n * @param method - Method to call.\n * @param params - JSON-RPC 2.0 parameters.\n */\n async notify(t, e) {\n await ct(`${this.url}/rpc`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n jsonrpc: \"2.0\",\n method: t,\n params: e\n })\n });\n }\n async call(t, e, s) {\n let n = {}, r = s;\n jt(e) ? r = e : n = e;\n const u = await ct(`${this.url}/rpc`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n jsonrpc: \"2.0\",\n method: t,\n params: n,\n id: r\n })\n });\n if (u.status === 200) {\n const c = await u.json();\n if (c.error) {\n const d = typeof c.error.data == \"string\" ? c.error.data : c.error.message;\n throw new f(d);\n }\n return c.result;\n }\n throw new f(\"Internal Server Error\");\n }\n}\nconst w = {\n get id() {\n return Math.floor(Math.random() * 1e5);\n },\n mainnet: new et(tt(Q.apis.mainnet.batter)),\n testnet: new et(tt(Q.apis.testnet.batter)),\n regtest: new et(tt(Q.apis.regtest.batter))\n};\nclass wt extends Et {\n constructor({ network: t }) {\n super({ network: t });\n }\n async getBalance({ address: t }) {\n if (!t)\n throw new f(\"Invalid request\");\n return w[this.network].call(\n \"Address.GetBalance\",\n { address: t },\n w.id\n );\n }\n async getInscription({\n id: t,\n decodeMetadata: e = !1\n }) {\n if (!t)\n throw new f(\"Invalid request\");\n const s = ut(t), n = await w[this.network].call(\n \"Ordinals.GetInscription\",\n { id: s },\n w.id\n );\n return q.parseInscription(n, { decodeMetadata: e });\n }\n async getInscriptionUTXO({ id: t }) {\n if (!t)\n throw new f(\"Invalid request\");\n const e = ut(t);\n return w[this.network].call(\n \"Ordinals.GetInscriptionUtxo\",\n { id: e },\n w.id\n );\n }\n async getInscriptions({\n creator: t,\n owner: e,\n mimeType: s,\n mimeSubType: n,\n outpoint: r,\n decodeMetadata: u = !1,\n sort: c = \"asc\",\n limit: d = 25,\n next: m = null\n }) {\n let g = [], b = m;\n do {\n const { inscriptions: F, pagination: J } = await w[this.network].call(\n \"Ordinals.GetInscriptions\",\n {\n filter: { creator: t, owner: e, mimeType: s, mimeSubType: n, outpoint: r },\n sort: { number: c },\n pagination: { limit: d, next: b }\n },\n w.id\n );\n g = g.concat(F), b = J.next;\n } while (b !== null);\n return q.parseInscriptions(g, {\n decodeMetadata: u\n });\n }\n async getSpendables({\n address: t,\n value: e,\n rarity: s = [\"common\"],\n filter: n = [],\n limit: r = 200,\n type: u = \"spendable\"\n }) {\n if (!t || Number.isNaN(e) || !e)\n throw new f(\"Invalid request\");\n return w[this.network].call(\n \"Address.GetSpendables\",\n {\n address: t,\n value: e,\n safetospend: u === \"spendable\",\n allowedrarity: s,\n filter: n,\n limit: r\n },\n w.id\n );\n }\n async getTransaction({\n txId: t,\n ordinals: e = !0,\n hex: s = !1,\n witness: n = !0,\n decodeMetadata: r = !0\n }) {\n if (!t)\n throw new f(\"Invalid request\");\n const u = await w[this.network].call(\n \"Transactions.GetTransaction\",\n {\n txid: t,\n options: {\n ord: e,\n hex: s,\n witness: n\n }\n },\n w.id\n );\n return u.vout = u.vout.map((c) => ({\n ...c,\n inscriptions: q.parseInscriptions(c.inscriptions, {\n decodeMetadata: r\n })\n })), {\n tx: u,\n rawTx: s && u.hex ? st.fromHex(u.hex) : void 0\n };\n }\n async getUnspents({\n address: t,\n type: e = \"spendable\",\n rarity: s = [\"common\"],\n sort: n = \"desc\",\n limit: r = 50,\n next: u = null\n }) {\n if (!t)\n throw new f(\"Invalid request\");\n let c = [], d = u;\n do {\n const { unspents: m, pagination: g } = await w[this.network].call(\n \"Address.GetUnspents\",\n {\n address: t,\n options: {\n allowedrarity: s,\n safetospend: e === \"spendable\"\n },\n pagination: {\n limit: r,\n next: d\n },\n sort: { value: n }\n },\n w.id\n );\n c = c.concat(m), d = g.next;\n } while (d !== null);\n return q.segregateUTXOsBySpendStatus({ utxos: c });\n }\n async relay({ hex: t, maxFeeRate: e, validate: s = !0 }) {\n if (!t)\n throw new f(\"Invalid request\");\n if (e && (e < 0 || Number.isNaN(e)))\n throw new f(\"Invalid max fee rate\");\n return w[this.network].call(\n \"Transactions.Relay\",\n { hex: t, maxFeeRate: e, validate: s },\n w.id\n );\n }\n}\nconst Bt = 1e8, G = 21e4, it = 2016, ft = 6, A = 209999999769e4, kt = A - 1;\nclass rt {\n constructor(t, e) {\n this.height = t, this.offset = e;\n }\n static from(t) {\n return new rt(t.height, t.third);\n }\n toString() {\n return `${this.height.n}.${this.offset}`;\n }\n}\nclass Xt {\n constructor(t) {\n /**\n * A° - Index of Sat in the Block\n */\n h(this, \"hour\");\n /**\n * B′ - Index of the Block in the Difficulty Adjustment Period (every 2016 blocks)\n */\n h(this, \"minute\");\n /**\n * C″ - Index of Block in Halving Epoch (every 210_000 blocks)\n */\n h(this, \"second\");\n /**\n * D‴ - Cycle Number\n */\n h(this, \"third\");\n const e = t.height.n;\n this.hour = Math.floor(e / (ft * G)), this.minute = Math.floor(e % G), this.second = Math.floor(e % it), this.third = t.third;\n }\n toString() {\n return `${this.hour}°${this.minute}′${this.second}″${this.third}‴`;\n }\n}\nvar T = /* @__PURE__ */ ((i) => (i.Common = \"common\", i.Uncommon = \"uncommon\", i.Rare = \"rare\", i.Epic = \"epic\", i.Legendary = \"legendary\", i.Mythic = \"mythic\", i.Palindrome = \"palindrome\", i))(T || {});\nclass V {\n constructor(t) {\n this.sattributes = t;\n }\n static from(t) {\n const e = [];\n return V.isPalindrome(t.n) && e.push(\n \"palindrome\"\n /* Palindrome */\n ), new V([t.rarity.name, ...e]);\n }\n static isPalindrome(t) {\n const e = t.toString(), s = e.split(\"\").reverse().join(\"\");\n return e === s;\n }\n toString() {\n return this.sattributes.toString();\n }\n toList() {\n return this.sattributes;\n }\n}\nclass I {\n constructor(t) {\n this.name = t;\n }\n static from(t) {\n const { hour: e, minute: s, second: n, third: r } = t.degree;\n return e === 0 && s === 0 && n === 0 && r === 0 ? new I(T.Mythic) : s === 0 && n === 0 && r === 0 ? new I(T.Legendary) : s === 0 && r === 0 ? new I(T.Epic) : n === 0 && r === 0 ? new I(T.Rare) : r === 0 ? new I(T.Uncommon) : new I(T.Common);\n }\n toString() {\n return this.name;\n }\n}\nvar O, x, v, U, E, N, P, M, j, B, k, X;\nconst ot = class ot {\n constructor(t) {\n l(this, O, void 0);\n l(this, x, void 0);\n l(this, v, void 0);\n l(this, U, void 0);\n l(this, E, void 0);\n l(this, N, void 0);\n l(this, P, void 0);\n l(this, M, void 0);\n l(this, j, void 0);\n l(this, B, void 0);\n l(this, k, void 0);\n l(this, X, void 0);\n if (this.n = t, t > A || t < 0)\n throw new Error(\"sat out of range\");\n }\n static fromName(t) {\n let e = 0;\n for (let s = 0; s < t.length; s += 1) {\n const n = t[s];\n if (n >= \"a\" && n <= \"z\")\n e = e * 26 + n.charCodeAt(0) - \"a\".charCodeAt(0) + 1;\n else\n throw new Error(`invalid character in sat name: ${n}`);\n }\n if (e > A)\n throw new Error(\"sat name out of range\");\n return new ot(A - e);\n }\n get height() {\n return a(this, O) === void 0 && p(this, O, new $(\n Math.floor(\n this.epoch.startingHeight.n + this.epochPosition / this.epoch.subsidy\n )\n )), a(this, O);\n }\n get cycle() {\n return a(this, x) === void 0 && p(this, x, Math.floor(this.epoch.n / ft)), a(this, x);\n }\n get percentile() {\n return a(this, v) === void 0 && p(this, v, `${this.n / kt * 100}%`), a(this, v);\n }\n get degree() {\n return a(this, U) === void 0 && p(this, U, new Xt(this)), a(this, U);\n }\n get third() {\n return a(this, E) === void 0 && p(this, E, Math.floor(this.epochPosition % this.epoch.subsidy)), a(this, E);\n }\n get epoch() {\n return a(this, N) === void 0 && p(this, N, Y.from(this)), a(this, N);\n }\n get period() {\n return a(this, P) === void 0 && p(this, P, Math.floor(this.height.n / it)), a(this, P);\n }\n get rarity() {\n return a(this, M) === void 0 && p(this, M, I.from(this)), a(this, M);\n }\n get epochPosition() {\n return a(this, j) === void 0 && p(this, j, Math.floor(this.n - this.epoch.startingSat.n)), a(this, j);\n }\n get decimal() {\n return a(this, B) === void 0 && p(this, B, rt.from(this)), a(this, B);\n }\n get name() {\n if (a(this, k) === void 0) {\n let t = A - this.n, e = \"\";\n for (; t > 0; )\n e += \"abcdefghijklmnopqrstuvwxyz\".charAt((t - 1) % 26), t = Math.floor((t - 1) / 26);\n p(this, k, e.split(\"\").reverse().join(\"\"));\n }\n return a(this, k);\n }\n get sattributes() {\n return a(this, X) === void 0 && p(this, X, V.from(this)), a(this, X);\n }\n toJSON() {\n return {\n number: this.n,\n decimal: this.decimal.toString(),\n degree: this.degree.toString(),\n name: this.name,\n block: this.height.n,\n cycle: this.cycle,\n epoch: this.epoch.n,\n period: this.period,\n offset: this.third,\n rarity: this.rarity.toString(),\n percentile: this.percentile,\n sattributes: this.sattributes.toList()\n };\n }\n};\nO = new WeakMap(), x = new WeakMap(), v = new WeakMap(), U = new WeakMap(), E = new WeakMap(), N = new WeakMap(), P = new WeakMap(), M = new WeakMap(), j = new WeakMap(), B = new WeakMap(), k = new WeakMap(), X = new WeakMap();\nlet o = ot;\nconst D = [\n new o(0),\n // epoch 1 - 2009\n new o(105e13),\n // epoch 2 - 2012\n new o(1575e12),\n // epoch 3 - 2016\n new o(18375e11),\n // epoch 4 - 2020\n new o(196875e10),\n // epoch 5 - 2024\n new o(2034375e9),\n new o(20671875e8),\n new o(208359375e7),\n new o(2091796875e6),\n new o(20958984375e5),\n new o(209794921875e4),\n new o(209897460927e4),\n new o(209948730453e4),\n new o(209974365216e4),\n new o(209987182587e4),\n new o(209993591262e4),\n new o(209996795589e4),\n new o(209998397742e4),\n new o(209999198808e4),\n new o(209999599341e4),\n new o(209999799597e4),\n new o(209999899725e4),\n new o(209999949789e4),\n new o(209999974821e4),\n new o(209999987337e4),\n new o(209999993595e4),\n new o(209999996724e4),\n new o(209999998278e4),\n new o(209999999055e4),\n new o(209999999433e4),\n new o(209999999622e4),\n new o(209999999706e4),\n new o(209999999748e4),\n new o(A)\n];\nvar R, C;\nconst W = class W {\n constructor(t) {\n l(this, R, void 0);\n l(this, C, void 0);\n this.n = t;\n }\n get startingSat() {\n if (a(this, R) === void 0) {\n const t = Y.fromHeight(this), { startingSat: e } = t, { startingHeight: s } = t;\n p(this, R, new o(\n e.n + (this.n - s.n) * t.subsidy\n ));\n }\n return a(this, R);\n }\n get periodOffset() {\n return a(this, C) === void 0 && p(this, C, Math.floor(this.n % it)), a(this, C);\n }\n add(t) {\n return new W(this.n + t);\n }\n sub(t) {\n return new W(this.n - t);\n }\n eq(t) {\n return this.n === t;\n }\n};\nR = new WeakMap(), C = new WeakMap();\nlet $ = W;\nvar y, z, H;\nconst S = class S {\n constructor(t) {\n l(this, y, void 0);\n l(this, z, void 0);\n l(this, H, void 0);\n this.n = t;\n }\n static from(t) {\n let e = 1;\n for (; e <= 33; ) {\n if (t.n < D[e].n)\n return new S(e - 1);\n e += 1;\n }\n return new S(33);\n }\n static fromHeight(t) {\n return new S(Math.floor(t.n / G));\n }\n /**\n * subsidy refers to how much satoshis will be created/mined per block\n */\n get subsidy() {\n return a(this, y) === void 0 && (this.n < S.FIRST_POST_SUBSIDY.n ? p(this, y, Math.floor(50 * Bt / 2 ** this.n)) : p(this, y, 0)), a(this, y);\n }\n get startingSat() {\n return a(this, z) === void 0 && p(this, z, D[this.n] || D[D.length - 1]), a(this, z);\n }\n get startingHeight() {\n return a(this, H) === void 0 && p(this, H, new $(this.n * G)), a(this, H);\n }\n};\ny = new WeakMap(), z = new WeakMap(), H = new WeakMap(), /**\n * First epoch where no new bitcoin will be mined\n */\nh(S, \"FIRST_POST_SUBSIDY\", new S(33));\nlet Y = S;\nconst Rt = 10.5;\nfunction pt(i) {\n switch (i) {\n case \"taproot\":\n return { input: 42, output: 43, witness: 66 };\n case \"segwit\":\n return { input: 41, output: 31, witness: 105 };\n case \"p2sh-p2wpkh\":\n return { input: 64, output: 32, witness: 105 };\n case \"legacy\":\n return { input: 148, output: 34, witness: 0 };\n default:\n throw new f(\"Invalid type\");\n }\n}\nclass Ct {\n constructor({ feeRate: t, network: e, psbt: s, witness: n }) {\n /**\n * Fee in satoshis\n */\n h(this, \"fee\", 0);\n /**\n * Fee rate in satoshis\n */\n h(this, \"feeRate\");\n h(this, \"network\");\n h(this, \"psbt\");\n h(this, \"witness\", []);\n h(this, \"virtualSize\", 0);\n h(this, \"weight\", 0);\n if (t < 0 || !Number.isSafeInteger(t))\n throw new f(\"Invalid feeRate\");\n this.feeRate = t, this.network = e, this.witness = n || [], this.psbt = s || new nt({ network: K(this.network) });\n }\n get data() {\n return {\n fee: this.fee,\n virtualSize: this.virtualSize,\n weight: this.weight\n };\n }\n /**\n * Calculates network fee based on virtual size of transaction and fee rate.\n *\n * @returns Estimated network fee\n * @throws {OrditSDKError} Fee is above MAXIMUM_FEE (5,000,000 satoshis)\n */\n calculateNetworkFee() {\n if (this.fee = this.calculateVirtualSize() * this.feeRate, this.fee > Tt)\n throw new f(\"Error while calculating fees\");\n return this.fee;\n }\n getInputAndOutputScriptTypes() {\n const { inputs: t } = this.psbt.data, e = this.psbt.txOutputs;\n if (t.length === 0)\n throw new f(\"PSBT must have at least one input\");\n if (e.length === 0)\n throw new f(\"PSBT must have at least one output\");\n return {\n inputTypes: t.map((s) => {\n const n = s.witnessUtxo && s.witnessUtxo.script ? s.witnessUtxo.script : null;\n if (!n)\n throw new f(\"Invalid script\");\n return ht(n, this.network).format;\n }),\n outputTypes: e.map(\n (s) => ht(s.script, this.network).format\n )\n };\n }\n calculateScriptWitnessSize() {\n var e;\n const { inputTypes: t } = this.getInputAndOutputScriptTypes();\n return t.includes(\"taproot\") && ((e = this.witness) != null && e.length) ? this.witness.reduce((s, n) => s + n.byteLength, 0) : 0;\n }\n getBaseSize() {\n var d, m;\n const { inputTypes: t, outputTypes: e } = this.getInputAndOutputScriptTypes(), s = 2, n = t.reduce(\n (g, b) => {\n const { input: F, witness: J } = pt(b);\n return g.input += F, g.witness += J, g;\n },\n {\n input: 0,\n witness: 0\n }\n ), r = e.reduce((g, b) => {\n const { output: F } = pt(b);\n return g + F;\n }, 0), u = n.witness + ((d = this.witness) != null && d.length ? this.calculateScriptWitnessSize() : 0);\n let c = 0;\n return (m = this.witness) != null && m.length ? c = u : u > 0 && (c = s + u), {\n baseSize: n.input + Rt + r,\n witnessSize: c\n };\n }\n calculateVirtualSize() {\n const { baseSize: t, witnessSize: e } = this.getBaseSize();\n return this.weight = t * 3 + (t + e), this.virtualSize = Math.ceil(this.weight / 4), this.virtualSize;\n }\n}\nfunction zt({\n utxo: i,\n pubKey: t,\n network: e,\n sighashType: s,\n witness: n\n}) {\n const r = yt.fromPublicKey(\n _.from(t, \"hex\"),\n At,\n K(e)\n ), u = dt(r.publicKey);\n if (!i.scriptPubKey.hex)\n throw new Error(\"Unable to process p2tr input\");\n return {\n type: \"taproot\",\n hash: i.txid,\n index: i.n,\n tapInternalKey: u,\n witnessUtxo: {\n script: _.from(i.scriptPubKey.hex, \"hex\"),\n value: i.sats\n },\n witness: n,\n ...s ? { sighashType: s } : void 0\n };\n}\nfunction Ht({\n utxo: i,\n sighashType: t\n}) {\n if (!i.scriptPubKey.hex)\n throw new Error(\"Unable to process Segwit input\");\n return {\n type: \"segwit\",\n hash: i.txid,\n index: i.n,\n witnessUtxo: {\n script: _.from(i.scriptPubKey.hex, \"hex\"),\n value: i.sats\n },\n ...t ? { sighashType: t } : void 0\n };\n}\nfunction _t({\n utxo: i,\n pubKey: t,\n network: e,\n sighashType: s\n}) {\n const n = lt(_.from(t, \"hex\"), \"p2sh\", e);\n if (!n || !n.output || !n.redeem)\n throw new Error(\"Unable to process P2SH input\");\n return {\n type: \"p2sh-p2wpkh\",\n hash: i.txid,\n index: i.n,\n redeemScript: n.redeem.output,\n witnessUtxo: {\n script: _.from(i.scriptPubKey.hex, \"hex\"),\n value: i.sats\n },\n ...s ? { sighashType: s } : void 0\n };\n}\nasync function Ft({\n utxo: i,\n sighashType: t,\n network: e,\n pubKey: s,\n datasource: n\n}) {\n const { rawTx: r } = await n.getTransaction({\n txId: i.txid,\n hex: !0\n });\n if (!r)\n throw new Error(\"Unable to process legacy input\");\n const u = lt(_.from(s, \"hex\"), \"p2pkh\", e);\n return {\n type: \"legacy\",\n hash: i.txid,\n index: i.n,\n nonWitnessUtxo: r == null ? void 0 : r.toBuffer(),\n witnessUtxo: {\n script: u.output,\n value: i.sats\n },\n ...t ? { sighashType: t } : void 0\n };\n}\nasync function Lt({\n utxo: i,\n pubKey: t,\n network: e,\n sighashType: s,\n witness: n,\n datasource: r\n}) {\n const u = r || new wt({ network: e });\n switch (i.scriptPubKey.type) {\n case \"witness_v1_taproot\":\n return zt({\n utxo: i,\n pubKey: t,\n network: e,\n sighashType: s,\n witness: n\n });\n case \"witness_v0_scripthash\":\n case \"witness_v0_keyhash\":\n return Ht({ utxo: i, sighashType: s });\n case \"scripthash\":\n return _t({ utxo: i, pubKey: t, network: e, sighashType: s });\n case \"pubkeyhash\":\n return Ft({\n utxo: i,\n sighashType: s,\n network: e,\n pubKey: t,\n datasource: u\n });\n default:\n throw new Error(\"invalid script pub type\");\n }\n}\nclass Jt extends Ct {\n constructor({\n address: e,\n changeAddress: s,\n datasource: n,\n feeRate: r,\n network: u = \"mainnet\",\n publicKey: c,\n outputs: d,\n autoAdjustment: m = !0,\n instantTradeMode: g = !1\n }) {\n super({\n feeRate: r,\n network: u\n });\n h(this, \"address\");\n h(this, \"changeAddress\");\n /**\n * Change amount in satoshis\n */\n h(this, \"changeAmount\", 0);\n h(this, \"datasource\");\n h(this, \"injectableInputs\", []);\n h(this, \"injectableOutputs\", []);\n /**\n * Input amount in satoshis\n */\n h(this, \"inputAmount\", 0);\n h(this, \"inputs\", []);\n /**\n * Output amount in satoshis\n */\n h(this, \"outputAmount\", 0);\n h(this, \"outputs\", []);\n h(this, \"psbt\");\n h(this, \"publicKey\");\n /**\n * Replace-by-fee (RBF) is a feature that allows users to replace one version of an unconfirmed transaction\n * with a different version of the transaction that pays a higher transaction fee.\n * This can be done multiple times while the transaction is unconfirmed.\n *\n * Reference: [BIP-125](https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki)\n */\n h(this, \"rbf\", !0);\n h(this, \"utxos\", []);\n h(this, \"usedUTXOs\", []);\n /**\n * Enable auto adjustment.\n *\n * When `true`, change is calculated and UTXOs will be added as required to account for network fees.\n *\n * Otherwise, change is not calculated and no UTXOs will be added.\n */\n h(this, \"autoAdjustment\");\n h(this, \"instantTradeMode\");\n h(this, \"noMoreUTXOS\", !1);\n this.address = e, this.changeAddress = s, this.datasource = n || new wt({ network: this.network }), this.outputs = d, this.publicKey = c, this.autoAdjustment = m, this.instantTradeMode = g, this.psbt = new nt({ network: K(u) });\n }\n get data() {\n return {\n fee: this.fee,\n virtualSize: this.virtualSize,\n weight: this.weight,\n changeAmount: this.changeAmount,\n inputAmount: this.inputAmount,\n outputAmount: this.outputAmount\n };\n }\n toPSBT() {\n return this.psbt;\n }\n toHex() {\n return this.psbt.toHex();\n }\n toBase64() {\n return this.psbt.toBase64();\n }\n /**\n * Set Replace-by-fee (RBF) value\n *\n * Replace-by-fee (RBF) is a feature that allows users to replace one version of an unconfirmed transaction\n * with a different version of the transaction that pays a higher transaction fee.\n * This can be done multiple times while the transaction is unconfirmed.\n *\n * Reference: [BIP-125](https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki)\n */\n setRBF(e) {\n this.rbf = e, this.addInputs();\n }\n /**\n * Gets the x-coordinate of the public key.\n */\n get xKey() {\n return dt(Ot.from(this.publicKey, \"hex\")).toString(\"hex\");\n }\n get inputsToSign() {\n const e = this.instantTradeMode && !this.autoAdjustment;\n return this.psbt.txInputs.reduce(\n (s, n, r) => ((!this.instantTradeMode || this.instantTradeMode && r !== xt) && (s.signingIndexes = s.signingIndexes.concat(r)), e && (s.sigHash = // eslint-disable-next-line no-bitwise\n st.SIGHASH_SINGLE | st.SIGHASH_ANYONECANPAY), s),\n {\n address: this.address,\n signingIndexes: []\n }\n );\n }\n initPSBT() {\n this.psbt = new nt({ network: K(this.network) }), this.psbt.setMaximumFeeRate(this.feeRate);\n }\n getInputSequence() {\n return this.rbf ? 4294967293 : 4294967295;\n }\n injectInput(e) {\n this.psbt.data.globalMap.unsignedTx.tx.ins[e.injectionIndex] = e.txInput, this.psbt.data.inputs[e.injectionIndex] = e.standardInput;\n }\n injectOutput(e) {\n let s = e.injectionIndex;\n do {\n if (!!!this.psbt.data.globalMap.unsignedTx.tx.outs[s]) {\n this.psbt.data.globalMap.unsignedTx.tx.outs[s] = e.txOutput, this.psbt.data.outputs[s] = // TODO: remove hack\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n e.standardOutput;\n break;\n }\n s += 1;\n } while (s);\n }\n addInputs() {\n const e = this.injectableInputs.map(\n (n) => n.injectionIndex\n ), s = [];\n this.inputs.forEach((n, r) => {\n const u = e.includes(r);\n if (u) {\n const d = this.injectableInputs.find(\n (m) => m.injectionIndex === r\n );\n this.injectInput(d), s.push(d.injectionIndex);\n }\n this.psbt.txInputs.map((d) => {\n const m = Ut(d.hash);\n return L(m.toString(\"hex\"), d.index);\n }).includes(\n L(n.hash, n.index)\n ) || (this.psbt.addInput(n), this.psbt.setInputSequence(\n u ? r + 1 : r,\n this.getInputSequence()\n ));\n }), this.injectableInputs.forEach((n) => {\n s.includes(n.injectionIndex) || (this.injectInput(n), s.push(n.injectionIndex));\n });\n }\n addOutputs() {\n const e = this.injectableOutputs.map((n) => n.injectionIndex), s = [];\n this.outputs.forEach((n, r) => {\n if (e.includes(r)) {\n const u = this.injectableOutputs.find(\n (c) => c.injectionIndex === r\n );\n this.injectOutput(u), s.push(u.injectionIndex);\n }\n this.psbt.addOutput({\n address: n.address,\n value: n.value\n });\n }), this.injectableOutputs.forEach((n) => {\n s.includes(n.injectionIndex) || (this.injectOutput(n), s.push(n.injectionIndex));\n }), this.changeAmount >= Z && this.psbt.addOutput({\n address: this.changeAddress || this.address,\n value: this.changeAmount\n });\n }\n calculateOutputAmount() {\n if (this.outputAmount = Math.floor(\n this.outputs.reduce((e, s) => e + s.value, 0) + this.injectableOutputs.reduce((e, s) => e + s.sats, 0)\n ), this.outputAmount < Z)\n throw new Error(\n `Output amount too low. Minimum output amount needs to be ${Z} sats`\n );\n }\n /**\n * Calculates change amount from transaction and fetches additional UTXOs as required to cover output and network fees, if change is negative.\n */\n async recursivelyCalculateChangeAmount() {\n if (this.autoAdjustment && (this.changeAmount = Math.floor(\n this.inputAmount - this.outputAmount - this.fee\n ), this.changeAmount < 0 && (await this.prepare(), this.noMoreUTXOS)))\n throw new Error(\n `Insufficient balance. Decrease the output amount by ${this.changeAmount * -1} sats`\n );\n }\n getRetrievedUTXOsValue() {\n return this.utxos.reduce((e, s) => e + s.sats, 0);\n }\n getReservedUTXOs() {\n return this.utxos.map(\n (e) => L(e.txid, e.n)\n );\n }\n getUTXOAmountToRequestFromChangeAmount() {\n return this.changeAmount < 0 ? Math.abs(this.changeAmount) : this.outputAmount - this.getRetrievedUTXOsValue();\n }\n /**\n * Retrieves UTXOs using `getSpendables` RPC.\n *\n * @param address Address\n * @param amount Amount in satoshis\n */\n async retrieveUTXOs(e, s) {\n if (!this.autoAdjustment && !e)\n return;\n const n = s && s > 0 ? s : this.getUTXOAmountToRequestFromChangeAmount();\n if (s && this.getRetrievedUTXOsValue() >= s || n <= 0)\n return;\n const r = await this.datasource.getSpendables({\n address: e || this.address,\n value: vt(n),\n filter: this.getReservedUTXOs()\n });\n this.noMoreUTXOS = r.length === 0, this.utxos.push(...r);\n }\n async retrieveSelectedUTXOs(e, s) {\n await this.retrieveUTXOs(e, s);\n const n = this.utxos.find((r) => r.sats >= s);\n return this.utxos = n ? [n] : [], this.utxos;\n }\n /**\n * Prepares inputs from UTXOs.\n */\n async prepareInputs() {\n if (!this.autoAdjustment)\n return;\n const e = [];\n this.utxos.forEach((n) => {\n if (this.usedUTXOs.includes(L(n.txid, n.n)))\n return;\n this.inputAmount += n.sats;\n const r = Lt({\n utxo: n,\n pubKey: this.publicKey,\n network: this.network,\n datasource: this.datasource\n });\n e.push(r);\n });\n const s = await Promise.all(e);\n this.inputAmount += this.injectableInputs.reduce(\n (n, r) => n + r.sats,\n 0\n ), s.forEach((n) => {\n const r = L(\n n.hash,\n n.index\n );\n this.usedUTXOs.includes(r) || this.usedUTXOs.push(r);\n }), this.inputs = this.inputs.concat(s);\n }\n /**\n * Prepares PSBT to be set to a network, calculating and validating both inputs and outputs.\n */\n async prepare() {\n this.calculateOutputAmount(), await this.retrieveUTXOs(), await this.prepareInputs(), await this.recursivelyCalculateChangeAmount(), this.process(), await this.recursivelyCalculateChangeAmount(), this.calculateOutputAmount(), this.process();\n }\n /**\n * Initializes PSBT instance, adding all inputs and outputs and calculates network fees.\n *\n * @returns PSBTBuilder instance\n */\n process() {\n return this.initPSBT(), this.addInputs(), this.addOutputs(), this.calculateNetworkFee(), this;\n }\n}\nSt(It);\nexport {\n te as ADDRESS_FORMAT_TO_TYPE,\n ee as ADDRESS_TYPE_TO_FORMAT,\n Et as BaseDatasource,\n se as BrowserWalletExtractTxFromNonFinalizedPsbtError,\n ne as BrowserWalletNotInstalledError,\n ie as BrowserWalletRequestCancelledByUserError,\n re as BrowserWalletSigningError,\n Bt as COIN_VALUE,\n ft as CYCLE_EPOCHS,\n it as DIFFCHANGE_INTERVAL,\n q as DatasourceUtility,\n rt as Decimal,\n Xt as Degree,\n Y as Epoch,\n $ as Height,\n wt as JsonRpcDatasource,\n kt as LAST_SAT,\n f as OrditSDKError,\n Jt as PSBTBuilder,\n I as Rarity,\n A as SAT_SUPPLY,\n D as STARTING_SATS,\n G as SUBSIDY_HALVING_INTERVAL,\n o as Sat,\n T as Sattribute,\n V as Sattributes,\n oe as getAddressFormat,\n ae as getAddressesFromPublicKey\n};\n","(function(){\"use strict\";try{if(typeof document<\"u\"){var o=document.createElement(\"style\");o.appendChild(document.createTextNode('@import\"https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&display=swap\";.ord-connect-wallet-button{color:#000;background-color:#fff;font-weight:700;font-size:14px;line-height:20px;border-radius:40px;padding:10px 16px;border:0px}.ord-connect-wallet-button span:before{content:\"Connect\"}@media screen and (min-width: 768px){.ord-connect-wallet-button{padding:10px 24px}.ord-connect-wallet-button span:before{content:\"Connect wallet\"}}.ord-connect-wallet-button:hover{background-color:#f2f2f2}.ord-connect-wallet-button:active{opacity:.7}.ord-wallet-connected-container{position:relative;display:inline-block}.ord-wallet-connected-button{border-radius:52px;border:1px solid #8c8c8c;background-color:transparent;padding:8px 12px 8px 8px;display:flex;align-items:center;cursor:pointer}.ord-wallet-connected-button .address-container{display:none}@media screen and (min-width: 768px){.ord-wallet-connected-button .address-container{display:block;margin-left:8px}}.ord-wallet-connected-button .address{color:#fff;font-size:14px;font-weight:700;line-height:20px;margin:0}.ord-wallet-connected-button .network-container{display:flex;align-items:center}.ord-wallet-connected-button .status-indicator{width:8px;height:8px;background:#00ad1d;border-radius:999px;margin-right:8px}.ord-wallet-connected-button .network{color:#ffffff80;margin:0;font-size:12px;font-weight:600;line-height:16px}.ord-wallet-connected-button .wallet-profile-icon{width:28px;height:28px;border-radius:999px;background-color:pink;margin-right:8px}.ord-wallet-connected-button .dropdown-button{transition:transform .3s ease;margin-left:16px}.ord-wallet-connected-button .expand-dropdown-button{width:20px;transform:rotate(0)}.ord-wallet-connected-button .close-dropdown-button{transform:rotate(-180deg)}.ord-wallet-connection-dropdown{background:#121212;border-radius:15px;border:.5px solid rgba(255,255,255,.5);width:256px;position:absolute;top:54px;right:0}.ord-wallet-connection-dropdown .dropdown-button{display:flex;align-items:center;background:transparent;border:0px;cursor:pointer;width:100%;justify-content:space-between}.ord-wallet-connection-dropdown .dropdown-button:hover{background:#ffffff1a}.ord-wallet-connection-dropdown .dropdown-button:hover:first-child{border-top-left-radius:15px;border-top-right-radius:15px}.ord-wallet-connection-dropdown .dropdown-button:hover:last-child{border-bottom-left-radius:15px;border-bottom-right-radius:15px}.ord-wallet-connection-dropdown .dropdown-button:active{background:#ffffff1a;opacity:.7}.ord-wallet-connection-dropdown .dropdown-button:first-child{padding:26px 16px 18px}.ord-wallet-connection-dropdown .dropdown-button:not(:first-child):not(:last-child){padding:9px 16px}.ord-wallet-connection-dropdown .dropdown-button:last-child{padding:18px 16px 26px}.ord-wallet-connection-dropdown .label{color:#fff;font-size:14px;font-weight:600;flex:1 1 0%;text-align:left}.ord-wallet-connection-dropdown .value{color:#a6a6a6}.ord-wallet-connection-dropdown .change-wallet-label{color:#ffffffb3;font-size:14px;font-weight:700;flex:1 1 0%;text-align:right}.ord-wallet-connection-dropdown .profile-item-container{width:100%;display:flex;flex-direction:column}.ord-wallet-connection-dropdown .profile-item-inner-container{display:flex;justify-content:space-between}.ord-wallet-connection-dropdown .offers{font-size:10px;font-weight:700;line-height:12px;letter-spacing:.08em;color:#fff;padding:4px 12px;border-radius:16px;background:#ffffff1a}.ord-wallet-connection-dropdown .horizontal-separator{margin:6px 16px;border:0px;border-top:.5px solid rgba(255,255,255,.1)}.ord-connect-wallet-modal{position:relative;z-index:10}.ord-connect-wallet-modal .backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.ord-connect-wallet-modal .outer-container{position:fixed;top:0;left:0;overflow-y:auto;width:100%;height:100%}@media screen and (min-width: 768px){.ord-connect-wallet-modal .outer-container{top:50%;left:50%;transform:translate(-50%,-50%);width:500px;height:auto;border-radius:20px}}.ord-connect-wallet-modal .inner-container{display:flex;align-items:center;justify-content:center;text-align:center;height:100%}.ord-connect-wallet-modal .panel{width:100%;background-color:#121212;overflow:hidden;text-align:left;height:100%}@media screen and (min-width: 768px){.ord-connect-wallet-modal .panel{border:1px solid rgba(51,51,51,.5);border-radius:20px}}.ord-connect-wallet-modal .panel-title-container{display:flex;justify-content:space-between;padding:32px 24px 0;align-items:center}@media screen and (min-width: 768px){.ord-connect-wallet-modal .panel-title-container{padding:24px 32px 0;border-bottom:0px}.ord-connect-wallet-modal .unsupported-browser-message{font-size:16px;padding-left:24px}}.ord-connect-wallet-modal .panel-title{font-size:24px;font-style:normal;font-weight:700;line-height:32px;margin:0}@media screen and (min-width: 768px){.ord-connect-wallet-modal .panel-title{font-size:20px;font-style:normal;font-weight:600;line-height:28px;letter-spacing:.2px}}.ord-connect-wallet-modal .unsupported-browser-message{color:#fff}.ord-connect-wallet-modal .close-button{display:inline-flex;background:transparent;border:0px;cursor:pointer}.ord-connect-wallet-modal .panel-content-container{margin:32px 24px 0}@media screen and (min-width: 768px){.ord-connect-wallet-modal .panel-content-container{margin:48px 32px 32px}}@media screen and (min-width: 1080px){.ord-connect-wallet-modal .panel-content-container{margin:48px 32px 32px}}.ord-connect-wallet-modal .panel-content-inner-container{border-radius:20px;border:1px solid rgba(255,255,255,.1)}.ord-connect-wallet-modal .wallet-option-button{margin-bottom:8px;display:flex;align-items:center;background:transparent;border:0px;color:#fff;font-size:18px;font-weight:600;line-height:24px;border-bottom:.5px solid rgba(255,255,255,.1);width:100%;cursor:pointer}.ord-connect-wallet-modal .wallet-option-button:disabled .chveron-btn{opacity:.3}.waiting-cursor{cursor:wait!important}.wallet-identifier-container{position:relative;display:inline-block}.wallet-identifier-container img{position:absolute;bottom:4px;right:0;width:12px;border-radius:50%;background-color:#000;object-fit:cover}.ord-connect-wallet-modal .option-wrapper{display:flex;align-items:center;justify-content:space-between;padding:16px 12px;width:100%}@media screen and (min-width: 1080px){.ord-connect-wallet-modal .option-wrapper{padding:16px}}.ord-connect-wallet-modal .wallet-option-button{padding:8px 16px}.ord-connect-wallet-modal .wallet-option-button:hover{background:#ffffff1a}.ord-connect-wallet-modal .wallet-option-button:active{background:#ffffff1a;opacity:.7}.ord-connect-wallet-modal .wallet-option-button:first-child{padding:16px 16px 8px;border:0px;margin-bottom:0;border-radius:20px 20px 0 0}@media screen and (min-width: 1080px){.ord-connect-wallet-modal .wallet-option-button:first-child{padding:16px 16px 8px;border:0px;margin-bottom:0;border-radius:20px 20px 0 0}}.ord-connect-wallet-modal .wallet-option-button:nth-of-type(2){border:0px;margin-bottom:0;border-radius:0 0 20px 20px}.ord-connect-wallet-modal .wallet-option-button:last-child{padding:8px 16px 16px}.ord-connect-wallet-modal .wallet-icon{width:32px}@media (min-width: 768px){.ord-connect-wallet-modal .wallet-icon{width:40px}}.ord-connect-wallet-modal .wallet-option{flex-grow:1;margin-left:16px;text-align:left}.ord-connect-wallet-modal .wallet-option-connected-address{display:flex;padding:4px 12px 4px 8px;align-items:center;margin-left:16px;margin-right:16px;text-align:left;background-color:#00000080;border-radius:20px;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px)}.ord-connect-wallet-modal .wallet-option-connected-address .label{margin-left:4px;font-size:16px;font-weight:400}.ord-connect-wallet-modal .wallet-option-label{font-size:16px;font-weight:600;line-height:20px}@media screen and (min-width: 1079px){.ord-connect-wallet-modal .wallet-option-label{font-size:18px;font-weight:600;line-height:24px}}.ord-connect-wallet-modal .wallet-option-subtitle{font-size:12px;font-weight:400;line-height:16px;color:#8c8c8c}.ord-connect-wallet-modal .horizontal-separator{margin:2px 16px;border:0px;border-top:.5px solid rgba(255,255,255,.1)}.ord-connect-wallet-modal .error-message{margin:16px 0 0;color:#e54545;font-size:14px;line-height:20px}.ord-connect-font *{font-family:Space Grotesk,sans-serif}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.opacity-0{opacity:0}.opacity-100{opacity:1}.duration-300{transition-duration:.3s}.duration-200{transition-duration:.2s}.scale-95{transform:scale(.95)}.scale-100{transform:scale(1)}')),document.head.appendChild(o)}}catch(t){console.error(\"vite-plugin-css-injected-by-js\",t)}})();\nimport * as Er from \"react\";\nimport q, { useState as Ee, useCallback as Ue, createContext as _t, useMemo as Be, useContext as at, useEffect as be, useLayoutEffect as ll, useRef as ie, forwardRef as fl, Fragment as ft, isValidElement as hl, cloneElement as dl, createElement as pl, useReducer as Xa, createRef as Mo } from \"react\";\nimport { BrowserWalletNotInstalledError as gl, ADDRESS_FORMAT_TO_TYPE as yl, getAddressesFromPublicKey as ml, JsonRpcDatasource as qa, PSBTBuilder as wl } from \"@ordzaar/ordit-sdk\";\nimport { getAddresses as El, signPsbt as bl, signMessage as Sl } from \"@ordzaar/ordit-sdk/unisat\";\nimport { getAddresses as vl, signPsbt as _l, signMessage as Tl } from \"@ordzaar/ordit-sdk/xverse\";\nimport { createPortal as Il } from \"react-dom\";\nfunction Pl(e) {\n return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, \"default\") ? e.default : e;\n}\nvar za = { exports: {} }, Te = za.exports = {}, Ct, Bt;\nfunction Do() {\n throw new Error(\"setTimeout has not been defined\");\n}\nfunction jo() {\n throw new Error(\"clearTimeout has not been defined\");\n}\n(function() {\n try {\n typeof setTimeout == \"function\" ? Ct = setTimeout : Ct = Do;\n } catch {\n Ct = Do;\n }\n try {\n typeof clearTimeout == \"function\" ? Bt = clearTimeout : Bt = jo;\n } catch {\n Bt = jo;\n }\n})();\nfunction Ya(e) {\n if (Ct === setTimeout)\n return setTimeout(e, 0);\n if ((Ct === Do || !Ct) && setTimeout)\n return Ct = setTimeout, setTimeout(e, 0);\n try {\n return Ct(e, 0);\n } catch {\n try {\n return Ct.call(null, e, 0);\n } catch {\n return Ct.call(this, e, 0);\n }\n }\n}\nfunction Ol(e) {\n if (Bt === clearTimeout)\n return clearTimeout(e);\n if ((Bt === jo || !Bt) && clearTimeout)\n return Bt = clearTimeout, clearTimeout(e);\n try {\n return Bt(e);\n } catch {\n try {\n return Bt.call(null, e);\n } catch {\n return Bt.call(this, e);\n }\n }\n}\nvar zt = [], dn = !1, Br, bi = -1;\nfunction kl() {\n !dn || !Br || (dn = !1, Br.length ? zt = Br.concat(zt) : bi = -1, zt.length && Ja());\n}\nfunction Ja() {\n if (!dn) {\n var e = Ya(kl);\n dn = !0;\n for (var t = zt.length; t; ) {\n for (Br = zt, zt = []; ++bi < t; )\n Br && Br[bi].run();\n bi = -1, t = zt.length;\n }\n Br = null, dn = !1, Ol(e);\n }\n}\nTe.nextTick = function(e) {\n var t = new Array(arguments.length - 1);\n if (arguments.length > 1)\n for (var r = 1; r < arguments.length; r++)\n t[r - 1] = arguments[r];\n zt.push(new Qa(e, t)), zt.length === 1 && !dn && Ya(Ja);\n};\nfunction Qa(e, t) {\n this.fun = e, this.array = t;\n}\nQa.prototype.run = function() {\n this.fun.apply(null, this.array);\n};\nTe.title = \"browser\";\nTe.browser = !0;\nTe.env = {};\nTe.argv = [];\nTe.version = \"\";\nTe.versions = {};\nfunction rr() {\n}\nTe.on = rr;\nTe.addListener = rr;\nTe.once = rr;\nTe.off = rr;\nTe.removeListener = rr;\nTe.removeAllListeners = rr;\nTe.emit = rr;\nTe.prependListener = rr;\nTe.prependOnceListener = rr;\nTe.listeners = function(e) {\n return [];\n};\nTe.binding = function(e) {\n throw new Error(\"process.binding is not supported\");\n};\nTe.cwd = function() {\n return \"/\";\n};\nTe.chdir = function(e) {\n throw new Error(\"process.chdir is not supported\");\n};\nTe.umask = function() {\n return 0;\n};\nvar Al = za.exports;\nconst Za = /* @__PURE__ */ Pl(Al);\nvar xl = typeof globalThis < \"u\" ? globalThis : typeof window < \"u\" ? window : typeof global < \"u\" ? global : typeof self < \"u\" ? self : {};\nfunction Cl(e) {\n return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, \"default\") ? e.default : e;\n}\nfunction Bl(e) {\n if (e.__esModule)\n return e;\n var t = e.default;\n if (typeof t == \"function\") {\n var r = function n() {\n return this instanceof n ? Reflect.construct(t, arguments, this.constructor) : t.apply(this, arguments);\n };\n r.prototype = t.prototype;\n } else\n r = {};\n return Object.defineProperty(r, \"__esModule\", { value: !0 }), Object.keys(e).forEach(function(n) {\n var i = Object.getOwnPropertyDescriptor(e, n);\n Object.defineProperty(r, n, i.get ? i : {\n enumerable: !0,\n get: function() {\n return e[n];\n }\n });\n }), r;\n}\nvar Ko = { exports: {} }, kn = {}, Gs;\nfunction Nl() {\n return Gs || (Gs = 1, Za.env.NODE_ENV !== \"production\" && function() {\n var e = q, t = Symbol.for(\"react.element\"), r = Symbol.for(\"react.portal\"), n = Symbol.for(\"react.fragment\"), i = Symbol.for(\"react.strict_mode\"), s = Symbol.for(\"react.profiler\"), o = Symbol.for(\"react.provider\"), a = Symbol.for(\"react.context\"), f = Symbol.for(\"react.forward_ref\"), h = Symbol.for(\"react.suspense\"), l = Symbol.for(\"react.suspense_list\"), p = Symbol.for(\"react.memo\"), E = Symbol.for(\"react.lazy\"), y = Symbol.for(\"react.offscreen\"), v = Symbol.iterator, S = \"@@iterator\";\n function T(w) {\n if (w === null || typeof w != \"object\")\n return null;\n var F = v && w[v] || w[S];\n return typeof F == \"function\" ? F : null;\n }\n var C = e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n function O(w) {\n {\n for (var F = arguments.length, $ = new Array(F > 1 ? F - 1 : 0), V = 1; V < F; V++)\n $[V - 1] = arguments[V];\n B(\"error\", w, $);\n }\n }\n function B(w, F, $) {\n {\n var V = C.ReactDebugCurrentFrame, oe = V.getStackAddendum();\n oe !== \"\" && (F += \"%s\", $ = $.concat([oe]));\n var ce = $.map(function(te) {\n return String(te);\n });\n ce.unshift(\"Warning: \" + F), Function.prototype.apply.call(console[w], console, ce);\n }\n }\n var U = !1, R = !1, k = !1, j = !1, A = !1, b;\n b = Symbol.for(\"react.module.reference\");\n function m(w) {\n return !!(typeof w == \"string\" || typeof w == \"function\" || w === n || w === s || A || w === i || w === h || w === l || j || w === y || U || R || k || typeof w == \"object\" && w !== null && (w.$$typeof === E || w.$$typeof === p || w.$$typeof === o || w.$$typeof === a || w.$$typeof === f || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n w.$$typeof === b || w.getModuleId !== void 0));\n }\n function N(w, F, $) {\n var V = w.displayName;\n if (V)\n return V;\n var oe = F.displayName || F.name || \"\";\n return oe !== \"\" ? $ + \"(\" + oe + \")\" : $;\n }\n function H(w) {\n return w.displayName || \"Context\";\n }\n function L(w) {\n if (w == null)\n return null;\n if (typeof w.tag == \"number\" && O(\"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"), typeof w == \"function\")\n return w.displayName || w.name || null;\n if (typeof w == \"string\")\n return w;\n switch (w) {\n case n:\n return \"Fragment\";\n case r:\n return \"Portal\";\n case s:\n return \"Profiler\";\n case i:\n return \"StrictMode\";\n case h:\n return \"Suspense\";\n case l:\n return \"SuspenseList\";\n }\n if (typeof w == \"object\")\n switch (w.$$typeof) {\n case a:\n var F = w;\n return H(F) + \".Consumer\";\n case o:\n var $ = w;\n return H($._context) + \".Provider\";\n case f:\n return N(w, w.render, \"ForwardRef\");\n case p:\n var V = w.displayName || null;\n return V !== null ? V : L(w.type) || \"Memo\";\n case E: {\n var oe = w, ce = oe._payload, te = oe._init;\n try {\n return L(te(ce));\n } catch {\n return null;\n }\n }\n }\n return null;\n }\n var M = Object.assign, K = 0, re, W, le, ke, Se, ve, Ne;\n function ut() {\n }\n ut.__reactDisabledLog = !0;\n function Y() {\n {\n if (K === 0) {\n re = console.log, W = console.info, le = console.warn, ke = console.error, Se = console.group, ve = console.groupCollapsed, Ne = console.groupEnd;\n var w = {\n configurable: !0,\n enumerable: !0,\n value: ut,\n writable: !0\n };\n Object.defineProperties(console, {\n info: w,\n log: w,\n warn: w,\n error: w,\n group: w,\n groupCollapsed: w,\n groupEnd: w\n });\n }\n K++;\n }\n }\n function me() {\n {\n if (K--, K === 0) {\n var w = {\n configurable: !0,\n enumerable: !0,\n writable: !0\n };\n Object.defineProperties(console, {\n log: M({}, w, {\n value: re\n }),\n info: M({}, w, {\n value: W\n }),\n warn: M({}, w, {\n value: le\n }),\n error: M({}, w, {\n value: ke\n }),\n group: M({}, w, {\n value: Se\n }),\n groupCollapsed: M({}, w, {\n value: ve\n }),\n groupEnd: M({}, w, {\n value: Ne\n })\n });\n }\n K < 0 && O(\"disabledDepth fell below zero. This is a bug in React. Please file an issue.\");\n }\n }\n var ir = C.ReactCurrentDispatcher, or;\n function Lt(w, F, $) {\n {\n if (or === void 0)\n try {\n throw Error();\n } catch (oe) {\n var V = oe.stack.trim().match(/\\n( *(at )?)/);\n or = V && V[1] || \"\";\n }\n return `\n` + or + w;\n }\n }\n var Ht = !1, $t;\n {\n var se = typeof WeakMap == \"function\" ? WeakMap : Map;\n $t = new se();\n }\n function ze(w, F) {\n if (!w || Ht)\n return \"\";\n {\n var $ = $t.get(w);\n if ($ !== void 0)\n return $;\n }\n var V;\n Ht = !0;\n var oe = Error.prepareStackTrace;\n Error.prepareStackTrace = void 0;\n var ce;\n ce = ir.current, ir.current = null, Y();\n try {\n if (F) {\n var te = function() {\n throw Error();\n };\n if (Object.defineProperty(te.prototype, \"props\", {\n set: function() {\n throw Error();\n }\n }), typeof Reflect == \"object\" && Reflect.construct) {\n try {\n Reflect.construct(te, []);\n } catch (Mt) {\n V = Mt;\n }\n Reflect.construct(w, [], te);\n } else {\n try {\n te.call();\n } catch (Mt) {\n V = Mt;\n }\n w.call(te.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (Mt) {\n V = Mt;\n }\n w();\n }\n } catch (Mt) {\n if (Mt && V && typeof Mt.stack == \"string\") {\n for (var Z = Mt.stack.split(`\n`), Je = V.stack.split(`\n`), _e = Z.length - 1, Ie = Je.length - 1; _e >= 1 && Ie >= 0 && Z[_e] !== Je[Ie]; )\n Ie--;\n for (; _e >= 1 && Ie >= 0; _e--, Ie--)\n if (Z[_e] !== Je[Ie]) {\n if (_e !== 1 || Ie !== 1)\n do\n if (_e--, Ie--, Ie < 0 || Z[_e] !== Je[Ie]) {\n var dt = `\n` + Z[_e].replace(\" at new \", \" at \");\n return w.displayName && dt.includes(\"\") && (dt = dt.replace(\"\", w.displayName)), typeof w == \"function\" && $t.set(w, dt), dt;\n }\n while (_e >= 1 && Ie >= 0);\n break;\n }\n }\n } finally {\n Ht = !1, ir.current = ce, me(), Error.prepareStackTrace = oe;\n }\n var rn = w ? w.displayName || w.name : \"\", Vs = rn ? Lt(rn) : \"\";\n return typeof w == \"function\" && $t.set(w, Vs), Vs;\n }\n function Me(w, F, $) {\n return ze(w, !1);\n }\n function sr(w) {\n var F = w.prototype;\n return !!(F && F.isReactComponent);\n }\n function kr(w, F, $) {\n if (w == null)\n return \"\";\n if (typeof w == \"function\")\n return ze(w, sr(w));\n if (typeof w == \"string\")\n return Lt(w);\n switch (w) {\n case h:\n return Lt(\"Suspense\");\n case l:\n return Lt(\"SuspenseList\");\n }\n if (typeof w == \"object\")\n switch (w.$$typeof) {\n case f:\n return Me(w.render);\n case p:\n return kr(w.type, F, $);\n case E: {\n var V = w, oe = V._payload, ce = V._init;\n try {\n return kr(ce(oe), F, $);\n } catch {\n }\n }\n }\n return \"\";\n }\n var Et = Object.prototype.hasOwnProperty, ar = {}, ti = C.ReactDebugCurrentFrame;\n function Zr(w) {\n if (w) {\n var F = w._owner, $ = kr(w.type, w._source, F ? F.type : null);\n ti.setExtraStackFrame($);\n } else\n ti.setExtraStackFrame(null);\n }\n function Pn(w, F, $, V, oe) {\n {\n var ce = Function.call.bind(Et);\n for (var te in w)\n if (ce(w, te)) {\n var Z = void 0;\n try {\n if (typeof w[te] != \"function\") {\n var Je = Error((V || \"React class\") + \": \" + $ + \" type `\" + te + \"` is invalid; it must be a function, usually from the `prop-types` package, but received `\" + typeof w[te] + \"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");\n throw Je.name = \"Invariant Violation\", Je;\n }\n Z = w[te](F, te, V, $, null, \"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\");\n } catch (_e) {\n Z = _e;\n }\n Z && !(Z instanceof Error) && (Zr(oe), O(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\", V || \"React class\", $, te, typeof Z), Zr(null)), Z instanceof Error && !(Z.message in ar) && (ar[Z.message] = !0, Zr(oe), O(\"Failed %s type: %s\", $, Z.message), Zr(null));\n }\n }\n }\n var fo = Array.isArray;\n function On(w) {\n return fo(w);\n }\n function ri(w) {\n {\n var F = typeof Symbol == \"function\" && Symbol.toStringTag, $ = F && w[Symbol.toStringTag] || w.constructor.name || \"Object\";\n return $;\n }\n }\n function en(w) {\n try {\n return ct(w), !1;\n } catch {\n return !0;\n }\n }\n function ct(w) {\n return \"\" + w;\n }\n function tn(w) {\n if (en(w))\n return O(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\", ri(w)), ct(w);\n }\n var Ar = C.ReactCurrentOwner, It = {\n key: !0,\n ref: !0,\n __self: !0,\n __source: !0\n }, ni, d, u;\n u = {};\n function c(w) {\n if (Et.call(w, \"ref\")) {\n var F = Object.getOwnPropertyDescriptor(w, \"ref\").get;\n if (F && F.isReactWarning)\n return !1;\n }\n return w.ref !== void 0;\n }\n function g(w) {\n if (Et.call(w, \"key\")) {\n var F = Object.getOwnPropertyDescriptor(w, \"key\").get;\n if (F && F.isReactWarning)\n return !1;\n }\n return w.key !== void 0;\n }\n function _(w, F) {\n if (typeof w.ref == \"string\" && Ar.current && F && Ar.current.stateNode !== F) {\n var $ = L(Ar.current.type);\n u[$] || (O('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref', L(Ar.current.type), w.ref), u[$] = !0);\n }\n }\n function P(w, F) {\n {\n var $ = function() {\n ni || (ni = !0, O(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\", F));\n };\n $.isReactWarning = !0, Object.defineProperty(w, \"key\", {\n get: $,\n configurable: !0\n });\n }\n }\n function x(w, F) {\n {\n var $ = function() {\n d || (d = !0, O(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\", F));\n };\n $.isReactWarning = !0, Object.defineProperty(w, \"ref\", {\n get: $,\n configurable: !0\n });\n }\n }\n var X = function(w, F, $, V, oe, ce, te) {\n var Z = {\n // This tag allows us to uniquely identify this as a React Element\n $$typeof: t,\n // Built-in properties that belong on the element\n type: w,\n key: F,\n ref: $,\n props: te,\n // Record the component responsible for creating this element.\n _owner: ce\n };\n return Z._store = {}, Object.defineProperty(Z._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: !1\n }), Object.defineProperty(Z, \"_self\", {\n configurable: !1,\n enumerable: !1,\n writable: !1,\n value: V\n }), Object.defineProperty(Z, \"_source\", {\n configurable: !1,\n enumerable: !1,\n writable: !1,\n value: oe\n }), Object.freeze && (Object.freeze(Z.props), Object.freeze(Z)), Z;\n };\n function pe(w, F, $, V, oe) {\n {\n var ce, te = {}, Z = null, Je = null;\n $ !== void 0 && (tn($), Z = \"\" + $), g(F) && (tn(F.key), Z = \"\" + F.key), c(F) && (Je = F.ref, _(F, oe));\n for (ce in F)\n Et.call(F, ce) && !It.hasOwnProperty(ce) && (te[ce] = F[ce]);\n if (w && w.defaultProps) {\n var _e = w.defaultProps;\n for (ce in _e)\n te[ce] === void 0 && (te[ce] = _e[ce]);\n }\n if (Z || Je) {\n var Ie = typeof w == \"function\" ? w.displayName || w.name || \"Unknown\" : w;\n Z && P(te, Ie), Je && x(te, Ie);\n }\n return X(w, Z, Je, oe, V, Ar.current, te);\n }\n }\n var ae = C.ReactCurrentOwner, fe = C.ReactDebugCurrentFrame;\n function ee(w) {\n if (w) {\n var F = w._owner, $ = kr(w.type, w._source, F ? F.type : null);\n fe.setExtraStackFrame($);\n } else\n fe.setExtraStackFrame(null);\n }\n var ho;\n ho = !1;\n function po(w) {\n return typeof w == \"object\" && w !== null && w.$$typeof === t;\n }\n function Ms() {\n {\n if (ae.current) {\n var w = L(ae.current.type);\n if (w)\n return `\n\nCheck the render method of \\`` + w + \"`.\";\n }\n return \"\";\n }\n }\n function rl(w) {\n {\n if (w !== void 0) {\n var F = w.fileName.replace(/^.*[\\\\\\/]/, \"\"), $ = w.lineNumber;\n return `\n\nCheck your code at ` + F + \":\" + $ + \".\";\n }\n return \"\";\n }\n }\n var Ds = {};\n function nl(w) {\n {\n var F = Ms();\n if (!F) {\n var $ = typeof w == \"string\" ? w : w.displayName || w.name;\n $ && (F = `\n\nCheck the top-level render call using <` + $ + \">.\");\n }\n return F;\n }\n }\n function js(w, F) {\n {\n if (!w._store || w._store.validated || w.key != null)\n return;\n w._store.validated = !0;\n var $ = nl(F);\n if (Ds[$])\n return;\n Ds[$] = !0;\n var V = \"\";\n w && w._owner && w._owner !== ae.current && (V = \" It was passed a child from \" + L(w._owner.type) + \".\"), ee(w), O('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.', $, V), ee(null);\n }\n }\n function Ks(w, F) {\n {\n if (typeof w != \"object\")\n return;\n if (On(w))\n for (var $ = 0; $ < w.length; $++) {\n var V = w[$];\n po(V) && js(V, F);\n }\n else if (po(w))\n w._store && (w._store.validated = !0);\n else if (w) {\n var oe = T(w);\n if (typeof oe == \"function\" && oe !== w.entries)\n for (var ce = oe.call(w), te; !(te = ce.next()).done; )\n po(te.value) && js(te.value, F);\n }\n }\n }\n function il(w) {\n {\n var F = w.type;\n if (F == null || typeof F == \"string\")\n return;\n var $;\n if (typeof F == \"function\")\n $ = F.propTypes;\n else if (typeof F == \"object\" && (F.$$typeof === f || // Note: Memo only checks outer props here.\n // Inner props are checked in the reconciler.\n F.$$typeof === p))\n $ = F.propTypes;\n else\n return;\n if ($) {\n var V = L(F);\n Pn($, w.props, \"prop\", V, w);\n } else if (F.PropTypes !== void 0 && !ho) {\n ho = !0;\n var oe = L(F);\n O(\"Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?\", oe || \"Unknown\");\n }\n typeof F.getDefaultProps == \"function\" && !F.getDefaultProps.isReactClassApproved && O(\"getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.\");\n }\n }\n function ol(w) {\n {\n for (var F = Object.keys(w.props), $ = 0; $ < F.length; $++) {\n var V = F[$];\n if (V !== \"children\" && V !== \"key\") {\n ee(w), O(\"Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.\", V), ee(null);\n break;\n }\n }\n w.ref !== null && (ee(w), O(\"Invalid attribute `ref` supplied to `React.Fragment`.\"), ee(null));\n }\n }\n function Ws(w, F, $, V, oe, ce) {\n {\n var te = m(w);\n if (!te) {\n var Z = \"\";\n (w === void 0 || typeof w == \"object\" && w !== null && Object.keys(w).length === 0) && (Z += \" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.\");\n var Je = rl(oe);\n Je ? Z += Je : Z += Ms();\n var _e;\n w === null ? _e = \"null\" : On(w) ? _e = \"array\" : w !== void 0 && w.$$typeof === t ? (_e = \"<\" + (L(w.type) || \"Unknown\") + \" />\", Z = \" Did you accidentally export a JSX literal instead of a component?\") : _e = typeof w, O(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\", _e, Z);\n }\n var Ie = pe(w, F, $, oe, ce);\n if (Ie == null)\n return Ie;\n if (te) {\n var dt = F.children;\n if (dt !== void 0)\n if (V)\n if (On(dt)) {\n for (var rn = 0; rn < dt.length; rn++)\n Ks(dt[rn], w);\n Object.freeze && Object.freeze(dt);\n } else\n O(\"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\");\n else\n Ks(dt, w);\n }\n return w === n ? ol(Ie) : il(Ie), Ie;\n }\n }\n function sl(w, F, $) {\n return Ws(w, F, $, !0);\n }\n function al(w, F, $) {\n return Ws(w, F, $, !1);\n }\n var ul = al, cl = sl;\n kn.Fragment = n, kn.jsx = ul, kn.jsxs = cl;\n }()), kn;\n}\nvar An = {};\n/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar Xs;\nfunction Fl() {\n if (Xs)\n return An;\n Xs = 1;\n var e = q, t = Symbol.for(\"react.element\"), r = Symbol.for(\"react.fragment\"), n = Object.prototype.hasOwnProperty, i = e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, s = { key: !0, ref: !0, __self: !0, __source: !0 };\n function o(a, f, h) {\n var l, p = {}, E = null, y = null;\n h !== void 0 && (E = \"\" + h), f.key !== void 0 && (E = \"\" + f.key), f.ref !== void 0 && (y = f.ref);\n for (l in f)\n n.call(f, l) && !s.hasOwnProperty(l) && (p[l] = f[l]);\n if (a && a.defaultProps)\n for (l in f = a.defaultProps, f)\n p[l] === void 0 && (p[l] = f[l]);\n return { $$typeof: t, type: a, key: E, ref: y, props: p, _owner: i.current };\n }\n return An.Fragment = r, An.jsx = o, An.jsxs = o, An;\n}\nZa.env.NODE_ENV === \"production\" ? Ko.exports = Fl() : Ko.exports = Nl();\nvar D = Ko.exports;\nconst eu = \"ord-connect\";\nfunction Ul(e) {\n const t = `${eu}_${e}`;\n try {\n const r = localStorage.getItem(t);\n return r != null ? JSON.parse(r) : null;\n } catch (r) {\n return console.error(`Error retrieving ${t} from localStorage`, r), null;\n }\n}\nfunction qs(e, t) {\n const r = `${eu}_${e}`;\n try {\n t ? localStorage.setItem(r, JSON.stringify(t)) : localStorage.removeItem(r);\n } catch (n) {\n console.error(`Error saving ${r} to localStorage`, n);\n }\n}\nfunction xn(e, t) {\n const [r, n] = Ee(() => {\n const s = Ul(e);\n return s || (qs(e, t), t);\n }), i = Ue(\n (s) => {\n qs(e, s), n(s);\n },\n [e]\n );\n return [r, i];\n}\nvar Rl = /* @__PURE__ */ ((e) => (e.MAINNET = \"mainnet\", e.TESTNET = \"testnet\", e))(Rl || {}), Ve = /* @__PURE__ */ ((e) => (e.UNISAT = \"unisat\", e.XVERSE = \"xverse\", e))(Ve || {});\nconst nn = {\n payments: null,\n ordinals: null\n}, tu = _t(\n void 0\n), Ll = \"address\", Hl = \"wallet\", $l = \"publicKey\", Ml = \"format\", Dl = \"network\";\nfunction sg({\n children: e,\n initialNetwork: t\n}) {\n if (!t)\n throw new Error(\"Initial network cannot be empty\");\n const [r, n] = xn(\n Ll,\n nn\n ), [i, s] = xn(\n Dl,\n t\n ), [o, a] = xn(Hl, null), [f, h] = xn(\n $l,\n nn\n ), [l, p] = xn(\n Ml,\n nn\n ), [E, y] = Ee(!1), v = Ue(() => y(!0), []), S = Ue(() => y(!1), []), T = Ue(() => {\n n(nn), h(nn), p(nn), a(null);\n }, [n, p, h, a]), C = Be(\n () => ({\n address: r,\n updateAddress: n,\n publicKey: f,\n updatePublicKey: h,\n network: i,\n updateNetwork: s,\n wallet: o,\n updateWallet: a,\n isModalOpen: E,\n openModal: v,\n closeModal: S,\n format: l,\n updateFormat: p,\n disconnectWallet: T\n }),\n [\n r,\n n,\n f,\n h,\n i,\n s,\n o,\n a,\n E,\n v,\n S,\n l,\n p,\n T\n ]\n );\n return /* @__PURE__ */ D.jsx(tu.Provider, { value: C, children: e });\n}\nfunction Pr() {\n const e = at(tu);\n if (!e)\n throw new Error(\"useOrdConnect must be used within OrdConnectProvider\");\n return e;\n}\nvar ru = { exports: {} };\n(function(e, t) {\n (function(r, n) {\n e.exports = n(q);\n })(xl, function(r) {\n return function(n) {\n var i = {};\n function s(o) {\n if (i[o])\n return i[o].exports;\n var a = i[o] = { i: o, l: !1, exports: {} };\n return n[o].call(a.exports, a, a.exports, s), a.l = !0, a.exports;\n }\n return s.m = n, s.c = i, s.d = function(o, a, f) {\n s.o(o, a) || Object.defineProperty(o, a, { enumerable: !0, get: f });\n }, s.r = function(o) {\n typeof Symbol < \"u\" && Symbol.toStringTag && Object.defineProperty(o, Symbol.toStringTag, { value: \"Module\" }), Object.defineProperty(o, \"__esModule\", { value: !0 });\n }, s.t = function(o, a) {\n if (1 & a && (o = s(o)), 8 & a || 4 & a && typeof o == \"object\" && o && o.__esModule)\n return o;\n var f = /* @__PURE__ */ Object.create(null);\n if (s.r(f), Object.defineProperty(f, \"default\", { enumerable: !0, value: o }), 2 & a && typeof o != \"string\")\n for (var h in o)\n s.d(f, h, (function(l) {\n return o[l];\n }).bind(null, h));\n return f;\n }, s.n = function(o) {\n var a = o && o.__esModule ? function() {\n return o.default;\n } : function() {\n return o;\n };\n return s.d(a, \"a\", a), a;\n }, s.o = function(o, a) {\n return Object.prototype.hasOwnProperty.call(o, a);\n }, s.p = \"/\", s(s.s = 1);\n }([function(n, i) {\n n.exports = r;\n }, function(n, i, s) {\n n.exports = s(2);\n }, function(n, i, s) {\n function o(b, m, N) {\n return m in b ? Object.defineProperty(b, m, { value: N, enumerable: !0, configurable: !0, writable: !0 }) : b[m] = N, b;\n }\n function a(b, m) {\n var N = Object.keys(b);\n if (Object.getOwnPropertySymbols) {\n var H = Object.getOwnPropertySymbols(b);\n m && (H = H.filter(function(L) {\n return Object.getOwnPropertyDescriptor(b, L).enumerable;\n })), N.push.apply(N, H);\n }\n return N;\n }\n function f(b, m) {\n if (b == null)\n return {};\n var N, H, L = function(K, re) {\n if (K == null)\n return {};\n var W, le, ke = {}, Se = Object.keys(K);\n for (le = 0; le < Se.length; le++)\n W = Se[le], re.indexOf(W) >= 0 || (ke[W] = K[W]);\n return ke;\n }(b, m);\n if (Object.getOwnPropertySymbols) {\n var M = Object.getOwnPropertySymbols(b);\n for (H = 0; H < M.length; H++)\n N = M[H], m.indexOf(N) >= 0 || Object.prototype.propertyIsEnumerable.call(b, N) && (L[N] = b[N]);\n }\n return L;\n }\n s.r(i);\n var h = s(0), l = s.n(h), p = function(b) {\n for (var m = 0, N = 0; N < b.length; N++)\n m = (m << 5) - m + b.charCodeAt(N), m &= m;\n return Math.abs(m);\n }, E = function(b, m) {\n return Math.floor(b / Math.pow(10, m) % 10);\n }, y = function(b, m) {\n return !(E(b, m) % 2);\n }, v = function(b, m, N) {\n var H = b % m;\n return N && E(b, N) % 2 === 0 ? -H : H;\n }, S = function(b, m, N) {\n return m[b % N];\n }, T = function(b) {\n var m = function(H, L) {\n var M = p(H), K = L && L.length;\n return Array.from({ length: 4 }, function(re, W) {\n return { color: S(M + W, L, K), translateX: v(M * (W + 1), 40 - (W + 17), 1), translateY: v(M * (W + 1), 40 - (W + 17), 2), rotate: v(M * (W + 1), 360), isSquare: y(M, 2) };\n });\n }(b.name, b.colors), N = h.useId();\n return h.createElement(\"svg\", { viewBox: \"0 0 80 80\", fill: \"none\", role: \"img\", xmlns: \"http://www.w3.org/2000/svg\", width: b.size, height: b.size }, b.title && h.createElement(\"title\", null, b.name), h.createElement(\"mask\", { id: N, maskUnits: \"userSpaceOnUse\", x: 0, y: 0, width: 80, height: 80 }, h.createElement(\"rect\", { width: 80, height: 80, rx: b.square ? void 0 : 160, fill: \"#FFFFFF\" })), h.createElement(\"g\", { mask: \"url(#\".concat(N, \")\") }, h.createElement(\"rect\", { width: 80, height: 80, fill: m[0].color }), h.createElement(\"rect\", { x: 10, y: 30, width: 80, height: m[1].isSquare ? 80 : 10, fill: m[1].color, transform: \"translate(\" + m[1].translateX + \" \" + m[1].translateY + \") rotate(\" + m[1].rotate + \" 40 40)\" }), h.createElement(\"circle\", { cx: 40, cy: 40, fill: m[2].color, r: 16, transform: \"translate(\" + m[2].translateX + \" \" + m[2].translateY + \")\" }), h.createElement(\"line\", { x1: 0, y1: 40, x2: 80, y2: 40, strokeWidth: 2, stroke: m[3].color, transform: \"translate(\" + m[3].translateX + \" \" + m[3].translateY + \") rotate(\" + m[3].rotate + \" 40 40)\" })));\n }, C = function(b) {\n var m = function(H, L) {\n var M = p(L), K = H && H.length, re = Array.from({ length: 5 }, function(le, ke) {\n return S(M + ke, H, K);\n }), W = [];\n return W[0] = re[0], W[1] = re[1], W[2] = re[1], W[3] = re[2], W[4] = re[2], W[5] = re[3], W[6] = re[3], W[7] = re[0], W[8] = re[4], W;\n }(b.colors, b.name), N = l.a.useId();\n return l.a.createElement(\"svg\", { viewBox: \"0 0 90 90\", fill: \"none\", role: \"img\", xmlns: \"http://www.w3.org/2000/svg\", width: b.size, height: b.size }, b.title && l.a.createElement(\"title\", null, b.name), l.a.createElement(\"mask\", { id: N, maskUnits: \"userSpaceOnUse\", x: 0, y: 0, width: 90, height: 90 }, l.a.createElement(\"rect\", { width: 90, height: 90, rx: b.square ? void 0 : 180, fill: \"#FFFFFF\" })), l.a.createElement(\"g\", { mask: \"url(#\".concat(N, \")\") }, l.a.createElement(\"path\", { d: \"M0 0h90v45H0z\", fill: m[0] }), l.a.createElement(\"path\", { d: \"M0 45h90v45H0z\", fill: m[1] }), l.a.createElement(\"path\", { d: \"M83 45a38 38 0 00-76 0h76z\", fill: m[2] }), l.a.createElement(\"path\", { d: \"M83 45a38 38 0 01-76 0h76z\", fill: m[3] }), l.a.createElement(\"path\", { d: \"M77 45a32 32 0 10-64 0h64z\", fill: m[4] }), l.a.createElement(\"path\", { d: \"M77 45a32 32 0 11-64 0h64z\", fill: m[5] }), l.a.createElement(\"path\", { d: \"M71 45a26 26 0 00-52 0h52z\", fill: m[6] }), l.a.createElement(\"path\", { d: \"M71 45a26 26 0 01-52 0h52z\", fill: m[7] }), l.a.createElement(\"circle\", { cx: 45, cy: 45, r: 23, fill: m[8] })));\n }, O = function(b) {\n var m = function(H, L) {\n var M = p(H), K = L && L.length;\n return Array.from({ length: 64 }, function(re, W) {\n return S(M % (W + 1), L, K);\n });\n }(b.name, b.colors), N = h.useId();\n return h.createElement(\"svg\", { viewBox: \"0 0 80 80\", fill: \"none\", role: \"img\", xmlns: \"http://www.w3.org/2000/svg\", width: b.size, height: b.size }, b.title && h.createElement(\"title\", null, b.name), h.createElement(\"mask\", { id: N, \"mask-type\": \"alpha\", maskUnits: \"userSpaceOnUse\", x: 0, y: 0, width: 80, height: 80 }, h.createElement(\"rect\", { width: 80, height: 80, rx: b.square ? void 0 : 160, fill: \"#FFFFFF\" })), h.createElement(\"g\", { mask: \"url(#\".concat(N, \")\") }, h.createElement(\"rect\", { width: 10, height: 10, fill: m[0] }), h.createElement(\"rect\", { x: 20, width: 10, height: 10, fill: m[1] }), h.createElement(\"rect\", { x: 40, width: 10, height: 10, fill: m[2] }), h.createElement(\"rect\", { x: 60, width: 10, height: 10, fill: m[3] }), h.createElement(\"rect\", { x: 10, width: 10, height: 10, fill: m[4] }), h.createElement(\"rect\", { x: 30, width: 10, height: 10, fill: m[5] }), h.createElement(\"rect\", { x: 50, width: 10, height: 10, fill: m[6] }), h.createElement(\"rect\", { x: 70, width: 10, height: 10, fill: m[7] }), h.createElement(\"rect\", { y: 10, width: 10, height: 10, fill: m[8] }), h.createElement(\"rect\", { y: 20, width: 10, height: 10, fill: m[9] }), h.createElement(\"rect\", { y: 30, width: 10, height: 10, fill: m[10] }), h.createElement(\"rect\", { y: 40, width: 10, height: 10, fill: m[11] }), h.createElement(\"rect\", { y: 50, width: 10, height: 10, fill: m[12] }), h.createElement(\"rect\", { y: 60, width: 10, height: 10, fill: m[13] }), h.createElement(\"rect\", { y: 70, width: 10, height: 10, fill: m[14] }), h.createElement(\"rect\", { x: 20, y: 10, width: 10, height: 10, fill: m[15] }), h.createElement(\"rect\", { x: 20, y: 20, width: 10, height: 10, fill: m[16] }), h.createElement(\"rect\", { x: 20, y: 30, width: 10, height: 10, fill: m[17] }), h.createElement(\"rect\", { x: 20, y: 40, width: 10, height: 10, fill: m[18] }), h.createElement(\"rect\", { x: 20, y: 50, width: 10, height: 10, fill: m[19] }), h.createElement(\"rect\", { x: 20, y: 60, width: 10, height: 10, fill: m[20] }), h.createElement(\"rect\", { x: 20, y: 70, width: 10, height: 10, fill: m[21] }), h.createElement(\"rect\", { x: 40, y: 10, width: 10, height: 10, fill: m[22] }), h.createElement(\"rect\", { x: 40, y: 20, width: 10, height: 10, fill: m[23] }), h.createElement(\"rect\", { x: 40, y: 30, width: 10, height: 10, fill: m[24] }), h.createElement(\"rect\", { x: 40, y: 40, width: 10, height: 10, fill: m[25] }), h.createElement(\"rect\", { x: 40, y: 50, width: 10, height: 10, fill: m[26] }), h.createElement(\"rect\", { x: 40, y: 60, width: 10, height: 10, fill: m[27] }), h.createElement(\"rect\", { x: 40, y: 70, width: 10, height: 10, fill: m[28] }), h.createElement(\"rect\", { x: 60, y: 10, width: 10, height: 10, fill: m[29] }), h.createElement(\"rect\", { x: 60, y: 20, width: 10, height: 10, fill: m[30] }), h.createElement(\"rect\", { x: 60, y: 30, width: 10, height: 10, fill: m[31] }), h.createElement(\"rect\", { x: 60, y: 40, width: 10, height: 10, fill: m[32] }), h.createElement(\"rect\", { x: 60, y: 50, width: 10, height: 10, fill: m[33] }), h.createElement(\"rect\", { x: 60, y: 60, width: 10, height: 10, fill: m[34] }), h.createElement(\"rect\", { x: 60, y: 70, width: 10, height: 10, fill: m[35] }), h.createElement(\"rect\", { x: 10, y: 10, width: 10, height: 10, fill: m[36] }), h.createElement(\"rect\", { x: 10, y: 20, width: 10, height: 10, fill: m[37] }), h.createElement(\"rect\", { x: 10, y: 30, width: 10, height: 10, fill: m[38] }), h.createElement(\"rect\", { x: 10, y: 40, width: 10, height: 10, fill: m[39] }), h.createElement(\"rect\", { x: 10, y: 50, width: 10, height: 10, fill: m[40] }), h.createElement(\"rect\", { x: 10, y: 60, width: 10, height: 10, fill: m[41] }), h.createElement(\"rect\", { x: 10, y: 70, width: 10, height: 10, fill: m[42] }), h.createElement(\"rect\", { x: 30, y: 10, width: 10, height: 10, fill: m[43] }), h.createElement(\"rect\", { x: 30, y: 20, width: 10, height: 10, fill: m[44] }), h.createElement(\"rect\", { x: 30, y: 30, width: 10, height: 10, fill: m[45] }), h.createElement(\"rect\", { x: 30, y: 40, width: 10, height: 10, fill: m[46] }), h.createElement(\"rect\", { x: 30, y: 50, width: 10, height: 10, fill: m[47] }), h.createElement(\"rect\", { x: 30, y: 60, width: 10, height: 10, fill: m[48] }), h.createElement(\"rect\", { x: 30, y: 70, width: 10, height: 10, fill: m[49] }), h.createElement(\"rect\", { x: 50, y: 10, width: 10, height: 10, fill: m[50] }), h.createElement(\"rect\", { x: 50, y: 20, width: 10, height: 10, fill: m[51] }), h.createElement(\"rect\", { x: 50, y: 30, width: 10, height: 10, fill: m[52] }), h.createElement(\"rect\", { x: 50, y: 40, width: 10, height: 10, fill: m[53] }), h.createElement(\"rect\", { x: 50, y: 50, width: 10, height: 10, fill: m[54] }), h.createElement(\"rect\", { x: 50, y: 60, width: 10, height: 10, fill: m[55] }), h.createElement(\"rect\", { x: 50, y: 70, width: 10, height: 10, fill: m[56] }), h.createElement(\"rect\", { x: 70, y: 10, width: 10, height: 10, fill: m[57] }), h.createElement(\"rect\", { x: 70, y: 20, width: 10, height: 10, fill: m[58] }), h.createElement(\"rect\", { x: 70, y: 30, width: 10, height: 10, fill: m[59] }), h.createElement(\"rect\", { x: 70, y: 40, width: 10, height: 10, fill: m[60] }), h.createElement(\"rect\", { x: 70, y: 50, width: 10, height: 10, fill: m[61] }), h.createElement(\"rect\", { x: 70, y: 60, width: 10, height: 10, fill: m[62] }), h.createElement(\"rect\", { x: 70, y: 70, width: 10, height: 10, fill: m[63] })));\n }, B = function(b) {\n var m = function(H, L) {\n var M, K = p(H), re = L && L.length, W = S(K, L, re), le = v(K, 10, 1), ke = le < 5 ? le + 4 : le, Se = v(K, 10, 2), ve = Se < 5 ? Se + 4 : Se;\n return { wrapperColor: W, faceColor: (M = W, M.slice(0, 1) === \"#\" && (M = M.slice(1)), (299 * parseInt(M.substr(0, 2), 16) + 587 * parseInt(M.substr(2, 2), 16) + 114 * parseInt(M.substr(4, 2), 16)) / 1e3 >= 128 ? \"#000000\" : \"#FFFFFF\"), backgroundColor: S(K + 13, L, re), wrapperTranslateX: ke, wrapperTranslateY: ve, wrapperRotate: v(K, 360), wrapperScale: 1 + v(K, 3) / 10, isMouthOpen: y(K, 2), isCircle: y(K, 1), eyeSpread: v(K, 5), mouthSpread: v(K, 3), faceRotate: v(K, 10, 3), faceTranslateX: ke > 6 ? ke / 2 : v(K, 8, 1), faceTranslateY: ve > 6 ? ve / 2 : v(K, 7, 2) };\n }(b.name, b.colors), N = h.useId();\n return h.createElement(\"svg\", { viewBox: \"0 0 36 36\", fill: \"none\", role: \"img\", xmlns: \"http://www.w3.org/2000/svg\", width: b.size, height: b.size }, b.title && h.createElement(\"title\", null, b.name), h.createElement(\"mask\", { id: N, maskUnits: \"userSpaceOnUse\", x: 0, y: 0, width: 36, height: 36 }, h.createElement(\"rect\", { width: 36, height: 36, rx: b.square ? void 0 : 72, fill: \"#FFFFFF\" })), h.createElement(\"g\", { mask: \"url(#\".concat(N, \")\") }, h.createElement(\"rect\", { width: 36, height: 36, fill: m.backgroundColor }), h.createElement(\"rect\", { x: \"0\", y: \"0\", width: 36, height: 36, transform: \"translate(\" + m.wrapperTranslateX + \" \" + m.wrapperTranslateY + \") rotate(\" + m.wrapperRotate + \" 18 18) scale(\" + m.wrapperScale + \")\", fill: m.wrapperColor, rx: m.isCircle ? 36 : 6 }), h.createElement(\"g\", { transform: \"translate(\" + m.faceTranslateX + \" \" + m.faceTranslateY + \") rotate(\" + m.faceRotate + \" 18 18)\" }, m.isMouthOpen ? h.createElement(\"path\", { d: \"M15 \" + (19 + m.mouthSpread) + \"c2 1 4 1 6 0\", stroke: m.faceColor, fill: \"none\", strokeLinecap: \"round\" }) : h.createElement(\"path\", { d: \"M13,\" + (19 + m.mouthSpread) + \" a1,0.75 0 0,0 10,0\", fill: m.faceColor }), h.createElement(\"rect\", { x: 14 - m.eyeSpread, y: 14, width: 1.5, height: 2, rx: 1, stroke: \"none\", fill: m.faceColor }), h.createElement(\"rect\", { x: 20 + m.eyeSpread, y: 14, width: 1.5, height: 2, rx: 1, stroke: \"none\", fill: m.faceColor }))));\n }, U = function(b) {\n var m = function(L, M) {\n var K = p(L), re = M && M.length;\n return Array.from({ length: 4 }, function(W, le) {\n return S(K + le, M, re);\n });\n }(b.name, b.colors), N = b.name.replace(/\\s/g, \"\"), H = h.useId();\n return h.createElement(\"svg\", { viewBox: \"0 0 80 80\", fill: \"none\", role: \"img\", xmlns: \"http://www.w3.org/2000/svg\", width: b.size, height: b.size }, b.title && h.createElement(\"title\", null, b.name), h.createElement(\"mask\", { id: H, maskUnits: \"userSpaceOnUse\", x: 0, y: 0, width: 80, height: 80 }, h.createElement(\"rect\", { width: 80, height: 80, rx: b.square ? void 0 : 160, fill: \"#FFFFFF\" })), h.createElement(\"g\", { mask: \"url(#\".concat(H, \")\") }, h.createElement(\"path\", { fill: \"url(#gradient_paint0_linear_\" + N + \")\", d: \"M0 0h80v40H0z\" }), h.createElement(\"path\", { fill: \"url(#gradient_paint1_linear_\" + N + \")\", d: \"M0 40h80v40H0z\" })), h.createElement(\"defs\", null, h.createElement(\"linearGradient\", { id: \"gradient_paint0_linear_\" + N, x1: 40, y1: 0, x2: 40, y2: 40, gradientUnits: \"userSpaceOnUse\" }, h.createElement(\"stop\", { stopColor: m[0] }), h.createElement(\"stop\", { offset: 1, stopColor: m[1] })), h.createElement(\"linearGradient\", { id: \"gradient_paint1_linear_\" + N, x1: 40, y1: 40, x2: 40, y2: 80, gradientUnits: \"userSpaceOnUse\" }, h.createElement(\"stop\", { stopColor: m[2] }), h.createElement(\"stop\", { offset: 1, stopColor: m[3] }))));\n }, R = function(b) {\n var m = function(H, L) {\n var M = p(H), K = L && L.length;\n return Array.from({ length: 3 }, function(re, W) {\n return { color: S(M + W, L, K), translateX: v(M * (W + 1), 8, 1), translateY: v(M * (W + 1), 8, 2), scale: 1.2 + v(M * (W + 1), 4) / 10, rotate: v(M * (W + 1), 360, 1) };\n });\n }(b.name, b.colors), N = h.useId();\n return h.createElement(\"svg\", { viewBox: \"0 0 80 80\", fill: \"none\", role: \"img\", xmlns: \"http://www.w3.org/2000/svg\", width: b.size, height: b.size }, b.title && h.createElement(\"title\", null, b.name), h.createElement(\"mask\", { id: N, maskUnits: \"userSpaceOnUse\", x: 0, y: 0, width: 80, height: 80 }, h.createElement(\"rect\", { width: 80, height: 80, rx: b.square ? void 0 : 160, fill: \"#FFFFFF\" })), h.createElement(\"g\", { mask: \"url(#\".concat(N, \")\") }, h.createElement(\"rect\", { width: 80, height: 80, fill: m[0].color }), h.createElement(\"path\", { filter: \"url(#prefix__filter0_f)\", d: \"M32.414 59.35L50.376 70.5H72.5v-71H33.728L26.5 13.381l19.057 27.08L32.414 59.35z\", fill: m[1].color, transform: \"translate(\" + m[1].translateX + \" \" + m[1].translateY + \") rotate(\" + m[1].rotate + \" 40 40) scale(\" + m[2].scale + \")\" }), h.createElement(\"path\", { filter: \"url(#prefix__filter0_f)\", style: { mixBlendMode: \"overlay\" }, d: \"M22.216 24L0 46.75l14.108 38.129L78 86l-3.081-59.276-22.378 4.005 12.972 20.186-23.35 27.395L22.215 24z\", fill: m[2].color, transform: \"translate(\" + m[2].translateX + \" \" + m[2].translateY + \") rotate(\" + m[2].rotate + \" 40 40) scale(\" + m[2].scale + \")\" })), h.createElement(\"defs\", null, h.createElement(\"filter\", { id: \"prefix__filter0_f\", filterUnits: \"userSpaceOnUse\", colorInterpolationFilters: \"sRGB\" }, h.createElement(\"feFlood\", { floodOpacity: 0, result: \"BackgroundImageFix\" }), h.createElement(\"feBlend\", { in: \"SourceGraphic\", in2: \"BackgroundImageFix\", result: \"shape\" }), h.createElement(\"feGaussianBlur\", { stdDeviation: 7, result: \"effect1_foregroundBlur\" }))));\n }, k = [\"pixel\", \"bauhaus\", \"ring\", \"beam\", \"sunset\", \"marble\"], j = { geometric: \"beam\", abstract: \"bauhaus\" }, A = function(b) {\n var m = b.variant, N = m === void 0 ? \"marble\" : m, H = b.colors, L = H === void 0 ? [\"#92A1C6\", \"#146A7C\", \"#F0AB3D\", \"#C271B4\", \"#C20D90\"] : H, M = b.name, K = M === void 0 ? \"Clara Barton\" : M, re = b.square, W = re !== void 0 && re, le = b.title, ke = le !== void 0 && le, Se = b.size, ve = function(Ne) {\n for (var ut = 1; ut < arguments.length; ut++) {\n var Y = arguments[ut] != null ? arguments[ut] : {};\n ut % 2 ? a(Object(Y), !0).forEach(function(me) {\n o(Ne, me, Y[me]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(Ne, Object.getOwnPropertyDescriptors(Y)) : a(Object(Y)).forEach(function(me) {\n Object.defineProperty(Ne, me, Object.getOwnPropertyDescriptor(Y, me));\n });\n }\n return Ne;\n }({ colors: L, name: K, title: ke, size: Se === void 0 ? 40 : Se, square: W }, f(b, [\"variant\", \"colors\", \"name\", \"square\", \"title\", \"size\"]));\n return { pixel: l.a.createElement(O, ve), bauhaus: l.a.createElement(T, ve), ring: l.a.createElement(C, ve), beam: l.a.createElement(B, ve), sunset: l.a.createElement(U, ve), marble: l.a.createElement(R, ve) }[Object.keys(j).includes(N) ? j[N] : k.includes(N) ? N : \"marble\"];\n };\n i.default = A;\n }]);\n });\n})(ru);\nvar jl = ru.exports;\nconst nu = /* @__PURE__ */ Cl(jl);\nvar Kl = Object.defineProperty, Wl = (e, t, r) => t in e ? Kl(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r, go = (e, t, r) => (Wl(e, typeof t != \"symbol\" ? t + \"\" : t, r), r);\nlet Vl = class {\n constructor() {\n go(this, \"current\", this.detect()), go(this, \"handoffState\", \"pending\"), go(this, \"currentId\", 0);\n }\n set(t) {\n this.current !== t && (this.handoffState = \"pending\", this.currentId = 0, this.current = t);\n }\n reset() {\n this.set(this.detect());\n }\n nextId() {\n return ++this.currentId;\n }\n get isServer() {\n return this.current === \"server\";\n }\n get isClient() {\n return this.current === \"client\";\n }\n detect() {\n return typeof window > \"u\" || typeof document > \"u\" ? \"server\" : \"client\";\n }\n handoff() {\n this.handoffState === \"pending\" && (this.handoffState = \"complete\");\n }\n get isHandoffComplete() {\n return this.handoffState === \"complete\";\n }\n}, Yt = new Vl(), Le = (e, t) => {\n Yt.isServer ? be(e, t) : ll(e, t);\n};\nfunction Jt(e) {\n let t = ie(e);\n return Le(() => {\n t.current = e;\n }, [e]), t;\n}\nlet Q = function(e) {\n let t = Jt(e);\n return q.useCallback((...r) => t.current(...r), [t]);\n};\nfunction Li(e) {\n typeof queueMicrotask == \"function\" ? queueMicrotask(e) : Promise.resolve().then(e).catch((t) => setTimeout(() => {\n throw t;\n }));\n}\nfunction vt() {\n let e = [], t = { addEventListener(r, n, i, s) {\n return r.addEventListener(n, i, s), t.add(() => r.removeEventListener(n, i, s));\n }, requestAnimationFrame(...r) {\n let n = requestAnimationFrame(...r);\n return t.add(() => cancelAnimationFrame(n));\n }, nextFrame(...r) {\n return t.requestAnimationFrame(() => t.requestAnimationFrame(...r));\n }, setTimeout(...r) {\n let n = setTimeout(...r);\n return t.add(() => clearTimeout(n));\n }, microTask(...r) {\n let n = { current: !0 };\n return Li(() => {\n n.current && r[0]();\n }), t.add(() => {\n n.current = !1;\n });\n }, style(r, n, i) {\n let s = r.style.getPropertyValue(n);\n return Object.assign(r.style, { [n]: i }), this.add(() => {\n Object.assign(r.style, { [n]: s });\n });\n }, group(r) {\n let n = vt();\n return r(n), this.add(() => n.dispose());\n }, add(r) {\n return e.push(r), () => {\n let n = e.indexOf(r);\n if (n >= 0)\n for (let i of e.splice(n, 1))\n i();\n };\n }, dispose() {\n for (let r of e.splice(0))\n r();\n } };\n return t;\n}\nfunction zn() {\n let [e] = Ee(vt);\n return be(() => () => e.dispose(), [e]), e;\n}\nfunction Gl() {\n let e = typeof document > \"u\";\n return \"useSyncExternalStore\" in Er ? ((t) => t.useSyncExternalStore)(Er)(() => () => {\n }, () => !1, () => !e) : !1;\n}\nfunction vn() {\n let e = Gl(), [t, r] = Er.useState(Yt.isHandoffComplete);\n return t && Yt.isHandoffComplete === !1 && r(!1), Er.useEffect(() => {\n t !== !0 && r(!0);\n }, [t]), Er.useEffect(() => Yt.handoff(), []), e ? !1 : t;\n}\nvar zs;\nlet nr = (zs = q.useId) != null ? zs : function() {\n let e = vn(), [t, r] = q.useState(e ? () => Yt.nextId() : null);\n return Le(() => {\n t === null && r(Yt.nextId());\n }, [t]), t != null ? \"\" + t : void 0;\n};\nfunction Re(e, t, ...r) {\n if (e in t) {\n let i = t[e];\n return typeof i == \"function\" ? i(...r) : i;\n }\n let n = new Error(`Tried to handle \"${e}\" but there is no handler defined. Only defined handlers are: ${Object.keys(t).map((i) => `\"${i}\"`).join(\", \")}.`);\n throw Error.captureStackTrace && Error.captureStackTrace(n, Re), n;\n}\nfunction Hi(e) {\n return Yt.isServer ? null : e instanceof Node ? e.ownerDocument : e != null && e.hasOwnProperty(\"current\") && e.current instanceof Node ? e.current.ownerDocument : document;\n}\nlet Wo = [\"[contentEditable=true]\", \"[tabindex]\", \"a[href]\", \"area[href]\", \"button:not([disabled])\", \"iframe\", \"input:not([disabled])\", \"select:not([disabled])\", \"textarea:not([disabled])\"].map((e) => `${e}:not([tabindex='-1'])`).join(\",\");\nvar Xt = ((e) => (e[e.First = 1] = \"First\", e[e.Previous = 2] = \"Previous\", e[e.Next = 4] = \"Next\", e[e.Last = 8] = \"Last\", e[e.WrapAround = 16] = \"WrapAround\", e[e.NoScroll = 32] = \"NoScroll\", e))(Xt || {}), iu = ((e) => (e[e.Error = 0] = \"Error\", e[e.Overflow = 1] = \"Overflow\", e[e.Success = 2] = \"Success\", e[e.Underflow = 3] = \"Underflow\", e))(iu || {}), Xl = ((e) => (e[e.Previous = -1] = \"Previous\", e[e.Next = 1] = \"Next\", e))(Xl || {});\nfunction ou(e = document.body) {\n return e == null ? [] : Array.from(e.querySelectorAll(Wo)).sort((t, r) => Math.sign((t.tabIndex || Number.MAX_SAFE_INTEGER) - (r.tabIndex || Number.MAX_SAFE_INTEGER)));\n}\nvar us = ((e) => (e[e.Strict = 0] = \"Strict\", e[e.Loose = 1] = \"Loose\", e))(us || {});\nfunction cs(e, t = 0) {\n var r;\n return e === ((r = Hi(e)) == null ? void 0 : r.body) ? !1 : Re(t, { 0() {\n return e.matches(Wo);\n }, 1() {\n let n = e;\n for (; n !== null; ) {\n if (n.matches(Wo))\n return !0;\n n = n.parentElement;\n }\n return !1;\n } });\n}\nfunction su(e) {\n let t = Hi(e);\n vt().nextFrame(() => {\n t && !cs(t.activeElement, 0) && br(e);\n });\n}\nvar ql = ((e) => (e[e.Keyboard = 0] = \"Keyboard\", e[e.Mouse = 1] = \"Mouse\", e))(ql || {});\ntypeof window < \"u\" && typeof document < \"u\" && (document.addEventListener(\"keydown\", (e) => {\n e.metaKey || e.altKey || e.ctrlKey || (document.documentElement.dataset.headlessuiFocusVisible = \"\");\n}, !0), document.addEventListener(\"click\", (e) => {\n e.detail === 1 ? delete document.documentElement.dataset.headlessuiFocusVisible : e.detail === 0 && (document.documentElement.dataset.headlessuiFocusVisible = \"\");\n}, !0));\nfunction br(e) {\n e == null || e.focus({ preventScroll: !0 });\n}\nlet zl = [\"textarea\", \"input\"].join(\",\");\nfunction Yl(e) {\n var t, r;\n return (r = (t = e == null ? void 0 : e.matches) == null ? void 0 : t.call(e, zl)) != null ? r : !1;\n}\nfunction au(e, t = (r) => r) {\n return e.slice().sort((r, n) => {\n let i = t(r), s = t(n);\n if (i === null || s === null)\n return 0;\n let o = i.compareDocumentPosition(s);\n return o & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : o & Node.DOCUMENT_POSITION_PRECEDING ? 1 : 0;\n });\n}\nfunction Jl(e, t) {\n return Wn(ou(), t, { relativeTo: e });\n}\nfunction Wn(e, t, { sorted: r = !0, relativeTo: n = null, skipElements: i = [] } = {}) {\n let s = Array.isArray(e) ? e.length > 0 ? e[0].ownerDocument : document : e.ownerDocument, o = Array.isArray(e) ? r ? au(e) : e : ou(e);\n i.length > 0 && o.length > 1 && (o = o.filter((y) => !i.includes(y))), n = n ?? s.activeElement;\n let a = (() => {\n if (t & 5)\n return 1;\n if (t & 10)\n return -1;\n throw new Error(\"Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last\");\n })(), f = (() => {\n if (t & 1)\n return 0;\n if (t & 2)\n return Math.max(0, o.indexOf(n)) - 1;\n if (t & 4)\n return Math.max(0, o.indexOf(n)) + 1;\n if (t & 8)\n return o.length - 1;\n throw new Error(\"Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last\");\n })(), h = t & 32 ? { preventScroll: !0 } : {}, l = 0, p = o.length, E;\n do {\n if (l >= p || l + p <= 0)\n return 0;\n let y = f + l;\n if (t & 16)\n y = (y + p) % p;\n else {\n if (y < 0)\n return 3;\n if (y >= p)\n return 1;\n }\n E = o[y], E == null || E.focus(h), l += a;\n } while (E !== s.activeElement);\n return t & 6 && Yl(E) && E.select(), 2;\n}\nfunction uu() {\n return /iPhone/gi.test(window.navigator.platform) || /Mac/gi.test(window.navigator.platform) && window.navigator.maxTouchPoints > 0;\n}\nfunction Ql() {\n return /Android/gi.test(window.navigator.userAgent);\n}\nfunction Zl() {\n return uu() || Ql();\n}\nfunction ii(e, t, r) {\n let n = Jt(t);\n be(() => {\n function i(s) {\n n.current(s);\n }\n return document.addEventListener(e, i, r), () => document.removeEventListener(e, i, r);\n }, [e, r]);\n}\nfunction cu(e, t, r) {\n let n = Jt(t);\n be(() => {\n function i(s) {\n n.current(s);\n }\n return window.addEventListener(e, i, r), () => window.removeEventListener(e, i, r);\n }, [e, r]);\n}\nfunction lu(e, t, r = !0) {\n let n = ie(!1);\n be(() => {\n requestAnimationFrame(() => {\n n.current = r;\n });\n }, [r]);\n function i(o, a) {\n if (!n.current || o.defaultPrevented)\n return;\n let f = a(o);\n if (f === null || !f.getRootNode().contains(f) || !f.isConnected)\n return;\n let h = function l(p) {\n return typeof p == \"function\" ? l(p()) : Array.isArray(p) || p instanceof Set ? p : [p];\n }(e);\n for (let l of h) {\n if (l === null)\n continue;\n let p = l instanceof HTMLElement ? l : l.current;\n if (p != null && p.contains(f) || o.composed && o.composedPath().includes(p))\n return;\n }\n return !cs(f, us.Loose) && f.tabIndex !== -1 && o.preventDefault(), t(o, f);\n }\n let s = ie(null);\n ii(\"pointerdown\", (o) => {\n var a, f;\n n.current && (s.current = ((f = (a = o.composedPath) == null ? void 0 : a.call(o)) == null ? void 0 : f[0]) || o.target);\n }, !0), ii(\"mousedown\", (o) => {\n var a, f;\n n.current && (s.current = ((f = (a = o.composedPath) == null ? void 0 : a.call(o)) == null ? void 0 : f[0]) || o.target);\n }, !0), ii(\"click\", (o) => {\n Zl() || s.current && (i(o, () => s.current), s.current = null);\n }, !0), ii(\"touchend\", (o) => i(o, () => o.target instanceof HTMLElement ? o.target : null), !0), cu(\"blur\", (o) => i(o, () => window.document.activeElement instanceof HTMLIFrameElement ? window.document.activeElement : null), !0);\n}\nfunction _n(...e) {\n return Be(() => Hi(...e), [...e]);\n}\nfunction Ys(e) {\n var t;\n if (e.type)\n return e.type;\n let r = (t = e.as) != null ? t : \"button\";\n if (typeof r == \"string\" && r.toLowerCase() === \"button\")\n return \"button\";\n}\nfunction ef(e, t) {\n let [r, n] = Ee(() => Ys(e));\n return Le(() => {\n n(Ys(e));\n }, [e.type, e.as]), Le(() => {\n r || t.current && t.current instanceof HTMLButtonElement && !t.current.hasAttribute(\"type\") && n(\"button\");\n }, [r, t]), r;\n}\nlet fu = Symbol();\nfunction tf(e, t = !0) {\n return Object.assign(e, { [fu]: t });\n}\nfunction it(...e) {\n let t = ie(e);\n be(() => {\n t.current = e;\n }, [e]);\n let r = Q((n) => {\n for (let i of t.current)\n i != null && (typeof i == \"function\" ? i(n) : i.current = n);\n });\n return e.every((n) => n == null || (n == null ? void 0 : n[fu])) ? void 0 : r;\n}\nfunction Js(e) {\n return [e.screenX, e.screenY];\n}\nfunction rf() {\n let e = ie([-1, -1]);\n return { wasMoved(t) {\n let r = Js(t);\n return e.current[0] === r[0] && e.current[1] === r[1] ? !1 : (e.current = r, !0);\n }, update(t) {\n e.current = Js(t);\n } };\n}\nfunction nf({ container: e, accept: t, walk: r, enabled: n = !0 }) {\n let i = ie(t), s = ie(r);\n be(() => {\n i.current = t, s.current = r;\n }, [t, r]), Le(() => {\n if (!e || !n)\n return;\n let o = Hi(e);\n if (!o)\n return;\n let a = i.current, f = s.current, h = Object.assign((p) => a(p), { acceptNode: a }), l = o.createTreeWalker(e, NodeFilter.SHOW_ELEMENT, h, !1);\n for (; l.nextNode(); )\n f(l.currentNode);\n }, [e, n, i, s]);\n}\nfunction ls(e, t) {\n let r = ie([]), n = Q(e);\n be(() => {\n let i = [...r.current];\n for (let [s, o] of t.entries())\n if (r.current[s] !== o) {\n let a = n(t, i);\n return r.current = t, a;\n }\n }, [n, ...t]);\n}\nfunction Pi(...e) {\n return Array.from(new Set(e.flatMap((t) => typeof t == \"string\" ? t.split(\" \") : []))).filter(Boolean).join(\" \");\n}\nvar wn = ((e) => (e[e.None = 0] = \"None\", e[e.RenderStrategy = 1] = \"RenderStrategy\", e[e.Static = 2] = \"Static\", e))(wn || {}), mr = ((e) => (e[e.Unmount = 0] = \"Unmount\", e[e.Hidden = 1] = \"Hidden\", e))(mr || {});\nfunction Ye({ ourProps: e, theirProps: t, slot: r, defaultTag: n, features: i, visible: s = !0, name: o, mergeRefs: a }) {\n a = a ?? of;\n let f = hu(t, e);\n if (s)\n return oi(f, r, n, o, a);\n let h = i ?? 0;\n if (h & 2) {\n let { static: l = !1, ...p } = f;\n if (l)\n return oi(p, r, n, o, a);\n }\n if (h & 1) {\n let { unmount: l = !0, ...p } = f;\n return Re(l ? 0 : 1, { 0() {\n return null;\n }, 1() {\n return oi({ ...p, hidden: !0, style: { display: \"none\" } }, r, n, o, a);\n } });\n }\n return oi(f, r, n, o, a);\n}\nfunction oi(e, t = {}, r, n, i) {\n let { as: s = r, children: o, refName: a = \"ref\", ...f } = yo(e, [\"unmount\", \"static\"]), h = e.ref !== void 0 ? { [a]: e.ref } : {}, l = typeof o == \"function\" ? o(t) : o;\n \"className\" in f && f.className && typeof f.className == \"function\" && (f.className = f.className(t));\n let p = {};\n if (t) {\n let E = !1, y = [];\n for (let [v, S] of Object.entries(t))\n typeof S == \"boolean\" && (E = !0), S === !0 && y.push(v);\n E && (p[\"data-headlessui-state\"] = y.join(\" \"));\n }\n if (s === ft && Object.keys(Qs(f)).length > 0) {\n if (!hl(l) || Array.isArray(l) && l.length > 1)\n throw new Error(['Passing props on \"Fragment\"!', \"\", `The current component <${n} /> is rendering a \"Fragment\".`, \"However we need to passthrough the following props:\", Object.keys(f).map((S) => ` - ${S}`).join(`\n`), \"\", \"You can apply a few solutions:\", ['Add an `as=\"...\"` prop, to ensure that we render an actual element instead of a \"Fragment\".', \"Render a single element as the child so that we can forward the props onto that element.\"].map((S) => ` - ${S}`).join(`\n`)].join(`\n`));\n let E = l.props, y = typeof (E == null ? void 0 : E.className) == \"function\" ? (...S) => Pi(E == null ? void 0 : E.className(...S), f.className) : Pi(E == null ? void 0 : E.className, f.className), v = y ? { className: y } : {};\n return dl(l, Object.assign({}, hu(l.props, Qs(yo(f, [\"ref\"]))), p, h, { ref: i(l.ref, h.ref) }, v));\n }\n return pl(s, Object.assign({}, yo(f, [\"ref\"]), s !== ft && h, s !== ft && p), l);\n}\nfunction of(...e) {\n return e.every((t) => t == null) ? void 0 : (t) => {\n for (let r of e)\n r != null && (typeof r == \"function\" ? r(t) : r.current = t);\n };\n}\nfunction hu(...e) {\n if (e.length === 0)\n return {};\n if (e.length === 1)\n return e[0];\n let t = {}, r = {};\n for (let n of e)\n for (let i in n)\n i.startsWith(\"on\") && typeof n[i] == \"function\" ? (r[i] != null || (r[i] = []), r[i].push(n[i])) : t[i] = n[i];\n if (t.disabled || t[\"aria-disabled\"])\n return Object.assign(t, Object.fromEntries(Object.keys(r).map((n) => [n, void 0])));\n for (let n in r)\n Object.assign(t, { [n](i, ...s) {\n let o = r[n];\n for (let a of o) {\n if ((i instanceof Event || (i == null ? void 0 : i.nativeEvent) instanceof Event) && i.defaultPrevented)\n return;\n a(i, ...s);\n }\n } });\n return t;\n}\nfunction Xe(e) {\n var t;\n return Object.assign(fl(e), { displayName: (t = e.displayName) != null ? t : e.name });\n}\nfunction Qs(e) {\n let t = Object.assign({}, e);\n for (let r in t)\n t[r] === void 0 && delete t[r];\n return t;\n}\nfunction yo(e, t = []) {\n let r = Object.assign({}, e);\n for (let n of t)\n n in r && delete r[n];\n return r;\n}\nlet sf = \"div\";\nvar Oi = ((e) => (e[e.None = 1] = \"None\", e[e.Focusable = 2] = \"Focusable\", e[e.Hidden = 4] = \"Hidden\", e))(Oi || {});\nfunction af(e, t) {\n var r;\n let { features: n = 1, ...i } = e, s = { ref: t, \"aria-hidden\": (n & 2) === 2 ? !0 : (r = i[\"aria-hidden\"]) != null ? r : void 0, style: { position: \"fixed\", top: 1, left: 1, width: 1, height: 0, padding: 0, margin: -1, overflow: \"hidden\", clip: \"rect(0, 0, 0, 0)\", whiteSpace: \"nowrap\", borderWidth: \"0\", ...(n & 4) === 4 && (n & 2) !== 2 && { display: \"none\" } } };\n return Ye({ ourProps: s, theirProps: i, slot: {}, defaultTag: sf, name: \"Hidden\" });\n}\nlet Vo = Xe(af), fs = _t(null);\nfs.displayName = \"OpenClosedContext\";\nvar Ge = ((e) => (e[e.Open = 1] = \"Open\", e[e.Closed = 2] = \"Closed\", e[e.Closing = 4] = \"Closing\", e[e.Opening = 8] = \"Opening\", e))(Ge || {});\nfunction $i() {\n return at(fs);\n}\nfunction du({ value: e, children: t }) {\n return q.createElement(fs.Provider, { value: e }, t);\n}\nfunction uf(e) {\n function t() {\n document.readyState !== \"loading\" && (e(), document.removeEventListener(\"DOMContentLoaded\", t));\n }\n typeof window < \"u\" && typeof document < \"u\" && (document.addEventListener(\"DOMContentLoaded\", t), t());\n}\nlet yr = [];\nuf(() => {\n function e(t) {\n t.target instanceof HTMLElement && t.target !== document.body && yr[0] !== t.target && (yr.unshift(t.target), yr = yr.filter((r) => r != null && r.isConnected), yr.splice(10));\n }\n window.addEventListener(\"click\", e, { capture: !0 }), window.addEventListener(\"mousedown\", e, { capture: !0 }), window.addEventListener(\"focus\", e, { capture: !0 }), document.body.addEventListener(\"click\", e, { capture: !0 }), document.body.addEventListener(\"mousedown\", e, { capture: !0 }), document.body.addEventListener(\"focus\", e, { capture: !0 });\n});\nfunction pu(e) {\n let t = e.parentElement, r = null;\n for (; t && !(t instanceof HTMLFieldSetElement); )\n t instanceof HTMLLegendElement && (r = t), t = t.parentElement;\n let n = (t == null ? void 0 : t.getAttribute(\"disabled\")) === \"\";\n return n && cf(r) ? !1 : n;\n}\nfunction cf(e) {\n if (!e)\n return !1;\n let t = e.previousElementSibling;\n for (; t !== null; ) {\n if (t instanceof HTMLLegendElement)\n return !1;\n t = t.previousElementSibling;\n }\n return !0;\n}\nfunction lf(e) {\n throw new Error(\"Unexpected object: \" + e);\n}\nvar St = ((e) => (e[e.First = 0] = \"First\", e[e.Previous = 1] = \"Previous\", e[e.Next = 2] = \"Next\", e[e.Last = 3] = \"Last\", e[e.Specific = 4] = \"Specific\", e[e.Nothing = 5] = \"Nothing\", e))(St || {});\nfunction ff(e, t) {\n let r = t.resolveItems();\n if (r.length <= 0)\n return null;\n let n = t.resolveActiveIndex(), i = n ?? -1;\n switch (e.focus) {\n case 0: {\n for (let s = 0; s < r.length; ++s)\n if (!t.resolveDisabled(r[s], s, r))\n return s;\n return n;\n }\n case 1: {\n for (let s = i - 1; s >= 0; --s)\n if (!t.resolveDisabled(r[s], s, r))\n return s;\n return n;\n }\n case 2: {\n for (let s = i + 1; s < r.length; ++s)\n if (!t.resolveDisabled(r[s], s, r))\n return s;\n return n;\n }\n case 3: {\n for (let s = r.length - 1; s >= 0; --s)\n if (!t.resolveDisabled(r[s], s, r))\n return s;\n return n;\n }\n case 4: {\n for (let s = 0; s < r.length; ++s)\n if (t.resolveId(r[s], s, r) === e.id)\n return s;\n return n;\n }\n case 5:\n return null;\n default:\n lf(e);\n }\n}\nvar Fe = ((e) => (e.Space = \" \", e.Enter = \"Enter\", e.Escape = \"Escape\", e.Backspace = \"Backspace\", e.Delete = \"Delete\", e.ArrowLeft = \"ArrowLeft\", e.ArrowUp = \"ArrowUp\", e.ArrowRight = \"ArrowRight\", e.ArrowDown = \"ArrowDown\", e.Home = \"Home\", e.End = \"End\", e.PageUp = \"PageUp\", e.PageDown = \"PageDown\", e.Tab = \"Tab\", e))(Fe || {});\nfunction gu(e, t, r, n) {\n let i = Jt(r);\n be(() => {\n e = e ?? window;\n function s(o) {\n i.current(o);\n }\n return e.addEventListener(t, s, n), () => e.removeEventListener(t, s, n);\n }, [e, t, n]);\n}\nfunction Yn() {\n let e = ie(!1);\n return Le(() => (e.current = !0, () => {\n e.current = !1;\n }), []), e;\n}\nfunction yu(e) {\n let t = Q(e), r = ie(!1);\n be(() => (r.current = !1, () => {\n r.current = !0, Li(() => {\n r.current && t();\n });\n }), [t]);\n}\nvar $n = ((e) => (e[e.Forwards = 0] = \"Forwards\", e[e.Backwards = 1] = \"Backwards\", e))($n || {});\nfunction hf() {\n let e = ie(0);\n return cu(\"keydown\", (t) => {\n t.key === \"Tab\" && (e.current = t.shiftKey ? 1 : 0);\n }, !0), e;\n}\nfunction mu(e) {\n if (!e)\n return /* @__PURE__ */ new Set();\n if (typeof e == \"function\")\n return new Set(e());\n let t = /* @__PURE__ */ new Set();\n for (let r of e.current)\n r.current instanceof HTMLElement && t.add(r.current);\n return t;\n}\nlet df = \"div\";\nvar wu = ((e) => (e[e.None = 1] = \"None\", e[e.InitialFocus = 2] = \"InitialFocus\", e[e.TabLock = 4] = \"TabLock\", e[e.FocusLock = 8] = \"FocusLock\", e[e.RestoreFocus = 16] = \"RestoreFocus\", e[e.All = 30] = \"All\", e))(wu || {});\nfunction pf(e, t) {\n let r = ie(null), n = it(r, t), { initialFocus: i, containers: s, features: o = 30, ...a } = e;\n vn() || (o = 1);\n let f = _n(r);\n mf({ ownerDocument: f }, !!(o & 16));\n let h = wf({ ownerDocument: f, container: r, initialFocus: i }, !!(o & 2));\n Ef({ ownerDocument: f, container: r, containers: s, previousActiveElement: h }, !!(o & 8));\n let l = hf(), p = Q((S) => {\n let T = r.current;\n T && ((C) => C())(() => {\n Re(l.current, { [$n.Forwards]: () => {\n Wn(T, Xt.First, { skipElements: [S.relatedTarget] });\n }, [$n.Backwards]: () => {\n Wn(T, Xt.Last, { skipElements: [S.relatedTarget] });\n } });\n });\n }), E = zn(), y = ie(!1), v = { ref: n, onKeyDown(S) {\n S.key == \"Tab\" && (y.current = !0, E.requestAnimationFrame(() => {\n y.current = !1;\n }));\n }, onBlur(S) {\n let T = mu(s);\n r.current instanceof HTMLElement && T.add(r.current);\n let C = S.relatedTarget;\n C instanceof HTMLElement && C.dataset.headlessuiFocusGuard !== \"true\" && (Eu(T, C) || (y.current ? Wn(r.current, Re(l.current, { [$n.Forwards]: () => Xt.Next, [$n.Backwards]: () => Xt.Previous }) | Xt.WrapAround, { relativeTo: S.target }) : S.target instanceof HTMLElement && br(S.target)));\n } };\n return q.createElement(q.Fragment, null, !!(o & 4) && q.createElement(Vo, { as: \"button\", type: \"button\", \"data-headlessui-focus-guard\": !0, onFocus: p, features: Oi.Focusable }), Ye({ ourProps: v, theirProps: a, defaultTag: df, name: \"FocusTrap\" }), !!(o & 4) && q.createElement(Vo, { as: \"button\", type: \"button\", \"data-headlessui-focus-guard\": !0, onFocus: p, features: Oi.Focusable }));\n}\nlet gf = Xe(pf), Cn = Object.assign(gf, { features: wu });\nfunction yf(e = !0) {\n let t = ie(yr.slice());\n return ls(([r], [n]) => {\n n === !0 && r === !1 && Li(() => {\n t.current.splice(0);\n }), n === !1 && r === !0 && (t.current = yr.slice());\n }, [e, yr, t]), Q(() => {\n var r;\n return (r = t.current.find((n) => n != null && n.isConnected)) != null ? r : null;\n });\n}\nfunction mf({ ownerDocument: e }, t) {\n let r = yf(t);\n ls(() => {\n t || (e == null ? void 0 : e.activeElement) === (e == null ? void 0 : e.body) && br(r());\n }, [t]), yu(() => {\n t && br(r());\n });\n}\nfunction wf({ ownerDocument: e, container: t, initialFocus: r }, n) {\n let i = ie(null), s = Yn();\n return ls(() => {\n if (!n)\n return;\n let o = t.current;\n o && Li(() => {\n if (!s.current)\n return;\n let a = e == null ? void 0 : e.activeElement;\n if (r != null && r.current) {\n if ((r == null ? void 0 : r.current) === a) {\n i.current = a;\n return;\n }\n } else if (o.contains(a)) {\n i.current = a;\n return;\n }\n r != null && r.current ? br(r.current) : Wn(o, Xt.First) === iu.Error && console.warn(\"There are no focusable elements inside the \"), i.current = e == null ? void 0 : e.activeElement;\n });\n }, [n]), i;\n}\nfunction Ef({ ownerDocument: e, container: t, containers: r, previousActiveElement: n }, i) {\n let s = Yn();\n gu(e == null ? void 0 : e.defaultView, \"focus\", (o) => {\n if (!i || !s.current)\n return;\n let a = mu(r);\n t.current instanceof HTMLElement && a.add(t.current);\n let f = n.current;\n if (!f)\n return;\n let h = o.target;\n h && h instanceof HTMLElement ? Eu(a, h) ? (n.current = h, br(h)) : (o.preventDefault(), o.stopPropagation(), br(f)) : br(n.current);\n }, !0);\n}\nfunction Eu(e, t) {\n for (let r of e)\n if (r.contains(t))\n return !0;\n return !1;\n}\nlet bu = _t(!1);\nfunction bf() {\n return at(bu);\n}\nfunction Go(e) {\n return q.createElement(bu.Provider, { value: e.force }, e.children);\n}\nfunction Sf(e) {\n let t = bf(), r = at(Su), n = _n(e), [i, s] = Ee(() => {\n if (!t && r !== null || Yt.isServer)\n return null;\n let o = n == null ? void 0 : n.getElementById(\"headlessui-portal-root\");\n if (o)\n return o;\n if (n === null)\n return null;\n let a = n.createElement(\"div\");\n return a.setAttribute(\"id\", \"headlessui-portal-root\"), n.body.appendChild(a);\n });\n return be(() => {\n i !== null && (n != null && n.body.contains(i) || n == null || n.body.appendChild(i));\n }, [i, n]), be(() => {\n t || r !== null && s(r.current);\n }, [r, s, t]), i;\n}\nlet vf = ft;\nfunction _f(e, t) {\n let r = e, n = ie(null), i = it(tf((l) => {\n n.current = l;\n }), t), s = _n(n), o = Sf(n), [a] = Ee(() => {\n var l;\n return Yt.isServer ? null : (l = s == null ? void 0 : s.createElement(\"div\")) != null ? l : null;\n }), f = at(Xo), h = vn();\n return Le(() => {\n !o || !a || o.contains(a) || (a.setAttribute(\"data-headlessui-portal\", \"\"), o.appendChild(a));\n }, [o, a]), Le(() => {\n if (a && f)\n return f.register(a);\n }, [f, a]), yu(() => {\n var l;\n !o || !a || (a instanceof Node && o.contains(a) && o.removeChild(a), o.childNodes.length <= 0 && ((l = o.parentElement) == null || l.removeChild(o)));\n }), h ? !o || !a ? null : Il(Ye({ ourProps: { ref: i }, theirProps: r, defaultTag: vf, name: \"Portal\" }), a) : null;\n}\nlet Tf = ft, Su = _t(null);\nfunction If(e, t) {\n let { target: r, ...n } = e, i = { ref: it(t) };\n return q.createElement(Su.Provider, { value: r }, Ye({ ourProps: i, theirProps: n, defaultTag: Tf, name: \"Popover.Group\" }));\n}\nlet Xo = _t(null);\nfunction Pf() {\n let e = at(Xo), t = ie([]), r = Q((s) => (t.current.push(s), e && e.register(s), () => n(s))), n = Q((s) => {\n let o = t.current.indexOf(s);\n o !== -1 && t.current.splice(o, 1), e && e.unregister(s);\n }), i = Be(() => ({ register: r, unregister: n, portals: t }), [r, n, t]);\n return [t, Be(() => function({ children: s }) {\n return q.createElement(Xo.Provider, { value: i }, s);\n }, [i])];\n}\nlet Of = Xe(_f), kf = Xe(If), qo = Object.assign(Of, { Group: kf });\nfunction Af(e, t) {\n return e === t && (e !== 0 || 1 / e === 1 / t) || e !== e && t !== t;\n}\nconst xf = typeof Object.is == \"function\" ? Object.is : Af, { useState: Cf, useEffect: Bf, useLayoutEffect: Nf, useDebugValue: Ff } = Er;\nfunction Uf(e, t, r) {\n const n = t(), [{ inst: i }, s] = Cf({ inst: { value: n, getSnapshot: t } });\n return Nf(() => {\n i.value = n, i.getSnapshot = t, mo(i) && s({ inst: i });\n }, [e, n, t]), Bf(() => (mo(i) && s({ inst: i }), e(() => {\n mo(i) && s({ inst: i });\n })), [e]), Ff(n), n;\n}\nfunction mo(e) {\n const t = e.getSnapshot, r = e.value;\n try {\n const n = t();\n return !xf(r, n);\n } catch {\n return !0;\n }\n}\nfunction Rf(e, t, r) {\n return t();\n}\nconst Lf = typeof window < \"u\" && typeof window.document < \"u\" && typeof window.document.createElement < \"u\", Hf = !Lf, $f = Hf ? Rf : Uf, Mf = \"useSyncExternalStore\" in Er ? ((e) => e.useSyncExternalStore)(Er) : $f;\nfunction Df(e) {\n return Mf(e.subscribe, e.getSnapshot, e.getSnapshot);\n}\nfunction jf(e, t) {\n let r = e(), n = /* @__PURE__ */ new Set();\n return { getSnapshot() {\n return r;\n }, subscribe(i) {\n return n.add(i), () => n.delete(i);\n }, dispatch(i, ...s) {\n let o = t[i].call(r, ...s);\n o && (r = o, n.forEach((a) => a()));\n } };\n}\nfunction Kf() {\n let e;\n return { before({ doc: t }) {\n var r;\n let n = t.documentElement;\n e = ((r = t.defaultView) != null ? r : window).innerWidth - n.clientWidth;\n }, after({ doc: t, d: r }) {\n let n = t.documentElement, i = n.clientWidth - n.offsetWidth, s = e - i;\n r.style(n, \"paddingRight\", `${s}px`);\n } };\n}\nfunction Wf() {\n return uu() ? { before({ doc: e, d: t, meta: r }) {\n function n(i) {\n return r.containers.flatMap((s) => s()).some((s) => s.contains(i));\n }\n t.microTask(() => {\n var i;\n if (window.getComputedStyle(e.documentElement).scrollBehavior !== \"auto\") {\n let a = vt();\n a.style(e.documentElement, \"scrollBehavior\", \"auto\"), t.add(() => t.microTask(() => a.dispose()));\n }\n let s = (i = window.scrollY) != null ? i : window.pageYOffset, o = null;\n t.addEventListener(e, \"click\", (a) => {\n if (a.target instanceof HTMLElement)\n try {\n let f = a.target.closest(\"a\");\n if (!f)\n return;\n let { hash: h } = new URL(f.href), l = e.querySelector(h);\n l && !n(l) && (o = l);\n } catch {\n }\n }, !0), t.addEventListener(e, \"touchstart\", (a) => {\n if (a.target instanceof HTMLElement)\n if (n(a.target)) {\n let f = a.target;\n for (; f.parentElement && n(f.parentElement); )\n f = f.parentElement;\n t.style(f, \"overscrollBehavior\", \"contain\");\n } else\n t.style(a.target, \"touchAction\", \"none\");\n }), t.addEventListener(e, \"touchmove\", (a) => {\n if (a.target instanceof HTMLElement)\n if (n(a.target)) {\n let f = a.target;\n for (; f.parentElement && f.dataset.headlessuiPortal !== \"\" && !(f.scrollHeight > f.clientHeight || f.scrollWidth > f.clientWidth); )\n f = f.parentElement;\n f.dataset.headlessuiPortal === \"\" && a.preventDefault();\n } else\n a.preventDefault();\n }, { passive: !1 }), t.add(() => {\n var a;\n let f = (a = window.scrollY) != null ? a : window.pageYOffset;\n s !== f && window.scrollTo(0, s), o && o.isConnected && (o.scrollIntoView({ block: \"nearest\" }), o = null);\n });\n });\n } } : {};\n}\nfunction Vf() {\n return { before({ doc: e, d: t }) {\n t.style(e.documentElement, \"overflow\", \"hidden\");\n } };\n}\nfunction Gf(e) {\n let t = {};\n for (let r of e)\n Object.assign(t, r(t));\n return t;\n}\nlet Nr = jf(() => /* @__PURE__ */ new Map(), { PUSH(e, t) {\n var r;\n let n = (r = this.get(e)) != null ? r : { doc: e, count: 0, d: vt(), meta: /* @__PURE__ */ new Set() };\n return n.count++, n.meta.add(t), this.set(e, n), this;\n}, POP(e, t) {\n let r = this.get(e);\n return r && (r.count--, r.meta.delete(t)), this;\n}, SCROLL_PREVENT({ doc: e, d: t, meta: r }) {\n let n = { doc: e, d: t, meta: Gf(r) }, i = [Wf(), Kf(), Vf()];\n i.forEach(({ before: s }) => s == null ? void 0 : s(n)), i.forEach(({ after: s }) => s == null ? void 0 : s(n));\n}, SCROLL_ALLOW({ d: e }) {\n e.dispose();\n}, TEARDOWN({ doc: e }) {\n this.delete(e);\n} });\nNr.subscribe(() => {\n let e = Nr.getSnapshot(), t = /* @__PURE__ */ new Map();\n for (let [r] of e)\n t.set(r, r.documentElement.style.overflow);\n for (let r of e.values()) {\n let n = t.get(r.doc) === \"hidden\", i = r.count !== 0;\n (i && !n || !i && n) && Nr.dispatch(r.count > 0 ? \"SCROLL_PREVENT\" : \"SCROLL_ALLOW\", r), r.count === 0 && Nr.dispatch(\"TEARDOWN\", r);\n }\n});\nfunction Xf(e, t, r) {\n let n = Df(Nr), i = e ? n.get(e) : void 0, s = i ? i.count > 0 : !1;\n return Le(() => {\n if (!(!e || !t))\n return Nr.dispatch(\"PUSH\", e, r), () => Nr.dispatch(\"POP\", e, r);\n }, [t, e]), s;\n}\nlet wo = /* @__PURE__ */ new Map(), Bn = /* @__PURE__ */ new Map();\nfunction Zs(e, t = !0) {\n Le(() => {\n var r;\n if (!t)\n return;\n let n = typeof e == \"function\" ? e() : e.current;\n if (!n)\n return;\n function i() {\n var o;\n if (!n)\n return;\n let a = (o = Bn.get(n)) != null ? o : 1;\n if (a === 1 ? Bn.delete(n) : Bn.set(n, a - 1), a !== 1)\n return;\n let f = wo.get(n);\n f && (f[\"aria-hidden\"] === null ? n.removeAttribute(\"aria-hidden\") : n.setAttribute(\"aria-hidden\", f[\"aria-hidden\"]), n.inert = f.inert, wo.delete(n));\n }\n let s = (r = Bn.get(n)) != null ? r : 0;\n return Bn.set(n, s + 1), s !== 0 || (wo.set(n, { \"aria-hidden\": n.getAttribute(\"aria-hidden\"), inert: n.inert }), n.setAttribute(\"aria-hidden\", \"true\"), n.inert = !0), i;\n }, [e, t]);\n}\nfunction qf({ defaultContainers: e = [], portals: t, mainTreeNodeRef: r } = {}) {\n var n;\n let i = ie((n = r == null ? void 0 : r.current) != null ? n : null), s = _n(i), o = Q(() => {\n var a, f, h;\n let l = [];\n for (let p of e)\n p !== null && (p instanceof HTMLElement ? l.push(p) : \"current\" in p && p.current instanceof HTMLElement && l.push(p.current));\n if (t != null && t.current)\n for (let p of t.current)\n l.push(p);\n for (let p of (a = s == null ? void 0 : s.querySelectorAll(\"html > *, body > *\")) != null ? a : [])\n p !== document.body && p !== document.head && p instanceof HTMLElement && p.id !== \"headlessui-portal-root\" && (p.contains(i.current) || p.contains((h = (f = i.current) == null ? void 0 : f.getRootNode()) == null ? void 0 : h.host) || l.some((E) => p.contains(E)) || l.push(p));\n return l;\n });\n return { resolveContainers: o, contains: Q((a) => o().some((f) => f.contains(a))), mainTreeNodeRef: i, MainTreeNode: Be(() => function() {\n return r != null ? null : q.createElement(Vo, { features: Oi.Hidden, ref: i });\n }, [i, r]) };\n}\nlet hs = _t(() => {\n});\nhs.displayName = \"StackContext\";\nvar zo = ((e) => (e[e.Add = 0] = \"Add\", e[e.Remove = 1] = \"Remove\", e))(zo || {});\nfunction zf() {\n return at(hs);\n}\nfunction Yf({ children: e, onUpdate: t, type: r, element: n, enabled: i }) {\n let s = zf(), o = Q((...a) => {\n t == null || t(...a), s(...a);\n });\n return Le(() => {\n let a = i === void 0 || i === !0;\n return a && o(0, r, n), () => {\n a && o(1, r, n);\n };\n }, [o, r, n, i]), q.createElement(hs.Provider, { value: o }, e);\n}\nlet vu = _t(null);\nfunction _u() {\n let e = at(vu);\n if (e === null) {\n let t = new Error(\"You used a component, but it is not inside a relevant parent.\");\n throw Error.captureStackTrace && Error.captureStackTrace(t, _u), t;\n }\n return e;\n}\nfunction Jf() {\n let [e, t] = Ee([]);\n return [e.length > 0 ? e.join(\" \") : void 0, Be(() => function(r) {\n let n = Q((s) => (t((o) => [...o, s]), () => t((o) => {\n let a = o.slice(), f = a.indexOf(s);\n return f !== -1 && a.splice(f, 1), a;\n }))), i = Be(() => ({ register: n, slot: r.slot, name: r.name, props: r.props }), [n, r.slot, r.name, r.props]);\n return q.createElement(vu.Provider, { value: i }, r.children);\n }, [t])];\n}\nlet Qf = \"p\";\nfunction Zf(e, t) {\n let r = nr(), { id: n = `headlessui-description-${r}`, ...i } = e, s = _u(), o = it(t);\n Le(() => s.register(n), [n, s.register]);\n let a = { ref: o, ...s.props, id: n };\n return Ye({ ourProps: a, theirProps: i, slot: s.slot || {}, defaultTag: Qf, name: s.name || \"Description\" });\n}\nlet eh = Xe(Zf), th = Object.assign(eh, {});\nvar rh = ((e) => (e[e.Open = 0] = \"Open\", e[e.Closed = 1] = \"Closed\", e))(rh || {}), nh = ((e) => (e[e.SetTitleId = 0] = \"SetTitleId\", e))(nh || {});\nlet ih = { 0(e, t) {\n return e.titleId === t.id ? e : { ...e, titleId: t.id };\n} }, ki = _t(null);\nki.displayName = \"DialogContext\";\nfunction Jn(e) {\n let t = at(ki);\n if (t === null) {\n let r = new Error(`<${e} /> is missing a parent component.`);\n throw Error.captureStackTrace && Error.captureStackTrace(r, Jn), r;\n }\n return t;\n}\nfunction oh(e, t, r = () => [document.body]) {\n Xf(e, t, (n) => {\n var i;\n return { containers: [...(i = n.containers) != null ? i : [], r] };\n });\n}\nfunction sh(e, t) {\n return Re(t.type, ih, e, t);\n}\nlet ah = \"div\", uh = wn.RenderStrategy | wn.Static;\nfunction ch(e, t) {\n let r = nr(), { id: n = `headlessui-dialog-${r}`, open: i, onClose: s, initialFocus: o, role: a = \"dialog\", __demoMode: f = !1, ...h } = e, [l, p] = Ee(0), E = ie(!1);\n a = function() {\n return a === \"dialog\" || a === \"alertdialog\" ? a : (E.current || (E.current = !0, console.warn(`Invalid role [${a}] passed to . Only \\`dialog\\` and and \\`alertdialog\\` are supported. Using \\`dialog\\` instead.`)), \"dialog\");\n }();\n let y = $i();\n i === void 0 && y !== null && (i = (y & Ge.Open) === Ge.Open);\n let v = ie(null), S = it(v, t), T = _n(v), C = e.hasOwnProperty(\"open\") || y !== null, O = e.hasOwnProperty(\"onClose\");\n if (!C && !O)\n throw new Error(\"You have to provide an `open` and an `onClose` prop to the `Dialog` component.\");\n if (!C)\n throw new Error(\"You provided an `onClose` prop to the `Dialog`, but forgot an `open` prop.\");\n if (!O)\n throw new Error(\"You provided an `open` prop to the `Dialog`, but forgot an `onClose` prop.\");\n if (typeof i != \"boolean\")\n throw new Error(`You provided an \\`open\\` prop to the \\`Dialog\\`, but the value is not a boolean. Received: ${i}`);\n if (typeof s != \"function\")\n throw new Error(`You provided an \\`onClose\\` prop to the \\`Dialog\\`, but the value is not a function. Received: ${s}`);\n let B = i ? 0 : 1, [U, R] = Xa(sh, { titleId: null, descriptionId: null, panelRef: Mo() }), k = Q(() => s(!1)), j = Q((se) => R({ type: 0, id: se })), A = vn() ? f ? !1 : B === 0 : !1, b = l > 1, m = at(ki) !== null, [N, H] = Pf(), L = { get current() {\n var se;\n return (se = U.panelRef.current) != null ? se : v.current;\n } }, { resolveContainers: M, mainTreeNodeRef: K, MainTreeNode: re } = qf({ portals: N, defaultContainers: [L] }), W = b ? \"parent\" : \"leaf\", le = y !== null ? (y & Ge.Closing) === Ge.Closing : !1, ke = m || le ? !1 : A, Se = Ue(() => {\n var se, ze;\n return (ze = Array.from((se = T == null ? void 0 : T.querySelectorAll(\"body > *\")) != null ? se : []).find((Me) => Me.id === \"headlessui-portal-root\" ? !1 : Me.contains(K.current) && Me instanceof HTMLElement)) != null ? ze : null;\n }, [K]);\n Zs(Se, ke);\n let ve = b ? !0 : A, Ne = Ue(() => {\n var se, ze;\n return (ze = Array.from((se = T == null ? void 0 : T.querySelectorAll(\"[data-headlessui-portal]\")) != null ? se : []).find((Me) => Me.contains(K.current) && Me instanceof HTMLElement)) != null ? ze : null;\n }, [K]);\n Zs(Ne, ve), lu(M, k, !(!A || b));\n let Y = !(b || B !== 0);\n gu(T == null ? void 0 : T.defaultView, \"keydown\", (se) => {\n Y && (se.defaultPrevented || se.key === Fe.Escape && (se.preventDefault(), se.stopPropagation(), k()));\n }), oh(T, !(le || B !== 0 || m), M), be(() => {\n if (B !== 0 || !v.current)\n return;\n let se = new ResizeObserver((ze) => {\n for (let Me of ze) {\n let sr = Me.target.getBoundingClientRect();\n sr.x === 0 && sr.y === 0 && sr.width === 0 && sr.height === 0 && k();\n }\n });\n return se.observe(v.current), () => se.disconnect();\n }, [B, v, k]);\n let [ir, or] = Jf(), Lt = Be(() => [{ dialogState: B, close: k, setTitleId: j }, U], [B, U, k, j]), Ht = Be(() => ({ open: B === 0 }), [B]), $t = { ref: S, id: n, role: a, \"aria-modal\": B === 0 ? !0 : void 0, \"aria-labelledby\": U.titleId, \"aria-describedby\": ir };\n return q.createElement(Yf, { type: \"Dialog\", enabled: B === 0, element: v, onUpdate: Q((se, ze) => {\n ze === \"Dialog\" && Re(se, { [zo.Add]: () => p((Me) => Me + 1), [zo.Remove]: () => p((Me) => Me - 1) });\n }) }, q.createElement(Go, { force: !0 }, q.createElement(qo, null, q.createElement(ki.Provider, { value: Lt }, q.createElement(qo.Group, { target: v }, q.createElement(Go, { force: !1 }, q.createElement(or, { slot: Ht, name: \"Dialog.Description\" }, q.createElement(Cn, { initialFocus: o, containers: M, features: A ? Re(W, { parent: Cn.features.RestoreFocus, leaf: Cn.features.All & ~Cn.features.FocusLock }) : Cn.features.None }, q.createElement(H, null, Ye({ ourProps: $t, theirProps: h, slot: Ht, defaultTag: ah, features: uh, visible: B === 0, name: \"Dialog\" }))))))))), q.createElement(re, null));\n}\nlet lh = \"div\";\nfunction fh(e, t) {\n let r = nr(), { id: n = `headlessui-dialog-overlay-${r}`, ...i } = e, [{ dialogState: s, close: o }] = Jn(\"Dialog.Overlay\"), a = it(t), f = Q((l) => {\n if (l.target === l.currentTarget) {\n if (pu(l.currentTarget))\n return l.preventDefault();\n l.preventDefault(), l.stopPropagation(), o();\n }\n }), h = Be(() => ({ open: s === 0 }), [s]);\n return Ye({ ourProps: { ref: a, id: n, \"aria-hidden\": !0, onClick: f }, theirProps: i, slot: h, defaultTag: lh, name: \"Dialog.Overlay\" });\n}\nlet hh = \"div\";\nfunction dh(e, t) {\n let r = nr(), { id: n = `headlessui-dialog-backdrop-${r}`, ...i } = e, [{ dialogState: s }, o] = Jn(\"Dialog.Backdrop\"), a = it(t);\n be(() => {\n if (o.panelRef.current === null)\n throw new Error(\"A component is being used, but a component is missing.\");\n }, [o.panelRef]);\n let f = Be(() => ({ open: s === 0 }), [s]);\n return q.createElement(Go, { force: !0 }, q.createElement(qo, null, Ye({ ourProps: { ref: a, id: n, \"aria-hidden\": !0 }, theirProps: i, slot: f, defaultTag: hh, name: \"Dialog.Backdrop\" })));\n}\nlet ph = \"div\";\nfunction gh(e, t) {\n let r = nr(), { id: n = `headlessui-dialog-panel-${r}`, ...i } = e, [{ dialogState: s }, o] = Jn(\"Dialog.Panel\"), a = it(t, o.panelRef), f = Be(() => ({ open: s === 0 }), [s]), h = Q((l) => {\n l.stopPropagation();\n });\n return Ye({ ourProps: { ref: a, id: n, onClick: h }, theirProps: i, slot: f, defaultTag: ph, name: \"Dialog.Panel\" });\n}\nlet yh = \"h2\";\nfunction mh(e, t) {\n let r = nr(), { id: n = `headlessui-dialog-title-${r}`, ...i } = e, [{ dialogState: s, setTitleId: o }] = Jn(\"Dialog.Title\"), a = it(t);\n be(() => (o(n), () => o(null)), [n, o]);\n let f = Be(() => ({ open: s === 0 }), [s]);\n return Ye({ ourProps: { ref: a, id: n }, theirProps: i, slot: f, defaultTag: yh, name: \"Dialog.Title\" });\n}\nlet wh = Xe(ch), Eh = Xe(dh), bh = Xe(gh), Sh = Xe(fh), vh = Xe(mh), si = Object.assign(wh, { Backdrop: Eh, Panel: bh, Overlay: Sh, Title: vh, Description: th }), ea = /([\\u2700-\\u27BF]|[\\uE000-\\uF8FF]|\\uD83C[\\uDC00-\\uDFFF]|\\uD83D[\\uDC00-\\uDFFF]|[\\u2011-\\u26FF]|\\uD83E[\\uDD10-\\uDDFF])/g;\nfunction ta(e) {\n var t, r;\n let n = (t = e.innerText) != null ? t : \"\", i = e.cloneNode(!0);\n if (!(i instanceof HTMLElement))\n return n;\n let s = !1;\n for (let a of i.querySelectorAll('[hidden],[aria-hidden],[role=\"img\"]'))\n a.remove(), s = !0;\n let o = s ? (r = i.innerText) != null ? r : \"\" : n;\n return ea.test(o) && (o = o.replace(ea, \"\")), o;\n}\nfunction _h(e) {\n let t = e.getAttribute(\"aria-label\");\n if (typeof t == \"string\")\n return t.trim();\n let r = e.getAttribute(\"aria-labelledby\");\n if (r) {\n let n = r.split(\" \").map((i) => {\n let s = document.getElementById(i);\n if (s) {\n let o = s.getAttribute(\"aria-label\");\n return typeof o == \"string\" ? o.trim() : ta(s).trim();\n }\n return null;\n }).filter(Boolean);\n if (n.length > 0)\n return n.join(\", \");\n }\n return ta(e).trim();\n}\nfunction Th(e) {\n let t = ie(\"\"), r = ie(\"\");\n return Q(() => {\n let n = e.current;\n if (!n)\n return \"\";\n let i = n.innerText;\n if (t.current === i)\n return r.current;\n let s = _h(n).trim().toLowerCase();\n return t.current = i, r.current = s, s;\n });\n}\nvar Ih = ((e) => (e[e.Open = 0] = \"Open\", e[e.Closed = 1] = \"Closed\", e))(Ih || {}), Ph = ((e) => (e[e.Pointer = 0] = \"Pointer\", e[e.Other = 1] = \"Other\", e))(Ph || {}), Oh = ((e) => (e[e.OpenMenu = 0] = \"OpenMenu\", e[e.CloseMenu = 1] = \"CloseMenu\", e[e.GoToItem = 2] = \"GoToItem\", e[e.Search = 3] = \"Search\", e[e.ClearSearch = 4] = \"ClearSearch\", e[e.RegisterItem = 5] = \"RegisterItem\", e[e.UnregisterItem = 6] = \"UnregisterItem\", e))(Oh || {});\nfunction Eo(e, t = (r) => r) {\n let r = e.activeItemIndex !== null ? e.items[e.activeItemIndex] : null, n = au(t(e.items.slice()), (s) => s.dataRef.current.domRef.current), i = r ? n.indexOf(r) : null;\n return i === -1 && (i = null), { items: n, activeItemIndex: i };\n}\nlet kh = { 1(e) {\n return e.menuState === 1 ? e : { ...e, activeItemIndex: null, menuState: 1 };\n}, 0(e) {\n return e.menuState === 0 ? e : { ...e, __demoMode: !1, menuState: 0 };\n}, 2: (e, t) => {\n var r;\n let n = Eo(e), i = ff(t, { resolveItems: () => n.items, resolveActiveIndex: () => n.activeItemIndex, resolveId: (s) => s.id, resolveDisabled: (s) => s.dataRef.current.disabled });\n return { ...e, ...n, searchQuery: \"\", activeItemIndex: i, activationTrigger: (r = t.trigger) != null ? r : 1 };\n}, 3: (e, t) => {\n let r = e.searchQuery !== \"\" ? 0 : 1, n = e.searchQuery + t.value.toLowerCase(), i = (e.activeItemIndex !== null ? e.items.slice(e.activeItemIndex + r).concat(e.items.slice(0, e.activeItemIndex + r)) : e.items).find((o) => {\n var a;\n return ((a = o.dataRef.current.textValue) == null ? void 0 : a.startsWith(n)) && !o.dataRef.current.disabled;\n }), s = i ? e.items.indexOf(i) : -1;\n return s === -1 || s === e.activeItemIndex ? { ...e, searchQuery: n } : { ...e, searchQuery: n, activeItemIndex: s, activationTrigger: 1 };\n}, 4(e) {\n return e.searchQuery === \"\" ? e : { ...e, searchQuery: \"\", searchActiveItemIndex: null };\n}, 5: (e, t) => {\n let r = Eo(e, (n) => [...n, { id: t.id, dataRef: t.dataRef }]);\n return { ...e, ...r };\n}, 6: (e, t) => {\n let r = Eo(e, (n) => {\n let i = n.findIndex((s) => s.id === t.id);\n return i !== -1 && n.splice(i, 1), n;\n });\n return { ...e, ...r, activationTrigger: 1 };\n} }, ds = _t(null);\nds.displayName = \"MenuContext\";\nfunction Mi(e) {\n let t = at(ds);\n if (t === null) {\n let r = new Error(`<${e} /> is missing a parent component.`);\n throw Error.captureStackTrace && Error.captureStackTrace(r, Mi), r;\n }\n return t;\n}\nfunction Ah(e, t) {\n return Re(t.type, kh, e, t);\n}\nlet xh = ft;\nfunction Ch(e, t) {\n let { __demoMode: r = !1, ...n } = e, i = Xa(Ah, { __demoMode: r, menuState: r ? 0 : 1, buttonRef: Mo(), itemsRef: Mo(), items: [], searchQuery: \"\", activeItemIndex: null, activationTrigger: 1 }), [{ menuState: s, itemsRef: o, buttonRef: a }, f] = i, h = it(t);\n lu([a, o], (y, v) => {\n var S;\n f({ type: 1 }), cs(v, us.Loose) || (y.preventDefault(), (S = a.current) == null || S.focus());\n }, s === 0);\n let l = Q(() => {\n f({ type: 1 });\n }), p = Be(() => ({ open: s === 0, close: l }), [s, l]), E = { ref: h };\n return q.createElement(ds.Provider, { value: i }, q.createElement(du, { value: Re(s, { 0: Ge.Open, 1: Ge.Closed }) }, Ye({ ourProps: E, theirProps: n, slot: p, defaultTag: xh, name: \"Menu\" })));\n}\nlet Bh = \"button\";\nfunction Nh(e, t) {\n var r;\n let n = nr(), { id: i = `headlessui-menu-button-${n}`, ...s } = e, [o, a] = Mi(\"Menu.Button\"), f = it(o.buttonRef, t), h = zn(), l = Q((S) => {\n switch (S.key) {\n case Fe.Space:\n case Fe.Enter:\n case Fe.ArrowDown:\n S.preventDefault(), S.stopPropagation(), a({ type: 0 }), h.nextFrame(() => a({ type: 2, focus: St.First }));\n break;\n case Fe.ArrowUp:\n S.preventDefault(), S.stopPropagation(), a({ type: 0 }), h.nextFrame(() => a({ type: 2, focus: St.Last }));\n break;\n }\n }), p = Q((S) => {\n switch (S.key) {\n case Fe.Space:\n S.preventDefault();\n break;\n }\n }), E = Q((S) => {\n if (pu(S.currentTarget))\n return S.preventDefault();\n e.disabled || (o.menuState === 0 ? (a({ type: 1 }), h.nextFrame(() => {\n var T;\n return (T = o.buttonRef.current) == null ? void 0 : T.focus({ preventScroll: !0 });\n })) : (S.preventDefault(), a({ type: 0 })));\n }), y = Be(() => ({ open: o.menuState === 0 }), [o]), v = { ref: f, id: i, type: ef(e, o.buttonRef), \"aria-haspopup\": \"menu\", \"aria-controls\": (r = o.itemsRef.current) == null ? void 0 : r.id, \"aria-expanded\": o.menuState === 0, onKeyDown: l, onKeyUp: p, onClick: E };\n return Ye({ ourProps: v, theirProps: s, slot: y, defaultTag: Bh, name: \"Menu.Button\" });\n}\nlet Fh = \"div\", Uh = wn.RenderStrategy | wn.Static;\nfunction Rh(e, t) {\n var r, n;\n let i = nr(), { id: s = `headlessui-menu-items-${i}`, ...o } = e, [a, f] = Mi(\"Menu.Items\"), h = it(a.itemsRef, t), l = _n(a.itemsRef), p = zn(), E = $i(), y = E !== null ? (E & Ge.Open) === Ge.Open : a.menuState === 0;\n be(() => {\n let O = a.itemsRef.current;\n O && a.menuState === 0 && O !== (l == null ? void 0 : l.activeElement) && O.focus({ preventScroll: !0 });\n }, [a.menuState, a.itemsRef, l]), nf({ container: a.itemsRef.current, enabled: a.menuState === 0, accept(O) {\n return O.getAttribute(\"role\") === \"menuitem\" ? NodeFilter.FILTER_REJECT : O.hasAttribute(\"role\") ? NodeFilter.FILTER_SKIP : NodeFilter.FILTER_ACCEPT;\n }, walk(O) {\n O.setAttribute(\"role\", \"none\");\n } });\n let v = Q((O) => {\n var B, U;\n switch (p.dispose(), O.key) {\n case Fe.Space:\n if (a.searchQuery !== \"\")\n return O.preventDefault(), O.stopPropagation(), f({ type: 3, value: O.key });\n case Fe.Enter:\n if (O.preventDefault(), O.stopPropagation(), f({ type: 1 }), a.activeItemIndex !== null) {\n let { dataRef: R } = a.items[a.activeItemIndex];\n (U = (B = R.current) == null ? void 0 : B.domRef.current) == null || U.click();\n }\n su(a.buttonRef.current);\n break;\n case Fe.ArrowDown:\n return O.preventDefault(), O.stopPropagation(), f({ type: 2, focus: St.Next });\n case Fe.ArrowUp:\n return O.preventDefault(), O.stopPropagation(), f({ type: 2, focus: St.Previous });\n case Fe.Home:\n case Fe.PageUp:\n return O.preventDefault(), O.stopPropagation(), f({ type: 2, focus: St.First });\n case Fe.End:\n case Fe.PageDown:\n return O.preventDefault(), O.stopPropagation(), f({ type: 2, focus: St.Last });\n case Fe.Escape:\n O.preventDefault(), O.stopPropagation(), f({ type: 1 }), vt().nextFrame(() => {\n var R;\n return (R = a.buttonRef.current) == null ? void 0 : R.focus({ preventScroll: !0 });\n });\n break;\n case Fe.Tab:\n O.preventDefault(), O.stopPropagation(), f({ type: 1 }), vt().nextFrame(() => {\n Jl(a.buttonRef.current, O.shiftKey ? Xt.Previous : Xt.Next);\n });\n break;\n default:\n O.key.length === 1 && (f({ type: 3, value: O.key }), p.setTimeout(() => f({ type: 4 }), 350));\n break;\n }\n }), S = Q((O) => {\n switch (O.key) {\n case Fe.Space:\n O.preventDefault();\n break;\n }\n }), T = Be(() => ({ open: a.menuState === 0 }), [a]), C = { \"aria-activedescendant\": a.activeItemIndex === null || (r = a.items[a.activeItemIndex]) == null ? void 0 : r.id, \"aria-labelledby\": (n = a.buttonRef.current) == null ? void 0 : n.id, id: s, onKeyDown: v, onKeyUp: S, role: \"menu\", tabIndex: 0, ref: h };\n return Ye({ ourProps: C, theirProps: o, slot: T, defaultTag: Fh, features: Uh, visible: y, name: \"Menu.Items\" });\n}\nlet Lh = ft;\nfunction Hh(e, t) {\n let r = nr(), { id: n = `headlessui-menu-item-${r}`, disabled: i = !1, ...s } = e, [o, a] = Mi(\"Menu.Item\"), f = o.activeItemIndex !== null ? o.items[o.activeItemIndex].id === n : !1, h = ie(null), l = it(t, h);\n Le(() => {\n if (o.__demoMode || o.menuState !== 0 || !f || o.activationTrigger === 0)\n return;\n let R = vt();\n return R.requestAnimationFrame(() => {\n var k, j;\n (j = (k = h.current) == null ? void 0 : k.scrollIntoView) == null || j.call(k, { block: \"nearest\" });\n }), R.dispose;\n }, [o.__demoMode, h, f, o.menuState, o.activationTrigger, o.activeItemIndex]);\n let p = Th(h), E = ie({ disabled: i, domRef: h, get textValue() {\n return p();\n } });\n Le(() => {\n E.current.disabled = i;\n }, [E, i]), Le(() => (a({ type: 5, id: n, dataRef: E }), () => a({ type: 6, id: n })), [E, n]);\n let y = Q(() => {\n a({ type: 1 });\n }), v = Q((R) => {\n if (i)\n return R.preventDefault();\n a({ type: 1 }), su(o.buttonRef.current);\n }), S = Q(() => {\n if (i)\n return a({ type: 2, focus: St.Nothing });\n a({ type: 2, focus: St.Specific, id: n });\n }), T = rf(), C = Q((R) => T.update(R)), O = Q((R) => {\n T.wasMoved(R) && (i || f || a({ type: 2, focus: St.Specific, id: n, trigger: 0 }));\n }), B = Q((R) => {\n T.wasMoved(R) && (i || f && a({ type: 2, focus: St.Nothing }));\n }), U = Be(() => ({ active: f, disabled: i, close: y }), [f, i, y]);\n return Ye({ ourProps: { id: n, ref: l, role: \"menuitem\", tabIndex: i === !0 ? void 0 : -1, \"aria-disabled\": i === !0 ? !0 : void 0, disabled: void 0, onClick: v, onFocus: S, onPointerEnter: C, onMouseEnter: C, onPointerMove: O, onMouseMove: O, onPointerLeave: B, onMouseLeave: B }, theirProps: s, slot: U, defaultTag: Lh, name: \"Menu.Item\" });\n}\nlet $h = Xe(Ch), Mh = Xe(Nh), Dh = Xe(Rh), jh = Xe(Hh), on = Object.assign($h, { Button: Mh, Items: Dh, Item: jh });\nfunction Kh(e = 0) {\n let [t, r] = Ee(e), n = Yn(), i = Ue((f) => {\n n.current && r((h) => h | f);\n }, [t, n]), s = Ue((f) => !!(t & f), [t]), o = Ue((f) => {\n n.current && r((h) => h & ~f);\n }, [r, n]), a = Ue((f) => {\n n.current && r((h) => h ^ f);\n }, [r]);\n return { flags: t, addFlag: i, hasFlag: s, removeFlag: o, toggleFlag: a };\n}\nfunction Wh(e) {\n let t = { called: !1 };\n return (...r) => {\n if (!t.called)\n return t.called = !0, e(...r);\n };\n}\nfunction bo(e, ...t) {\n e && t.length > 0 && e.classList.add(...t);\n}\nfunction So(e, ...t) {\n e && t.length > 0 && e.classList.remove(...t);\n}\nfunction Vh(e, t) {\n let r = vt();\n if (!e)\n return r.dispose;\n let { transitionDuration: n, transitionDelay: i } = getComputedStyle(e), [s, o] = [n, i].map((f) => {\n let [h = 0] = f.split(\",\").filter(Boolean).map((l) => l.includes(\"ms\") ? parseFloat(l) : parseFloat(l) * 1e3).sort((l, p) => p - l);\n return h;\n }), a = s + o;\n if (a !== 0) {\n r.group((h) => {\n h.setTimeout(() => {\n t(), h.dispose();\n }, a), h.addEventListener(e, \"transitionrun\", (l) => {\n l.target === l.currentTarget && h.dispose();\n });\n });\n let f = r.addEventListener(e, \"transitionend\", (h) => {\n h.target === h.currentTarget && (t(), f());\n });\n } else\n t();\n return r.add(() => t()), r.dispose;\n}\nfunction Gh(e, t, r, n) {\n let i = r ? \"enter\" : \"leave\", s = vt(), o = n !== void 0 ? Wh(n) : () => {\n };\n i === \"enter\" && (e.removeAttribute(\"hidden\"), e.style.display = \"\");\n let a = Re(i, { enter: () => t.enter, leave: () => t.leave }), f = Re(i, { enter: () => t.enterTo, leave: () => t.leaveTo }), h = Re(i, { enter: () => t.enterFrom, leave: () => t.leaveFrom });\n return So(e, ...t.base, ...t.enter, ...t.enterTo, ...t.enterFrom, ...t.leave, ...t.leaveFrom, ...t.leaveTo, ...t.entered), bo(e, ...t.base, ...a, ...h), s.nextFrame(() => {\n So(e, ...t.base, ...a, ...h), bo(e, ...t.base, ...a, ...f), Vh(e, () => (So(e, ...t.base, ...a), bo(e, ...t.base, ...t.entered), o()));\n }), s.dispose;\n}\nfunction Xh({ immediate: e, container: t, direction: r, classes: n, onStart: i, onStop: s }) {\n let o = Yn(), a = zn(), f = Jt(r);\n Le(() => {\n e && (f.current = \"enter\");\n }, [e]), Le(() => {\n let h = vt();\n a.add(h.dispose);\n let l = t.current;\n if (l && f.current !== \"idle\" && o.current)\n return h.dispose(), i.current(f.current), h.add(Gh(l, n.current, f.current === \"enter\", () => {\n h.dispose(), s.current(f.current);\n })), h.dispose;\n }, [r]);\n}\nfunction ur(e = \"\") {\n return e.split(/\\s+/).filter((t) => t.length > 1);\n}\nlet Di = _t(null);\nDi.displayName = \"TransitionContext\";\nvar qh = ((e) => (e.Visible = \"visible\", e.Hidden = \"hidden\", e))(qh || {});\nfunction zh() {\n let e = at(Di);\n if (e === null)\n throw new Error(\"A is used but it is missing a parent or .\");\n return e;\n}\nfunction Yh() {\n let e = at(ji);\n if (e === null)\n throw new Error(\"A is used but it is missing a parent or .\");\n return e;\n}\nlet ji = _t(null);\nji.displayName = \"NestingContext\";\nfunction Ki(e) {\n return \"children\" in e ? Ki(e.children) : e.current.filter(({ el: t }) => t.current !== null).filter(({ state: t }) => t === \"visible\").length > 0;\n}\nfunction Tu(e, t) {\n let r = Jt(e), n = ie([]), i = Yn(), s = zn(), o = Q((y, v = mr.Hidden) => {\n let S = n.current.findIndex(({ el: T }) => T === y);\n S !== -1 && (Re(v, { [mr.Unmount]() {\n n.current.splice(S, 1);\n }, [mr.Hidden]() {\n n.current[S].state = \"hidden\";\n } }), s.microTask(() => {\n var T;\n !Ki(n) && i.current && ((T = r.current) == null || T.call(r));\n }));\n }), a = Q((y) => {\n let v = n.current.find(({ el: S }) => S === y);\n return v ? v.state !== \"visible\" && (v.state = \"visible\") : n.current.push({ el: y, state: \"visible\" }), () => o(y, mr.Unmount);\n }), f = ie([]), h = ie(Promise.resolve()), l = ie({ enter: [], leave: [], idle: [] }), p = Q((y, v, S) => {\n f.current.splice(0), t && (t.chains.current[v] = t.chains.current[v].filter(([T]) => T !== y)), t == null || t.chains.current[v].push([y, new Promise((T) => {\n f.current.push(T);\n })]), t == null || t.chains.current[v].push([y, new Promise((T) => {\n Promise.all(l.current[v].map(([C, O]) => O)).then(() => T());\n })]), v === \"enter\" ? h.current = h.current.then(() => t == null ? void 0 : t.wait.current).then(() => S(v)) : S(v);\n }), E = Q((y, v, S) => {\n Promise.all(l.current[v].splice(0).map(([T, C]) => C)).then(() => {\n var T;\n (T = f.current.shift()) == null || T();\n }).then(() => S(v));\n });\n return Be(() => ({ children: n, register: a, unregister: o, onStart: p, onStop: E, wait: h, chains: l }), [a, o, n, p, E, l, h]);\n}\nfunction Jh() {\n}\nlet Qh = [\"beforeEnter\", \"afterEnter\", \"beforeLeave\", \"afterLeave\"];\nfunction ra(e) {\n var t;\n let r = {};\n for (let n of Qh)\n r[n] = (t = e[n]) != null ? t : Jh;\n return r;\n}\nfunction Zh(e) {\n let t = ie(ra(e));\n return be(() => {\n t.current = ra(e);\n }, [e]), t;\n}\nlet e0 = \"div\", Iu = wn.RenderStrategy;\nfunction t0(e, t) {\n var r, n;\n let { beforeEnter: i, afterEnter: s, beforeLeave: o, afterLeave: a, enter: f, enterFrom: h, enterTo: l, entered: p, leave: E, leaveFrom: y, leaveTo: v, ...S } = e, T = ie(null), C = it(T, t), O = (r = S.unmount) == null || r ? mr.Unmount : mr.Hidden, { show: B, appear: U, initial: R } = zh(), [k, j] = Ee(B ? \"visible\" : \"hidden\"), A = Yh(), { register: b, unregister: m } = A;\n be(() => b(T), [b, T]), be(() => {\n if (O === mr.Hidden && T.current) {\n if (B && k !== \"visible\") {\n j(\"visible\");\n return;\n }\n return Re(k, { hidden: () => m(T), visible: () => b(T) });\n }\n }, [k, T, b, m, B, O]);\n let N = Jt({ base: ur(S.className), enter: ur(f), enterFrom: ur(h), enterTo: ur(l), entered: ur(p), leave: ur(E), leaveFrom: ur(y), leaveTo: ur(v) }), H = Zh({ beforeEnter: i, afterEnter: s, beforeLeave: o, afterLeave: a }), L = vn();\n be(() => {\n if (L && k === \"visible\" && T.current === null)\n throw new Error(\"Did you forget to passthrough the `ref` to the actual DOM node?\");\n }, [T, k, L]);\n let M = R && !U, K = U && B && R, re = !L || M ? \"idle\" : B ? \"enter\" : \"leave\", W = Kh(0), le = Q((Y) => Re(Y, { enter: () => {\n W.addFlag(Ge.Opening), H.current.beforeEnter();\n }, leave: () => {\n W.addFlag(Ge.Closing), H.current.beforeLeave();\n }, idle: () => {\n } })), ke = Q((Y) => Re(Y, { enter: () => {\n W.removeFlag(Ge.Opening), H.current.afterEnter();\n }, leave: () => {\n W.removeFlag(Ge.Closing), H.current.afterLeave();\n }, idle: () => {\n } })), Se = Tu(() => {\n j(\"hidden\"), m(T);\n }, A), ve = ie(!1);\n Xh({ immediate: K, container: T, classes: N, direction: re, onStart: Jt((Y) => {\n ve.current = !0, Se.onStart(T, Y, le);\n }), onStop: Jt((Y) => {\n ve.current = !1, Se.onStop(T, Y, ke), Y === \"leave\" && !Ki(Se) && (j(\"hidden\"), m(T));\n }) });\n let Ne = S, ut = { ref: C };\n return K ? Ne = { ...Ne, className: Pi(S.className, ...N.current.enter, ...N.current.enterFrom) } : ve.current && (Ne.className = Pi(S.className, (n = T.current) == null ? void 0 : n.className), Ne.className === \"\" && delete Ne.className), q.createElement(ji.Provider, { value: Se }, q.createElement(du, { value: Re(k, { visible: Ge.Open, hidden: Ge.Closed }) | W.flags }, Ye({ ourProps: ut, theirProps: Ne, defaultTag: e0, features: Iu, visible: k === \"visible\", name: \"Transition.Child\" })));\n}\nfunction r0(e, t) {\n let { show: r, appear: n = !1, unmount: i = !0, ...s } = e, o = ie(null), a = it(o, t);\n vn();\n let f = $i();\n if (r === void 0 && f !== null && (r = (f & Ge.Open) === Ge.Open), ![!0, !1].includes(r))\n throw new Error(\"A is used but it is missing a `show={true | false}` prop.\");\n let [h, l] = Ee(r ? \"visible\" : \"hidden\"), p = Tu(() => {\n l(\"hidden\");\n }), [E, y] = Ee(!0), v = ie([r]);\n Le(() => {\n E !== !1 && v.current[v.current.length - 1] !== r && (v.current.push(r), y(!1));\n }, [v, r]);\n let S = Be(() => ({ show: r, appear: n, initial: E }), [r, n, E]);\n be(() => {\n if (r)\n l(\"visible\");\n else if (!Ki(p))\n l(\"hidden\");\n else {\n let B = o.current;\n if (!B)\n return;\n let U = B.getBoundingClientRect();\n U.x === 0 && U.y === 0 && U.width === 0 && U.height === 0 && l(\"hidden\");\n }\n }, [r, p]);\n let T = { unmount: i }, C = Q(() => {\n var B;\n E && y(!1), (B = e.beforeEnter) == null || B.call(e);\n }), O = Q(() => {\n var B;\n E && y(!1), (B = e.beforeLeave) == null || B.call(e);\n });\n return q.createElement(ji.Provider, { value: p }, q.createElement(Di.Provider, { value: S }, Ye({ ourProps: { ...T, as: ft, children: q.createElement(Pu, { ref: a, ...T, ...s, beforeEnter: C, beforeLeave: O }) }, theirProps: {}, defaultTag: ft, features: Iu, visible: h === \"visible\", name: \"Transition\" })));\n}\nfunction n0(e, t) {\n let r = at(Di) !== null, n = $i() !== null;\n return q.createElement(q.Fragment, null, !r && n ? q.createElement(Yo, { ref: t, ...e }) : q.createElement(Pu, { ref: t, ...e }));\n}\nlet Yo = Xe(r0), Pu = Xe(t0), i0 = Xe(n0), Si = Object.assign(Yo, { Child: i0, Root: Yo });\nconst o0 = \"data:image/svg+xml,%3csvg%20width='20'%20height='20'%20viewBox='0%200%2020%2020'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M5%207.5L10%2012.5L15%207.5'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e\", s0 = \"data:image/svg+xml,%3csvg%20width='20'%20height='20'%20viewBox='0%200%2020%2020'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M7.5%2017.5H4.16667C3.72464%2017.5%203.30072%2017.3244%202.98816%2017.0118C2.67559%2016.6993%202.5%2016.2754%202.5%2015.8333V4.16667C2.5%203.72464%202.67559%203.30072%202.98816%202.98816C3.30072%202.67559%203.72464%202.5%204.16667%202.5H7.5'%20stroke='white'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M13.333%2014.1667L17.4997%2010L13.333%205.83337'%20stroke='white'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M17.5%2010H7.5'%20stroke='white'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e\", Ou = \"data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M14.8742%204.5804L18.5392%208.15088C18.8511%208.45416%2019.0047%208.76103%2018.9999%209.07026C18.995%209.3795%2018.8608%209.66136%2018.5984%209.91707C18.3239%2010.1847%2018.0277%2010.3203%2017.7109%2010.3262C17.3941%2010.331%2017.0797%2010.1811%2016.7677%209.87785L13.0193%206.22648C12.5937%205.8114%2012.1825%205.51762%2011.7872%205.34516C11.3917%205.1727%2010.9758%205.14535%2010.5405%205.26428C10.104%205.38203%209.63603%205.68532%209.13422%206.17295C8.44258%206.84733%208.11246%207.48007%208.14634%208.0712C8.18018%208.6623%208.52358%209.27602%209.17534%209.90996L12.954%2013.5922C13.2696%2013.8991%2013.4244%2014.2059%2013.4195%2014.5104C13.4147%2014.8161%2013.2793%2015.098%2013.012%2015.3584C12.746%2015.6177%2012.4522%2015.7533%2012.133%2015.764C11.8137%2015.7747%2011.4957%2015.6261%2011.1813%2015.3192L7.51634%2011.7487C6.92022%2011.1683%206.48975%2010.6188%206.22495%2010.1002C5.96014%209.58168%205.86099%208.99533%205.92991%208.34118C5.99158%207.78099%206.17416%207.23864%206.47887%206.71294C6.78237%206.18723%207.21768%205.64964%207.78237%205.09896C8.45466%204.44362%209.09673%203.94171%209.70858%203.59203C10.3192%203.24236%2010.9105%203.04849%2011.4812%203.00806C12.0532%202.96762%2012.6166%203.07942%2013.1741%203.34346C13.7315%203.6075%2014.2974%204.01902%2014.873%204.5804H14.8742Z'%20fill='url(%23paint0_linear_4212_6487)'/%3e%3cpath%20d='M9.12459%2018.9872L5.46081%2015.4167C5.14884%2015.1122%204.99527%2014.8066%205.00011%2014.4973C5.00495%2014.1881%205.13917%2013.9062%205.40156%2013.6505C5.67604%2013.3829%205.97229%2013.2473%206.28909%2013.2414C6.60589%2013.2366%206.92028%2013.3853%207.23225%2013.6897L10.9795%2017.3411C11.4063%2017.7562%2011.8162%2018.05%2012.2116%2018.2224C12.607%2018.3949%2013.023%2018.421%2013.4595%2018.3033C13.896%2018.1856%2014.3639%2017.8823%2014.8657%2017.3934C15.5574%2016.7191%2015.8875%2016.0863%2015.8537%2015.4952C15.8198%2014.9041%2015.4764%2014.2904%2014.8247%2013.6553L12.8114%2011.7106C12.4958%2011.4038%2012.341%2011.0969%2012.3458%2010.7925C12.3507%2010.4868%2012.4861%2010.2049%2012.7533%209.94445C13.0194%209.68514%2013.3132%209.54957%2013.6324%209.53887C13.9516%209.52816%2014.2696%209.67682%2014.584%209.9837L16.4824%2011.8165C17.0785%2012.3969%2017.509%2012.9464%2017.7738%2013.465C18.0386%2013.9835%2018.1378%2014.5699%2018.0688%2015.224C18.0072%2015.7842%2017.8246%2016.3266%2017.5199%2016.8523C17.2164%2017.378%2016.7811%2017.9156%2016.2164%2018.4663C15.5441%2019.1216%2014.902%2019.6235%2014.2902%2019.9732C13.6783%2020.3229%2013.0871%2020.5179%2012.5151%2020.5583C11.9432%2020.5988%2011.3797%2020.487%2010.8223%2020.2229C10.2648%2019.9589%209.69894%2019.5474%209.12338%2018.986L9.12459%2018.9872Z'%20fill='url(%23paint1_linear_4212_6487)'/%3e%3cpath%20d='M11.4098%209.77448C12.153%209.77448%2012.7556%209.18182%2012.7556%208.4507C12.7556%207.71962%2012.153%207.12695%2011.4098%207.12695C10.6665%207.12695%2010.064%207.71962%2010.064%208.4507C10.064%209.18182%2010.6665%209.77448%2011.4098%209.77448Z'%20fill='url(%23paint2_radial_4212_6487)'/%3e%3cdefs%3e%3clinearGradient%20id='paint0_linear_4212_6487'%20x1='17.9364'%20y1='6.66057'%20x2='6.64095'%20y2='11.7639'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%23201C1B'/%3e%3cstop%20offset='0.36'%20stop-color='%2377390D'/%3e%3cstop%20offset='0.67'%20stop-color='%23EA8101'/%3e%3cstop%20offset='1'%20stop-color='%23F4B852'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint1_linear_4212_6487'%20x1='6.3763'%20y1='17.0541'%20x2='19.5023'%20y2='13.0825'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%231F1D1C'/%3e%3cstop%20offset='0.37'%20stop-color='%2377390D'/%3e%3cstop%20offset='0.67'%20stop-color='%23EA8101'/%3e%3cstop%20offset='1'%20stop-color='%23F4FB52'/%3e%3c/linearGradient%3e%3cradialGradient%20id='paint2_radial_4212_6487'%20cx='0'%20cy='0'%20r='1'%20gradientUnits='userSpaceOnUse'%20gradientTransform='translate(11.4098%208.45191)%20scale(1.34581%201.32377)'%3e%3cstop%20stop-color='%23F4B852'/%3e%3cstop%20offset='0.33'%20stop-color='%23EA8101'/%3e%3cstop%20offset='0.64'%20stop-color='%2377390D'/%3e%3cstop%20offset='1'%20stop-color='%23211C1D'/%3e%3c/radialGradient%3e%3c/defs%3e%3c/svg%3e\", ku = \"data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M19.4283%2019.185V16.4677C19.4283%2016.36%2019.3855%2016.2572%2019.3092%2016.1809L7.74741%204.61916C7.67106%204.54281%207.56829%204.5%207.46055%204.5H4.74332C4.60917%204.5%204.5%204.60917%204.5%204.74332V7.26787C4.5%207.37562%204.54281%207.47837%204.61916%207.55472L8.76923%2011.7047C8.86412%2011.7997%208.86412%2011.9538%208.76923%2012.0487L4.57136%2016.2465C4.52569%2016.2922%204.5%2016.3543%204.5%2016.4185V19.185C4.5%2019.319%204.60917%2019.4283%204.74332%2019.4283H9.28369C9.41784%2019.4283%209.527%2019.319%209.527%2019.185V17.5552C9.527%2017.491%209.55271%2017.4289%209.59838%2017.3832L11.8504%2015.1312C11.9453%2015.0363%2012.0994%2015.0363%2012.1943%2015.1312L16.3729%2019.3099C16.4492%2019.3862%2016.552%2019.429%2016.6597%2019.429H19.1843C19.3185%2019.429%2019.4276%2019.3198%2019.4276%2019.1857L19.4283%2019.185Z'%20fill='white'/%3e%3cpath%20d='M13.372%208.09816H15.6461C15.781%208.09816%2015.8909%208.20805%2015.8909%208.34292V10.617C15.8909%2010.8353%2016.1549%2010.9445%2016.309%2010.7897L19.4287%207.66505C19.4743%207.61937%2019.5001%207.5573%2019.5001%207.49236V4.75588C19.5001%204.62102%2019.3908%204.51114%2019.2553%204.51114L16.4781%204.50757C16.4132%204.50757%2016.3511%204.53326%2016.3047%204.57892L13.1986%207.68003C13.0445%207.83415%2013.1537%208.09816%2013.3713%208.09816H13.372Z'%20fill='%23EE7A30'/%3e%3c/svg%3e\";\nfunction Jo(e, t = 4, r = 5) {\n if (e.length <= t + r)\n return e;\n const n = e.slice(0, t), i = e.slice(e.length - r);\n return `${n}...${i}`;\n}\nfunction a0({\n address: e,\n network: t,\n onViewProfile: r,\n onChangeWallet: n,\n renderAvatar: i\n}) {\n const { disconnectWallet: s, wallet: o } = Pr();\n return /* @__PURE__ */ D.jsx(\n on,\n {\n as: \"section\",\n className: \"ord-connect-font ord-wallet-connected-container relative inline-block text-left\",\n children: ({ open: a }) => /* @__PURE__ */ D.jsxs(D.Fragment, { children: [\n /* @__PURE__ */ D.jsxs(on.Button, { className: \"ord-wallet-connected-button\", children: [\n /* @__PURE__ */ D.jsxs(\"div\", { className: \"wallet-identifier-container\", children: [\n i ? i(e, \"large\") : /* @__PURE__ */ D.jsx(\n nu,\n {\n size: 28,\n variant: \"beam\",\n name: e,\n colors: [\"#1C2DCB\", \"#F226B8\"]\n }\n ),\n /* @__PURE__ */ D.jsx(\n \"img\",\n {\n src: o === Ve.XVERSE ? ku : Ou,\n alt: `${o} is connected`\n }\n )\n ] }),\n /* @__PURE__ */ D.jsxs(\"section\", { className: \"address-container\", children: [\n /* @__PURE__ */ D.jsx(\"p\", { className: \"address\", children: Jo(e) }),\n /* @__PURE__ */ D.jsxs(\"section\", { className: \"network-container\", children: [\n /* @__PURE__ */ D.jsx(\"div\", { className: \"status-indicator\" }),\n /* @__PURE__ */ D.jsx(\"p\", { className: \"network\", children: t === \"mainnet\" ? \"MainNet\" : \"TestNet\" })\n ] })\n ] }),\n /* @__PURE__ */ D.jsx(\n \"img\",\n {\n src: o0,\n className: `dropdown-button ${a ? \"close-dropdown-button\" : \"expand-dropdown-button\"}`,\n alt: \"ord connect dropdown\"\n }\n )\n ] }),\n /* @__PURE__ */ D.jsx(\n Si,\n {\n as: ft,\n enter: \"transition ease-out duration-100\",\n enterFrom: \"transform opacity-0 scale-95\",\n enterTo: \"transform opacity-100 scale-100\",\n leave: \"transition ease-in duration-75\",\n leaveFrom: \"transform opacity-100 scale-100\",\n leaveTo: \"transform opacity-0 scale-95\",\n children: /* @__PURE__ */ D.jsxs(on.Items, { className: \"ord-wallet-connection-dropdown\", children: [\n /* @__PURE__ */ D.jsxs(\n on.Item,\n {\n as: \"button\",\n className: \"dropdown-button\",\n onClick: () => {\n r == null || r();\n },\n children: [\n /* @__PURE__ */ D.jsx(\"span\", { className: \"label\", children: \"View profile\" }),\n /* @__PURE__ */ D.jsx(\"span\", { className: \"value\", children: Jo(e) })\n ]\n }\n ),\n /* @__PURE__ */ D.jsx(\n on.Item,\n {\n as: \"button\",\n className: \"dropdown-button\",\n onClick: () => {\n n == null || n();\n },\n children: /* @__PURE__ */ D.jsx(\"span\", { className: \"change-wallet-label\", children: \"Change wallet\" })\n }\n ),\n /* @__PURE__ */ D.jsx(\"hr\", { className: \"horizontal-separator\" }),\n /* @__PURE__ */ D.jsxs(\n on.Item,\n {\n as: \"button\",\n className: \"dropdown-button\",\n onClick: s,\n children: [\n /* @__PURE__ */ D.jsx(\"span\", { className: \"label\", children: \"Disconnect wallet\" }),\n /* @__PURE__ */ D.jsx(\"img\", { src: s0, className: \"logout-icon\", alt: \"logout\" })\n ]\n }\n )\n ] })\n }\n )\n ] })\n }\n );\n}\nfunction u0({\n openModal: e,\n customStyle: t\n}) {\n return /* @__PURE__ */ D.jsx(\n \"button\",\n {\n type: \"button\",\n onClick: e,\n \"data-testid\": \"connect-wallet-button\",\n className: `ord-connect-font ord-connect-wallet-button ${t ?? \"\"}`,\n children: /* @__PURE__ */ D.jsx(\"span\", {})\n }\n );\n}\nconst c0 = \"data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M12%2022C17.5228%2022%2022%2017.5228%2022%2012C22%206.47715%2017.5228%202%2012%202C6.47715%202%202%206.47715%202%2012C2%2017.5228%206.47715%2022%2012%2022Z'%20stroke='%23F2F2F2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M15%209L9%2015'%20stroke='%23F2F2F2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M9%209L15%2015'%20stroke='%23F2F2F2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e\";\nfunction l0() {\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(\n navigator.userAgent\n );\n}\nasync function f0() {\n let e = 0;\n const t = 20;\n for (; e < t; ) {\n if (typeof window < \"u\" && window.unisat)\n try {\n const r = await window.unisat.getAccounts();\n if (r && r.length > 0)\n return !0;\n } catch {\n break;\n }\n e += 1, await new Promise((r) => {\n setTimeout(r, 100);\n });\n }\n return !1;\n}\nconst h0 = \"data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M9%2018L15%2012L9%206'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e\", d0 = \"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='44'%20height='44'%20viewBox='0%200%2044%2044'%20stroke='%23fff'%3e%3cg%20fill='none'%20fill-rule='evenodd'%20stroke-width='2'%3e%3ccircle%20cx='22'%20cy='22'%20r='1'%3e%3canimate%20attributeName='r'%20begin='0s'%20dur='1.8s'%20values='1;%2020'%20calcMode='spline'%20keyTimes='0;%201'%20keySplines='0.165,%200.84,%200.44,%201'%20repeatCount='indefinite'/%3e%3canimate%20attributeName='stroke-opacity'%20begin='0s'%20dur='1.8s'%20values='1;%200'%20calcMode='spline'%20keyTimes='0;%201'%20keySplines='0.3,%200.61,%200.355,%201'%20repeatCount='indefinite'/%3e%3c/circle%3e%3ccircle%20cx='22'%20cy='22'%20r='1'%3e%3canimate%20attributeName='r'%20begin='-0.9s'%20dur='1.8s'%20values='1;%2020'%20calcMode='spline'%20keyTimes='0;%201'%20keySplines='0.165,%200.84,%200.44,%201'%20repeatCount='indefinite'/%3e%3canimate%20attributeName='stroke-opacity'%20begin='-0.9s'%20dur='1.8s'%20values='1;%200'%20calcMode='spline'%20keyTimes='0;%201'%20keySplines='0.3,%200.61,%200.355,%201'%20repeatCount='indefinite'/%3e%3c/circle%3e%3c/g%3e%3c/svg%3e\", p0 = {\n [Ve.UNISAT]: \"UniSat Wallet\",\n [Ve.XVERSE]: \"Xverse\"\n};\nfunction na({\n wallet: e,\n subtitle: t,\n onConnect: r,\n icon: n,\n setErrorMessage: i,\n isDisabled: s,\n isMobileDevice: o,\n renderAvatar: a\n}) {\n const { wallet: f, address: h } = Pr(), [{ connectedWallet: l, connectedAddress: p }] = Ee({\n connectedWallet: f,\n connectedAddress: h\n }), [E, y] = Ee(!1), v = p0[e], S = Ue(async () => {\n y(!0), await Promise.race([\n r().then(() => y(!1)).catch(() => y(!1)),\n new Promise((C) => {\n setTimeout(() => C(\"timeout\"), 5e3);\n })\n ]) === \"timeout\" ? i(\n \"No wallet pop-up? The extension is not responding. Try reloading your browser.\"\n ) : y(!1);\n }, [r, i]);\n return /* @__PURE__ */ D.jsx(\n \"button\",\n {\n type: \"button\",\n className: \"wallet-option-button\",\n onClick: S,\n disabled: s,\n children: /* @__PURE__ */ D.jsxs(\"div\", { className: \"option-wrapper\", children: [\n /* @__PURE__ */ D.jsx(\"img\", { className: \"wallet-icon\", src: n, alt: \"\" }),\n /* @__PURE__ */ D.jsxs(\"div\", { className: \"wallet-option\", children: [\n /* @__PURE__ */ D.jsx(\"span\", { className: \"wallet-option-label\", children: v }),\n /* @__PURE__ */ D.jsx(\n \"span\",\n {\n className: \"wallet-option-subtitle\",\n style: { display: o ? \"block\" : \"none\" },\n children: t\n }\n )\n ] }),\n l === e && p.ordinals ? /* @__PURE__ */ D.jsxs(\"div\", { className: \"wallet-option-connected-address\", children: [\n a ? a(p.ordinals, \"small\") : /* @__PURE__ */ D.jsx(\n nu,\n {\n size: 16,\n variant: \"beam\",\n name: p.ordinals,\n colors: [\"#1C2DCB\", \"#F226B8\"]\n }\n ),\n /* @__PURE__ */ D.jsx(\"span\", { className: \"label\", children: Jo(p.ordinals) })\n ] }) : null,\n E ? /* @__PURE__ */ D.jsx(\n \"img\",\n {\n src: d0,\n width: 24,\n alt: `${v} extension is loading`\n }\n ) : /* @__PURE__ */ D.jsx(\n \"img\",\n {\n src: h0,\n alt: \"Chevron Right\",\n width: 24,\n height: 24,\n className: \"chveron-btn\"\n }\n )\n ] })\n }\n );\n}\nconst g0 = {\n [Ve.UNISAT]: \"https://unisat.io/download\",\n // their www subdomain doesn't work\n [Ve.XVERSE]: \"https://www.xverse.app/download\"\n};\nfunction y0({\n isOpen: e,\n closeModal: t,\n disableMobile: r,\n renderAvatar: n\n}) {\n const {\n updateAddress: i,\n network: s,\n updateWallet: o,\n updatePublicKey: a,\n updateFormat: f,\n wallet: h,\n format: l,\n address: p,\n publicKey: E,\n disconnectWallet: y\n } = Pr(), [v, S] = Ee(\"\"), T = l0(), C = !r || !T, O = Ue(\n (R, k) => {\n k instanceof gl && window.open(\n g0[R],\n \"_blank\",\n \"noopener,noreferrer\"\n ), S(k.message ?? k.toString()), console.error(`Error while connecting to ${R} wallet`, k), y();\n },\n [y]\n ), B = Ue(\n async ({ readOnly: R } = {}) => {\n try {\n S(\"\");\n const k = await El(s, R);\n if (!k || k.length < 1)\n throw y(), new Error(\"Unisat via Ordit returned no addresses.\");\n const j = k[0];\n return i({\n ordinals: j.address,\n payments: j.address\n }), a({\n ordinals: j.publicKey,\n payments: j.publicKey\n }), o(Ve.UNISAT), f({\n ordinals: j.format,\n payments: j.format\n }), t(), !0;\n } catch (k) {\n return O(Ve.UNISAT, k), !1;\n }\n },\n [\n t,\n y,\n s,\n O,\n i,\n f,\n a,\n o\n ]\n ), U = Ue(async () => {\n try {\n S(\"\");\n const R = await vl(s);\n if (!R || R.length < 1)\n throw y(), new Error(\"Xverse via Ordit returned no addresses.\");\n const k = R.find(\n (A) => A.format === \"p2sh-p2wpkh\"\n ), j = R.find(\n (A) => A.format === \"taproot\"\n );\n if (!k || !j)\n throw new Error(\n \"Xverse via Ordit did not return P2SH or Taproot addresses.\"\n );\n return i({\n ordinals: j.address,\n payments: k.address\n }), a({\n ordinals: j.publicKey,\n payments: k.publicKey\n }), o(Ve.XVERSE), f({\n ordinals: j.format,\n payments: k.format\n }), t(), !0;\n } catch (R) {\n return O(Ve.XVERSE, R), !1;\n }\n }, [\n t,\n y,\n s,\n O,\n i,\n f,\n a,\n o\n ]);\n return be(() => {\n if (h !== Ve.UNISAT)\n return;\n let R = !0, k = !1;\n const j = () => B();\n return p && E && l && (async () => {\n const b = await f0();\n if (R) {\n if (!b) {\n y();\n return;\n }\n k = await B({ readOnly: !0 }), R && k && window.unisat.addListener(\"accountsChanged\", j);\n }\n })(), () => {\n R = !1, k && window.unisat.removeListener(\"accountsChanged\", j);\n };\n }, [h, B, y]), /* @__PURE__ */ D.jsx(Si, { appear: !0, show: e, as: ft, children: /* @__PURE__ */ D.jsxs(\n si,\n {\n as: \"div\",\n className: \"ord-connect-font ord-connect-wallet-modal\",\n onClose: t,\n children: [\n /* @__PURE__ */ D.jsx(\n Si.Child,\n {\n as: ft,\n enter: \"ease-out duration-300\",\n enterFrom: \"opacity-0\",\n enterTo: \"opacity-100\",\n leave: \"ease-in duration-200\",\n leaveFrom: \"opacity-100\",\n leaveTo: \"opacity-0\",\n children: /* @__PURE__ */ D.jsx(\"section\", { className: \"backdrop\" })\n }\n ),\n /* @__PURE__ */ D.jsx(\"section\", { className: \"outer-container\", children: /* @__PURE__ */ D.jsx(\"div\", { className: \"inner-container\", children: /* @__PURE__ */ D.jsx(\n Si.Child,\n {\n as: ft,\n enter: \"ease-out duration-300\",\n enterFrom: \"opacity-0 scale-95\",\n enterTo: \"opacity-100 scale-100\",\n leave: \"ease-in duration-200\",\n leaveFrom: \"opacity-100 scale-100\",\n leaveTo: \"opacity-0 scale-95\",\n children: /* @__PURE__ */ D.jsxs(si.Panel, { className: \"panel\", children: [\n /* @__PURE__ */ D.jsxs(\"section\", { className: \"panel-title-container\", children: [\n /* @__PURE__ */ D.jsx(si.Title, { as: \"h3\", className: \"panel-title\", children: C ? \"Choose wallet to connect\" : \"Unsupported device\" }),\n /* @__PURE__ */ D.jsx(\n \"button\",\n {\n type: \"button\",\n onClick: t,\n className: \"close-button\",\n children: /* @__PURE__ */ D.jsx(\"img\", { src: c0, alt: \"close modal\" })\n }\n )\n ] }),\n /* @__PURE__ */ D.jsxs(\"section\", { className: \"panel-content-container\", children: [\n C ? /* @__PURE__ */ D.jsxs(\"section\", { className: \"panel-content-inner-container\", children: [\n !T && // TODO:: remove this once unisat supported on mobile devices\n /* @__PURE__ */ D.jsxs(D.Fragment, { children: [\n /* @__PURE__ */ D.jsx(\n na,\n {\n wallet: Ve.UNISAT,\n subtitle: \"Coming soon on mobile browsing\",\n onConnect: B,\n icon: Ou,\n setErrorMessage: S,\n isDisabled: T,\n isMobileDevice: T,\n renderAvatar: n\n }\n ),\n /* @__PURE__ */ D.jsx(\"hr\", { className: \"horizontal-separator\" })\n ] }),\n /* @__PURE__ */ D.jsx(\n na,\n {\n wallet: Ve.XVERSE,\n subtitle: \"Available on Xverse app\",\n onConnect: U,\n icon: ku,\n setErrorMessage: S,\n isMobileDevice: T,\n renderAvatar: n\n }\n )\n ] }) : /* @__PURE__ */ D.jsx(si.Description, { className: \"unsupported-browser-message\", children: \"This website does not support mobile devices.\" }),\n /* @__PURE__ */ D.jsx(\"p\", { className: \"error-message\", children: v })\n ] })\n ] })\n }\n ) }) })\n ]\n }\n ) });\n}\nfunction ug({\n customStyle: e,\n onViewProfile: t,\n disableMobile: r,\n renderAvatar: n\n}) {\n const { address: i, network: s, isModalOpen: o, openModal: a, closeModal: f } = Pr();\n return /* @__PURE__ */ D.jsxs(D.Fragment, { children: [\n i != null && i.ordinals ? /* @__PURE__ */ D.jsx(\n a0,\n {\n address: i.ordinals,\n network: s,\n onViewProfile: t,\n onChangeWallet: a,\n renderAvatar: n\n }\n ) : /* @__PURE__ */ D.jsx(u0, { openModal: a, customStyle: e }),\n /* @__PURE__ */ D.jsx(\n y0,\n {\n isOpen: o,\n closeModal: f,\n disableMobile: r,\n renderAvatar: n\n }\n )\n ] });\n}\nfunction cg() {\n const { network: e, publicKey: t, format: r } = Pr(), [n, i] = Ee(null), [s, o] = Ee(!1);\n return { getBalance: Ue(async () => {\n o(!0);\n try {\n if (i(null), !r || !r.payments || !t || !t.payments)\n throw new Error(\"No wallet is connected\");\n const { address: f } = ml(\n t.payments,\n e,\n yl[r.payments]\n )[0], h = new qa({ network: e }), { spendableUTXOs: l } = await h.getUnspents({\n address: f,\n type: \"spendable\"\n }), p = l.reduce(\n (E, y) => y.safeToSpend ? E + y.sats : E,\n 0\n );\n return o(!1), p;\n } catch (f) {\n return i(f.message), o(!1), 0;\n }\n }, [r, e, t]), error: n, loading: s };\n}\nasync function Au({\n address: e,\n wallet: t,\n network: r,\n psbt: n,\n options: i\n}) {\n const s = (i == null ? void 0 : i.finalize) ?? !0, o = (i == null ? void 0 : i.extractTx) ?? !0;\n if (t === Ve.UNISAT)\n return await bl(n, {\n finalize: s,\n extractTx: o\n });\n if (t === Ve.XVERSE) {\n const a = () => n.data.inputs.map((h, l) => l);\n return await _l(n, {\n network: r,\n inputsToSign: [\n {\n address: e,\n signingIndexes: (i == null ? void 0 : i.signingIndexes) ?? a(),\n // If signingIndexes is not provided, just sign everything\n sigHash: i == null ? void 0 : i.sigHash\n }\n ],\n finalize: s,\n extractTx: o\n });\n }\n throw new Error(\"Invalid wallet selected\");\n}\nfunction lg() {\n const { wallet: e, network: t, address: r, publicKey: n } = Pr(), [i, s] = Ee(null), [o, a] = Ee(!1);\n return { send: Ue(\n async (h, l, p, E = !0) => {\n a(!0);\n try {\n if (s(null), !r || !r.payments || !n || !n.payments || !e)\n throw new Error(\"No wallet is connected\");\n const y = new wl({\n address: r.payments,\n feeRate: p,\n network: t,\n publicKey: n.payments,\n outputs: [\n {\n address: h,\n value: l\n }\n ]\n });\n await y.prepare();\n const v = await Au({\n address: r.payments,\n wallet: e,\n network: t,\n psbt: y.toPSBT()\n });\n if (E) {\n const T = await new qa({ network: t }).relay({ hex: v.hex });\n return a(!1), T;\n }\n return a(!1), v.hex;\n } catch (y) {\n return s(y.message), a(!1), null;\n }\n },\n [r, t, n, e]\n ), error: i, loading: o };\n}\nvar xu = {}, ps = {}, Wi = {};\nWi.byteLength = E0;\nWi.toByteArray = S0;\nWi.fromByteArray = T0;\nvar Nt = [], mt = [], m0 = typeof Uint8Array < \"u\" ? Uint8Array : Array, vo = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\nfor (var sn = 0, w0 = vo.length; sn < w0; ++sn)\n Nt[sn] = vo[sn], mt[vo.charCodeAt(sn)] = sn;\nmt[45] = 62;\nmt[95] = 63;\nfunction Cu(e) {\n var t = e.length;\n if (t % 4 > 0)\n throw new Error(\"Invalid string. Length must be a multiple of 4\");\n var r = e.indexOf(\"=\");\n r === -1 && (r = t);\n var n = r === t ? 0 : 4 - r % 4;\n return [r, n];\n}\nfunction E0(e) {\n var t = Cu(e), r = t[0], n = t[1];\n return (r + n) * 3 / 4 - n;\n}\nfunction b0(e, t, r) {\n return (t + r) * 3 / 4 - r;\n}\nfunction S0(e) {\n var t, r = Cu(e), n = r[0], i = r[1], s = new m0(b0(e, n, i)), o = 0, a = i > 0 ? n - 4 : n, f;\n for (f = 0; f < a; f += 4)\n t = mt[e.charCodeAt(f)] << 18 | mt[e.charCodeAt(f + 1)] << 12 | mt[e.charCodeAt(f + 2)] << 6 | mt[e.charCodeAt(f + 3)], s[o++] = t >> 16 & 255, s[o++] = t >> 8 & 255, s[o++] = t & 255;\n return i === 2 && (t = mt[e.charCodeAt(f)] << 2 | mt[e.charCodeAt(f + 1)] >> 4, s[o++] = t & 255), i === 1 && (t = mt[e.charCodeAt(f)] << 10 | mt[e.charCodeAt(f + 1)] << 4 | mt[e.charCodeAt(f + 2)] >> 2, s[o++] = t >> 8 & 255, s[o++] = t & 255), s;\n}\nfunction v0(e) {\n return Nt[e >> 18 & 63] + Nt[e >> 12 & 63] + Nt[e >> 6 & 63] + Nt[e & 63];\n}\nfunction _0(e, t, r) {\n for (var n, i = [], s = t; s < r; s += 3)\n n = (e[s] << 16 & 16711680) + (e[s + 1] << 8 & 65280) + (e[s + 2] & 255), i.push(v0(n));\n return i.join(\"\");\n}\nfunction T0(e) {\n for (var t, r = e.length, n = r % 3, i = [], s = 16383, o = 0, a = r - n; o < a; o += s)\n i.push(_0(e, o, o + s > a ? a : o + s));\n return n === 1 ? (t = e[r - 1], i.push(\n Nt[t >> 2] + Nt[t << 4 & 63] + \"==\"\n )) : n === 2 && (t = (e[r - 2] << 8) + e[r - 1], i.push(\n Nt[t >> 10] + Nt[t >> 4 & 63] + Nt[t << 2 & 63] + \"=\"\n )), i.join(\"\");\n}\nvar gs = {};\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\ngs.read = function(e, t, r, n, i) {\n var s, o, a = i * 8 - n - 1, f = (1 << a) - 1, h = f >> 1, l = -7, p = r ? i - 1 : 0, E = r ? -1 : 1, y = e[t + p];\n for (p += E, s = y & (1 << -l) - 1, y >>= -l, l += a; l > 0; s = s * 256 + e[t + p], p += E, l -= 8)\n ;\n for (o = s & (1 << -l) - 1, s >>= -l, l += n; l > 0; o = o * 256 + e[t + p], p += E, l -= 8)\n ;\n if (s === 0)\n s = 1 - h;\n else {\n if (s === f)\n return o ? NaN : (y ? -1 : 1) * (1 / 0);\n o = o + Math.pow(2, n), s = s - h;\n }\n return (y ? -1 : 1) * o * Math.pow(2, s - n);\n};\ngs.write = function(e, t, r, n, i, s) {\n var o, a, f, h = s * 8 - i - 1, l = (1 << h) - 1, p = l >> 1, E = i === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0, y = n ? 0 : s - 1, v = n ? 1 : -1, S = t < 0 || t === 0 && 1 / t < 0 ? 1 : 0;\n for (t = Math.abs(t), isNaN(t) || t === 1 / 0 ? (a = isNaN(t) ? 1 : 0, o = l) : (o = Math.floor(Math.log(t) / Math.LN2), t * (f = Math.pow(2, -o)) < 1 && (o--, f *= 2), o + p >= 1 ? t += E / f : t += E * Math.pow(2, 1 - p), t * f >= 2 && (o++, f /= 2), o + p >= l ? (a = 0, o = l) : o + p >= 1 ? (a = (t * f - 1) * Math.pow(2, i), o = o + p) : (a = t * Math.pow(2, p - 1) * Math.pow(2, i), o = 0)); i >= 8; e[r + y] = a & 255, y += v, a /= 256, i -= 8)\n ;\n for (o = o << i | a, h += i; h > 0; e[r + y] = o & 255, y += v, o /= 256, h -= 8)\n ;\n e[r + y - v] |= S * 128;\n};\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n(function(e) {\n const t = Wi, r = gs, n = typeof Symbol == \"function\" && typeof Symbol.for == \"function\" ? Symbol.for(\"nodejs.util.inspect.custom\") : null;\n e.Buffer = l, e.SlowBuffer = R, e.INSPECT_MAX_BYTES = 50;\n const i = 2147483647;\n e.kMaxLength = i;\n const { Uint8Array: s, ArrayBuffer: o, SharedArrayBuffer: a } = globalThis;\n l.TYPED_ARRAY_SUPPORT = f(), !l.TYPED_ARRAY_SUPPORT && typeof console < \"u\" && typeof console.error == \"function\" && console.error(\n \"This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.\"\n );\n function f() {\n try {\n const d = new s(1), u = { foo: function() {\n return 42;\n } };\n return Object.setPrototypeOf(u, s.prototype), Object.setPrototypeOf(d, u), d.foo() === 42;\n } catch {\n return !1;\n }\n }\n Object.defineProperty(l.prototype, \"parent\", {\n enumerable: !0,\n get: function() {\n if (l.isBuffer(this))\n return this.buffer;\n }\n }), Object.defineProperty(l.prototype, \"offset\", {\n enumerable: !0,\n get: function() {\n if (l.isBuffer(this))\n return this.byteOffset;\n }\n });\n function h(d) {\n if (d > i)\n throw new RangeError('The value \"' + d + '\" is invalid for option \"size\"');\n const u = new s(d);\n return Object.setPrototypeOf(u, l.prototype), u;\n }\n function l(d, u, c) {\n if (typeof d == \"number\") {\n if (typeof u == \"string\")\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n );\n return v(d);\n }\n return p(d, u, c);\n }\n l.poolSize = 8192;\n function p(d, u, c) {\n if (typeof d == \"string\")\n return S(d, u);\n if (o.isView(d))\n return C(d);\n if (d == null)\n throw new TypeError(\n \"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type \" + typeof d\n );\n if (ct(d, o) || d && ct(d.buffer, o) || typeof a < \"u\" && (ct(d, a) || d && ct(d.buffer, a)))\n return O(d, u, c);\n if (typeof d == \"number\")\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n );\n const g = d.valueOf && d.valueOf();\n if (g != null && g !== d)\n return l.from(g, u, c);\n const _ = B(d);\n if (_)\n return _;\n if (typeof Symbol < \"u\" && Symbol.toPrimitive != null && typeof d[Symbol.toPrimitive] == \"function\")\n return l.from(d[Symbol.toPrimitive](\"string\"), u, c);\n throw new TypeError(\n \"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type \" + typeof d\n );\n }\n l.from = function(d, u, c) {\n return p(d, u, c);\n }, Object.setPrototypeOf(l.prototype, s.prototype), Object.setPrototypeOf(l, s);\n function E(d) {\n if (typeof d != \"number\")\n throw new TypeError('\"size\" argument must be of type number');\n if (d < 0)\n throw new RangeError('The value \"' + d + '\" is invalid for option \"size\"');\n }\n function y(d, u, c) {\n return E(d), d <= 0 ? h(d) : u !== void 0 ? typeof c == \"string\" ? h(d).fill(u, c) : h(d).fill(u) : h(d);\n }\n l.alloc = function(d, u, c) {\n return y(d, u, c);\n };\n function v(d) {\n return E(d), h(d < 0 ? 0 : U(d) | 0);\n }\n l.allocUnsafe = function(d) {\n return v(d);\n }, l.allocUnsafeSlow = function(d) {\n return v(d);\n };\n function S(d, u) {\n if ((typeof u != \"string\" || u === \"\") && (u = \"utf8\"), !l.isEncoding(u))\n throw new TypeError(\"Unknown encoding: \" + u);\n const c = k(d, u) | 0;\n let g = h(c);\n const _ = g.write(d, u);\n return _ !== c && (g = g.slice(0, _)), g;\n }\n function T(d) {\n const u = d.length < 0 ? 0 : U(d.length) | 0, c = h(u);\n for (let g = 0; g < u; g += 1)\n c[g] = d[g] & 255;\n return c;\n }\n function C(d) {\n if (ct(d, s)) {\n const u = new s(d);\n return O(u.buffer, u.byteOffset, u.byteLength);\n }\n return T(d);\n }\n function O(d, u, c) {\n if (u < 0 || d.byteLength < u)\n throw new RangeError('\"offset\" is outside of buffer bounds');\n if (d.byteLength < u + (c || 0))\n throw new RangeError('\"length\" is outside of buffer bounds');\n let g;\n return u === void 0 && c === void 0 ? g = new s(d) : c === void 0 ? g = new s(d, u) : g = new s(d, u, c), Object.setPrototypeOf(g, l.prototype), g;\n }\n function B(d) {\n if (l.isBuffer(d)) {\n const u = U(d.length) | 0, c = h(u);\n return c.length === 0 || d.copy(c, 0, 0, u), c;\n }\n if (d.length !== void 0)\n return typeof d.length != \"number\" || tn(d.length) ? h(0) : T(d);\n if (d.type === \"Buffer\" && Array.isArray(d.data))\n return T(d.data);\n }\n function U(d) {\n if (d >= i)\n throw new RangeError(\"Attempt to allocate Buffer larger than maximum size: 0x\" + i.toString(16) + \" bytes\");\n return d | 0;\n }\n function R(d) {\n return +d != d && (d = 0), l.alloc(+d);\n }\n l.isBuffer = function(u) {\n return u != null && u._isBuffer === !0 && u !== l.prototype;\n }, l.compare = function(u, c) {\n if (ct(u, s) && (u = l.from(u, u.offset, u.byteLength)), ct(c, s) && (c = l.from(c, c.offset, c.byteLength)), !l.isBuffer(u) || !l.isBuffer(c))\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n );\n if (u === c)\n return 0;\n let g = u.length, _ = c.length;\n for (let P = 0, x = Math.min(g, _); P < x; ++P)\n if (u[P] !== c[P]) {\n g = u[P], _ = c[P];\n break;\n }\n return g < _ ? -1 : _ < g ? 1 : 0;\n }, l.isEncoding = function(u) {\n switch (String(u).toLowerCase()) {\n case \"hex\":\n case \"utf8\":\n case \"utf-8\":\n case \"ascii\":\n case \"latin1\":\n case \"binary\":\n case \"base64\":\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return !0;\n default:\n return !1;\n }\n }, l.concat = function(u, c) {\n if (!Array.isArray(u))\n throw new TypeError('\"list\" argument must be an Array of Buffers');\n if (u.length === 0)\n return l.alloc(0);\n let g;\n if (c === void 0)\n for (c = 0, g = 0; g < u.length; ++g)\n c += u[g].length;\n const _ = l.allocUnsafe(c);\n let P = 0;\n for (g = 0; g < u.length; ++g) {\n let x = u[g];\n if (ct(x, s))\n P + x.length > _.length ? (l.isBuffer(x) || (x = l.from(x)), x.copy(_, P)) : s.prototype.set.call(\n _,\n x,\n P\n );\n else if (l.isBuffer(x))\n x.copy(_, P);\n else\n throw new TypeError('\"list\" argument must be an Array of Buffers');\n P += x.length;\n }\n return _;\n };\n function k(d, u) {\n if (l.isBuffer(d))\n return d.length;\n if (o.isView(d) || ct(d, o))\n return d.byteLength;\n if (typeof d != \"string\")\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. Received type ' + typeof d\n );\n const c = d.length, g = arguments.length > 2 && arguments[2] === !0;\n if (!g && c === 0)\n return 0;\n let _ = !1;\n for (; ; )\n switch (u) {\n case \"ascii\":\n case \"latin1\":\n case \"binary\":\n return c;\n case \"utf8\":\n case \"utf-8\":\n return Pn(d).length;\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return c * 2;\n case \"hex\":\n return c >>> 1;\n case \"base64\":\n return ri(d).length;\n default:\n if (_)\n return g ? -1 : Pn(d).length;\n u = (\"\" + u).toLowerCase(), _ = !0;\n }\n }\n l.byteLength = k;\n function j(d, u, c) {\n let g = !1;\n if ((u === void 0 || u < 0) && (u = 0), u > this.length || ((c === void 0 || c > this.length) && (c = this.length), c <= 0) || (c >>>= 0, u >>>= 0, c <= u))\n return \"\";\n for (d || (d = \"utf8\"); ; )\n switch (d) {\n case \"hex\":\n return Ne(this, u, c);\n case \"utf8\":\n case \"utf-8\":\n return W(this, u, c);\n case \"ascii\":\n return Se(this, u, c);\n case \"latin1\":\n case \"binary\":\n return ve(this, u, c);\n case \"base64\":\n return re(this, u, c);\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return ut(this, u, c);\n default:\n if (g)\n throw new TypeError(\"Unknown encoding: \" + d);\n d = (d + \"\").toLowerCase(), g = !0;\n }\n }\n l.prototype._isBuffer = !0;\n function A(d, u, c) {\n const g = d[u];\n d[u] = d[c], d[c] = g;\n }\n l.prototype.swap16 = function() {\n const u = this.length;\n if (u % 2 !== 0)\n throw new RangeError(\"Buffer size must be a multiple of 16-bits\");\n for (let c = 0; c < u; c += 2)\n A(this, c, c + 1);\n return this;\n }, l.prototype.swap32 = function() {\n const u = this.length;\n if (u % 4 !== 0)\n throw new RangeError(\"Buffer size must be a multiple of 32-bits\");\n for (let c = 0; c < u; c += 4)\n A(this, c, c + 3), A(this, c + 1, c + 2);\n return this;\n }, l.prototype.swap64 = function() {\n const u = this.length;\n if (u % 8 !== 0)\n throw new RangeError(\"Buffer size must be a multiple of 64-bits\");\n for (let c = 0; c < u; c += 8)\n A(this, c, c + 7), A(this, c + 1, c + 6), A(this, c + 2, c + 5), A(this, c + 3, c + 4);\n return this;\n }, l.prototype.toString = function() {\n const u = this.length;\n return u === 0 ? \"\" : arguments.length === 0 ? W(this, 0, u) : j.apply(this, arguments);\n }, l.prototype.toLocaleString = l.prototype.toString, l.prototype.equals = function(u) {\n if (!l.isBuffer(u))\n throw new TypeError(\"Argument must be a Buffer\");\n return this === u ? !0 : l.compare(this, u) === 0;\n }, l.prototype.inspect = function() {\n let u = \"\";\n const c = e.INSPECT_MAX_BYTES;\n return u = this.toString(\"hex\", 0, c).replace(/(.{2})/g, \"$1 \").trim(), this.length > c && (u += \" ... \"), \"\";\n }, n && (l.prototype[n] = l.prototype.inspect), l.prototype.compare = function(u, c, g, _, P) {\n if (ct(u, s) && (u = l.from(u, u.offset, u.byteLength)), !l.isBuffer(u))\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. Received type ' + typeof u\n );\n if (c === void 0 && (c = 0), g === void 0 && (g = u ? u.length : 0), _ === void 0 && (_ = 0), P === void 0 && (P = this.length), c < 0 || g > u.length || _ < 0 || P > this.length)\n throw new RangeError(\"out of range index\");\n if (_ >= P && c >= g)\n return 0;\n if (_ >= P)\n return -1;\n if (c >= g)\n return 1;\n if (c >>>= 0, g >>>= 0, _ >>>= 0, P >>>= 0, this === u)\n return 0;\n let x = P - _, X = g - c;\n const pe = Math.min(x, X), ae = this.slice(_, P), fe = u.slice(c, g);\n for (let ee = 0; ee < pe; ++ee)\n if (ae[ee] !== fe[ee]) {\n x = ae[ee], X = fe[ee];\n break;\n }\n return x < X ? -1 : X < x ? 1 : 0;\n };\n function b(d, u, c, g, _) {\n if (d.length === 0)\n return -1;\n if (typeof c == \"string\" ? (g = c, c = 0) : c > 2147483647 ? c = 2147483647 : c < -2147483648 && (c = -2147483648), c = +c, tn(c) && (c = _ ? 0 : d.length - 1), c < 0 && (c = d.length + c), c >= d.length) {\n if (_)\n return -1;\n c = d.length - 1;\n } else if (c < 0)\n if (_)\n c = 0;\n else\n return -1;\n if (typeof u == \"string\" && (u = l.from(u, g)), l.isBuffer(u))\n return u.length === 0 ? -1 : m(d, u, c, g, _);\n if (typeof u == \"number\")\n return u = u & 255, typeof s.prototype.indexOf == \"function\" ? _ ? s.prototype.indexOf.call(d, u, c) : s.prototype.lastIndexOf.call(d, u, c) : m(d, [u], c, g, _);\n throw new TypeError(\"val must be string, number or Buffer\");\n }\n function m(d, u, c, g, _) {\n let P = 1, x = d.length, X = u.length;\n if (g !== void 0 && (g = String(g).toLowerCase(), g === \"ucs2\" || g === \"ucs-2\" || g === \"utf16le\" || g === \"utf-16le\")) {\n if (d.length < 2 || u.length < 2)\n return -1;\n P = 2, x /= 2, X /= 2, c /= 2;\n }\n function pe(fe, ee) {\n return P === 1 ? fe[ee] : fe.readUInt16BE(ee * P);\n }\n let ae;\n if (_) {\n let fe = -1;\n for (ae = c; ae < x; ae++)\n if (pe(d, ae) === pe(u, fe === -1 ? 0 : ae - fe)) {\n if (fe === -1 && (fe = ae), ae - fe + 1 === X)\n return fe * P;\n } else\n fe !== -1 && (ae -= ae - fe), fe = -1;\n } else\n for (c + X > x && (c = x - X), ae = c; ae >= 0; ae--) {\n let fe = !0;\n for (let ee = 0; ee < X; ee++)\n if (pe(d, ae + ee) !== pe(u, ee)) {\n fe = !1;\n break;\n }\n if (fe)\n return ae;\n }\n return -1;\n }\n l.prototype.includes = function(u, c, g) {\n return this.indexOf(u, c, g) !== -1;\n }, l.prototype.indexOf = function(u, c, g) {\n return b(this, u, c, g, !0);\n }, l.prototype.lastIndexOf = function(u, c, g) {\n return b(this, u, c, g, !1);\n };\n function N(d, u, c, g) {\n c = Number(c) || 0;\n const _ = d.length - c;\n g ? (g = Number(g), g > _ && (g = _)) : g = _;\n const P = u.length;\n g > P / 2 && (g = P / 2);\n let x;\n for (x = 0; x < g; ++x) {\n const X = parseInt(u.substr(x * 2, 2), 16);\n if (tn(X))\n return x;\n d[c + x] = X;\n }\n return x;\n }\n function H(d, u, c, g) {\n return en(Pn(u, d.length - c), d, c, g);\n }\n function L(d, u, c, g) {\n return en(fo(u), d, c, g);\n }\n function M(d, u, c, g) {\n return en(ri(u), d, c, g);\n }\n function K(d, u, c, g) {\n return en(On(u, d.length - c), d, c, g);\n }\n l.prototype.write = function(u, c, g, _) {\n if (c === void 0)\n _ = \"utf8\", g = this.length, c = 0;\n else if (g === void 0 && typeof c == \"string\")\n _ = c, g = this.length, c = 0;\n else if (isFinite(c))\n c = c >>> 0, isFinite(g) ? (g = g >>> 0, _ === void 0 && (_ = \"utf8\")) : (_ = g, g = void 0);\n else\n throw new Error(\n \"Buffer.write(string, encoding, offset[, length]) is no longer supported\"\n );\n const P = this.length - c;\n if ((g === void 0 || g > P) && (g = P), u.length > 0 && (g < 0 || c < 0) || c > this.length)\n throw new RangeError(\"Attempt to write outside buffer bounds\");\n _ || (_ = \"utf8\");\n let x = !1;\n for (; ; )\n switch (_) {\n case \"hex\":\n return N(this, u, c, g);\n case \"utf8\":\n case \"utf-8\":\n return H(this, u, c, g);\n case \"ascii\":\n case \"latin1\":\n case \"binary\":\n return L(this, u, c, g);\n case \"base64\":\n return M(this, u, c, g);\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return K(this, u, c, g);\n default:\n if (x)\n throw new TypeError(\"Unknown encoding: \" + _);\n _ = (\"\" + _).toLowerCase(), x = !0;\n }\n }, l.prototype.toJSON = function() {\n return {\n type: \"Buffer\",\n data: Array.prototype.slice.call(this._arr || this, 0)\n };\n };\n function re(d, u, c) {\n return u === 0 && c === d.length ? t.fromByteArray(d) : t.fromByteArray(d.slice(u, c));\n }\n function W(d, u, c) {\n c = Math.min(d.length, c);\n const g = [];\n let _ = u;\n for (; _ < c; ) {\n const P = d[_];\n let x = null, X = P > 239 ? 4 : P > 223 ? 3 : P > 191 ? 2 : 1;\n if (_ + X <= c) {\n let pe, ae, fe, ee;\n switch (X) {\n case 1:\n P < 128 && (x = P);\n break;\n case 2:\n pe = d[_ + 1], (pe & 192) === 128 && (ee = (P & 31) << 6 | pe & 63, ee > 127 && (x = ee));\n break;\n case 3:\n pe = d[_ + 1], ae = d[_ + 2], (pe & 192) === 128 && (ae & 192) === 128 && (ee = (P & 15) << 12 | (pe & 63) << 6 | ae & 63, ee > 2047 && (ee < 55296 || ee > 57343) && (x = ee));\n break;\n case 4:\n pe = d[_ + 1], ae = d[_ + 2], fe = d[_ + 3], (pe & 192) === 128 && (ae & 192) === 128 && (fe & 192) === 128 && (ee = (P & 15) << 18 | (pe & 63) << 12 | (ae & 63) << 6 | fe & 63, ee > 65535 && ee < 1114112 && (x = ee));\n }\n }\n x === null ? (x = 65533, X = 1) : x > 65535 && (x -= 65536, g.push(x >>> 10 & 1023 | 55296), x = 56320 | x & 1023), g.push(x), _ += X;\n }\n return ke(g);\n }\n const le = 4096;\n function ke(d) {\n const u = d.length;\n if (u <= le)\n return String.fromCharCode.apply(String, d);\n let c = \"\", g = 0;\n for (; g < u; )\n c += String.fromCharCode.apply(\n String,\n d.slice(g, g += le)\n );\n return c;\n }\n function Se(d, u, c) {\n let g = \"\";\n c = Math.min(d.length, c);\n for (let _ = u; _ < c; ++_)\n g += String.fromCharCode(d[_] & 127);\n return g;\n }\n function ve(d, u, c) {\n let g = \"\";\n c = Math.min(d.length, c);\n for (let _ = u; _ < c; ++_)\n g += String.fromCharCode(d[_]);\n return g;\n }\n function Ne(d, u, c) {\n const g = d.length;\n (!u || u < 0) && (u = 0), (!c || c < 0 || c > g) && (c = g);\n let _ = \"\";\n for (let P = u; P < c; ++P)\n _ += Ar[d[P]];\n return _;\n }\n function ut(d, u, c) {\n const g = d.slice(u, c);\n let _ = \"\";\n for (let P = 0; P < g.length - 1; P += 2)\n _ += String.fromCharCode(g[P] + g[P + 1] * 256);\n return _;\n }\n l.prototype.slice = function(u, c) {\n const g = this.length;\n u = ~~u, c = c === void 0 ? g : ~~c, u < 0 ? (u += g, u < 0 && (u = 0)) : u > g && (u = g), c < 0 ? (c += g, c < 0 && (c = 0)) : c > g && (c = g), c < u && (c = u);\n const _ = this.subarray(u, c);\n return Object.setPrototypeOf(_, l.prototype), _;\n };\n function Y(d, u, c) {\n if (d % 1 !== 0 || d < 0)\n throw new RangeError(\"offset is not uint\");\n if (d + u > c)\n throw new RangeError(\"Trying to access beyond buffer length\");\n }\n l.prototype.readUintLE = l.prototype.readUIntLE = function(u, c, g) {\n u = u >>> 0, c = c >>> 0, g || Y(u, c, this.length);\n let _ = this[u], P = 1, x = 0;\n for (; ++x < c && (P *= 256); )\n _ += this[u + x] * P;\n return _;\n }, l.prototype.readUintBE = l.prototype.readUIntBE = function(u, c, g) {\n u = u >>> 0, c = c >>> 0, g || Y(u, c, this.length);\n let _ = this[u + --c], P = 1;\n for (; c > 0 && (P *= 256); )\n _ += this[u + --c] * P;\n return _;\n }, l.prototype.readUint8 = l.prototype.readUInt8 = function(u, c) {\n return u = u >>> 0, c || Y(u, 1, this.length), this[u];\n }, l.prototype.readUint16LE = l.prototype.readUInt16LE = function(u, c) {\n return u = u >>> 0, c || Y(u, 2, this.length), this[u] | this[u + 1] << 8;\n }, l.prototype.readUint16BE = l.prototype.readUInt16BE = function(u, c) {\n return u = u >>> 0, c || Y(u, 2, this.length), this[u] << 8 | this[u + 1];\n }, l.prototype.readUint32LE = l.prototype.readUInt32LE = function(u, c) {\n return u = u >>> 0, c || Y(u, 4, this.length), (this[u] | this[u + 1] << 8 | this[u + 2] << 16) + this[u + 3] * 16777216;\n }, l.prototype.readUint32BE = l.prototype.readUInt32BE = function(u, c) {\n return u = u >>> 0, c || Y(u, 4, this.length), this[u] * 16777216 + (this[u + 1] << 16 | this[u + 2] << 8 | this[u + 3]);\n }, l.prototype.readBigUInt64LE = It(function(u) {\n u = u >>> 0, Et(u, \"offset\");\n const c = this[u], g = this[u + 7];\n (c === void 0 || g === void 0) && ar(u, this.length - 8);\n const _ = c + this[++u] * 2 ** 8 + this[++u] * 2 ** 16 + this[++u] * 2 ** 24, P = this[++u] + this[++u] * 2 ** 8 + this[++u] * 2 ** 16 + g * 2 ** 24;\n return BigInt(_) + (BigInt(P) << BigInt(32));\n }), l.prototype.readBigUInt64BE = It(function(u) {\n u = u >>> 0, Et(u, \"offset\");\n const c = this[u], g = this[u + 7];\n (c === void 0 || g === void 0) && ar(u, this.length - 8);\n const _ = c * 2 ** 24 + this[++u] * 2 ** 16 + this[++u] * 2 ** 8 + this[++u], P = this[++u] * 2 ** 24 + this[++u] * 2 ** 16 + this[++u] * 2 ** 8 + g;\n return (BigInt(_) << BigInt(32)) + BigInt(P);\n }), l.prototype.readIntLE = function(u, c, g) {\n u = u >>> 0, c = c >>> 0, g || Y(u, c, this.length);\n let _ = this[u], P = 1, x = 0;\n for (; ++x < c && (P *= 256); )\n _ += this[u + x] * P;\n return P *= 128, _ >= P && (_ -= Math.pow(2, 8 * c)), _;\n }, l.prototype.readIntBE = function(u, c, g) {\n u = u >>> 0, c = c >>> 0, g || Y(u, c, this.length);\n let _ = c, P = 1, x = this[u + --_];\n for (; _ > 0 && (P *= 256); )\n x += this[u + --_] * P;\n return P *= 128, x >= P && (x -= Math.pow(2, 8 * c)), x;\n }, l.prototype.readInt8 = function(u, c) {\n return u = u >>> 0, c || Y(u, 1, this.length), this[u] & 128 ? (255 - this[u] + 1) * -1 : this[u];\n }, l.prototype.readInt16LE = function(u, c) {\n u = u >>> 0, c || Y(u, 2, this.length);\n const g = this[u] | this[u + 1] << 8;\n return g & 32768 ? g | 4294901760 : g;\n }, l.prototype.readInt16BE = function(u, c) {\n u = u >>> 0, c || Y(u, 2, this.length);\n const g = this[u + 1] | this[u] << 8;\n return g & 32768 ? g | 4294901760 : g;\n }, l.prototype.readInt32LE = function(u, c) {\n return u = u >>> 0, c || Y(u, 4, this.length), this[u] | this[u + 1] << 8 | this[u + 2] << 16 | this[u + 3] << 24;\n }, l.prototype.readInt32BE = function(u, c) {\n return u = u >>> 0, c || Y(u, 4, this.length), this[u] << 24 | this[u + 1] << 16 | this[u + 2] << 8 | this[u + 3];\n }, l.prototype.readBigInt64LE = It(function(u) {\n u = u >>> 0, Et(u, \"offset\");\n const c = this[u], g = this[u + 7];\n (c === void 0 || g === void 0) && ar(u, this.length - 8);\n const _ = this[u + 4] + this[u + 5] * 2 ** 8 + this[u + 6] * 2 ** 16 + (g << 24);\n return (BigInt(_) << BigInt(32)) + BigInt(c + this[++u] * 2 ** 8 + this[++u] * 2 ** 16 + this[++u] * 2 ** 24);\n }), l.prototype.readBigInt64BE = It(function(u) {\n u = u >>> 0, Et(u, \"offset\");\n const c = this[u], g = this[u + 7];\n (c === void 0 || g === void 0) && ar(u, this.length - 8);\n const _ = (c << 24) + // Overflow\n this[++u] * 2 ** 16 + this[++u] * 2 ** 8 + this[++u];\n return (BigInt(_) << BigInt(32)) + BigInt(this[++u] * 2 ** 24 + this[++u] * 2 ** 16 + this[++u] * 2 ** 8 + g);\n }), l.prototype.readFloatLE = function(u, c) {\n return u = u >>> 0, c || Y(u, 4, this.length), r.read(this, u, !0, 23, 4);\n }, l.prototype.readFloatBE = function(u, c) {\n return u = u >>> 0, c || Y(u, 4, this.length), r.read(this, u, !1, 23, 4);\n }, l.prototype.readDoubleLE = function(u, c) {\n return u = u >>> 0, c || Y(u, 8, this.length), r.read(this, u, !0, 52, 8);\n }, l.prototype.readDoubleBE = function(u, c) {\n return u = u >>> 0, c || Y(u, 8, this.length), r.read(this, u, !1, 52, 8);\n };\n function me(d, u, c, g, _, P) {\n if (!l.isBuffer(d))\n throw new TypeError('\"buffer\" argument must be a Buffer instance');\n if (u > _ || u < P)\n throw new RangeError('\"value\" argument is out of bounds');\n if (c + g > d.length)\n throw new RangeError(\"Index out of range\");\n }\n l.prototype.writeUintLE = l.prototype.writeUIntLE = function(u, c, g, _) {\n if (u = +u, c = c >>> 0, g = g >>> 0, !_) {\n const X = Math.pow(2, 8 * g) - 1;\n me(this, u, c, g, X, 0);\n }\n let P = 1, x = 0;\n for (this[c] = u & 255; ++x < g && (P *= 256); )\n this[c + x] = u / P & 255;\n return c + g;\n }, l.prototype.writeUintBE = l.prototype.writeUIntBE = function(u, c, g, _) {\n if (u = +u, c = c >>> 0, g = g >>> 0, !_) {\n const X = Math.pow(2, 8 * g) - 1;\n me(this, u, c, g, X, 0);\n }\n let P = g - 1, x = 1;\n for (this[c + P] = u & 255; --P >= 0 && (x *= 256); )\n this[c + P] = u / x & 255;\n return c + g;\n }, l.prototype.writeUint8 = l.prototype.writeUInt8 = function(u, c, g) {\n return u = +u, c = c >>> 0, g || me(this, u, c, 1, 255, 0), this[c] = u & 255, c + 1;\n }, l.prototype.writeUint16LE = l.prototype.writeUInt16LE = function(u, c, g) {\n return u = +u, c = c >>> 0, g || me(this, u, c, 2, 65535, 0), this[c] = u & 255, this[c + 1] = u >>> 8, c + 2;\n }, l.prototype.writeUint16BE = l.prototype.writeUInt16BE = function(u, c, g) {\n return u = +u, c = c >>> 0, g || me(this, u, c, 2, 65535, 0), this[c] = u >>> 8, this[c + 1] = u & 255, c + 2;\n }, l.prototype.writeUint32LE = l.prototype.writeUInt32LE = function(u, c, g) {\n return u = +u, c = c >>> 0, g || me(this, u, c, 4, 4294967295, 0), this[c + 3] = u >>> 24, this[c + 2] = u >>> 16, this[c + 1] = u >>> 8, this[c] = u & 255, c + 4;\n }, l.prototype.writeUint32BE = l.prototype.writeUInt32BE = function(u, c, g) {\n return u = +u, c = c >>> 0, g || me(this, u, c, 4, 4294967295, 0), this[c] = u >>> 24, this[c + 1] = u >>> 16, this[c + 2] = u >>> 8, this[c + 3] = u & 255, c + 4;\n };\n function ir(d, u, c, g, _) {\n kr(u, g, _, d, c, 7);\n let P = Number(u & BigInt(4294967295));\n d[c++] = P, P = P >> 8, d[c++] = P, P = P >> 8, d[c++] = P, P = P >> 8, d[c++] = P;\n let x = Number(u >> BigInt(32) & BigInt(4294967295));\n return d[c++] = x, x = x >> 8, d[c++] = x, x = x >> 8, d[c++] = x, x = x >> 8, d[c++] = x, c;\n }\n function or(d, u, c, g, _) {\n kr(u, g, _, d, c, 7);\n let P = Number(u & BigInt(4294967295));\n d[c + 7] = P, P = P >> 8, d[c + 6] = P, P = P >> 8, d[c + 5] = P, P = P >> 8, d[c + 4] = P;\n let x = Number(u >> BigInt(32) & BigInt(4294967295));\n return d[c + 3] = x, x = x >> 8, d[c + 2] = x, x = x >> 8, d[c + 1] = x, x = x >> 8, d[c] = x, c + 8;\n }\n l.prototype.writeBigUInt64LE = It(function(u, c = 0) {\n return ir(this, u, c, BigInt(0), BigInt(\"0xffffffffffffffff\"));\n }), l.prototype.writeBigUInt64BE = It(function(u, c = 0) {\n return or(this, u, c, BigInt(0), BigInt(\"0xffffffffffffffff\"));\n }), l.prototype.writeIntLE = function(u, c, g, _) {\n if (u = +u, c = c >>> 0, !_) {\n const pe = Math.pow(2, 8 * g - 1);\n me(this, u, c, g, pe - 1, -pe);\n }\n let P = 0, x = 1, X = 0;\n for (this[c] = u & 255; ++P < g && (x *= 256); )\n u < 0 && X === 0 && this[c + P - 1] !== 0 && (X = 1), this[c + P] = (u / x >> 0) - X & 255;\n return c + g;\n }, l.prototype.writeIntBE = function(u, c, g, _) {\n if (u = +u, c = c >>> 0, !_) {\n const pe = Math.pow(2, 8 * g - 1);\n me(this, u, c, g, pe - 1, -pe);\n }\n let P = g - 1, x = 1, X = 0;\n for (this[c + P] = u & 255; --P >= 0 && (x *= 256); )\n u < 0 && X === 0 && this[c + P + 1] !== 0 && (X = 1), this[c + P] = (u / x >> 0) - X & 255;\n return c + g;\n }, l.prototype.writeInt8 = function(u, c, g) {\n return u = +u, c = c >>> 0, g || me(this, u, c, 1, 127, -128), u < 0 && (u = 255 + u + 1), this[c] = u & 255, c + 1;\n }, l.prototype.writeInt16LE = function(u, c, g) {\n return u = +u, c = c >>> 0, g || me(this, u, c, 2, 32767, -32768), this[c] = u & 255, this[c + 1] = u >>> 8, c + 2;\n }, l.prototype.writeInt16BE = function(u, c, g) {\n return u = +u, c = c >>> 0, g || me(this, u, c, 2, 32767, -32768), this[c] = u >>> 8, this[c + 1] = u & 255, c + 2;\n }, l.prototype.writeInt32LE = function(u, c, g) {\n return u = +u, c = c >>> 0, g || me(this, u, c, 4, 2147483647, -2147483648), this[c] = u & 255, this[c + 1] = u >>> 8, this[c + 2] = u >>> 16, this[c + 3] = u >>> 24, c + 4;\n }, l.prototype.writeInt32BE = function(u, c, g) {\n return u = +u, c = c >>> 0, g || me(this, u, c, 4, 2147483647, -2147483648), u < 0 && (u = 4294967295 + u + 1), this[c] = u >>> 24, this[c + 1] = u >>> 16, this[c + 2] = u >>> 8, this[c + 3] = u & 255, c + 4;\n }, l.prototype.writeBigInt64LE = It(function(u, c = 0) {\n return ir(this, u, c, -BigInt(\"0x8000000000000000\"), BigInt(\"0x7fffffffffffffff\"));\n }), l.prototype.writeBigInt64BE = It(function(u, c = 0) {\n return or(this, u, c, -BigInt(\"0x8000000000000000\"), BigInt(\"0x7fffffffffffffff\"));\n });\n function Lt(d, u, c, g, _, P) {\n if (c + g > d.length)\n throw new RangeError(\"Index out of range\");\n if (c < 0)\n throw new RangeError(\"Index out of range\");\n }\n function Ht(d, u, c, g, _) {\n return u = +u, c = c >>> 0, _ || Lt(d, u, c, 4), r.write(d, u, c, g, 23, 4), c + 4;\n }\n l.prototype.writeFloatLE = function(u, c, g) {\n return Ht(this, u, c, !0, g);\n }, l.prototype.writeFloatBE = function(u, c, g) {\n return Ht(this, u, c, !1, g);\n };\n function $t(d, u, c, g, _) {\n return u = +u, c = c >>> 0, _ || Lt(d, u, c, 8), r.write(d, u, c, g, 52, 8), c + 8;\n }\n l.prototype.writeDoubleLE = function(u, c, g) {\n return $t(this, u, c, !0, g);\n }, l.prototype.writeDoubleBE = function(u, c, g) {\n return $t(this, u, c, !1, g);\n }, l.prototype.copy = function(u, c, g, _) {\n if (!l.isBuffer(u))\n throw new TypeError(\"argument should be a Buffer\");\n if (g || (g = 0), !_ && _ !== 0 && (_ = this.length), c >= u.length && (c = u.length), c || (c = 0), _ > 0 && _ < g && (_ = g), _ === g || u.length === 0 || this.length === 0)\n return 0;\n if (c < 0)\n throw new RangeError(\"targetStart out of bounds\");\n if (g < 0 || g >= this.length)\n throw new RangeError(\"Index out of range\");\n if (_ < 0)\n throw new RangeError(\"sourceEnd out of bounds\");\n _ > this.length && (_ = this.length), u.length - c < _ - g && (_ = u.length - c + g);\n const P = _ - g;\n return this === u && typeof s.prototype.copyWithin == \"function\" ? this.copyWithin(c, g, _) : s.prototype.set.call(\n u,\n this.subarray(g, _),\n c\n ), P;\n }, l.prototype.fill = function(u, c, g, _) {\n if (typeof u == \"string\") {\n if (typeof c == \"string\" ? (_ = c, c = 0, g = this.length) : typeof g == \"string\" && (_ = g, g = this.length), _ !== void 0 && typeof _ != \"string\")\n throw new TypeError(\"encoding must be a string\");\n if (typeof _ == \"string\" && !l.isEncoding(_))\n throw new TypeError(\"Unknown encoding: \" + _);\n if (u.length === 1) {\n const x = u.charCodeAt(0);\n (_ === \"utf8\" && x < 128 || _ === \"latin1\") && (u = x);\n }\n } else\n typeof u == \"number\" ? u = u & 255 : typeof u == \"boolean\" && (u = Number(u));\n if (c < 0 || this.length < c || this.length < g)\n throw new RangeError(\"Out of range index\");\n if (g <= c)\n return this;\n c = c >>> 0, g = g === void 0 ? this.length : g >>> 0, u || (u = 0);\n let P;\n if (typeof u == \"number\")\n for (P = c; P < g; ++P)\n this[P] = u;\n else {\n const x = l.isBuffer(u) ? u : l.from(u, _), X = x.length;\n if (X === 0)\n throw new TypeError('The value \"' + u + '\" is invalid for argument \"value\"');\n for (P = 0; P < g - c; ++P)\n this[P + c] = x[P % X];\n }\n return this;\n };\n const se = {};\n function ze(d, u, c) {\n se[d] = class extends c {\n constructor() {\n super(), Object.defineProperty(this, \"message\", {\n value: u.apply(this, arguments),\n writable: !0,\n configurable: !0\n }), this.name = `${this.name} [${d}]`, this.stack, delete this.name;\n }\n get code() {\n return d;\n }\n set code(_) {\n Object.defineProperty(this, \"code\", {\n configurable: !0,\n enumerable: !0,\n value: _,\n writable: !0\n });\n }\n toString() {\n return `${this.name} [${d}]: ${this.message}`;\n }\n };\n }\n ze(\n \"ERR_BUFFER_OUT_OF_BOUNDS\",\n function(d) {\n return d ? `${d} is outside of buffer bounds` : \"Attempt to access memory outside buffer bounds\";\n },\n RangeError\n ), ze(\n \"ERR_INVALID_ARG_TYPE\",\n function(d, u) {\n return `The \"${d}\" argument must be of type number. Received type ${typeof u}`;\n },\n TypeError\n ), ze(\n \"ERR_OUT_OF_RANGE\",\n function(d, u, c) {\n let g = `The value of \"${d}\" is out of range.`, _ = c;\n return Number.isInteger(c) && Math.abs(c) > 2 ** 32 ? _ = Me(String(c)) : typeof c == \"bigint\" && (_ = String(c), (c > BigInt(2) ** BigInt(32) || c < -(BigInt(2) ** BigInt(32))) && (_ = Me(_)), _ += \"n\"), g += ` It must be ${u}. Received ${_}`, g;\n },\n RangeError\n );\n function Me(d) {\n let u = \"\", c = d.length;\n const g = d[0] === \"-\" ? 1 : 0;\n for (; c >= g + 4; c -= 3)\n u = `_${d.slice(c - 3, c)}${u}`;\n return `${d.slice(0, c)}${u}`;\n }\n function sr(d, u, c) {\n Et(u, \"offset\"), (d[u] === void 0 || d[u + c] === void 0) && ar(u, d.length - (c + 1));\n }\n function kr(d, u, c, g, _, P) {\n if (d > c || d < u) {\n const x = typeof u == \"bigint\" ? \"n\" : \"\";\n let X;\n throw P > 3 ? u === 0 || u === BigInt(0) ? X = `>= 0${x} and < 2${x} ** ${(P + 1) * 8}${x}` : X = `>= -(2${x} ** ${(P + 1) * 8 - 1}${x}) and < 2 ** ${(P + 1) * 8 - 1}${x}` : X = `>= ${u}${x} and <= ${c}${x}`, new se.ERR_OUT_OF_RANGE(\"value\", X, d);\n }\n sr(g, _, P);\n }\n function Et(d, u) {\n if (typeof d != \"number\")\n throw new se.ERR_INVALID_ARG_TYPE(u, \"number\", d);\n }\n function ar(d, u, c) {\n throw Math.floor(d) !== d ? (Et(d, c), new se.ERR_OUT_OF_RANGE(c || \"offset\", \"an integer\", d)) : u < 0 ? new se.ERR_BUFFER_OUT_OF_BOUNDS() : new se.ERR_OUT_OF_RANGE(\n c || \"offset\",\n `>= ${c ? 1 : 0} and <= ${u}`,\n d\n );\n }\n const ti = /[^+/0-9A-Za-z-_]/g;\n function Zr(d) {\n if (d = d.split(\"=\")[0], d = d.trim().replace(ti, \"\"), d.length < 2)\n return \"\";\n for (; d.length % 4 !== 0; )\n d = d + \"=\";\n return d;\n }\n function Pn(d, u) {\n u = u || 1 / 0;\n let c;\n const g = d.length;\n let _ = null;\n const P = [];\n for (let x = 0; x < g; ++x) {\n if (c = d.charCodeAt(x), c > 55295 && c < 57344) {\n if (!_) {\n if (c > 56319) {\n (u -= 3) > -1 && P.push(239, 191, 189);\n continue;\n } else if (x + 1 === g) {\n (u -= 3) > -1 && P.push(239, 191, 189);\n continue;\n }\n _ = c;\n continue;\n }\n if (c < 56320) {\n (u -= 3) > -1 && P.push(239, 191, 189), _ = c;\n continue;\n }\n c = (_ - 55296 << 10 | c - 56320) + 65536;\n } else\n _ && (u -= 3) > -1 && P.push(239, 191, 189);\n if (_ = null, c < 128) {\n if ((u -= 1) < 0)\n break;\n P.push(c);\n } else if (c < 2048) {\n if ((u -= 2) < 0)\n break;\n P.push(\n c >> 6 | 192,\n c & 63 | 128\n );\n } else if (c < 65536) {\n if ((u -= 3) < 0)\n break;\n P.push(\n c >> 12 | 224,\n c >> 6 & 63 | 128,\n c & 63 | 128\n );\n } else if (c < 1114112) {\n if ((u -= 4) < 0)\n break;\n P.push(\n c >> 18 | 240,\n c >> 12 & 63 | 128,\n c >> 6 & 63 | 128,\n c & 63 | 128\n );\n } else\n throw new Error(\"Invalid code point\");\n }\n return P;\n }\n function fo(d) {\n const u = [];\n for (let c = 0; c < d.length; ++c)\n u.push(d.charCodeAt(c) & 255);\n return u;\n }\n function On(d, u) {\n let c, g, _;\n const P = [];\n for (let x = 0; x < d.length && !((u -= 2) < 0); ++x)\n c = d.charCodeAt(x), g = c >> 8, _ = c % 256, P.push(_), P.push(g);\n return P;\n }\n function ri(d) {\n return t.toByteArray(Zr(d));\n }\n function en(d, u, c, g) {\n let _;\n for (_ = 0; _ < g && !(_ + c >= u.length || _ >= d.length); ++_)\n u[_ + c] = d[_];\n return _;\n }\n function ct(d, u) {\n return d instanceof u || d != null && d.constructor != null && d.constructor.name != null && d.constructor.name === u.name;\n }\n function tn(d) {\n return d !== d;\n }\n const Ar = function() {\n const d = \"0123456789abcdef\", u = new Array(256);\n for (let c = 0; c < 16; ++c) {\n const g = c * 16;\n for (let _ = 0; _ < 16; ++_)\n u[g + _] = d[c] + d[_];\n }\n return u;\n }();\n function It(d) {\n return typeof BigInt > \"u\" ? ni : d;\n }\n function ni() {\n throw new Error(\"BigInt not supported\");\n }\n})(ps);\nconst I = ps.Buffer, I0 = ps.Buffer, P0 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n Buffer: I0,\n default: I\n}, Symbol.toStringTag, { value: \"Module\" }));\nvar rt = {}, He = {};\nObject.defineProperty(He, \"__esModule\", { value: !0 });\nHe.testnet = He.regtest = He.bitcoin = void 0;\nHe.bitcoin = {\n messagePrefix: `\u0018Bitcoin Signed Message:\n`,\n bech32: \"bc\",\n bip32: {\n public: 76067358,\n private: 76066276\n },\n pubKeyHash: 0,\n scriptHash: 5,\n wif: 128\n};\nHe.regtest = {\n messagePrefix: `\u0018Bitcoin Signed Message:\n`,\n bech32: \"bcrt\",\n bip32: {\n public: 70617039,\n private: 70615956\n },\n pubKeyHash: 111,\n scriptHash: 196,\n wif: 239\n};\nHe.testnet = {\n messagePrefix: `\u0018Bitcoin Signed Message:\n`,\n bech32: \"tb\",\n bip32: {\n public: 70617039,\n private: 70615956\n },\n pubKeyHash: 111,\n scriptHash: 196,\n wif: 239\n};\nvar Tn = {}, Vi = {}, ot = {}, Qt = {};\nObject.defineProperty(Qt, \"__esModule\", { value: !0 });\nQt.encode = Qt.decode = Qt.check = void 0;\nfunction O0(e) {\n if (e.length < 8 || e.length > 72 || e[0] !== 48 || e[1] !== e.length - 2 || e[2] !== 2)\n return !1;\n const t = e[3];\n if (t === 0 || 5 + t >= e.length || e[4 + t] !== 2)\n return !1;\n const r = e[5 + t];\n return !(r === 0 || 6 + t + r !== e.length || e[4] & 128 || t > 1 && e[4] === 0 && !(e[5] & 128) || e[t + 6] & 128 || r > 1 && e[t + 6] === 0 && !(e[t + 7] & 128));\n}\nQt.check = O0;\nfunction k0(e) {\n if (e.length < 8)\n throw new Error(\"DER sequence length is too short\");\n if (e.length > 72)\n throw new Error(\"DER sequence length is too long\");\n if (e[0] !== 48)\n throw new Error(\"Expected DER sequence\");\n if (e[1] !== e.length - 2)\n throw new Error(\"DER sequence length is invalid\");\n if (e[2] !== 2)\n throw new Error(\"Expected DER integer\");\n const t = e[3];\n if (t === 0)\n throw new Error(\"R length is zero\");\n if (5 + t >= e.length)\n throw new Error(\"R length is too long\");\n if (e[4 + t] !== 2)\n throw new Error(\"Expected DER integer (2)\");\n const r = e[5 + t];\n if (r === 0)\n throw new Error(\"S length is zero\");\n if (6 + t + r !== e.length)\n throw new Error(\"S length is invalid\");\n if (e[4] & 128)\n throw new Error(\"R value is negative\");\n if (t > 1 && e[4] === 0 && !(e[5] & 128))\n throw new Error(\"R value excessively padded\");\n if (e[t + 6] & 128)\n throw new Error(\"S value is negative\");\n if (r > 1 && e[t + 6] === 0 && !(e[t + 7] & 128))\n throw new Error(\"S value excessively padded\");\n return {\n r: e.slice(4, 4 + t),\n s: e.slice(6 + t)\n };\n}\nQt.decode = k0;\nfunction A0(e, t) {\n const r = e.length, n = t.length;\n if (r === 0)\n throw new Error(\"R length is zero\");\n if (n === 0)\n throw new Error(\"S length is zero\");\n if (r > 33)\n throw new Error(\"R length is too long\");\n if (n > 33)\n throw new Error(\"S length is too long\");\n if (e[0] & 128)\n throw new Error(\"R value is negative\");\n if (t[0] & 128)\n throw new Error(\"S value is negative\");\n if (r > 1 && e[0] === 0 && !(e[1] & 128))\n throw new Error(\"R value excessively padded\");\n if (n > 1 && t[0] === 0 && !(t[1] & 128))\n throw new Error(\"S value excessively padded\");\n const i = I.allocUnsafe(6 + r + n);\n return i[0] = 48, i[1] = i.length - 2, i[2] = 2, i[3] = e.length, e.copy(i, 4), i[4 + r] = 2, i[5 + r] = t.length, t.copy(i, 6 + r), i;\n}\nQt.encode = A0;\nvar _r = {};\nObject.defineProperty(_r, \"__esModule\", { value: !0 });\n_r.REVERSE_OPS = _r.OPS = void 0;\nconst Qo = {\n OP_FALSE: 0,\n OP_0: 0,\n OP_PUSHDATA1: 76,\n OP_PUSHDATA2: 77,\n OP_PUSHDATA4: 78,\n OP_1NEGATE: 79,\n OP_RESERVED: 80,\n OP_TRUE: 81,\n OP_1: 81,\n OP_2: 82,\n OP_3: 83,\n OP_4: 84,\n OP_5: 85,\n OP_6: 86,\n OP_7: 87,\n OP_8: 88,\n OP_9: 89,\n OP_10: 90,\n OP_11: 91,\n OP_12: 92,\n OP_13: 93,\n OP_14: 94,\n OP_15: 95,\n OP_16: 96,\n OP_NOP: 97,\n OP_VER: 98,\n OP_IF: 99,\n OP_NOTIF: 100,\n OP_VERIF: 101,\n OP_VERNOTIF: 102,\n OP_ELSE: 103,\n OP_ENDIF: 104,\n OP_VERIFY: 105,\n OP_RETURN: 106,\n OP_TOALTSTACK: 107,\n OP_FROMALTSTACK: 108,\n OP_2DROP: 109,\n OP_2DUP: 110,\n OP_3DUP: 111,\n OP_2OVER: 112,\n OP_2ROT: 113,\n OP_2SWAP: 114,\n OP_IFDUP: 115,\n OP_DEPTH: 116,\n OP_DROP: 117,\n OP_DUP: 118,\n OP_NIP: 119,\n OP_OVER: 120,\n OP_PICK: 121,\n OP_ROLL: 122,\n OP_ROT: 123,\n OP_SWAP: 124,\n OP_TUCK: 125,\n OP_CAT: 126,\n OP_SUBSTR: 127,\n OP_LEFT: 128,\n OP_RIGHT: 129,\n OP_SIZE: 130,\n OP_INVERT: 131,\n OP_AND: 132,\n OP_OR: 133,\n OP_XOR: 134,\n OP_EQUAL: 135,\n OP_EQUALVERIFY: 136,\n OP_RESERVED1: 137,\n OP_RESERVED2: 138,\n OP_1ADD: 139,\n OP_1SUB: 140,\n OP_2MUL: 141,\n OP_2DIV: 142,\n OP_NEGATE: 143,\n OP_ABS: 144,\n OP_NOT: 145,\n OP_0NOTEQUAL: 146,\n OP_ADD: 147,\n OP_SUB: 148,\n OP_MUL: 149,\n OP_DIV: 150,\n OP_MOD: 151,\n OP_LSHIFT: 152,\n OP_RSHIFT: 153,\n OP_BOOLAND: 154,\n OP_BOOLOR: 155,\n OP_NUMEQUAL: 156,\n OP_NUMEQUALVERIFY: 157,\n OP_NUMNOTEQUAL: 158,\n OP_LESSTHAN: 159,\n OP_GREATERTHAN: 160,\n OP_LESSTHANOREQUAL: 161,\n OP_GREATERTHANOREQUAL: 162,\n OP_MIN: 163,\n OP_MAX: 164,\n OP_WITHIN: 165,\n OP_RIPEMD160: 166,\n OP_SHA1: 167,\n OP_SHA256: 168,\n OP_HASH160: 169,\n OP_HASH256: 170,\n OP_CODESEPARATOR: 171,\n OP_CHECKSIG: 172,\n OP_CHECKSIGVERIFY: 173,\n OP_CHECKMULTISIG: 174,\n OP_CHECKMULTISIGVERIFY: 175,\n OP_NOP1: 176,\n OP_NOP2: 177,\n OP_CHECKLOCKTIMEVERIFY: 177,\n OP_NOP3: 178,\n OP_CHECKSEQUENCEVERIFY: 178,\n OP_NOP4: 179,\n OP_NOP5: 180,\n OP_NOP6: 181,\n OP_NOP7: 182,\n OP_NOP8: 183,\n OP_NOP9: 184,\n OP_NOP10: 185,\n OP_CHECKSIGADD: 186,\n OP_PUBKEYHASH: 253,\n OP_PUBKEY: 254,\n OP_INVALIDOPCODE: 255\n};\n_r.OPS = Qo;\nconst Bu = {};\n_r.REVERSE_OPS = Bu;\nfor (const e of Object.keys(Qo)) {\n const t = Qo[e];\n Bu[t] = e;\n}\nvar Sr = {};\nObject.defineProperty(Sr, \"__esModule\", { value: !0 });\nSr.decode = Sr.encode = Sr.encodingLength = void 0;\nconst wr = _r;\nfunction Nu(e) {\n return e < wr.OPS.OP_PUSHDATA1 ? 1 : e <= 255 ? 2 : e <= 65535 ? 3 : 5;\n}\nSr.encodingLength = Nu;\nfunction x0(e, t, r) {\n const n = Nu(t);\n return n === 1 ? e.writeUInt8(t, r) : n === 2 ? (e.writeUInt8(wr.OPS.OP_PUSHDATA1, r), e.writeUInt8(t, r + 1)) : n === 3 ? (e.writeUInt8(wr.OPS.OP_PUSHDATA2, r), e.writeUInt16LE(t, r + 1)) : (e.writeUInt8(wr.OPS.OP_PUSHDATA4, r), e.writeUInt32LE(t, r + 1)), n;\n}\nSr.encode = x0;\nfunction C0(e, t) {\n const r = e.readUInt8(t);\n let n, i;\n if (r < wr.OPS.OP_PUSHDATA1)\n n = r, i = 1;\n else if (r === wr.OPS.OP_PUSHDATA1) {\n if (t + 2 > e.length)\n return null;\n n = e.readUInt8(t + 1), i = 2;\n } else if (r === wr.OPS.OP_PUSHDATA2) {\n if (t + 3 > e.length)\n return null;\n n = e.readUInt16LE(t + 1), i = 3;\n } else {\n if (t + 5 > e.length)\n return null;\n if (r !== wr.OPS.OP_PUSHDATA4)\n throw new Error(\"Unexpected opcode\");\n n = e.readUInt32LE(t + 1), i = 5;\n }\n return {\n opcode: r,\n number: n,\n size: i\n };\n}\nSr.decode = C0;\nvar En = {};\nObject.defineProperty(En, \"__esModule\", { value: !0 });\nEn.encode = En.decode = void 0;\nfunction B0(e, t, r) {\n t = t || 4, r = r === void 0 ? !0 : r;\n const n = e.length;\n if (n === 0)\n return 0;\n if (n > t)\n throw new TypeError(\"Script number overflow\");\n if (r && !(e[n - 1] & 127) && (n <= 1 || !(e[n - 2] & 128)))\n throw new Error(\"Non-minimally encoded script number\");\n if (n === 5) {\n const s = e.readUInt32LE(0), o = e.readUInt8(4);\n return o & 128 ? -((o & -129) * 4294967296 + s) : o * 4294967296 + s;\n }\n let i = 0;\n for (let s = 0; s < n; ++s)\n i |= e[s] << 8 * s;\n return e[n - 1] & 128 ? -(i & ~(128 << 8 * (n - 1))) : i;\n}\nEn.decode = B0;\nfunction N0(e) {\n return e > 2147483647 ? 5 : e > 8388607 ? 4 : e > 32767 ? 3 : e > 127 ? 2 : e > 0 ? 1 : 0;\n}\nfunction F0(e) {\n let t = Math.abs(e);\n const r = N0(t), n = I.allocUnsafe(r), i = e < 0;\n for (let s = 0; s < r; ++s)\n n.writeUInt8(t & 255, s), t >>= 8;\n return n[r - 1] & 128 ? n.writeUInt8(i ? 128 : 0, r - 1) : i && (n[r - 1] |= 128), n;\n}\nEn.encode = F0;\nvar bn = {}, qe = {};\nconst Gi = /* @__PURE__ */ Bl(P0);\nvar Xn = {\n Array: function(e) {\n return e != null && e.constructor === Array;\n },\n Boolean: function(e) {\n return typeof e == \"boolean\";\n },\n Function: function(e) {\n return typeof e == \"function\";\n },\n Nil: function(e) {\n return e == null;\n },\n Number: function(e) {\n return typeof e == \"number\";\n },\n Object: function(e) {\n return typeof e == \"object\";\n },\n String: function(e) {\n return typeof e == \"string\";\n },\n \"\": function() {\n return !0;\n }\n};\nXn.Null = Xn.Nil;\nfor (var ia in Xn)\n Xn[ia].toJSON = (function(e) {\n return e;\n }).bind(null, ia);\nvar ys = Xn, Fr = ys;\nfunction Fu(e) {\n return e.name || e.toString().match(/function (.*?)\\s*\\(/)[1];\n}\nfunction ms(e) {\n return Fr.Nil(e) ? \"\" : Fu(e.constructor);\n}\nfunction U0(e) {\n return Fr.Function(e) ? \"\" : Fr.String(e) ? JSON.stringify(e) : e && Fr.Object(e) ? \"\" : e;\n}\nfunction ws(e, t) {\n Error.captureStackTrace && Error.captureStackTrace(e, t);\n}\nfunction Ai(e) {\n return Fr.Function(e) ? e.toJSON ? e.toJSON() : Fu(e) : Fr.Array(e) ? \"Array\" : e && Fr.Object(e) ? \"Object\" : e !== void 0 ? e : \"\";\n}\nfunction Uu(e, t, r) {\n var n = U0(t);\n return \"Expected \" + Ai(e) + \", got\" + (r !== \"\" ? \" \" + r : \"\") + (n !== \"\" ? \" \" + n : \"\");\n}\nfunction er(e, t, r) {\n r = r || ms(t), this.message = Uu(e, t, r), ws(this, er), this.__type = e, this.__value = t, this.__valueTypeName = r;\n}\ner.prototype = Object.create(Error.prototype);\ner.prototype.constructor = er;\nfunction R0(e, t, r, n, i) {\n var s = '\" of type ';\n return t === \"key\" && (s = '\" with key type '), Uu('property \"' + Ai(r) + s + Ai(e), n, i);\n}\nfunction pn(e, t, r, n, i) {\n e ? (i = i || ms(n), this.message = R0(e, r, t, n, i)) : this.message = 'Unexpected property \"' + t + '\"', ws(this, er), this.__label = r, this.__property = t, this.__type = e, this.__value = n, this.__valueTypeName = i;\n}\npn.prototype = Object.create(Error.prototype);\npn.prototype.constructor = er;\nfunction L0(e, t) {\n return new er(e, {}, t);\n}\nfunction H0(e, t, r) {\n return e instanceof pn ? (t = t + \".\" + e.__property, e = new pn(\n e.__type,\n t,\n e.__label,\n e.__value,\n e.__valueTypeName\n )) : e instanceof er && (e = new pn(\n e.__type,\n t,\n r,\n e.__value,\n e.__valueTypeName\n )), ws(e), e;\n}\nvar Ru = {\n TfTypeError: er,\n TfPropertyTypeError: pn,\n tfCustomError: L0,\n tfSubError: H0,\n tfJSON: Ai,\n getValueTypeName: ms\n}, _o, oa;\nfunction $0() {\n if (oa)\n return _o;\n oa = 1;\n var e = ys, t = Ru;\n function r(k) {\n return I.isBuffer(k);\n }\n function n(k) {\n return typeof k == \"string\" && /^([0-9a-f]{2})+$/i.test(k);\n }\n function i(k, j) {\n var A = k.toJSON();\n function b(m) {\n if (!k(m))\n return !1;\n if (m.length === j)\n return !0;\n throw t.tfCustomError(A + \"(Length: \" + j + \")\", A + \"(Length: \" + m.length + \")\");\n }\n return b.toJSON = function() {\n return A;\n }, b;\n }\n var s = i.bind(null, e.Array), o = i.bind(null, r), a = i.bind(null, n), f = i.bind(null, e.String);\n function h(k, j, A) {\n A = A || e.Number;\n function b(m, N) {\n return A(m, N) && m > k && m < j;\n }\n return b.toJSON = function() {\n return `${A.toJSON()} between [${k}, ${j}]`;\n }, b;\n }\n var l = Math.pow(2, 53) - 1;\n function p(k) {\n return typeof k == \"number\" && isFinite(k);\n }\n function E(k) {\n return k << 24 >> 24 === k;\n }\n function y(k) {\n return k << 16 >> 16 === k;\n }\n function v(k) {\n return (k | 0) === k;\n }\n function S(k) {\n return typeof k == \"number\" && k >= -l && k <= l && Math.floor(k) === k;\n }\n function T(k) {\n return (k & 255) === k;\n }\n function C(k) {\n return (k & 65535) === k;\n }\n function O(k) {\n return k >>> 0 === k;\n }\n function B(k) {\n return typeof k == \"number\" && k >= 0 && k <= l && Math.floor(k) === k;\n }\n var U = {\n ArrayN: s,\n Buffer: r,\n BufferN: o,\n Finite: p,\n Hex: n,\n HexN: a,\n Int8: E,\n Int16: y,\n Int32: v,\n Int53: S,\n Range: h,\n StringN: f,\n UInt8: T,\n UInt16: C,\n UInt32: O,\n UInt53: B\n };\n for (var R in U)\n U[R].toJSON = (function(k) {\n return k;\n }).bind(null, R);\n return _o = U, _o;\n}\nvar Qn = Ru, Ke = ys, Dt = Qn.tfJSON, Lu = Qn.TfTypeError, Hu = Qn.TfPropertyTypeError, Nn = Qn.tfSubError, M0 = Qn.getValueTypeName, qt = {\n arrayOf: function(t, r) {\n t = xt(t), r = r || {};\n function n(i, s) {\n return !Ke.Array(i) || Ke.Nil(i) || r.minLength !== void 0 && i.length < r.minLength || r.maxLength !== void 0 && i.length > r.maxLength || r.length !== void 0 && i.length !== r.length ? !1 : i.every(function(o, a) {\n try {\n return tt(t, o, s);\n } catch (f) {\n throw Nn(f, a);\n }\n });\n }\n return n.toJSON = function() {\n var i = \"[\" + Dt(t) + \"]\";\n return r.length !== void 0 ? i += \"{\" + r.length + \"}\" : (r.minLength !== void 0 || r.maxLength !== void 0) && (i += \"{\" + (r.minLength === void 0 ? 0 : r.minLength) + \",\" + (r.maxLength === void 0 ? 1 / 0 : r.maxLength) + \"}\"), i;\n }, n;\n },\n maybe: function e(t) {\n t = xt(t);\n function r(n, i) {\n return Ke.Nil(n) || t(n, i, e);\n }\n return r.toJSON = function() {\n return \"?\" + Dt(t);\n }, r;\n },\n map: function(t, r) {\n t = xt(t), r && (r = xt(r));\n function n(i, s) {\n if (!Ke.Object(i) || Ke.Nil(i))\n return !1;\n for (var o in i) {\n try {\n r && tt(r, o, s);\n } catch (f) {\n throw Nn(f, o, \"key\");\n }\n try {\n var a = i[o];\n tt(t, a, s);\n } catch (f) {\n throw Nn(f, o);\n }\n }\n return !0;\n }\n return r ? n.toJSON = function() {\n return \"{\" + Dt(r) + \": \" + Dt(t) + \"}\";\n } : n.toJSON = function() {\n return \"{\" + Dt(t) + \"}\";\n }, n;\n },\n object: function(t) {\n var r = {};\n for (var n in t)\n r[n] = xt(t[n]);\n function i(s, o) {\n if (!Ke.Object(s) || Ke.Nil(s))\n return !1;\n var a;\n try {\n for (a in r) {\n var f = r[a], h = s[a];\n tt(f, h, o);\n }\n } catch (l) {\n throw Nn(l, a);\n }\n if (o) {\n for (a in s)\n if (!r[a])\n throw new Hu(void 0, a);\n }\n return !0;\n }\n return i.toJSON = function() {\n return Dt(r);\n }, i;\n },\n anyOf: function() {\n var t = [].slice.call(arguments).map(xt);\n function r(n, i) {\n return t.some(function(s) {\n try {\n return tt(s, n, i);\n } catch {\n return !1;\n }\n });\n }\n return r.toJSON = function() {\n return t.map(Dt).join(\"|\");\n }, r;\n },\n allOf: function() {\n var t = [].slice.call(arguments).map(xt);\n function r(n, i) {\n return t.every(function(s) {\n try {\n return tt(s, n, i);\n } catch {\n return !1;\n }\n });\n }\n return r.toJSON = function() {\n return t.map(Dt).join(\" & \");\n }, r;\n },\n quacksLike: function(t) {\n function r(n) {\n return t === M0(n);\n }\n return r.toJSON = function() {\n return t;\n }, r;\n },\n tuple: function() {\n var t = [].slice.call(arguments).map(xt);\n function r(n, i) {\n return Ke.Nil(n) || Ke.Nil(n.length) || i && n.length !== t.length ? !1 : t.every(function(s, o) {\n try {\n return tt(s, n[o], i);\n } catch (a) {\n throw Nn(a, o);\n }\n });\n }\n return r.toJSON = function() {\n return \"(\" + t.map(Dt).join(\", \") + \")\";\n }, r;\n },\n value: function(t) {\n function r(n) {\n return n === t;\n }\n return r.toJSON = function() {\n return t;\n }, r;\n }\n};\nqt.oneOf = qt.anyOf;\nfunction xt(e) {\n if (Ke.String(e))\n return e[0] === \"?\" ? qt.maybe(e.slice(1)) : Ke[e] || qt.quacksLike(e);\n if (e && Ke.Object(e)) {\n if (Ke.Array(e)) {\n if (e.length !== 1)\n throw new TypeError(\"Expected compile() parameter of type Array of length 1\");\n return qt.arrayOf(e[0]);\n }\n return qt.object(e);\n } else if (Ke.Function(e))\n return e;\n return qt.value(e);\n}\nfunction tt(e, t, r, n) {\n if (Ke.Function(e)) {\n if (e(t, r))\n return !0;\n throw new Lu(n || e, t);\n }\n return tt(xt(e), t, r);\n}\nfor (var vr in Ke)\n tt[vr] = Ke[vr];\nfor (vr in qt)\n tt[vr] = qt[vr];\nvar sa = $0();\nfor (vr in sa)\n tt[vr] = sa[vr];\ntt.compile = xt;\ntt.TfTypeError = Lu;\ntt.TfPropertyTypeError = Hu;\nvar D0 = tt;\n(function(e) {\n Object.defineProperty(e, \"__esModule\", { value: !0 }), e.oneOf = e.Null = e.BufferN = e.Function = e.UInt32 = e.UInt8 = e.tuple = e.maybe = e.Hex = e.Buffer = e.String = e.Boolean = e.Array = e.Number = e.Hash256bit = e.Hash160bit = e.Buffer256bit = e.isTaptree = e.isTapleaf = e.TAPLEAF_VERSION_MASK = e.Network = e.ECPoint = e.Satoshi = e.Signer = e.BIP32Path = e.UInt31 = e.isPoint = e.typeforce = void 0;\n const t = Gi;\n e.typeforce = D0;\n const r = t.Buffer.alloc(32, 0), n = t.Buffer.from(\n \"fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f\",\n \"hex\"\n );\n function i(y) {\n if (!t.Buffer.isBuffer(y) || y.length < 33)\n return !1;\n const v = y[0], S = y.slice(1, 33);\n if (S.compare(r) === 0 || S.compare(n) >= 0)\n return !1;\n if ((v === 2 || v === 3) && y.length === 33)\n return !0;\n const T = y.slice(33);\n return T.compare(r) === 0 || T.compare(n) >= 0 ? !1 : v === 4 && y.length === 65;\n }\n e.isPoint = i;\n const s = Math.pow(2, 31) - 1;\n function o(y) {\n return e.typeforce.UInt32(y) && y <= s;\n }\n e.UInt31 = o;\n function a(y) {\n return e.typeforce.String(y) && !!y.match(/^(m\\/)?(\\d+'?\\/)*\\d+'?$/);\n }\n e.BIP32Path = a, a.toJSON = () => \"BIP32 derivation path\";\n function f(y) {\n return (e.typeforce.Buffer(y.publicKey) || typeof y.getPublicKey == \"function\") && typeof y.sign == \"function\";\n }\n e.Signer = f;\n const h = 21 * 1e14;\n function l(y) {\n return e.typeforce.UInt53(y) && y <= h;\n }\n e.Satoshi = l, e.ECPoint = e.typeforce.quacksLike(\"Point\"), e.Network = e.typeforce.compile({\n messagePrefix: e.typeforce.oneOf(\n e.typeforce.Buffer,\n e.typeforce.String\n ),\n bip32: {\n public: e.typeforce.UInt32,\n private: e.typeforce.UInt32\n },\n pubKeyHash: e.typeforce.UInt8,\n scriptHash: e.typeforce.UInt8,\n wif: e.typeforce.UInt8\n }), e.TAPLEAF_VERSION_MASK = 254;\n function p(y) {\n return !y || !(\"output\" in y) || !t.Buffer.isBuffer(y.output) ? !1 : y.version !== void 0 ? (y.version & e.TAPLEAF_VERSION_MASK) === y.version : !0;\n }\n e.isTapleaf = p;\n function E(y) {\n return (0, e.Array)(y) ? y.length !== 2 ? !1 : y.every((v) => E(v)) : p(y);\n }\n e.isTaptree = E, e.Buffer256bit = e.typeforce.BufferN(32), e.Hash160bit = e.typeforce.BufferN(20), e.Hash256bit = e.typeforce.BufferN(32), e.Number = e.typeforce.Number, e.Array = e.typeforce.Array, e.Boolean = e.typeforce.Boolean, e.String = e.typeforce.String, e.Buffer = e.typeforce.Buffer, e.Hex = e.typeforce.Hex, e.maybe = e.typeforce.maybe, e.tuple = e.typeforce.tuple, e.UInt8 = e.typeforce.UInt8, e.UInt32 = e.typeforce.UInt32, e.Function = e.typeforce.Function, e.BufferN = e.typeforce.BufferN, e.Null = e.typeforce.Null, e.oneOf = e.typeforce.oneOf;\n})(qe);\nObject.defineProperty(bn, \"__esModule\", { value: !0 });\nbn.encode = bn.decode = void 0;\nconst $u = Qt, Zo = qe, { typeforce: j0 } = Zo, aa = I.alloc(1, 0);\nfunction ua(e) {\n let t = 0;\n for (; e[t] === 0; )\n ++t;\n return t === e.length ? aa : (e = e.slice(t), e[0] & 128 ? I.concat([aa, e], 1 + e.length) : e);\n}\nfunction ca(e) {\n e[0] === 0 && (e = e.slice(1));\n const t = I.alloc(32, 0), r = Math.max(0, 32 - e.length);\n return e.copy(t, r), t;\n}\nfunction K0(e) {\n const t = e.readUInt8(e.length - 1), r = t & -129;\n if (r <= 0 || r >= 4)\n throw new Error(\"Invalid hashType \" + t);\n const n = $u.decode(e.slice(0, -1)), i = ca(n.r), s = ca(n.s);\n return { signature: I.concat([i, s], 64), hashType: t };\n}\nbn.decode = K0;\nfunction W0(e, t) {\n j0(\n {\n signature: Zo.BufferN(64),\n hashType: Zo.UInt8\n },\n { signature: e, hashType: t }\n );\n const r = t & -129;\n if (r <= 0 || r >= 4)\n throw new Error(\"Invalid hashType \" + t);\n const n = I.allocUnsafe(1);\n n.writeUInt8(t, 0);\n const i = ua(e.slice(0, 32)), s = ua(e.slice(32, 64));\n return I.concat([$u.encode(i, s), n]);\n}\nbn.encode = W0;\n(function(e) {\n Object.defineProperty(e, \"__esModule\", { value: !0 }), e.signature = e.number = e.isCanonicalScriptSignature = e.isDefinedHashType = e.isCanonicalPubKey = e.toStack = e.fromASM = e.toASM = e.decompile = e.compile = e.countNonPushOnlyOPs = e.isPushOnly = e.OPS = void 0;\n const t = Qt, r = _r;\n Object.defineProperty(e, \"OPS\", {\n enumerable: !0,\n get: function() {\n return r.OPS;\n }\n });\n const n = Sr, i = En, s = bn, o = qe, { typeforce: a } = o, f = r.OPS.OP_RESERVED;\n function h(b) {\n return o.Number(b) && (b === r.OPS.OP_0 || b >= r.OPS.OP_1 && b <= r.OPS.OP_16 || b === r.OPS.OP_1NEGATE);\n }\n function l(b) {\n return o.Buffer(b) || h(b);\n }\n function p(b) {\n return o.Array(b) && b.every(l);\n }\n e.isPushOnly = p;\n function E(b) {\n return b.length - b.filter(l).length;\n }\n e.countNonPushOnlyOPs = E;\n function y(b) {\n if (b.length === 0)\n return r.OPS.OP_0;\n if (b.length === 1) {\n if (b[0] >= 1 && b[0] <= 16)\n return f + b[0];\n if (b[0] === 129)\n return r.OPS.OP_1NEGATE;\n }\n }\n function v(b) {\n return I.isBuffer(b);\n }\n function S(b) {\n return o.Array(b);\n }\n function T(b) {\n return I.isBuffer(b);\n }\n function C(b) {\n if (v(b))\n return b;\n a(o.Array, b);\n const m = b.reduce((L, M) => T(M) ? M.length === 1 && y(M) !== void 0 ? L + 1 : L + n.encodingLength(M.length) + M.length : L + 1, 0), N = I.allocUnsafe(m);\n let H = 0;\n if (b.forEach((L) => {\n if (T(L)) {\n const M = y(L);\n if (M !== void 0) {\n N.writeUInt8(M, H), H += 1;\n return;\n }\n H += n.encode(N, L.length, H), L.copy(N, H), H += L.length;\n } else\n N.writeUInt8(L, H), H += 1;\n }), H !== N.length)\n throw new Error(\"Could not decode chunks\");\n return N;\n }\n e.compile = C;\n function O(b) {\n if (S(b))\n return b;\n a(o.Buffer, b);\n const m = [];\n let N = 0;\n for (; N < b.length; ) {\n const H = b[N];\n if (H > r.OPS.OP_0 && H <= r.OPS.OP_PUSHDATA4) {\n const L = n.decode(b, N);\n if (L === null || (N += L.size, N + L.number > b.length))\n return null;\n const M = b.slice(N, N + L.number);\n N += L.number;\n const K = y(M);\n K !== void 0 ? m.push(K) : m.push(M);\n } else\n m.push(H), N += 1;\n }\n return m;\n }\n e.decompile = O;\n function B(b) {\n return v(b) && (b = O(b)), b.map((m) => {\n if (T(m)) {\n const N = y(m);\n if (N === void 0)\n return m.toString(\"hex\");\n m = N;\n }\n return r.REVERSE_OPS[m];\n }).join(\" \");\n }\n e.toASM = B;\n function U(b) {\n return a(o.String, b), C(\n b.split(\" \").map((m) => r.OPS[m] !== void 0 ? r.OPS[m] : (a(o.Hex, m), I.from(m, \"hex\")))\n );\n }\n e.fromASM = U;\n function R(b) {\n return b = O(b), a(p, b), b.map((m) => T(m) ? m : m === r.OPS.OP_0 ? I.allocUnsafe(0) : i.encode(m - f));\n }\n e.toStack = R;\n function k(b) {\n return o.isPoint(b);\n }\n e.isCanonicalPubKey = k;\n function j(b) {\n const m = b & -129;\n return m > 0 && m < 4;\n }\n e.isDefinedHashType = j;\n function A(b) {\n return !I.isBuffer(b) || !j(b[b.length - 1]) ? !1 : t.check(b.slice(0, -1));\n }\n e.isCanonicalScriptSignature = A, e.number = i, e.signature = s;\n})(ot);\nvar ht = {};\nObject.defineProperty(ht, \"__esModule\", { value: !0 });\nht.value = ht.prop = void 0;\nfunction V0(e, t, r) {\n Object.defineProperty(e, t, {\n configurable: !0,\n enumerable: !0,\n get() {\n const n = r.call(this);\n return this[t] = n, n;\n },\n set(n) {\n Object.defineProperty(this, t, {\n configurable: !0,\n enumerable: !0,\n value: n,\n writable: !0\n });\n }\n });\n}\nht.prop = V0;\nfunction G0(e) {\n let t;\n return () => (t !== void 0 || (t = e()), t);\n}\nht.value = G0;\nObject.defineProperty(Vi, \"__esModule\", { value: !0 });\nVi.p2data = void 0;\nconst X0 = He, vi = ot, jt = qe, la = ht, fa = vi.OPS;\nfunction q0(e, t) {\n return e.length !== t.length ? !1 : e.every((r, n) => r.equals(t[n]));\n}\nfunction z0(e, t) {\n if (!e.data && !e.output)\n throw new TypeError(\"Not enough data\");\n t = Object.assign({ validate: !0 }, t || {}), (0, jt.typeforce)(\n {\n network: jt.typeforce.maybe(jt.typeforce.Object),\n output: jt.typeforce.maybe(jt.typeforce.Buffer),\n data: jt.typeforce.maybe(\n jt.typeforce.arrayOf(jt.typeforce.Buffer)\n )\n },\n e\n );\n const n = { name: \"embed\", network: e.network || X0.bitcoin };\n if (la.prop(n, \"output\", () => {\n if (e.data)\n return vi.compile([fa.OP_RETURN].concat(e.data));\n }), la.prop(n, \"data\", () => {\n if (e.output)\n return vi.decompile(e.output).slice(1);\n }), t.validate && e.output) {\n const i = vi.decompile(e.output);\n if (i[0] !== fa.OP_RETURN)\n throw new TypeError(\"Output is invalid\");\n if (!i.slice(1).every(jt.typeforce.Buffer))\n throw new TypeError(\"Output is invalid\");\n if (e.data && !q0(e.data, n.data))\n throw new TypeError(\"Data mismatch\");\n }\n return Object.assign(n, e);\n}\nVi.p2data = z0;\nvar Xi = {};\nObject.defineProperty(Xi, \"__esModule\", { value: !0 });\nXi.p2ms = void 0;\nconst Y0 = He, cn = ot, Ae = qe, cr = ht, ln = cn.OPS, ai = ln.OP_RESERVED;\nfunction ha(e, t) {\n return e.length !== t.length ? !1 : e.every((r, n) => r.equals(t[n]));\n}\nfunction J0(e, t) {\n if (!e.input && !e.output && !(e.pubkeys && e.m !== void 0) && !e.signatures)\n throw new TypeError(\"Not enough data\");\n t = Object.assign({ validate: !0 }, t || {});\n function r(f) {\n return cn.isCanonicalScriptSignature(f) || (t.allowIncomplete && f === ln.OP_0) !== void 0;\n }\n (0, Ae.typeforce)(\n {\n network: Ae.typeforce.maybe(Ae.typeforce.Object),\n m: Ae.typeforce.maybe(Ae.typeforce.Number),\n n: Ae.typeforce.maybe(Ae.typeforce.Number),\n output: Ae.typeforce.maybe(Ae.typeforce.Buffer),\n pubkeys: Ae.typeforce.maybe(\n Ae.typeforce.arrayOf(Ae.isPoint)\n ),\n signatures: Ae.typeforce.maybe(\n Ae.typeforce.arrayOf(r)\n ),\n input: Ae.typeforce.maybe(Ae.typeforce.Buffer)\n },\n e\n );\n const i = { network: e.network || Y0.bitcoin };\n let s = [], o = !1;\n function a(f) {\n o || (o = !0, s = cn.decompile(f), i.m = s[0] - ai, i.n = s[s.length - 2] - ai, i.pubkeys = s.slice(1, -2));\n }\n if (cr.prop(i, \"output\", () => {\n if (e.m && i.n && e.pubkeys)\n return cn.compile(\n [].concat(\n ai + e.m,\n e.pubkeys,\n ai + i.n,\n ln.OP_CHECKMULTISIG\n )\n );\n }), cr.prop(i, \"m\", () => {\n if (i.output)\n return a(i.output), i.m;\n }), cr.prop(i, \"n\", () => {\n if (i.pubkeys)\n return i.pubkeys.length;\n }), cr.prop(i, \"pubkeys\", () => {\n if (e.output)\n return a(e.output), i.pubkeys;\n }), cr.prop(i, \"signatures\", () => {\n if (e.input)\n return cn.decompile(e.input).slice(1);\n }), cr.prop(i, \"input\", () => {\n if (e.signatures)\n return cn.compile([ln.OP_0].concat(e.signatures));\n }), cr.prop(i, \"witness\", () => {\n if (i.input)\n return [];\n }), cr.prop(i, \"name\", () => {\n if (!(!i.m || !i.n))\n return `p2ms(${i.m} of ${i.n})`;\n }), t.validate) {\n if (e.output) {\n if (a(e.output), !Ae.typeforce.Number(s[0]))\n throw new TypeError(\"Output is invalid\");\n if (!Ae.typeforce.Number(s[s.length - 2]))\n throw new TypeError(\"Output is invalid\");\n if (s[s.length - 1] !== ln.OP_CHECKMULTISIG)\n throw new TypeError(\"Output is invalid\");\n if (i.m <= 0 || i.n > 16 || i.m > i.n || i.n !== s.length - 3)\n throw new TypeError(\"Output is invalid\");\n if (!i.pubkeys.every((f) => (0, Ae.isPoint)(f)))\n throw new TypeError(\"Output is invalid\");\n if (e.m !== void 0 && e.m !== i.m)\n throw new TypeError(\"m mismatch\");\n if (e.n !== void 0 && e.n !== i.n)\n throw new TypeError(\"n mismatch\");\n if (e.pubkeys && !ha(e.pubkeys, i.pubkeys))\n throw new TypeError(\"Pubkeys mismatch\");\n }\n if (e.pubkeys) {\n if (e.n !== void 0 && e.n !== e.pubkeys.length)\n throw new TypeError(\"Pubkey count mismatch\");\n if (i.n = e.pubkeys.length, i.n < i.m)\n throw new TypeError(\"Pubkey count cannot be less than m\");\n }\n if (e.signatures) {\n if (e.signatures.length < i.m)\n throw new TypeError(\"Not enough signatures provided\");\n if (e.signatures.length > i.m)\n throw new TypeError(\"Too many signatures provided\");\n }\n if (e.input) {\n if (e.input[0] !== ln.OP_0)\n throw new TypeError(\"Input is invalid\");\n if (i.signatures.length === 0 || !i.signatures.every(r))\n throw new TypeError(\"Input has invalid signature(s)\");\n if (e.signatures && !ha(e.signatures, i.signatures))\n throw new TypeError(\"Signature mismatch\");\n if (e.m !== void 0 && e.m !== e.signatures.length)\n throw new TypeError(\"Signature count mismatch\");\n }\n }\n return Object.assign(i, e);\n}\nXi.p2ms = J0;\nvar qi = {};\nObject.defineProperty(qi, \"__esModule\", { value: !0 });\nqi.p2pk = void 0;\nconst Q0 = He, fn = ot, bt = qe, an = ht, da = fn.OPS;\nfunction Z0(e, t) {\n if (!e.input && !e.output && !e.pubkey && !e.input && !e.signature)\n throw new TypeError(\"Not enough data\");\n t = Object.assign({ validate: !0 }, t || {}), (0, bt.typeforce)(\n {\n network: bt.typeforce.maybe(bt.typeforce.Object),\n output: bt.typeforce.maybe(bt.typeforce.Buffer),\n pubkey: bt.typeforce.maybe(bt.isPoint),\n signature: bt.typeforce.maybe(fn.isCanonicalScriptSignature),\n input: bt.typeforce.maybe(bt.typeforce.Buffer)\n },\n e\n );\n const r = an.value(() => fn.decompile(e.input)), i = { name: \"p2pk\", network: e.network || Q0.bitcoin };\n if (an.prop(i, \"output\", () => {\n if (e.pubkey)\n return fn.compile([e.pubkey, da.OP_CHECKSIG]);\n }), an.prop(i, \"pubkey\", () => {\n if (e.output)\n return e.output.slice(1, -1);\n }), an.prop(i, \"signature\", () => {\n if (e.input)\n return r()[0];\n }), an.prop(i, \"input\", () => {\n if (e.signature)\n return fn.compile([e.signature]);\n }), an.prop(i, \"witness\", () => {\n if (i.input)\n return [];\n }), t.validate) {\n if (e.output) {\n if (e.output[e.output.length - 1] !== da.OP_CHECKSIG)\n throw new TypeError(\"Output is invalid\");\n if (!(0, bt.isPoint)(i.pubkey))\n throw new TypeError(\"Output pubkey is invalid\");\n if (e.pubkey && !e.pubkey.equals(i.pubkey))\n throw new TypeError(\"Pubkey mismatch\");\n }\n if (e.signature && e.input && !e.input.equals(i.input))\n throw new TypeError(\"Signature mismatch\");\n if (e.input) {\n if (r().length !== 1)\n throw new TypeError(\"Input is invalid\");\n if (!fn.isCanonicalScriptSignature(i.signature))\n throw new TypeError(\"Input has invalid signature\");\n }\n }\n return Object.assign(i, e);\n}\nqi.p2pk = Z0;\nvar zi = {}, Ut = {}, Sn = {}, In = {}, nt = {};\nObject.defineProperty(nt, \"__esModule\", { value: !0 });\nnt.output = nt.exists = nt.hash = nt.bytes = nt.bool = nt.number = void 0;\nfunction xi(e) {\n if (!Number.isSafeInteger(e) || e < 0)\n throw new Error(`Wrong positive integer: ${e}`);\n}\nnt.number = xi;\nfunction Mu(e) {\n if (typeof e != \"boolean\")\n throw new Error(`Expected boolean, not ${e}`);\n}\nnt.bool = Mu;\nfunction ed(e) {\n return e instanceof Uint8Array || e != null && typeof e == \"object\" && e.constructor.name === \"Uint8Array\";\n}\nfunction Es(e, ...t) {\n if (!ed(e))\n throw new Error(\"Expected Uint8Array\");\n if (t.length > 0 && !t.includes(e.length))\n throw new Error(`Expected Uint8Array of length ${t}, not of length=${e.length}`);\n}\nnt.bytes = Es;\nfunction Du(e) {\n if (typeof e != \"function\" || typeof e.create != \"function\")\n throw new Error(\"Hash should be wrapped by utils.wrapConstructor\");\n xi(e.outputLen), xi(e.blockLen);\n}\nnt.hash = Du;\nfunction ju(e, t = !0) {\n if (e.destroyed)\n throw new Error(\"Hash instance has been destroyed\");\n if (t && e.finished)\n throw new Error(\"Hash#digest() has already been called\");\n}\nnt.exists = ju;\nfunction Ku(e, t) {\n Es(e);\n const r = t.outputLen;\n if (e.length < r)\n throw new Error(`digestInto() expects output buffer of length at least ${r}`);\n}\nnt.output = Ku;\nconst td = { number: xi, bool: Mu, bytes: Es, hash: Du, exists: ju, output: Ku };\nnt.default = td;\nvar Zn = {}, Yi = {};\nObject.defineProperty(Yi, \"__esModule\", { value: !0 });\nYi.crypto = void 0;\nYi.crypto = typeof globalThis == \"object\" && \"crypto\" in globalThis ? globalThis.crypto : void 0;\n(function(e) {\n /*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n Object.defineProperty(e, \"__esModule\", { value: !0 }), e.randomBytes = e.wrapXOFConstructorWithOpts = e.wrapConstructorWithOpts = e.wrapConstructor = e.checkOpts = e.Hash = e.concatBytes = e.toBytes = e.utf8ToBytes = e.asyncLoop = e.nextTick = e.hexToBytes = e.bytesToHex = e.isLE = e.rotr = e.createView = e.u32 = e.u8 = void 0;\n const t = Yi, r = (A) => new Uint8Array(A.buffer, A.byteOffset, A.byteLength);\n e.u8 = r;\n const n = (A) => new Uint32Array(A.buffer, A.byteOffset, Math.floor(A.byteLength / 4));\n e.u32 = n;\n function i(A) {\n return A instanceof Uint8Array || A != null && typeof A == \"object\" && A.constructor.name === \"Uint8Array\";\n }\n const s = (A) => new DataView(A.buffer, A.byteOffset, A.byteLength);\n e.createView = s;\n const o = (A, b) => A << 32 - b | A >>> b;\n if (e.rotr = o, e.isLE = new Uint8Array(new Uint32Array([287454020]).buffer)[0] === 68, !e.isLE)\n throw new Error(\"Non little-endian hardware is not supported\");\n const a = /* @__PURE__ */ Array.from({ length: 256 }, (A, b) => b.toString(16).padStart(2, \"0\"));\n function f(A) {\n if (!i(A))\n throw new Error(\"Uint8Array expected\");\n let b = \"\";\n for (let m = 0; m < A.length; m++)\n b += a[A[m]];\n return b;\n }\n e.bytesToHex = f;\n const h = { _0: 48, _9: 57, _A: 65, _F: 70, _a: 97, _f: 102 };\n function l(A) {\n if (A >= h._0 && A <= h._9)\n return A - h._0;\n if (A >= h._A && A <= h._F)\n return A - (h._A - 10);\n if (A >= h._a && A <= h._f)\n return A - (h._a - 10);\n }\n function p(A) {\n if (typeof A != \"string\")\n throw new Error(\"hex string expected, got \" + typeof A);\n const b = A.length, m = b / 2;\n if (b % 2)\n throw new Error(\"padded hex string expected, got unpadded hex of length \" + b);\n const N = new Uint8Array(m);\n for (let H = 0, L = 0; H < m; H++, L += 2) {\n const M = l(A.charCodeAt(L)), K = l(A.charCodeAt(L + 1));\n if (M === void 0 || K === void 0) {\n const re = A[L] + A[L + 1];\n throw new Error('hex string expected, got non-hex character \"' + re + '\" at index ' + L);\n }\n N[H] = M * 16 + K;\n }\n return N;\n }\n e.hexToBytes = p;\n const E = async () => {\n };\n e.nextTick = E;\n async function y(A, b, m) {\n let N = Date.now();\n for (let H = 0; H < A; H++) {\n m(H);\n const L = Date.now() - N;\n L >= 0 && L < b || (await (0, e.nextTick)(), N += L);\n }\n }\n e.asyncLoop = y;\n function v(A) {\n if (typeof A != \"string\")\n throw new Error(`utf8ToBytes expected string, got ${typeof A}`);\n return new Uint8Array(new TextEncoder().encode(A));\n }\n e.utf8ToBytes = v;\n function S(A) {\n if (typeof A == \"string\" && (A = v(A)), !i(A))\n throw new Error(`expected Uint8Array, got ${typeof A}`);\n return A;\n }\n e.toBytes = S;\n function T(...A) {\n let b = 0;\n for (let N = 0; N < A.length; N++) {\n const H = A[N];\n if (!i(H))\n throw new Error(\"Uint8Array expected\");\n b += H.length;\n }\n const m = new Uint8Array(b);\n for (let N = 0, H = 0; N < A.length; N++) {\n const L = A[N];\n m.set(L, H), H += L.length;\n }\n return m;\n }\n e.concatBytes = T;\n class C {\n // Safe version that clones internal state\n clone() {\n return this._cloneInto();\n }\n }\n e.Hash = C;\n const O = {}.toString;\n function B(A, b) {\n if (b !== void 0 && O.call(b) !== \"[object Object]\")\n throw new Error(\"Options should be object or undefined\");\n return Object.assign(A, b);\n }\n e.checkOpts = B;\n function U(A) {\n const b = (N) => A().update(S(N)).digest(), m = A();\n return b.outputLen = m.outputLen, b.blockLen = m.blockLen, b.create = () => A(), b;\n }\n e.wrapConstructor = U;\n function R(A) {\n const b = (N, H) => A(H).update(S(N)).digest(), m = A({});\n return b.outputLen = m.outputLen, b.blockLen = m.blockLen, b.create = (N) => A(N), b;\n }\n e.wrapConstructorWithOpts = R;\n function k(A) {\n const b = (N, H) => A(H).update(S(N)).digest(), m = A({});\n return b.outputLen = m.outputLen, b.blockLen = m.blockLen, b.create = (N) => A(N), b;\n }\n e.wrapXOFConstructorWithOpts = k;\n function j(A = 32) {\n if (t.crypto && typeof t.crypto.getRandomValues == \"function\")\n return t.crypto.getRandomValues(new Uint8Array(A));\n throw new Error(\"crypto.getRandomValues must be defined\");\n }\n e.randomBytes = j;\n})(Zn);\nObject.defineProperty(In, \"__esModule\", { value: !0 });\nIn.SHA2 = void 0;\nconst To = nt, Fn = Zn;\nfunction rd(e, t, r, n) {\n if (typeof e.setBigUint64 == \"function\")\n return e.setBigUint64(t, r, n);\n const i = BigInt(32), s = BigInt(4294967295), o = Number(r >> i & s), a = Number(r & s), f = n ? 4 : 0, h = n ? 0 : 4;\n e.setUint32(t + f, o, n), e.setUint32(t + h, a, n);\n}\nclass nd extends Fn.Hash {\n constructor(t, r, n, i) {\n super(), this.blockLen = t, this.outputLen = r, this.padOffset = n, this.isLE = i, this.finished = !1, this.length = 0, this.pos = 0, this.destroyed = !1, this.buffer = new Uint8Array(t), this.view = (0, Fn.createView)(this.buffer);\n }\n update(t) {\n (0, To.exists)(this);\n const { view: r, buffer: n, blockLen: i } = this;\n t = (0, Fn.toBytes)(t);\n const s = t.length;\n for (let o = 0; o < s; ) {\n const a = Math.min(i - this.pos, s - o);\n if (a === i) {\n const f = (0, Fn.createView)(t);\n for (; i <= s - o; o += i)\n this.process(f, o);\n continue;\n }\n n.set(t.subarray(o, o + a), this.pos), this.pos += a, o += a, this.pos === i && (this.process(r, 0), this.pos = 0);\n }\n return this.length += t.length, this.roundClean(), this;\n }\n digestInto(t) {\n (0, To.exists)(this), (0, To.output)(t, this), this.finished = !0;\n const { buffer: r, view: n, blockLen: i, isLE: s } = this;\n let { pos: o } = this;\n r[o++] = 128, this.buffer.subarray(o).fill(0), this.padOffset > i - o && (this.process(n, 0), o = 0);\n for (let p = o; p < i; p++)\n r[p] = 0;\n rd(n, i - 8, BigInt(this.length * 8), s), this.process(n, 0);\n const a = (0, Fn.createView)(t), f = this.outputLen;\n if (f % 4)\n throw new Error(\"_sha2: outputLen should be aligned to 32bit\");\n const h = f / 4, l = this.get();\n if (h > l.length)\n throw new Error(\"_sha2: outputLen bigger than state\");\n for (let p = 0; p < h; p++)\n a.setUint32(4 * p, l[p], s);\n }\n digest() {\n const { buffer: t, outputLen: r } = this;\n this.digestInto(t);\n const n = t.slice(0, r);\n return this.destroy(), n;\n }\n _cloneInto(t) {\n t || (t = new this.constructor()), t.set(...this.get());\n const { blockLen: r, buffer: n, length: i, finished: s, destroyed: o, pos: a } = this;\n return t.length = i, t.pos = a, t.finished = s, t.destroyed = o, i % r && t.buffer.set(n), t;\n }\n}\nIn.SHA2 = nd;\nObject.defineProperty(Sn, \"__esModule\", { value: !0 });\nSn.ripemd160 = Sn.RIPEMD160 = void 0;\nconst id = In, od = Zn, sd = /* @__PURE__ */ new Uint8Array([7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8]), Wu = /* @__PURE__ */ Uint8Array.from({ length: 16 }, (e, t) => t), ad = /* @__PURE__ */ Wu.map((e) => (9 * e + 5) % 16);\nlet bs = [Wu], Ss = [ad];\nfor (let e = 0; e < 4; e++)\n for (let t of [bs, Ss])\n t.push(t[e].map((r) => sd[r]));\nconst Vu = /* @__PURE__ */ [\n [11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8],\n [12, 13, 11, 15, 6, 9, 9, 7, 12, 15, 11, 13, 7, 8, 7, 7],\n [13, 15, 14, 11, 7, 7, 6, 8, 13, 14, 13, 12, 5, 5, 6, 9],\n [14, 11, 12, 14, 8, 6, 5, 5, 15, 12, 15, 14, 9, 9, 8, 6],\n [15, 12, 13, 13, 9, 5, 8, 6, 14, 11, 12, 11, 8, 6, 5, 5]\n].map((e) => new Uint8Array(e)), ud = /* @__PURE__ */ bs.map((e, t) => e.map((r) => Vu[t][r])), cd = /* @__PURE__ */ Ss.map((e, t) => e.map((r) => Vu[t][r])), ld = /* @__PURE__ */ new Uint32Array([\n 0,\n 1518500249,\n 1859775393,\n 2400959708,\n 2840853838\n]), fd = /* @__PURE__ */ new Uint32Array([\n 1352829926,\n 1548603684,\n 1836072691,\n 2053994217,\n 0\n]), ui = (e, t) => e << t | e >>> 32 - t;\nfunction pa(e, t, r, n) {\n return e === 0 ? t ^ r ^ n : e === 1 ? t & r | ~t & n : e === 2 ? (t | ~r) ^ n : e === 3 ? t & n | r & ~n : t ^ (r | ~n);\n}\nconst ci = /* @__PURE__ */ new Uint32Array(16);\nclass Gu extends id.SHA2 {\n constructor() {\n super(64, 20, 8, !0), this.h0 = 1732584193, this.h1 = -271733879, this.h2 = -1732584194, this.h3 = 271733878, this.h4 = -1009589776;\n }\n get() {\n const { h0: t, h1: r, h2: n, h3: i, h4: s } = this;\n return [t, r, n, i, s];\n }\n set(t, r, n, i, s) {\n this.h0 = t | 0, this.h1 = r | 0, this.h2 = n | 0, this.h3 = i | 0, this.h4 = s | 0;\n }\n process(t, r) {\n for (let y = 0; y < 16; y++, r += 4)\n ci[y] = t.getUint32(r, !0);\n let n = this.h0 | 0, i = n, s = this.h1 | 0, o = s, a = this.h2 | 0, f = a, h = this.h3 | 0, l = h, p = this.h4 | 0, E = p;\n for (let y = 0; y < 5; y++) {\n const v = 4 - y, S = ld[y], T = fd[y], C = bs[y], O = Ss[y], B = ud[y], U = cd[y];\n for (let R = 0; R < 16; R++) {\n const k = ui(n + pa(y, s, a, h) + ci[C[R]] + S, B[R]) + p | 0;\n n = p, p = h, h = ui(a, 10) | 0, a = s, s = k;\n }\n for (let R = 0; R < 16; R++) {\n const k = ui(i + pa(v, o, f, l) + ci[O[R]] + T, U[R]) + E | 0;\n i = E, E = l, l = ui(f, 10) | 0, f = o, o = k;\n }\n }\n this.set(this.h1 + a + l | 0, this.h2 + h + E | 0, this.h3 + p + i | 0, this.h4 + n + o | 0, this.h0 + s + f | 0);\n }\n roundClean() {\n ci.fill(0);\n }\n destroy() {\n this.destroyed = !0, this.buffer.fill(0), this.set(0, 0, 0, 0, 0);\n }\n}\nSn.RIPEMD160 = Gu;\nSn.ripemd160 = (0, od.wrapConstructor)(() => new Gu());\nvar Ji = {};\nObject.defineProperty(Ji, \"__esModule\", { value: !0 });\nJi.sha1 = void 0;\nconst hd = In, dd = Zn, Io = (e, t) => e << t | e >>> 32 - t >>> 0, pd = (e, t, r) => e & t ^ ~e & r, gd = (e, t, r) => e & t ^ e & r ^ t & r, Un = /* @__PURE__ */ new Uint32Array([\n 1732584193,\n 4023233417,\n 2562383102,\n 271733878,\n 3285377520\n]), lr = /* @__PURE__ */ new Uint32Array(80);\nclass yd extends hd.SHA2 {\n constructor() {\n super(64, 20, 8, !1), this.A = Un[0] | 0, this.B = Un[1] | 0, this.C = Un[2] | 0, this.D = Un[3] | 0, this.E = Un[4] | 0;\n }\n get() {\n const { A: t, B: r, C: n, D: i, E: s } = this;\n return [t, r, n, i, s];\n }\n set(t, r, n, i, s) {\n this.A = t | 0, this.B = r | 0, this.C = n | 0, this.D = i | 0, this.E = s | 0;\n }\n process(t, r) {\n for (let f = 0; f < 16; f++, r += 4)\n lr[f] = t.getUint32(r, !1);\n for (let f = 16; f < 80; f++)\n lr[f] = Io(lr[f - 3] ^ lr[f - 8] ^ lr[f - 14] ^ lr[f - 16], 1);\n let { A: n, B: i, C: s, D: o, E: a } = this;\n for (let f = 0; f < 80; f++) {\n let h, l;\n f < 20 ? (h = pd(i, s, o), l = 1518500249) : f < 40 ? (h = i ^ s ^ o, l = 1859775393) : f < 60 ? (h = gd(i, s, o), l = 2400959708) : (h = i ^ s ^ o, l = 3395469782);\n const p = Io(n, 5) + h + a + l + lr[f] | 0;\n a = o, o = s, s = Io(i, 30), i = n, n = p;\n }\n n = n + this.A | 0, i = i + this.B | 0, s = s + this.C | 0, o = o + this.D | 0, a = a + this.E | 0, this.set(n, i, s, o, a);\n }\n roundClean() {\n lr.fill(0);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0), this.buffer.fill(0);\n }\n}\nJi.sha1 = (0, dd.wrapConstructor)(() => new yd());\nvar Rr = {};\nObject.defineProperty(Rr, \"__esModule\", { value: !0 });\nRr.sha224 = Rr.sha256 = void 0;\nconst md = In, yt = Zn, wd = (e, t, r) => e & t ^ ~e & r, Ed = (e, t, r) => e & t ^ e & r ^ t & r, bd = /* @__PURE__ */ new Uint32Array([\n 1116352408,\n 1899447441,\n 3049323471,\n 3921009573,\n 961987163,\n 1508970993,\n 2453635748,\n 2870763221,\n 3624381080,\n 310598401,\n 607225278,\n 1426881987,\n 1925078388,\n 2162078206,\n 2614888103,\n 3248222580,\n 3835390401,\n 4022224774,\n 264347078,\n 604807628,\n 770255983,\n 1249150122,\n 1555081692,\n 1996064986,\n 2554220882,\n 2821834349,\n 2952996808,\n 3210313671,\n 3336571891,\n 3584528711,\n 113926993,\n 338241895,\n 666307205,\n 773529912,\n 1294757372,\n 1396182291,\n 1695183700,\n 1986661051,\n 2177026350,\n 2456956037,\n 2730485921,\n 2820302411,\n 3259730800,\n 3345764771,\n 3516065817,\n 3600352804,\n 4094571909,\n 275423344,\n 430227734,\n 506948616,\n 659060556,\n 883997877,\n 958139571,\n 1322822218,\n 1537002063,\n 1747873779,\n 1955562222,\n 2024104815,\n 2227730452,\n 2361852424,\n 2428436474,\n 2756734187,\n 3204031479,\n 3329325298\n]), fr = /* @__PURE__ */ new Uint32Array([\n 1779033703,\n 3144134277,\n 1013904242,\n 2773480762,\n 1359893119,\n 2600822924,\n 528734635,\n 1541459225\n]), hr = /* @__PURE__ */ new Uint32Array(64);\nclass Xu extends md.SHA2 {\n constructor() {\n super(64, 32, 8, !1), this.A = fr[0] | 0, this.B = fr[1] | 0, this.C = fr[2] | 0, this.D = fr[3] | 0, this.E = fr[4] | 0, this.F = fr[5] | 0, this.G = fr[6] | 0, this.H = fr[7] | 0;\n }\n get() {\n const { A: t, B: r, C: n, D: i, E: s, F: o, G: a, H: f } = this;\n return [t, r, n, i, s, o, a, f];\n }\n // prettier-ignore\n set(t, r, n, i, s, o, a, f) {\n this.A = t | 0, this.B = r | 0, this.C = n | 0, this.D = i | 0, this.E = s | 0, this.F = o | 0, this.G = a | 0, this.H = f | 0;\n }\n process(t, r) {\n for (let p = 0; p < 16; p++, r += 4)\n hr[p] = t.getUint32(r, !1);\n for (let p = 16; p < 64; p++) {\n const E = hr[p - 15], y = hr[p - 2], v = (0, yt.rotr)(E, 7) ^ (0, yt.rotr)(E, 18) ^ E >>> 3, S = (0, yt.rotr)(y, 17) ^ (0, yt.rotr)(y, 19) ^ y >>> 10;\n hr[p] = S + hr[p - 7] + v + hr[p - 16] | 0;\n }\n let { A: n, B: i, C: s, D: o, E: a, F: f, G: h, H: l } = this;\n for (let p = 0; p < 64; p++) {\n const E = (0, yt.rotr)(a, 6) ^ (0, yt.rotr)(a, 11) ^ (0, yt.rotr)(a, 25), y = l + E + wd(a, f, h) + bd[p] + hr[p] | 0, S = ((0, yt.rotr)(n, 2) ^ (0, yt.rotr)(n, 13) ^ (0, yt.rotr)(n, 22)) + Ed(n, i, s) | 0;\n l = h, h = f, f = a, a = o + y | 0, o = s, s = i, i = n, n = y + S | 0;\n }\n n = n + this.A | 0, i = i + this.B | 0, s = s + this.C | 0, o = o + this.D | 0, a = a + this.E | 0, f = f + this.F | 0, h = h + this.G | 0, l = l + this.H | 0, this.set(n, i, s, o, a, f, h, l);\n }\n roundClean() {\n hr.fill(0);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0, 0, 0, 0), this.buffer.fill(0);\n }\n}\nclass Sd extends Xu {\n constructor() {\n super(), this.A = -1056596264, this.B = 914150663, this.C = 812702999, this.D = -150054599, this.E = -4191439, this.F = 1750603025, this.G = 1694076839, this.H = -1090891868, this.outputLen = 28;\n }\n}\nRr.sha256 = (0, yt.wrapConstructor)(() => new Xu());\nRr.sha224 = (0, yt.wrapConstructor)(() => new Sd());\n(function(e) {\n Object.defineProperty(e, \"__esModule\", { value: !0 }), e.taggedHash = e.TAGGED_HASH_PREFIXES = e.TAGS = e.hash256 = e.hash160 = e.sha256 = e.sha1 = e.ripemd160 = void 0;\n const t = Sn, r = Ji, n = Rr;\n function i(l) {\n return I.from((0, t.ripemd160)(Uint8Array.from(l)));\n }\n e.ripemd160 = i;\n function s(l) {\n return I.from((0, r.sha1)(Uint8Array.from(l)));\n }\n e.sha1 = s;\n function o(l) {\n return I.from((0, n.sha256)(Uint8Array.from(l)));\n }\n e.sha256 = o;\n function a(l) {\n return I.from(\n (0, t.ripemd160)((0, n.sha256)(Uint8Array.from(l)))\n );\n }\n e.hash160 = a;\n function f(l) {\n return I.from(\n (0, n.sha256)((0, n.sha256)(Uint8Array.from(l)))\n );\n }\n e.hash256 = f, e.TAGS = [\n \"BIP0340/challenge\",\n \"BIP0340/aux\",\n \"BIP0340/nonce\",\n \"TapLeaf\",\n \"TapBranch\",\n \"TapSighash\",\n \"TapTweak\",\n \"KeyAgg list\",\n \"KeyAgg coefficient\"\n ], e.TAGGED_HASH_PREFIXES = {\n \"BIP0340/challenge\": I.from([\n 123,\n 181,\n 45,\n 122,\n 159,\n 239,\n 88,\n 50,\n 62,\n 177,\n 191,\n 122,\n 64,\n 125,\n 179,\n 130,\n 210,\n 243,\n 242,\n 216,\n 27,\n 177,\n 34,\n 79,\n 73,\n 254,\n 81,\n 143,\n 109,\n 72,\n 211,\n 124,\n 123,\n 181,\n 45,\n 122,\n 159,\n 239,\n 88,\n 50,\n 62,\n 177,\n 191,\n 122,\n 64,\n 125,\n 179,\n 130,\n 210,\n 243,\n 242,\n 216,\n 27,\n 177,\n 34,\n 79,\n 73,\n 254,\n 81,\n 143,\n 109,\n 72,\n 211,\n 124\n ]),\n \"BIP0340/aux\": I.from([\n 241,\n 239,\n 78,\n 94,\n 192,\n 99,\n 202,\n 218,\n 109,\n 148,\n 202,\n 250,\n 157,\n 152,\n 126,\n 160,\n 105,\n 38,\n 88,\n 57,\n 236,\n 193,\n 31,\n 151,\n 45,\n 119,\n 165,\n 46,\n 216,\n 193,\n 204,\n 144,\n 241,\n 239,\n 78,\n 94,\n 192,\n 99,\n 202,\n 218,\n 109,\n 148,\n 202,\n 250,\n 157,\n 152,\n 126,\n 160,\n 105,\n 38,\n 88,\n 57,\n 236,\n 193,\n 31,\n 151,\n 45,\n 119,\n 165,\n 46,\n 216,\n 193,\n 204,\n 144\n ]),\n \"BIP0340/nonce\": I.from([\n 7,\n 73,\n 119,\n 52,\n 167,\n 155,\n 203,\n 53,\n 91,\n 155,\n 140,\n 125,\n 3,\n 79,\n 18,\n 28,\n 244,\n 52,\n 215,\n 62,\n 247,\n 45,\n 218,\n 25,\n 135,\n 0,\n 97,\n 251,\n 82,\n 191,\n 235,\n 47,\n 7,\n 73,\n 119,\n 52,\n 167,\n 155,\n 203,\n 53,\n 91,\n 155,\n 140,\n 125,\n 3,\n 79,\n 18,\n 28,\n 244,\n 52,\n 215,\n 62,\n 247,\n 45,\n 218,\n 25,\n 135,\n 0,\n 97,\n 251,\n 82,\n 191,\n 235,\n 47\n ]),\n TapLeaf: I.from([\n 174,\n 234,\n 143,\n 220,\n 66,\n 8,\n 152,\n 49,\n 5,\n 115,\n 75,\n 88,\n 8,\n 29,\n 30,\n 38,\n 56,\n 211,\n 95,\n 28,\n 181,\n 64,\n 8,\n 212,\n 211,\n 87,\n 202,\n 3,\n 190,\n 120,\n 233,\n 238,\n 174,\n 234,\n 143,\n 220,\n 66,\n 8,\n 152,\n 49,\n 5,\n 115,\n 75,\n 88,\n 8,\n 29,\n 30,\n 38,\n 56,\n 211,\n 95,\n 28,\n 181,\n 64,\n 8,\n 212,\n 211,\n 87,\n 202,\n 3,\n 190,\n 120,\n 233,\n 238\n ]),\n TapBranch: I.from([\n 25,\n 65,\n 161,\n 242,\n 229,\n 110,\n 185,\n 95,\n 162,\n 169,\n 241,\n 148,\n 190,\n 92,\n 1,\n 247,\n 33,\n 111,\n 51,\n 237,\n 130,\n 176,\n 145,\n 70,\n 52,\n 144,\n 208,\n 91,\n 245,\n 22,\n 160,\n 21,\n 25,\n 65,\n 161,\n 242,\n 229,\n 110,\n 185,\n 95,\n 162,\n 169,\n 241,\n 148,\n 190,\n 92,\n 1,\n 247,\n 33,\n 111,\n 51,\n 237,\n 130,\n 176,\n 145,\n 70,\n 52,\n 144,\n 208,\n 91,\n 245,\n 22,\n 160,\n 21\n ]),\n TapSighash: I.from([\n 244,\n 10,\n 72,\n 223,\n 75,\n 42,\n 112,\n 200,\n 180,\n 146,\n 75,\n 242,\n 101,\n 70,\n 97,\n 237,\n 61,\n 149,\n 253,\n 102,\n 163,\n 19,\n 235,\n 135,\n 35,\n 117,\n 151,\n 198,\n 40,\n 228,\n 160,\n 49,\n 244,\n 10,\n 72,\n 223,\n 75,\n 42,\n 112,\n 200,\n 180,\n 146,\n 75,\n 242,\n 101,\n 70,\n 97,\n 237,\n 61,\n 149,\n 253,\n 102,\n 163,\n 19,\n 235,\n 135,\n 35,\n 117,\n 151,\n 198,\n 40,\n 228,\n 160,\n 49\n ]),\n TapTweak: I.from([\n 232,\n 15,\n 225,\n 99,\n 156,\n 156,\n 160,\n 80,\n 227,\n 175,\n 27,\n 57,\n 193,\n 67,\n 198,\n 62,\n 66,\n 156,\n 188,\n 235,\n 21,\n 217,\n 64,\n 251,\n 181,\n 197,\n 161,\n 244,\n 175,\n 87,\n 197,\n 233,\n 232,\n 15,\n 225,\n 99,\n 156,\n 156,\n 160,\n 80,\n 227,\n 175,\n 27,\n 57,\n 193,\n 67,\n 198,\n 62,\n 66,\n 156,\n 188,\n 235,\n 21,\n 217,\n 64,\n 251,\n 181,\n 197,\n 161,\n 244,\n 175,\n 87,\n 197,\n 233\n ]),\n \"KeyAgg list\": I.from([\n 72,\n 28,\n 151,\n 28,\n 60,\n 11,\n 70,\n 215,\n 240,\n 178,\n 117,\n 174,\n 89,\n 141,\n 78,\n 44,\n 126,\n 215,\n 49,\n 156,\n 89,\n 74,\n 92,\n 110,\n 199,\n 158,\n 160,\n 212,\n 153,\n 2,\n 148,\n 240,\n 72,\n 28,\n 151,\n 28,\n 60,\n 11,\n 70,\n 215,\n 240,\n 178,\n 117,\n 174,\n 89,\n 141,\n 78,\n 44,\n 126,\n 215,\n 49,\n 156,\n 89,\n 74,\n 92,\n 110,\n 199,\n 158,\n 160,\n 212,\n 153,\n 2,\n 148,\n 240\n ]),\n \"KeyAgg coefficient\": I.from([\n 191,\n 201,\n 4,\n 3,\n 77,\n 28,\n 136,\n 232,\n 200,\n 14,\n 34,\n 229,\n 61,\n 36,\n 86,\n 109,\n 100,\n 130,\n 78,\n 214,\n 66,\n 114,\n 129,\n 192,\n 145,\n 0,\n 249,\n 77,\n 205,\n 82,\n 201,\n 129,\n 191,\n 201,\n 4,\n 3,\n 77,\n 28,\n 136,\n 232,\n 200,\n 14,\n 34,\n 229,\n 61,\n 36,\n 86,\n 109,\n 100,\n 130,\n 78,\n 214,\n 66,\n 114,\n 129,\n 192,\n 145,\n 0,\n 249,\n 77,\n 205,\n 82,\n 201,\n 129\n ])\n };\n function h(l, p) {\n return o(I.concat([e.TAGGED_HASH_PREFIXES[l], p]));\n }\n e.taggedHash = h;\n})(Ut);\nfunction vd(e) {\n if (e.length >= 255)\n throw new TypeError(\"Alphabet too long\");\n for (var t = new Uint8Array(256), r = 0; r < t.length; r++)\n t[r] = 255;\n for (var n = 0; n < e.length; n++) {\n var i = e.charAt(n), s = i.charCodeAt(0);\n if (t[s] !== 255)\n throw new TypeError(i + \" is ambiguous\");\n t[s] = n;\n }\n var o = e.length, a = e.charAt(0), f = Math.log(o) / Math.log(256), h = Math.log(256) / Math.log(o);\n function l(y) {\n if (y instanceof Uint8Array || (ArrayBuffer.isView(y) ? y = new Uint8Array(y.buffer, y.byteOffset, y.byteLength) : Array.isArray(y) && (y = Uint8Array.from(y))), !(y instanceof Uint8Array))\n throw new TypeError(\"Expected Uint8Array\");\n if (y.length === 0)\n return \"\";\n for (var v = 0, S = 0, T = 0, C = y.length; T !== C && y[T] === 0; )\n T++, v++;\n for (var O = (C - T) * h + 1 >>> 0, B = new Uint8Array(O); T !== C; ) {\n for (var U = y[T], R = 0, k = O - 1; (U !== 0 || R < S) && k !== -1; k--, R++)\n U += 256 * B[k] >>> 0, B[k] = U % o >>> 0, U = U / o >>> 0;\n if (U !== 0)\n throw new Error(\"Non-zero carry\");\n S = R, T++;\n }\n for (var j = O - S; j !== O && B[j] === 0; )\n j++;\n for (var A = a.repeat(v); j < O; ++j)\n A += e.charAt(B[j]);\n return A;\n }\n function p(y) {\n if (typeof y != \"string\")\n throw new TypeError(\"Expected String\");\n if (y.length === 0)\n return new Uint8Array();\n for (var v = 0, S = 0, T = 0; y[v] === a; )\n S++, v++;\n for (var C = (y.length - v) * f + 1 >>> 0, O = new Uint8Array(C); y[v]; ) {\n var B = t[y.charCodeAt(v)];\n if (B === 255)\n return;\n for (var U = 0, R = C - 1; (B !== 0 || U < T) && R !== -1; R--, U++)\n B += o * O[R] >>> 0, O[R] = B % 256 >>> 0, B = B / 256 >>> 0;\n if (B !== 0)\n throw new Error(\"Non-zero carry\");\n T = U, v++;\n }\n for (var k = C - T; k !== C && O[k] === 0; )\n k++;\n for (var j = new Uint8Array(S + (C - k)), A = S; k !== C; )\n j[A++] = O[k++];\n return j;\n }\n function E(y) {\n var v = p(y);\n if (v)\n return v;\n throw new Error(\"Non-base\" + o + \" character\");\n }\n return {\n encode: l,\n decodeUnsafe: p,\n decode: E\n };\n}\nvar _d = vd;\nconst Td = _d, Id = \"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz\";\nvar Pd = Td(Id), Po = Pd, Od = function(e) {\n function t(s) {\n var o = Uint8Array.from(s), a = e(o), f = o.length + 4, h = new Uint8Array(f);\n return h.set(o, 0), h.set(a.subarray(0, 4), o.length), Po.encode(h, f);\n }\n function r(s) {\n var o = s.slice(0, -4), a = s.slice(-4), f = e(o);\n if (!(a[0] ^ f[0] | a[1] ^ f[1] | a[2] ^ f[2] | a[3] ^ f[3]))\n return o;\n }\n function n(s) {\n var o = Po.decodeUnsafe(s);\n if (o)\n return r(o);\n }\n function i(s) {\n var o = Po.decode(s), a = r(o);\n if (!a)\n throw new Error(\"Invalid checksum\");\n return a;\n }\n return {\n encode: t,\n decode: i,\n decodeUnsafe: n\n };\n}, { sha256: ga } = Rr, kd = Od;\nfunction Ad(e) {\n return ga(ga(e));\n}\nvar vs = kd(Ad);\nObject.defineProperty(zi, \"__esModule\", { value: !0 });\nzi.p2pkh = void 0;\nconst Oo = Ut, xd = He, hn = ot, Qe = qe, Kt = ht, ya = vs, dr = hn.OPS;\nfunction Cd(e, t) {\n if (!e.address && !e.hash && !e.output && !e.pubkey && !e.input)\n throw new TypeError(\"Not enough data\");\n t = Object.assign({ validate: !0 }, t || {}), (0, Qe.typeforce)(\n {\n network: Qe.typeforce.maybe(Qe.typeforce.Object),\n address: Qe.typeforce.maybe(Qe.typeforce.String),\n hash: Qe.typeforce.maybe(Qe.typeforce.BufferN(20)),\n output: Qe.typeforce.maybe(Qe.typeforce.BufferN(25)),\n pubkey: Qe.typeforce.maybe(Qe.isPoint),\n signature: Qe.typeforce.maybe(hn.isCanonicalScriptSignature),\n input: Qe.typeforce.maybe(Qe.typeforce.Buffer)\n },\n e\n );\n const r = Kt.value(() => {\n const o = I.from(ya.decode(e.address)), a = o.readUInt8(0), f = o.slice(1);\n return { version: a, hash: f };\n }), n = Kt.value(() => hn.decompile(e.input)), i = e.network || xd.bitcoin, s = { name: \"p2pkh\", network: i };\n if (Kt.prop(s, \"address\", () => {\n if (!s.hash)\n return;\n const o = I.allocUnsafe(21);\n return o.writeUInt8(i.pubKeyHash, 0), s.hash.copy(o, 1), ya.encode(o);\n }), Kt.prop(s, \"hash\", () => {\n if (e.output)\n return e.output.slice(3, 23);\n if (e.address)\n return r().hash;\n if (e.pubkey || s.pubkey)\n return Oo.hash160(e.pubkey || s.pubkey);\n }), Kt.prop(s, \"output\", () => {\n if (s.hash)\n return hn.compile([\n dr.OP_DUP,\n dr.OP_HASH160,\n s.hash,\n dr.OP_EQUALVERIFY,\n dr.OP_CHECKSIG\n ]);\n }), Kt.prop(s, \"pubkey\", () => {\n if (e.input)\n return n()[1];\n }), Kt.prop(s, \"signature\", () => {\n if (e.input)\n return n()[0];\n }), Kt.prop(s, \"input\", () => {\n if (e.pubkey && e.signature)\n return hn.compile([e.signature, e.pubkey]);\n }), Kt.prop(s, \"witness\", () => {\n if (s.input)\n return [];\n }), t.validate) {\n let o = I.from([]);\n if (e.address) {\n if (r().version !== i.pubKeyHash)\n throw new TypeError(\"Invalid version or Network mismatch\");\n if (r().hash.length !== 20)\n throw new TypeError(\"Invalid address\");\n o = r().hash;\n }\n if (e.hash) {\n if (o.length > 0 && !o.equals(e.hash))\n throw new TypeError(\"Hash mismatch\");\n o = e.hash;\n }\n if (e.output) {\n if (e.output.length !== 25 || e.output[0] !== dr.OP_DUP || e.output[1] !== dr.OP_HASH160 || e.output[2] !== 20 || e.output[23] !== dr.OP_EQUALVERIFY || e.output[24] !== dr.OP_CHECKSIG)\n throw new TypeError(\"Output is invalid\");\n const a = e.output.slice(3, 23);\n if (o.length > 0 && !o.equals(a))\n throw new TypeError(\"Hash mismatch\");\n o = a;\n }\n if (e.pubkey) {\n const a = Oo.hash160(e.pubkey);\n if (o.length > 0 && !o.equals(a))\n throw new TypeError(\"Hash mismatch\");\n o = a;\n }\n if (e.input) {\n const a = n();\n if (a.length !== 2)\n throw new TypeError(\"Input is invalid\");\n if (!hn.isCanonicalScriptSignature(a[0]))\n throw new TypeError(\"Input has invalid signature\");\n if (!(0, Qe.isPoint)(a[1]))\n throw new TypeError(\"Input has invalid pubkey\");\n if (e.signature && !e.signature.equals(a[0]))\n throw new TypeError(\"Signature mismatch\");\n if (e.pubkey && !e.pubkey.equals(a[1]))\n throw new TypeError(\"Pubkey mismatch\");\n const f = Oo.hash160(a[1]);\n if (o.length > 0 && !o.equals(f))\n throw new TypeError(\"Hash mismatch\");\n }\n }\n return Object.assign(s, e);\n}\nzi.p2pkh = Cd;\nvar Qi = {};\nObject.defineProperty(Qi, \"__esModule\", { value: !0 });\nQi.p2sh = void 0;\nconst ma = Ut, Bd = He, kt = ot, ge = qe, Pt = ht, wa = vs, Rn = kt.OPS;\nfunction Nd(e, t) {\n return e.length !== t.length ? !1 : e.every((r, n) => r.equals(t[n]));\n}\nfunction Fd(e, t) {\n if (!e.address && !e.hash && !e.output && !e.redeem && !e.input)\n throw new TypeError(\"Not enough data\");\n t = Object.assign({ validate: !0 }, t || {}), (0, ge.typeforce)(\n {\n network: ge.typeforce.maybe(ge.typeforce.Object),\n address: ge.typeforce.maybe(ge.typeforce.String),\n hash: ge.typeforce.maybe(ge.typeforce.BufferN(20)),\n output: ge.typeforce.maybe(ge.typeforce.BufferN(23)),\n redeem: ge.typeforce.maybe({\n network: ge.typeforce.maybe(ge.typeforce.Object),\n output: ge.typeforce.maybe(ge.typeforce.Buffer),\n input: ge.typeforce.maybe(ge.typeforce.Buffer),\n witness: ge.typeforce.maybe(\n ge.typeforce.arrayOf(ge.typeforce.Buffer)\n )\n }),\n input: ge.typeforce.maybe(ge.typeforce.Buffer),\n witness: ge.typeforce.maybe(\n ge.typeforce.arrayOf(ge.typeforce.Buffer)\n )\n },\n e\n );\n let r = e.network;\n r || (r = e.redeem && e.redeem.network || Bd.bitcoin);\n const n = { network: r }, i = Pt.value(() => {\n const a = I.from(wa.decode(e.address)), f = a.readUInt8(0), h = a.slice(1);\n return { version: f, hash: h };\n }), s = Pt.value(() => kt.decompile(e.input)), o = Pt.value(() => {\n const a = s(), f = a[a.length - 1];\n return {\n network: r,\n output: f === Rn.OP_FALSE ? I.from([]) : f,\n input: kt.compile(a.slice(0, -1)),\n witness: e.witness || []\n };\n });\n if (Pt.prop(n, \"address\", () => {\n if (!n.hash)\n return;\n const a = I.allocUnsafe(21);\n return a.writeUInt8(n.network.scriptHash, 0), n.hash.copy(a, 1), wa.encode(a);\n }), Pt.prop(n, \"hash\", () => {\n if (e.output)\n return e.output.slice(2, 22);\n if (e.address)\n return i().hash;\n if (n.redeem && n.redeem.output)\n return ma.hash160(n.redeem.output);\n }), Pt.prop(n, \"output\", () => {\n if (n.hash)\n return kt.compile([Rn.OP_HASH160, n.hash, Rn.OP_EQUAL]);\n }), Pt.prop(n, \"redeem\", () => {\n if (e.input)\n return o();\n }), Pt.prop(n, \"input\", () => {\n if (!(!e.redeem || !e.redeem.input || !e.redeem.output))\n return kt.compile(\n [].concat(kt.decompile(e.redeem.input), e.redeem.output)\n );\n }), Pt.prop(n, \"witness\", () => {\n if (n.redeem && n.redeem.witness)\n return n.redeem.witness;\n if (n.input)\n return [];\n }), Pt.prop(n, \"name\", () => {\n const a = [\"p2sh\"];\n return n.redeem !== void 0 && n.redeem.name !== void 0 && a.push(n.redeem.name), a.join(\"-\");\n }), t.validate) {\n let a = I.from([]);\n if (e.address) {\n if (i().version !== r.scriptHash)\n throw new TypeError(\"Invalid version or Network mismatch\");\n if (i().hash.length !== 20)\n throw new TypeError(\"Invalid address\");\n a = i().hash;\n }\n if (e.hash) {\n if (a.length > 0 && !a.equals(e.hash))\n throw new TypeError(\"Hash mismatch\");\n a = e.hash;\n }\n if (e.output) {\n if (e.output.length !== 23 || e.output[0] !== Rn.OP_HASH160 || e.output[1] !== 20 || e.output[22] !== Rn.OP_EQUAL)\n throw new TypeError(\"Output is invalid\");\n const h = e.output.slice(2, 22);\n if (a.length > 0 && !a.equals(h))\n throw new TypeError(\"Hash mismatch\");\n a = h;\n }\n const f = (h) => {\n if (h.output) {\n const l = kt.decompile(h.output);\n if (!l || l.length < 1)\n throw new TypeError(\"Redeem.output too short\");\n if (h.output.byteLength > 520)\n throw new TypeError(\n \"Redeem.output unspendable if larger than 520 bytes\"\n );\n if (kt.countNonPushOnlyOPs(l) > 201)\n throw new TypeError(\n \"Redeem.output unspendable with more than 201 non-push ops\"\n );\n const p = ma.hash160(h.output);\n if (a.length > 0 && !a.equals(p))\n throw new TypeError(\"Hash mismatch\");\n a = p;\n }\n if (h.input) {\n const l = h.input.length > 0, p = h.witness && h.witness.length > 0;\n if (!l && !p)\n throw new TypeError(\"Empty input\");\n if (l && p)\n throw new TypeError(\"Input and witness provided\");\n if (l) {\n const E = kt.decompile(h.input);\n if (!kt.isPushOnly(E))\n throw new TypeError(\"Non push-only scriptSig\");\n }\n }\n };\n if (e.input) {\n const h = s();\n if (!h || h.length < 1)\n throw new TypeError(\"Input too short\");\n if (!I.isBuffer(o().output))\n throw new TypeError(\"Input is invalid\");\n f(o());\n }\n if (e.redeem) {\n if (e.redeem.network && e.redeem.network !== r)\n throw new TypeError(\"Network mismatch\");\n if (e.input) {\n const h = o();\n if (e.redeem.output && !e.redeem.output.equals(h.output))\n throw new TypeError(\"Redeem.output mismatch\");\n if (e.redeem.input && !e.redeem.input.equals(h.input))\n throw new TypeError(\"Redeem.input mismatch\");\n }\n f(e.redeem);\n }\n if (e.witness && e.redeem && e.redeem.witness && !Nd(e.redeem.witness, e.witness))\n throw new TypeError(\"Witness and redeem.witness mismatch\");\n }\n return Object.assign(n, e);\n}\nQi.p2sh = Fd;\nvar Zi = {}, tr = {};\nObject.defineProperty(tr, \"__esModule\", { value: !0 });\ntr.bech32m = tr.bech32 = void 0;\nconst Ci = \"qpzry9x8gf2tvdw0s3jn54khce6mua7l\", qu = {};\nfor (let e = 0; e < Ci.length; e++) {\n const t = Ci.charAt(e);\n qu[t] = e;\n}\nfunction gn(e) {\n const t = e >> 25;\n return (e & 33554431) << 5 ^ -(t >> 0 & 1) & 996825010 ^ -(t >> 1 & 1) & 642813549 ^ -(t >> 2 & 1) & 513874426 ^ -(t >> 3 & 1) & 1027748829 ^ -(t >> 4 & 1) & 705979059;\n}\nfunction Ea(e) {\n let t = 1;\n for (let r = 0; r < e.length; ++r) {\n const n = e.charCodeAt(r);\n if (n < 33 || n > 126)\n return \"Invalid prefix (\" + e + \")\";\n t = gn(t) ^ n >> 5;\n }\n t = gn(t);\n for (let r = 0; r < e.length; ++r) {\n const n = e.charCodeAt(r);\n t = gn(t) ^ n & 31;\n }\n return t;\n}\nfunction _s(e, t, r, n) {\n let i = 0, s = 0;\n const o = (1 << r) - 1, a = [];\n for (let f = 0; f < e.length; ++f)\n for (i = i << t | e[f], s += t; s >= r; )\n s -= r, a.push(i >> s & o);\n if (n)\n s > 0 && a.push(i << r - s & o);\n else {\n if (s >= t)\n return \"Excess padding\";\n if (i << r - s & o)\n return \"Non-zero padding\";\n }\n return a;\n}\nfunction Ud(e) {\n return _s(e, 8, 5, !0);\n}\nfunction Rd(e) {\n const t = _s(e, 5, 8, !1);\n if (Array.isArray(t))\n return t;\n}\nfunction Ld(e) {\n const t = _s(e, 5, 8, !1);\n if (Array.isArray(t))\n return t;\n throw new Error(t);\n}\nfunction zu(e) {\n let t;\n e === \"bech32\" ? t = 1 : t = 734539939;\n function r(o, a, f) {\n if (f = f || 90, o.length + 7 + a.length > f)\n throw new TypeError(\"Exceeds length limit\");\n o = o.toLowerCase();\n let h = Ea(o);\n if (typeof h == \"string\")\n throw new Error(h);\n let l = o + \"1\";\n for (let p = 0; p < a.length; ++p) {\n const E = a[p];\n if (E >> 5)\n throw new Error(\"Non 5-bit word\");\n h = gn(h) ^ E, l += Ci.charAt(E);\n }\n for (let p = 0; p < 6; ++p)\n h = gn(h);\n h ^= t;\n for (let p = 0; p < 6; ++p) {\n const E = h >> (5 - p) * 5 & 31;\n l += Ci.charAt(E);\n }\n return l;\n }\n function n(o, a) {\n if (a = a || 90, o.length < 8)\n return o + \" too short\";\n if (o.length > a)\n return \"Exceeds length limit\";\n const f = o.toLowerCase(), h = o.toUpperCase();\n if (o !== f && o !== h)\n return \"Mixed-case string \" + o;\n o = f;\n const l = o.lastIndexOf(\"1\");\n if (l === -1)\n return \"No separator character for \" + o;\n if (l === 0)\n return \"Missing prefix for \" + o;\n const p = o.slice(0, l), E = o.slice(l + 1);\n if (E.length < 6)\n return \"Data too short\";\n let y = Ea(p);\n if (typeof y == \"string\")\n return y;\n const v = [];\n for (let S = 0; S < E.length; ++S) {\n const T = E.charAt(S), C = qu[T];\n if (C === void 0)\n return \"Unknown character \" + T;\n y = gn(y) ^ C, !(S + 6 >= E.length) && v.push(C);\n }\n return y !== t ? \"Invalid checksum for \" + o : { prefix: p, words: v };\n }\n function i(o, a) {\n const f = n(o, a);\n if (typeof f == \"object\")\n return f;\n }\n function s(o, a) {\n const f = n(o, a);\n if (typeof f == \"object\")\n return f;\n throw new Error(f);\n }\n return {\n decodeUnsafe: i,\n decode: s,\n encode: r,\n toWords: Ud,\n fromWordsUnsafe: Rd,\n fromWords: Ld\n };\n}\ntr.bech32 = zu(\"bech32\");\ntr.bech32m = zu(\"bech32m\");\nObject.defineProperty(Zi, \"__esModule\", { value: !0 });\nZi.p2wpkh = void 0;\nconst ko = Ut, Hd = He, _i = ot, xe = qe, pr = ht, li = tr, ba = _i.OPS, $d = I.alloc(0);\nfunction Md(e, t) {\n if (!e.address && !e.hash && !e.output && !e.pubkey && !e.witness)\n throw new TypeError(\"Not enough data\");\n t = Object.assign({ validate: !0 }, t || {}), (0, xe.typeforce)(\n {\n address: xe.typeforce.maybe(xe.typeforce.String),\n hash: xe.typeforce.maybe(xe.typeforce.BufferN(20)),\n input: xe.typeforce.maybe(xe.typeforce.BufferN(0)),\n network: xe.typeforce.maybe(xe.typeforce.Object),\n output: xe.typeforce.maybe(xe.typeforce.BufferN(22)),\n pubkey: xe.typeforce.maybe(xe.isPoint),\n signature: xe.typeforce.maybe(_i.isCanonicalScriptSignature),\n witness: xe.typeforce.maybe(\n xe.typeforce.arrayOf(xe.typeforce.Buffer)\n )\n },\n e\n );\n const r = pr.value(() => {\n const s = li.bech32.decode(e.address), o = s.words.shift(), a = li.bech32.fromWords(s.words);\n return {\n version: o,\n prefix: s.prefix,\n data: I.from(a)\n };\n }), n = e.network || Hd.bitcoin, i = { name: \"p2wpkh\", network: n };\n if (pr.prop(i, \"address\", () => {\n if (!i.hash)\n return;\n const s = li.bech32.toWords(i.hash);\n return s.unshift(0), li.bech32.encode(n.bech32, s);\n }), pr.prop(i, \"hash\", () => {\n if (e.output)\n return e.output.slice(2, 22);\n if (e.address)\n return r().data;\n if (e.pubkey || i.pubkey)\n return ko.hash160(e.pubkey || i.pubkey);\n }), pr.prop(i, \"output\", () => {\n if (i.hash)\n return _i.compile([ba.OP_0, i.hash]);\n }), pr.prop(i, \"pubkey\", () => {\n if (e.pubkey)\n return e.pubkey;\n if (e.witness)\n return e.witness[1];\n }), pr.prop(i, \"signature\", () => {\n if (e.witness)\n return e.witness[0];\n }), pr.prop(i, \"input\", () => {\n if (i.witness)\n return $d;\n }), pr.prop(i, \"witness\", () => {\n if (e.pubkey && e.signature)\n return [e.signature, e.pubkey];\n }), t.validate) {\n let s = I.from([]);\n if (e.address) {\n if (n && n.bech32 !== r().prefix)\n throw new TypeError(\"Invalid prefix or Network mismatch\");\n if (r().version !== 0)\n throw new TypeError(\"Invalid address version\");\n if (r().data.length !== 20)\n throw new TypeError(\"Invalid address data\");\n s = r().data;\n }\n if (e.hash) {\n if (s.length > 0 && !s.equals(e.hash))\n throw new TypeError(\"Hash mismatch\");\n s = e.hash;\n }\n if (e.output) {\n if (e.output.length !== 22 || e.output[0] !== ba.OP_0 || e.output[1] !== 20)\n throw new TypeError(\"Output is invalid\");\n if (s.length > 0 && !s.equals(e.output.slice(2)))\n throw new TypeError(\"Hash mismatch\");\n s = e.output.slice(2);\n }\n if (e.pubkey) {\n const o = ko.hash160(e.pubkey);\n if (s.length > 0 && !s.equals(o))\n throw new TypeError(\"Hash mismatch\");\n if (s = o, !(0, xe.isPoint)(e.pubkey) || e.pubkey.length !== 33)\n throw new TypeError(\"Invalid pubkey for p2wpkh\");\n }\n if (e.witness) {\n if (e.witness.length !== 2)\n throw new TypeError(\"Witness is invalid\");\n if (!_i.isCanonicalScriptSignature(e.witness[0]))\n throw new TypeError(\"Witness has invalid signature\");\n if (!(0, xe.isPoint)(e.witness[1]) || e.witness[1].length !== 33)\n throw new TypeError(\"Witness has invalid pubkey\");\n if (e.signature && !e.signature.equals(e.witness[0]))\n throw new TypeError(\"Signature mismatch\");\n if (e.pubkey && !e.pubkey.equals(e.witness[1]))\n throw new TypeError(\"Pubkey mismatch\");\n const o = ko.hash160(e.witness[1]);\n if (s.length > 0 && !s.equals(o))\n throw new TypeError(\"Hash mismatch\");\n }\n }\n return Object.assign(i, e);\n}\nZi.p2wpkh = Md;\nvar eo = {};\nObject.defineProperty(eo, \"__esModule\", { value: !0 });\neo.p2wsh = void 0;\nconst Sa = Ut, Dd = He, Gt = ot, de = qe, Wt = ht, fi = tr, va = Gt.OPS, Ao = I.alloc(0);\nfunction jd(e, t) {\n return e.length !== t.length ? !1 : e.every((r, n) => r.equals(t[n]));\n}\nfunction hi(e) {\n return !!(I.isBuffer(e) && e.length === 65 && e[0] === 4 && (0, de.isPoint)(e));\n}\nfunction Kd(e, t) {\n if (!e.address && !e.hash && !e.output && !e.redeem && !e.witness)\n throw new TypeError(\"Not enough data\");\n t = Object.assign({ validate: !0 }, t || {}), (0, de.typeforce)(\n {\n network: de.typeforce.maybe(de.typeforce.Object),\n address: de.typeforce.maybe(de.typeforce.String),\n hash: de.typeforce.maybe(de.typeforce.BufferN(32)),\n output: de.typeforce.maybe(de.typeforce.BufferN(34)),\n redeem: de.typeforce.maybe({\n input: de.typeforce.maybe(de.typeforce.Buffer),\n network: de.typeforce.maybe(de.typeforce.Object),\n output: de.typeforce.maybe(de.typeforce.Buffer),\n witness: de.typeforce.maybe(\n de.typeforce.arrayOf(de.typeforce.Buffer)\n )\n }),\n input: de.typeforce.maybe(de.typeforce.BufferN(0)),\n witness: de.typeforce.maybe(\n de.typeforce.arrayOf(de.typeforce.Buffer)\n )\n },\n e\n );\n const r = Wt.value(() => {\n const o = fi.bech32.decode(e.address), a = o.words.shift(), f = fi.bech32.fromWords(o.words);\n return {\n version: a,\n prefix: o.prefix,\n data: I.from(f)\n };\n }), n = Wt.value(() => Gt.decompile(e.redeem.input));\n let i = e.network;\n i || (i = e.redeem && e.redeem.network || Dd.bitcoin);\n const s = { network: i };\n if (Wt.prop(s, \"address\", () => {\n if (!s.hash)\n return;\n const o = fi.bech32.toWords(s.hash);\n return o.unshift(0), fi.bech32.encode(i.bech32, o);\n }), Wt.prop(s, \"hash\", () => {\n if (e.output)\n return e.output.slice(2);\n if (e.address)\n return r().data;\n if (s.redeem && s.redeem.output)\n return Sa.sha256(s.redeem.output);\n }), Wt.prop(s, \"output\", () => {\n if (s.hash)\n return Gt.compile([va.OP_0, s.hash]);\n }), Wt.prop(s, \"redeem\", () => {\n if (e.witness)\n return {\n output: e.witness[e.witness.length - 1],\n input: Ao,\n witness: e.witness.slice(0, -1)\n };\n }), Wt.prop(s, \"input\", () => {\n if (s.witness)\n return Ao;\n }), Wt.prop(s, \"witness\", () => {\n if (e.redeem && e.redeem.input && e.redeem.input.length > 0 && e.redeem.output && e.redeem.output.length > 0) {\n const o = Gt.toStack(n());\n return s.redeem = Object.assign({ witness: o }, e.redeem), s.redeem.input = Ao, [].concat(o, e.redeem.output);\n }\n if (e.redeem && e.redeem.output && e.redeem.witness)\n return [].concat(e.redeem.witness, e.redeem.output);\n }), Wt.prop(s, \"name\", () => {\n const o = [\"p2wsh\"];\n return s.redeem !== void 0 && s.redeem.name !== void 0 && o.push(s.redeem.name), o.join(\"-\");\n }), t.validate) {\n let o = I.from([]);\n if (e.address) {\n if (r().prefix !== i.bech32)\n throw new TypeError(\"Invalid prefix or Network mismatch\");\n if (r().version !== 0)\n throw new TypeError(\"Invalid address version\");\n if (r().data.length !== 32)\n throw new TypeError(\"Invalid address data\");\n o = r().data;\n }\n if (e.hash) {\n if (o.length > 0 && !o.equals(e.hash))\n throw new TypeError(\"Hash mismatch\");\n o = e.hash;\n }\n if (e.output) {\n if (e.output.length !== 34 || e.output[0] !== va.OP_0 || e.output[1] !== 32)\n throw new TypeError(\"Output is invalid\");\n const a = e.output.slice(2);\n if (o.length > 0 && !o.equals(a))\n throw new TypeError(\"Hash mismatch\");\n o = a;\n }\n if (e.redeem) {\n if (e.redeem.network && e.redeem.network !== i)\n throw new TypeError(\"Network mismatch\");\n if (e.redeem.input && e.redeem.input.length > 0 && e.redeem.witness && e.redeem.witness.length > 0)\n throw new TypeError(\"Ambiguous witness source\");\n if (e.redeem.output) {\n const a = Gt.decompile(e.redeem.output);\n if (!a || a.length < 1)\n throw new TypeError(\"Redeem.output is invalid\");\n if (e.redeem.output.byteLength > 3600)\n throw new TypeError(\n \"Redeem.output unspendable if larger than 3600 bytes\"\n );\n if (Gt.countNonPushOnlyOPs(a) > 201)\n throw new TypeError(\n \"Redeem.output unspendable with more than 201 non-push ops\"\n );\n const f = Sa.sha256(e.redeem.output);\n if (o.length > 0 && !o.equals(f))\n throw new TypeError(\"Hash mismatch\");\n o = f;\n }\n if (e.redeem.input && !Gt.isPushOnly(n()))\n throw new TypeError(\"Non push-only scriptSig\");\n if (e.witness && e.redeem.witness && !jd(e.witness, e.redeem.witness))\n throw new TypeError(\"Witness and redeem.witness mismatch\");\n if (e.redeem.input && n().some(hi) || e.redeem.output && (Gt.decompile(e.redeem.output) || []).some(\n hi\n ))\n throw new TypeError(\n \"redeem.input or redeem.output contains uncompressed pubkey\"\n );\n }\n if (e.witness && e.witness.length > 0) {\n const a = e.witness[e.witness.length - 1];\n if (e.redeem && e.redeem.output && !e.redeem.output.equals(a))\n throw new TypeError(\"Witness and redeem.output mismatch\");\n if (e.witness.some(hi) || (Gt.decompile(a) || []).some(hi))\n throw new TypeError(\"Witness contains uncompressed pubkey\");\n }\n }\n return Object.assign(s, e);\n}\neo.p2wsh = Kd;\nvar to = {}, Tr = {};\nObject.defineProperty(Tr, \"__esModule\", { value: !0 });\nTr.getEccLib = Tr.initEccLib = void 0;\nconst Vn = {};\nfunction Wd(e) {\n e ? e !== Vn.eccLib && (Gd(e), Vn.eccLib = e) : Vn.eccLib = e;\n}\nTr.initEccLib = Wd;\nfunction Vd() {\n if (!Vn.eccLib)\n throw new Error(\n \"No ECC Library provided. You must call initEccLib() with a valid TinySecp256k1Interface instance\"\n );\n return Vn.eccLib;\n}\nTr.getEccLib = Vd;\nconst Vt = (e) => I.from(e, \"hex\");\nfunction Gd(e) {\n pt(typeof e.isXOnlyPoint == \"function\"), pt(\n e.isXOnlyPoint(\n Vt(\"79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798\")\n )\n ), pt(\n e.isXOnlyPoint(\n Vt(\"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeeffffc2e\")\n )\n ), pt(\n e.isXOnlyPoint(\n Vt(\"f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9\")\n )\n ), pt(\n e.isXOnlyPoint(\n Vt(\"0000000000000000000000000000000000000000000000000000000000000001\")\n )\n ), pt(\n !e.isXOnlyPoint(\n Vt(\"0000000000000000000000000000000000000000000000000000000000000000\")\n )\n ), pt(\n !e.isXOnlyPoint(\n Vt(\"fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f\")\n )\n ), pt(typeof e.xOnlyPointAddTweak == \"function\"), Xd.forEach((t) => {\n const r = e.xOnlyPointAddTweak(Vt(t.pubkey), Vt(t.tweak));\n t.result === null ? pt(r === null) : (pt(r !== null), pt(r.parity === t.parity), pt(I.from(r.xOnlyPubkey).equals(Vt(t.result))));\n });\n}\nfunction pt(e) {\n if (!e)\n throw new Error(\"ecc library invalid\");\n}\nconst Xd = [\n {\n pubkey: \"79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798\",\n tweak: \"fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364140\",\n parity: -1,\n result: null\n },\n {\n pubkey: \"1617d38ed8d8657da4d4761e8057bc396ea9e4b9d29776d4be096016dbd2509b\",\n tweak: \"a8397a935f0dfceba6ba9618f6451ef4d80637abf4e6af2669fbc9de6a8fd2ac\",\n parity: 1,\n result: \"e478f99dab91052ab39a33ea35fd5e6e4933f4d28023cd597c9a1f6760346adf\"\n },\n {\n pubkey: \"2c0b7cf95324a07d05398b240174dc0c2be444d96b159aa6c7f7b1e668680991\",\n tweak: \"823c3cd2142744b075a87eade7e1b8678ba308d566226a0056ca2b7a76f86b47\",\n parity: 0,\n result: \"9534f8dc8c6deda2dc007655981c78b49c5d96c778fbf363462a11ec9dfd948c\"\n }\n];\nvar ro = {}, Ce = {}, es = { exports: {} };\n/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n(function(e, t) {\n var r = Gi, n = r.Buffer;\n function i(o, a) {\n for (var f in o)\n a[f] = o[f];\n }\n n.from && n.alloc && n.allocUnsafe && n.allocUnsafeSlow ? e.exports = r : (i(r, t), t.Buffer = s);\n function s(o, a, f) {\n return n(o, a, f);\n }\n s.prototype = Object.create(n.prototype), i(n, s), s.from = function(o, a, f) {\n if (typeof o == \"number\")\n throw new TypeError(\"Argument must not be a number\");\n return n(o, a, f);\n }, s.alloc = function(o, a, f) {\n if (typeof o != \"number\")\n throw new TypeError(\"Argument must be a number\");\n var h = n(o);\n return a !== void 0 ? typeof f == \"string\" ? h.fill(a, f) : h.fill(a) : h.fill(0), h;\n }, s.allocUnsafe = function(o) {\n if (typeof o != \"number\")\n throw new TypeError(\"Argument must be a number\");\n return n(o);\n }, s.allocUnsafeSlow = function(o) {\n if (typeof o != \"number\")\n throw new TypeError(\"Argument must be a number\");\n return r.SlowBuffer(o);\n };\n})(es, es.exports);\nvar qd = es.exports, ts = qd.Buffer, zd = 9007199254740991;\nfunction Ts(e) {\n if (e < 0 || e > zd || e % 1 !== 0)\n throw new RangeError(\"value out of range\");\n}\nfunction Mn(e, t, r) {\n if (Ts(e), t || (t = ts.allocUnsafe(Yu(e))), !ts.isBuffer(t))\n throw new TypeError(\"buffer must be a Buffer instance\");\n return r || (r = 0), e < 253 ? (t.writeUInt8(e, r), Mn.bytes = 1) : e <= 65535 ? (t.writeUInt8(253, r), t.writeUInt16LE(e, r + 1), Mn.bytes = 3) : e <= 4294967295 ? (t.writeUInt8(254, r), t.writeUInt32LE(e, r + 1), Mn.bytes = 5) : (t.writeUInt8(255, r), t.writeUInt32LE(e >>> 0, r + 1), t.writeUInt32LE(e / 4294967296 | 0, r + 5), Mn.bytes = 9), t;\n}\nfunction Dn(e, t) {\n if (!ts.isBuffer(e))\n throw new TypeError(\"buffer must be a Buffer instance\");\n t || (t = 0);\n var r = e.readUInt8(t);\n if (r < 253)\n return Dn.bytes = 1, r;\n if (r === 253)\n return Dn.bytes = 3, e.readUInt16LE(t + 1);\n if (r === 254)\n return Dn.bytes = 5, e.readUInt32LE(t + 1);\n Dn.bytes = 9;\n var n = e.readUInt32LE(t + 1), i = e.readUInt32LE(t + 5), s = i * 4294967296 + n;\n return Ts(s), s;\n}\nfunction Yu(e) {\n return Ts(e), e < 253 ? 1 : e <= 65535 ? 3 : e <= 4294967295 ? 5 : 9;\n}\nvar Yd = { encode: Mn, decode: Dn, encodingLength: Yu };\nObject.defineProperty(Ce, \"__esModule\", { value: !0 });\nCe.BufferReader = Ce.BufferWriter = Ce.cloneBuffer = Ce.reverseBuffer = Ce.writeUInt64LE = Ce.readUInt64LE = Ce.varuint = void 0;\nconst Ur = qe, { typeforce: Ju } = Ur, qn = Yd;\nCe.varuint = qn;\nfunction Qu(e, t) {\n if (typeof e != \"number\")\n throw new Error(\"cannot write a non-number as a number\");\n if (e < 0)\n throw new Error(\"specified a negative value for writing an unsigned value\");\n if (e > t)\n throw new Error(\"RangeError: value out of range\");\n if (Math.floor(e) !== e)\n throw new Error(\"value has a fractional component\");\n}\nfunction Zu(e, t) {\n const r = e.readUInt32LE(t);\n let n = e.readUInt32LE(t + 4);\n return n *= 4294967296, Qu(n + r, 9007199254740991), n + r;\n}\nCe.readUInt64LE = Zu;\nfunction ec(e, t, r) {\n return Qu(t, 9007199254740991), e.writeInt32LE(t & -1, r), e.writeUInt32LE(Math.floor(t / 4294967296), r + 4), r + 8;\n}\nCe.writeUInt64LE = ec;\nfunction Jd(e) {\n if (e.length < 1)\n return e;\n let t = e.length - 1, r = 0;\n for (let n = 0; n < e.length / 2; n++)\n r = e[n], e[n] = e[t], e[t] = r, t--;\n return e;\n}\nCe.reverseBuffer = Jd;\nfunction Qd(e) {\n const t = I.allocUnsafe(e.length);\n return e.copy(t), t;\n}\nCe.cloneBuffer = Qd;\nclass Is {\n static withCapacity(t) {\n return new Is(I.alloc(t));\n }\n constructor(t, r = 0) {\n this.buffer = t, this.offset = r, Ju(Ur.tuple(Ur.Buffer, Ur.UInt32), [t, r]);\n }\n writeUInt8(t) {\n this.offset = this.buffer.writeUInt8(t, this.offset);\n }\n writeInt32(t) {\n this.offset = this.buffer.writeInt32LE(t, this.offset);\n }\n writeUInt32(t) {\n this.offset = this.buffer.writeUInt32LE(t, this.offset);\n }\n writeUInt64(t) {\n this.offset = ec(this.buffer, t, this.offset);\n }\n writeVarInt(t) {\n qn.encode(t, this.buffer, this.offset), this.offset += qn.encode.bytes;\n }\n writeSlice(t) {\n if (this.buffer.length < this.offset + t.length)\n throw new Error(\"Cannot write slice out of bounds\");\n this.offset += t.copy(this.buffer, this.offset);\n }\n writeVarSlice(t) {\n this.writeVarInt(t.length), this.writeSlice(t);\n }\n writeVector(t) {\n this.writeVarInt(t.length), t.forEach((r) => this.writeVarSlice(r));\n }\n end() {\n if (this.buffer.length === this.offset)\n return this.buffer;\n throw new Error(`buffer size ${this.buffer.length}, offset ${this.offset}`);\n }\n}\nCe.BufferWriter = Is;\nclass Zd {\n constructor(t, r = 0) {\n this.buffer = t, this.offset = r, Ju(Ur.tuple(Ur.Buffer, Ur.UInt32), [t, r]);\n }\n readUInt8() {\n const t = this.buffer.readUInt8(this.offset);\n return this.offset++, t;\n }\n readInt32() {\n const t = this.buffer.readInt32LE(this.offset);\n return this.offset += 4, t;\n }\n readUInt32() {\n const t = this.buffer.readUInt32LE(this.offset);\n return this.offset += 4, t;\n }\n readUInt64() {\n const t = Zu(this.buffer, this.offset);\n return this.offset += 8, t;\n }\n readVarInt() {\n const t = qn.decode(this.buffer, this.offset);\n return this.offset += qn.decode.bytes, t;\n }\n readSlice(t) {\n if (this.buffer.length < this.offset + t)\n throw new Error(\"Cannot read slice out of bounds\");\n const r = this.buffer.slice(this.offset, this.offset + t);\n return this.offset += t, r;\n }\n readVarSlice() {\n return this.readSlice(this.readVarInt());\n }\n readVector() {\n const t = this.readVarInt(), r = [];\n for (let n = 0; n < t; n++)\n r.push(this.readVarSlice());\n return r;\n }\n}\nCe.BufferReader = Zd;\n(function(e) {\n Object.defineProperty(e, \"__esModule\", { value: !0 }), e.tweakKey = e.tapTweakHash = e.tapleafHash = e.findScriptPath = e.toHashTree = e.rootHashFromPath = e.MAX_TAPTREE_DEPTH = e.LEAF_VERSION_TAPSCRIPT = void 0;\n const t = Gi, r = Tr, n = Ut, i = Ce, s = qe;\n e.LEAF_VERSION_TAPSCRIPT = 192, e.MAX_TAPTREE_DEPTH = 128;\n const o = (S) => \"left\" in S && \"right\" in S;\n function a(S, T) {\n if (S.length < 33)\n throw new TypeError(\n `The control-block length is too small. Got ${S.length}, expected min 33.`\n );\n const C = (S.length - 33) / 32;\n let O = T;\n for (let B = 0; B < C; B++) {\n const U = S.slice(33 + 32 * B, 65 + 32 * B);\n O.compare(U) < 0 ? O = y(O, U) : O = y(U, O);\n }\n return O;\n }\n e.rootHashFromPath = a;\n function f(S) {\n if ((0, s.isTapleaf)(S))\n return { hash: l(S) };\n const T = [f(S[0]), f(S[1])];\n T.sort((B, U) => B.hash.compare(U.hash));\n const [C, O] = T;\n return {\n hash: y(C.hash, O.hash),\n left: C,\n right: O\n };\n }\n e.toHashTree = f;\n function h(S, T) {\n if (o(S)) {\n const C = h(S.left, T);\n if (C !== void 0)\n return [...C, S.right.hash];\n const O = h(S.right, T);\n if (O !== void 0)\n return [...O, S.left.hash];\n } else if (S.hash.equals(T))\n return [];\n }\n e.findScriptPath = h;\n function l(S) {\n const T = S.version || e.LEAF_VERSION_TAPSCRIPT;\n return n.taggedHash(\n \"TapLeaf\",\n t.Buffer.concat([\n t.Buffer.from([T]),\n v(S.output)\n ])\n );\n }\n e.tapleafHash = l;\n function p(S, T) {\n return n.taggedHash(\n \"TapTweak\",\n t.Buffer.concat(T ? [S, T] : [S])\n );\n }\n e.tapTweakHash = p;\n function E(S, T) {\n if (!t.Buffer.isBuffer(S) || S.length !== 32 || T && T.length !== 32)\n return null;\n const C = p(S, T), O = (0, r.getEccLib)().xOnlyPointAddTweak(S, C);\n return !O || O.xOnlyPubkey === null ? null : {\n parity: O.parity,\n x: t.Buffer.from(O.xOnlyPubkey)\n };\n }\n e.tweakKey = E;\n function y(S, T) {\n return n.taggedHash(\"TapBranch\", t.Buffer.concat([S, T]));\n }\n function v(S) {\n const T = i.varuint.encodingLength(S.length), C = t.Buffer.allocUnsafe(T);\n return i.varuint.encode(S.length, C), t.Buffer.concat([C, S]);\n }\n})(ro);\nObject.defineProperty(to, \"__esModule\", { value: !0 });\nto.p2tr = void 0;\nconst di = Gi, ep = He, rs = ot, J = qe, _a = Tr, st = ro, gt = ht, pi = tr, Ta = rs.OPS, Ia = 1, tp = 80;\nfunction rp(e, t) {\n if (!e.address && !e.output && !e.pubkey && !e.internalPubkey && !(e.witness && e.witness.length > 1))\n throw new TypeError(\"Not enough data\");\n t = Object.assign({ validate: !0 }, t || {}), (0, J.typeforce)(\n {\n address: J.typeforce.maybe(J.typeforce.String),\n input: J.typeforce.maybe(J.typeforce.BufferN(0)),\n network: J.typeforce.maybe(J.typeforce.Object),\n output: J.typeforce.maybe(J.typeforce.BufferN(34)),\n internalPubkey: J.typeforce.maybe(J.typeforce.BufferN(32)),\n hash: J.typeforce.maybe(J.typeforce.BufferN(32)),\n pubkey: J.typeforce.maybe(J.typeforce.BufferN(32)),\n signature: J.typeforce.maybe(\n J.typeforce.anyOf(\n J.typeforce.BufferN(64),\n J.typeforce.BufferN(65)\n )\n ),\n witness: J.typeforce.maybe(\n J.typeforce.arrayOf(J.typeforce.Buffer)\n ),\n scriptTree: J.typeforce.maybe(J.isTaptree),\n redeem: J.typeforce.maybe({\n output: J.typeforce.maybe(J.typeforce.Buffer),\n redeemVersion: J.typeforce.maybe(J.typeforce.Number),\n witness: J.typeforce.maybe(\n J.typeforce.arrayOf(J.typeforce.Buffer)\n )\n }),\n redeemVersion: J.typeforce.maybe(J.typeforce.Number)\n },\n e\n );\n const r = gt.value(() => {\n const a = pi.bech32m.decode(e.address), f = a.words.shift(), h = pi.bech32m.fromWords(a.words);\n return {\n version: f,\n prefix: a.prefix,\n data: di.Buffer.from(h)\n };\n }), n = gt.value(() => {\n if (!(!e.witness || !e.witness.length))\n return e.witness.length >= 2 && e.witness[e.witness.length - 1][0] === tp ? e.witness.slice(0, -1) : e.witness.slice();\n }), i = gt.value(() => {\n if (e.scriptTree)\n return (0, st.toHashTree)(e.scriptTree);\n if (e.hash)\n return { hash: e.hash };\n }), s = e.network || ep.bitcoin, o = { name: \"p2tr\", network: s };\n if (gt.prop(o, \"address\", () => {\n if (!o.pubkey)\n return;\n const a = pi.bech32m.toWords(o.pubkey);\n return a.unshift(Ia), pi.bech32m.encode(s.bech32, a);\n }), gt.prop(o, \"hash\", () => {\n const a = i();\n if (a)\n return a.hash;\n const f = n();\n if (f && f.length > 1) {\n const h = f[f.length - 1], l = h[0] & J.TAPLEAF_VERSION_MASK, p = f[f.length - 2], E = (0, st.tapleafHash)({\n output: p,\n version: l\n });\n return (0, st.rootHashFromPath)(h, E);\n }\n return null;\n }), gt.prop(o, \"output\", () => {\n if (o.pubkey)\n return rs.compile([Ta.OP_1, o.pubkey]);\n }), gt.prop(o, \"redeemVersion\", () => e.redeemVersion ? e.redeemVersion : e.redeem && e.redeem.redeemVersion !== void 0 && e.redeem.redeemVersion !== null ? e.redeem.redeemVersion : st.LEAF_VERSION_TAPSCRIPT), gt.prop(o, \"redeem\", () => {\n const a = n();\n if (!(!a || a.length < 2))\n return {\n output: a[a.length - 2],\n witness: a.slice(0, -2),\n redeemVersion: a[a.length - 1][0] & J.TAPLEAF_VERSION_MASK\n };\n }), gt.prop(o, \"pubkey\", () => {\n if (e.pubkey)\n return e.pubkey;\n if (e.output)\n return e.output.slice(2);\n if (e.address)\n return r().data;\n if (o.internalPubkey) {\n const a = (0, st.tweakKey)(o.internalPubkey, o.hash);\n if (a)\n return a.x;\n }\n }), gt.prop(o, \"internalPubkey\", () => {\n if (e.internalPubkey)\n return e.internalPubkey;\n const a = n();\n if (a && a.length > 1)\n return a[a.length - 1].slice(1, 33);\n }), gt.prop(o, \"signature\", () => {\n if (e.signature)\n return e.signature;\n const a = n();\n if (!(!a || a.length !== 1))\n return a[0];\n }), gt.prop(o, \"witness\", () => {\n if (e.witness)\n return e.witness;\n const a = i();\n if (a && e.redeem && e.redeem.output && e.internalPubkey) {\n const f = (0, st.tapleafHash)({\n output: e.redeem.output,\n version: o.redeemVersion\n }), h = (0, st.findScriptPath)(a, f);\n if (!h)\n return;\n const l = (0, st.tweakKey)(e.internalPubkey, a.hash);\n if (!l)\n return;\n const p = di.Buffer.concat(\n [\n di.Buffer.from([o.redeemVersion | l.parity]),\n e.internalPubkey\n ].concat(h)\n );\n return [e.redeem.output, p];\n }\n if (e.signature)\n return [e.signature];\n }), t.validate) {\n let a = di.Buffer.from([]);\n if (e.address) {\n if (s && s.bech32 !== r().prefix)\n throw new TypeError(\"Invalid prefix or Network mismatch\");\n if (r().version !== Ia)\n throw new TypeError(\"Invalid address version\");\n if (r().data.length !== 32)\n throw new TypeError(\"Invalid address data\");\n a = r().data;\n }\n if (e.pubkey) {\n if (a.length > 0 && !a.equals(e.pubkey))\n throw new TypeError(\"Pubkey mismatch\");\n a = e.pubkey;\n }\n if (e.output) {\n if (e.output.length !== 34 || e.output[0] !== Ta.OP_1 || e.output[1] !== 32)\n throw new TypeError(\"Output is invalid\");\n if (a.length > 0 && !a.equals(e.output.slice(2)))\n throw new TypeError(\"Pubkey mismatch\");\n a = e.output.slice(2);\n }\n if (e.internalPubkey) {\n const l = (0, st.tweakKey)(e.internalPubkey, o.hash);\n if (a.length > 0 && !a.equals(l.x))\n throw new TypeError(\"Pubkey mismatch\");\n a = l.x;\n }\n if (a && a.length && !(0, _a.getEccLib)().isXOnlyPoint(a))\n throw new TypeError(\"Invalid pubkey for p2tr\");\n const f = i();\n if (e.hash && f && !e.hash.equals(f.hash))\n throw new TypeError(\"Hash mismatch\");\n if (e.redeem && e.redeem.output && f) {\n const l = (0, st.tapleafHash)({\n output: e.redeem.output,\n version: o.redeemVersion\n });\n if (!(0, st.findScriptPath)(f, l))\n throw new TypeError(\"Redeem script not in tree\");\n }\n const h = n();\n if (e.redeem && o.redeem) {\n if (e.redeem.redeemVersion && e.redeem.redeemVersion !== o.redeem.redeemVersion)\n throw new TypeError(\"Redeem.redeemVersion and witness mismatch\");\n if (e.redeem.output) {\n if (rs.decompile(e.redeem.output).length === 0)\n throw new TypeError(\"Redeem.output is invalid\");\n if (o.redeem.output && !e.redeem.output.equals(o.redeem.output))\n throw new TypeError(\"Redeem.output and witness mismatch\");\n }\n if (e.redeem.witness && o.redeem.witness && !np(e.redeem.witness, o.redeem.witness))\n throw new TypeError(\"Redeem.witness and witness mismatch\");\n }\n if (h && h.length)\n if (h.length === 1) {\n if (e.signature && !e.signature.equals(h[0]))\n throw new TypeError(\"Signature mismatch\");\n } else {\n const l = h[h.length - 1];\n if (l.length < 33)\n throw new TypeError(\n `The control-block length is too small. Got ${l.length}, expected min 33.`\n );\n if ((l.length - 33) % 32 !== 0)\n throw new TypeError(\n `The control-block length of ${l.length} is incorrect!`\n );\n const p = (l.length - 33) / 32;\n if (p > 128)\n throw new TypeError(\n `The script path is too long. Got ${p}, expected max 128.`\n );\n const E = l.slice(1, 33);\n if (e.internalPubkey && !e.internalPubkey.equals(E))\n throw new TypeError(\"Internal pubkey mismatch\");\n if (!(0, _a.getEccLib)().isXOnlyPoint(E))\n throw new TypeError(\"Invalid internalPubkey for p2tr witness\");\n const y = l[0] & J.TAPLEAF_VERSION_MASK, v = h[h.length - 2], S = (0, st.tapleafHash)({\n output: v,\n version: y\n }), T = (0, st.rootHashFromPath)(l, S), C = (0, st.tweakKey)(E, T);\n if (!C)\n throw new TypeError(\"Invalid outputKey for p2tr witness\");\n if (a.length && !a.equals(C.x))\n throw new TypeError(\"Pubkey mismatch for p2tr witness\");\n if (C.parity !== (l[0] & 1))\n throw new Error(\"Incorrect parity\");\n }\n }\n return Object.assign(o, e);\n}\nto.p2tr = rp;\nfunction np(e, t) {\n return e.length !== t.length ? !1 : e.every((r, n) => r.equals(t[n]));\n}\n(function(e) {\n Object.defineProperty(e, \"__esModule\", { value: !0 }), e.p2tr = e.p2wsh = e.p2wpkh = e.p2sh = e.p2pkh = e.p2pk = e.p2ms = e.embed = void 0;\n const t = Vi;\n Object.defineProperty(e, \"embed\", {\n enumerable: !0,\n get: function() {\n return t.p2data;\n }\n });\n const r = Xi;\n Object.defineProperty(e, \"p2ms\", {\n enumerable: !0,\n get: function() {\n return r.p2ms;\n }\n });\n const n = qi;\n Object.defineProperty(e, \"p2pk\", {\n enumerable: !0,\n get: function() {\n return n.p2pk;\n }\n });\n const i = zi;\n Object.defineProperty(e, \"p2pkh\", {\n enumerable: !0,\n get: function() {\n return i.p2pkh;\n }\n });\n const s = Qi;\n Object.defineProperty(e, \"p2sh\", {\n enumerable: !0,\n get: function() {\n return s.p2sh;\n }\n });\n const o = Zi;\n Object.defineProperty(e, \"p2wpkh\", {\n enumerable: !0,\n get: function() {\n return o.p2wpkh;\n }\n });\n const a = eo;\n Object.defineProperty(e, \"p2wsh\", {\n enumerable: !0,\n get: function() {\n return a.p2wsh;\n }\n });\n const f = to;\n Object.defineProperty(e, \"p2tr\", {\n enumerable: !0,\n get: function() {\n return f.p2tr;\n }\n });\n})(Tn);\nObject.defineProperty(rt, \"__esModule\", { value: !0 });\nrt.toOutputScript = rt.fromOutputScript = rt.toBech32 = rt.toBase58Check = rt.fromBech32 = rt.fromBase58Check = void 0;\nconst tc = He, Ft = Tn, rc = ot, gi = qe, yn = tr, nc = vs, ic = 40, oc = 2, sc = 16, ac = 2, uc = 80, cc = \"WARNING: Sending to a future segwit version address can lead to loss of funds. End users MUST be warned carefully in the GUI and asked if they wish to proceed with caution. Wallets should verify the segwit version from the output of fromBech32, then decide when it is safe to use which version of segwit.\";\nfunction ip(e, t) {\n const r = e.slice(2);\n if (r.length < oc || r.length > ic)\n throw new TypeError(\"Invalid program length for segwit address\");\n const n = e[0] - uc;\n if (n < ac || n > sc)\n throw new TypeError(\"Invalid version for segwit address\");\n if (e[1] !== r.length)\n throw new TypeError(\"Invalid script for segwit address\");\n return console.warn(cc), hc(r, n, t.bech32);\n}\nfunction lc(e) {\n const t = I.from(nc.decode(e));\n if (t.length < 21)\n throw new TypeError(e + \" is too short\");\n if (t.length > 21)\n throw new TypeError(e + \" is too long\");\n const r = t.readUInt8(0), n = t.slice(1);\n return { version: r, hash: n };\n}\nrt.fromBase58Check = lc;\nfunction fc(e) {\n let t, r;\n try {\n t = yn.bech32.decode(e);\n } catch {\n }\n if (t) {\n if (r = t.words[0], r !== 0)\n throw new TypeError(e + \" uses wrong encoding\");\n } else if (t = yn.bech32m.decode(e), r = t.words[0], r === 0)\n throw new TypeError(e + \" uses wrong encoding\");\n const n = yn.bech32.fromWords(t.words.slice(1));\n return {\n version: r,\n prefix: t.prefix,\n data: I.from(n)\n };\n}\nrt.fromBech32 = fc;\nfunction op(e, t) {\n (0, gi.typeforce)(\n (0, gi.tuple)(gi.Hash160bit, gi.UInt8),\n arguments\n );\n const r = I.allocUnsafe(21);\n return r.writeUInt8(t, 0), e.copy(r, 1), nc.encode(r);\n}\nrt.toBase58Check = op;\nfunction hc(e, t, r) {\n const n = yn.bech32.toWords(e);\n return n.unshift(t), t === 0 ? yn.bech32.encode(r, n) : yn.bech32m.encode(r, n);\n}\nrt.toBech32 = hc;\nfunction sp(e, t) {\n t = t || tc.bitcoin;\n try {\n return Ft.p2pkh({ output: e, network: t }).address;\n } catch {\n }\n try {\n return Ft.p2sh({ output: e, network: t }).address;\n } catch {\n }\n try {\n return Ft.p2wpkh({ output: e, network: t }).address;\n } catch {\n }\n try {\n return Ft.p2wsh({ output: e, network: t }).address;\n } catch {\n }\n try {\n return Ft.p2tr({ output: e, network: t }).address;\n } catch {\n }\n try {\n return ip(e, t);\n } catch {\n }\n throw new Error(rc.toASM(e) + \" has no matching Address\");\n}\nrt.fromOutputScript = sp;\nfunction ap(e, t) {\n t = t || tc.bitcoin;\n let r, n;\n try {\n r = lc(e);\n } catch {\n }\n if (r) {\n if (r.version === t.pubKeyHash)\n return Ft.p2pkh({ hash: r.hash }).output;\n if (r.version === t.scriptHash)\n return Ft.p2sh({ hash: r.hash }).output;\n } else {\n try {\n n = fc(e);\n } catch {\n }\n if (n) {\n if (n.prefix !== t.bech32)\n throw new Error(e + \" has an invalid prefix\");\n if (n.version === 0) {\n if (n.data.length === 20)\n return Ft.p2wpkh({ hash: n.data }).output;\n if (n.data.length === 32)\n return Ft.p2wsh({ hash: n.data }).output;\n } else if (n.version === 1) {\n if (n.data.length === 32)\n return Ft.p2tr({ pubkey: n.data }).output;\n } else if (n.version >= ac && n.version <= sc && n.data.length >= oc && n.data.length <= ic)\n return console.warn(cc), rc.compile([\n n.version + uc,\n n.data\n ]);\n }\n }\n throw new Error(e + \" has no matching Script\");\n}\nrt.toOutputScript = ap;\nvar no = {}, io = {};\nObject.defineProperty(io, \"__esModule\", { value: !0 });\nio.fastMerkleRoot = void 0;\nfunction up(e, t) {\n if (!Array.isArray(e))\n throw TypeError(\"Expected values Array\");\n if (typeof t != \"function\")\n throw TypeError(\"Expected digest Function\");\n let r = e.length;\n const n = e.concat();\n for (; r > 1; ) {\n let i = 0;\n for (let s = 0; s < r; s += 2, ++i) {\n const o = n[s], a = s + 1 === r ? o : n[s + 1], f = I.concat([o, a]);\n n[i] = t(f);\n }\n r = i;\n }\n return n[0];\n}\nio.fastMerkleRoot = up;\nvar Or = {};\nObject.defineProperty(Or, \"__esModule\", { value: !0 });\nOr.Transaction = void 0;\nconst Pe = Ce, Ze = Ut, Pa = ot, cp = ot, ne = qe, { typeforce: Ot } = ne;\nfunction At(e) {\n const t = e.length;\n return Pe.varuint.encodingLength(t) + t;\n}\nfunction lp(e) {\n const t = e.length;\n return Pe.varuint.encodingLength(t) + e.reduce((r, n) => r + At(n), 0);\n}\nconst gr = I.allocUnsafe(0), Oa = [], xo = I.from(\n \"0000000000000000000000000000000000000000000000000000000000000000\",\n \"hex\"\n), ka = I.from(\n \"0000000000000000000000000000000000000000000000000000000000000001\",\n \"hex\"\n), fp = I.from(\"ffffffffffffffff\", \"hex\"), hp = {\n script: gr,\n valueBuffer: fp\n};\nfunction dp(e) {\n return e.value !== void 0;\n}\nclass z {\n constructor() {\n this.version = 1, this.locktime = 0, this.ins = [], this.outs = [];\n }\n static fromBuffer(t, r) {\n const n = new Pe.BufferReader(t), i = new z();\n i.version = n.readInt32();\n const s = n.readUInt8(), o = n.readUInt8();\n let a = !1;\n s === z.ADVANCED_TRANSACTION_MARKER && o === z.ADVANCED_TRANSACTION_FLAG ? a = !0 : n.offset -= 2;\n const f = n.readVarInt();\n for (let l = 0; l < f; ++l)\n i.ins.push({\n hash: n.readSlice(32),\n index: n.readUInt32(),\n script: n.readVarSlice(),\n sequence: n.readUInt32(),\n witness: Oa\n });\n const h = n.readVarInt();\n for (let l = 0; l < h; ++l)\n i.outs.push({\n value: n.readUInt64(),\n script: n.readVarSlice()\n });\n if (a) {\n for (let l = 0; l < f; ++l)\n i.ins[l].witness = n.readVector();\n if (!i.hasWitnesses())\n throw new Error(\"Transaction has superfluous witness data\");\n }\n if (i.locktime = n.readUInt32(), r)\n return i;\n if (n.offset !== t.length)\n throw new Error(\"Transaction has unexpected data\");\n return i;\n }\n static fromHex(t) {\n return z.fromBuffer(I.from(t, \"hex\"), !1);\n }\n static isCoinbaseHash(t) {\n Ot(ne.Hash256bit, t);\n for (let r = 0; r < 32; ++r)\n if (t[r] !== 0)\n return !1;\n return !0;\n }\n isCoinbase() {\n return this.ins.length === 1 && z.isCoinbaseHash(this.ins[0].hash);\n }\n addInput(t, r, n, i) {\n return Ot(\n ne.tuple(\n ne.Hash256bit,\n ne.UInt32,\n ne.maybe(ne.UInt32),\n ne.maybe(ne.Buffer)\n ),\n arguments\n ), ne.Null(n) && (n = z.DEFAULT_SEQUENCE), this.ins.push({\n hash: t,\n index: r,\n script: i || gr,\n sequence: n,\n witness: Oa\n }) - 1;\n }\n addOutput(t, r) {\n return Ot(ne.tuple(ne.Buffer, ne.Satoshi), arguments), this.outs.push({\n script: t,\n value: r\n }) - 1;\n }\n hasWitnesses() {\n return this.ins.some((t) => t.witness.length !== 0);\n }\n weight() {\n const t = this.byteLength(!1), r = this.byteLength(!0);\n return t * 3 + r;\n }\n virtualSize() {\n return Math.ceil(this.weight() / 4);\n }\n byteLength(t = !0) {\n const r = t && this.hasWitnesses();\n return (r ? 10 : 8) + Pe.varuint.encodingLength(this.ins.length) + Pe.varuint.encodingLength(this.outs.length) + this.ins.reduce((n, i) => n + 40 + At(i.script), 0) + this.outs.reduce((n, i) => n + 8 + At(i.script), 0) + (r ? this.ins.reduce((n, i) => n + lp(i.witness), 0) : 0);\n }\n clone() {\n const t = new z();\n return t.version = this.version, t.locktime = this.locktime, t.ins = this.ins.map((r) => ({\n hash: r.hash,\n index: r.index,\n script: r.script,\n sequence: r.sequence,\n witness: r.witness\n })), t.outs = this.outs.map((r) => ({\n script: r.script,\n value: r.value\n })), t;\n }\n /**\n * Hash transaction for signing a specific input.\n *\n * Bitcoin uses a different hash for each signed transaction input.\n * This method copies the transaction, makes the necessary changes based on the\n * hashType, and then hashes the result.\n * This hash can then be used to sign the provided transaction input.\n */\n hashForSignature(t, r, n) {\n if (Ot(\n ne.tuple(\n ne.UInt32,\n ne.Buffer,\n /* types.UInt8 */\n ne.Number\n ),\n arguments\n ), t >= this.ins.length)\n return ka;\n const i = Pa.compile(\n Pa.decompile(r).filter((a) => a !== cp.OPS.OP_CODESEPARATOR)\n ), s = this.clone();\n if ((n & 31) === z.SIGHASH_NONE)\n s.outs = [], s.ins.forEach((a, f) => {\n f !== t && (a.sequence = 0);\n });\n else if ((n & 31) === z.SIGHASH_SINGLE) {\n if (t >= this.outs.length)\n return ka;\n s.outs.length = t + 1;\n for (let a = 0; a < t; a++)\n s.outs[a] = hp;\n s.ins.forEach((a, f) => {\n f !== t && (a.sequence = 0);\n });\n }\n n & z.SIGHASH_ANYONECANPAY ? (s.ins = [s.ins[t]], s.ins[0].script = i) : (s.ins.forEach((a) => {\n a.script = gr;\n }), s.ins[t].script = i);\n const o = I.allocUnsafe(s.byteLength(!1) + 4);\n return o.writeInt32LE(n, o.length - 4), s.__toBuffer(o, 0, !1), Ze.hash256(o);\n }\n hashForWitnessV1(t, r, n, i, s, o) {\n if (Ot(\n ne.tuple(\n ne.UInt32,\n Ot.arrayOf(ne.Buffer),\n Ot.arrayOf(ne.Satoshi),\n ne.UInt32\n ),\n arguments\n ), n.length !== this.ins.length || r.length !== this.ins.length)\n throw new Error(\"Must supply prevout script and value for all inputs\");\n const a = i === z.SIGHASH_DEFAULT ? z.SIGHASH_ALL : i & z.SIGHASH_OUTPUT_MASK, h = (i & z.SIGHASH_INPUT_MASK) === z.SIGHASH_ANYONECANPAY, l = a === z.SIGHASH_NONE, p = a === z.SIGHASH_SINGLE;\n let E = gr, y = gr, v = gr, S = gr, T = gr;\n if (!h) {\n let U = Pe.BufferWriter.withCapacity(\n 36 * this.ins.length\n );\n this.ins.forEach((R) => {\n U.writeSlice(R.hash), U.writeUInt32(R.index);\n }), E = Ze.sha256(U.end()), U = Pe.BufferWriter.withCapacity(\n 8 * this.ins.length\n ), n.forEach((R) => U.writeUInt64(R)), y = Ze.sha256(U.end()), U = Pe.BufferWriter.withCapacity(\n r.map(At).reduce((R, k) => R + k)\n ), r.forEach(\n (R) => U.writeVarSlice(R)\n ), v = Ze.sha256(U.end()), U = Pe.BufferWriter.withCapacity(\n 4 * this.ins.length\n ), this.ins.forEach((R) => U.writeUInt32(R.sequence)), S = Ze.sha256(U.end());\n }\n if (l || p) {\n if (p && t < this.outs.length) {\n const U = this.outs[t], R = Pe.BufferWriter.withCapacity(\n 8 + At(U.script)\n );\n R.writeUInt64(U.value), R.writeVarSlice(U.script), T = Ze.sha256(R.end());\n }\n } else {\n const U = this.outs.map((k) => 8 + At(k.script)).reduce((k, j) => k + j), R = Pe.BufferWriter.withCapacity(U);\n this.outs.forEach((k) => {\n R.writeUInt64(k.value), R.writeVarSlice(k.script);\n }), T = Ze.sha256(R.end());\n }\n const C = (s ? 2 : 0) + (o ? 1 : 0), O = 174 - (h ? 49 : 0) - (l ? 32 : 0) + (o ? 32 : 0) + (s ? 37 : 0), B = Pe.BufferWriter.withCapacity(O);\n if (B.writeUInt8(i), B.writeInt32(this.version), B.writeUInt32(this.locktime), B.writeSlice(E), B.writeSlice(y), B.writeSlice(v), B.writeSlice(S), l || p || B.writeSlice(T), B.writeUInt8(C), h) {\n const U = this.ins[t];\n B.writeSlice(U.hash), B.writeUInt32(U.index), B.writeUInt64(n[t]), B.writeVarSlice(r[t]), B.writeUInt32(U.sequence);\n } else\n B.writeUInt32(t);\n if (o) {\n const U = Pe.BufferWriter.withCapacity(\n At(o)\n );\n U.writeVarSlice(o), B.writeSlice(Ze.sha256(U.end()));\n }\n return p && B.writeSlice(T), s && (B.writeSlice(s), B.writeUInt8(0), B.writeUInt32(4294967295)), Ze.taggedHash(\n \"TapSighash\",\n I.concat([I.from([0]), B.end()])\n );\n }\n hashForWitnessV0(t, r, n, i) {\n Ot(\n ne.tuple(ne.UInt32, ne.Buffer, ne.Satoshi, ne.UInt32),\n arguments\n );\n let s = I.from([]), o, a = xo, f = xo, h = xo;\n if (i & z.SIGHASH_ANYONECANPAY || (s = I.allocUnsafe(36 * this.ins.length), o = new Pe.BufferWriter(s, 0), this.ins.forEach((p) => {\n o.writeSlice(p.hash), o.writeUInt32(p.index);\n }), f = Ze.hash256(s)), !(i & z.SIGHASH_ANYONECANPAY) && (i & 31) !== z.SIGHASH_SINGLE && (i & 31) !== z.SIGHASH_NONE && (s = I.allocUnsafe(4 * this.ins.length), o = new Pe.BufferWriter(s, 0), this.ins.forEach((p) => {\n o.writeUInt32(p.sequence);\n }), h = Ze.hash256(s)), (i & 31) !== z.SIGHASH_SINGLE && (i & 31) !== z.SIGHASH_NONE) {\n const p = this.outs.reduce((E, y) => E + 8 + At(y.script), 0);\n s = I.allocUnsafe(p), o = new Pe.BufferWriter(s, 0), this.outs.forEach((E) => {\n o.writeUInt64(E.value), o.writeVarSlice(E.script);\n }), a = Ze.hash256(s);\n } else if ((i & 31) === z.SIGHASH_SINGLE && t < this.outs.length) {\n const p = this.outs[t];\n s = I.allocUnsafe(8 + At(p.script)), o = new Pe.BufferWriter(s, 0), o.writeUInt64(p.value), o.writeVarSlice(p.script), a = Ze.hash256(s);\n }\n s = I.allocUnsafe(156 + At(r)), o = new Pe.BufferWriter(s, 0);\n const l = this.ins[t];\n return o.writeInt32(this.version), o.writeSlice(f), o.writeSlice(h), o.writeSlice(l.hash), o.writeUInt32(l.index), o.writeVarSlice(r), o.writeUInt64(n), o.writeUInt32(l.sequence), o.writeSlice(a), o.writeUInt32(this.locktime), o.writeUInt32(i), Ze.hash256(s);\n }\n getHash(t) {\n return t && this.isCoinbase() ? I.alloc(32, 0) : Ze.hash256(this.__toBuffer(void 0, void 0, t));\n }\n getId() {\n return (0, Pe.reverseBuffer)(this.getHash(!1)).toString(\n \"hex\"\n );\n }\n toBuffer(t, r) {\n return this.__toBuffer(t, r, !0);\n }\n toHex() {\n return this.toBuffer(void 0, void 0).toString(\"hex\");\n }\n setInputScript(t, r) {\n Ot(ne.tuple(ne.Number, ne.Buffer), arguments), this.ins[t].script = r;\n }\n setWitness(t, r) {\n Ot(ne.tuple(ne.Number, [ne.Buffer]), arguments), this.ins[t].witness = r;\n }\n __toBuffer(t, r, n = !1) {\n t || (t = I.allocUnsafe(this.byteLength(n)));\n const i = new Pe.BufferWriter(\n t,\n r || 0\n );\n i.writeInt32(this.version);\n const s = n && this.hasWitnesses();\n return s && (i.writeUInt8(z.ADVANCED_TRANSACTION_MARKER), i.writeUInt8(z.ADVANCED_TRANSACTION_FLAG)), i.writeVarInt(this.ins.length), this.ins.forEach((o) => {\n i.writeSlice(o.hash), i.writeUInt32(o.index), i.writeVarSlice(o.script), i.writeUInt32(o.sequence);\n }), i.writeVarInt(this.outs.length), this.outs.forEach((o) => {\n dp(o) ? i.writeUInt64(o.value) : i.writeSlice(o.valueBuffer), i.writeVarSlice(o.script);\n }), s && this.ins.forEach((o) => {\n i.writeVector(o.witness);\n }), i.writeUInt32(this.locktime), r !== void 0 ? t.slice(r, i.offset) : t;\n }\n}\nOr.Transaction = z;\nz.DEFAULT_SEQUENCE = 4294967295;\nz.SIGHASH_DEFAULT = 0;\nz.SIGHASH_ALL = 1;\nz.SIGHASH_NONE = 2;\nz.SIGHASH_SINGLE = 3;\nz.SIGHASH_ANYONECANPAY = 128;\nz.SIGHASH_OUTPUT_MASK = 3;\nz.SIGHASH_INPUT_MASK = 128;\nz.ADVANCED_TRANSACTION_MARKER = 0;\nz.ADVANCED_TRANSACTION_FLAG = 1;\nObject.defineProperty(no, \"__esModule\", { value: !0 });\nno.Block = void 0;\nconst xr = Ce, Co = Ut, pp = io, gp = Or, dc = qe, { typeforce: yp } = dc, Bo = new TypeError(\n \"Cannot compute merkle root for zero transactions\"\n), Aa = new TypeError(\n \"Cannot compute witness commit for non-segwit block\"\n);\nclass Cr {\n constructor() {\n this.version = 1, this.prevHash = void 0, this.merkleRoot = void 0, this.timestamp = 0, this.witnessCommit = void 0, this.bits = 0, this.nonce = 0, this.transactions = void 0;\n }\n static fromBuffer(t) {\n if (t.length < 80)\n throw new Error(\"Buffer too small (< 80 bytes)\");\n const r = new xr.BufferReader(t), n = new Cr();\n if (n.version = r.readInt32(), n.prevHash = r.readSlice(32), n.merkleRoot = r.readSlice(32), n.timestamp = r.readUInt32(), n.bits = r.readUInt32(), n.nonce = r.readUInt32(), t.length === 80)\n return n;\n const i = () => {\n const a = gp.Transaction.fromBuffer(\n r.buffer.slice(r.offset),\n !0\n );\n return r.offset += a.byteLength(), a;\n }, s = r.readVarInt();\n n.transactions = [];\n for (let a = 0; a < s; ++a) {\n const f = i();\n n.transactions.push(f);\n }\n const o = n.getWitnessCommit();\n return o && (n.witnessCommit = o), n;\n }\n static fromHex(t) {\n return Cr.fromBuffer(I.from(t, \"hex\"));\n }\n static calculateTarget(t) {\n const r = ((t & 4278190080) >> 24) - 3, n = t & 8388607, i = I.alloc(32, 0);\n return i.writeUIntBE(n, 29 - r, 3), i;\n }\n static calculateMerkleRoot(t, r) {\n if (yp([{ getHash: dc.Function }], t), t.length === 0)\n throw Bo;\n if (r && !xa(t))\n throw Aa;\n const n = t.map(\n (s) => s.getHash(r)\n ), i = (0, pp.fastMerkleRoot)(n, Co.hash256);\n return r ? Co.hash256(\n I.concat([i, t[0].ins[0].witness[0]])\n ) : i;\n }\n getWitnessCommit() {\n if (!xa(this.transactions))\n return null;\n const t = this.transactions[0].outs.filter(\n (n) => n.script.slice(0, 6).equals(I.from(\"6a24aa21a9ed\", \"hex\"))\n ).map((n) => n.script.slice(6, 38));\n if (t.length === 0)\n return null;\n const r = t[t.length - 1];\n return r instanceof I && r.length === 32 ? r : null;\n }\n hasWitnessCommit() {\n return this.witnessCommit instanceof I && this.witnessCommit.length === 32 || this.getWitnessCommit() !== null;\n }\n hasWitness() {\n return mp(this.transactions);\n }\n weight() {\n const t = this.byteLength(!1, !1), r = this.byteLength(!1, !0);\n return t * 3 + r;\n }\n byteLength(t, r = !0) {\n return t || !this.transactions ? 80 : 80 + xr.varuint.encodingLength(this.transactions.length) + this.transactions.reduce((n, i) => n + i.byteLength(r), 0);\n }\n getHash() {\n return Co.hash256(this.toBuffer(!0));\n }\n getId() {\n return (0, xr.reverseBuffer)(this.getHash()).toString(\"hex\");\n }\n getUTCDate() {\n const t = /* @__PURE__ */ new Date(0);\n return t.setUTCSeconds(this.timestamp), t;\n }\n // TODO: buffer, offset compatibility\n toBuffer(t) {\n const r = I.allocUnsafe(this.byteLength(t)), n = new xr.BufferWriter(r);\n return n.writeInt32(this.version), n.writeSlice(this.prevHash), n.writeSlice(this.merkleRoot), n.writeUInt32(this.timestamp), n.writeUInt32(this.bits), n.writeUInt32(this.nonce), t || !this.transactions || (xr.varuint.encode(\n this.transactions.length,\n r,\n n.offset\n ), n.offset += xr.varuint.encode.bytes, this.transactions.forEach((i) => {\n const s = i.byteLength();\n i.toBuffer(r, n.offset), n.offset += s;\n })), r;\n }\n toHex(t) {\n return this.toBuffer(t).toString(\"hex\");\n }\n checkTxRoots() {\n const t = this.hasWitnessCommit();\n return !t && this.hasWitness() ? !1 : this.__checkMerkleRoot() && (t ? this.__checkWitnessCommit() : !0);\n }\n checkProofOfWork() {\n const t = (0, xr.reverseBuffer)(this.getHash()), r = Cr.calculateTarget(this.bits);\n return t.compare(r) <= 0;\n }\n __checkMerkleRoot() {\n if (!this.transactions)\n throw Bo;\n const t = Cr.calculateMerkleRoot(this.transactions);\n return this.merkleRoot.compare(t) === 0;\n }\n __checkWitnessCommit() {\n if (!this.transactions)\n throw Bo;\n if (!this.hasWitnessCommit())\n throw Aa;\n const t = Cr.calculateMerkleRoot(\n this.transactions,\n !0\n );\n return this.witnessCommit.compare(t) === 0;\n }\n}\nno.Block = Cr;\nfunction xa(e) {\n return e instanceof Array && e[0] && e[0].ins && e[0].ins instanceof Array && e[0].ins[0] && e[0].ins[0].witness && e[0].ins[0].witness instanceof Array && e[0].ins[0].witness.length > 0;\n}\nfunction mp(e) {\n return e instanceof Array && e.some(\n (t) => typeof t == \"object\" && t.ins instanceof Array && t.ins.some(\n (r) => typeof r == \"object\" && r.witness instanceof Array && r.witness.length > 0\n )\n );\n}\nvar oo = {}, Ps = {}, Os = {}, ks = {}, ei = {}, Lr = {}, $e = {};\n(function(e) {\n Object.defineProperty(e, \"__esModule\", { value: !0 }), function(t) {\n t[t.UNSIGNED_TX = 0] = \"UNSIGNED_TX\", t[t.GLOBAL_XPUB = 1] = \"GLOBAL_XPUB\";\n }(e.GlobalTypes || (e.GlobalTypes = {})), e.GLOBAL_TYPE_NAMES = [\"unsignedTx\", \"globalXpub\"], function(t) {\n t[t.NON_WITNESS_UTXO = 0] = \"NON_WITNESS_UTXO\", t[t.WITNESS_UTXO = 1] = \"WITNESS_UTXO\", t[t.PARTIAL_SIG = 2] = \"PARTIAL_SIG\", t[t.SIGHASH_TYPE = 3] = \"SIGHASH_TYPE\", t[t.REDEEM_SCRIPT = 4] = \"REDEEM_SCRIPT\", t[t.WITNESS_SCRIPT = 5] = \"WITNESS_SCRIPT\", t[t.BIP32_DERIVATION = 6] = \"BIP32_DERIVATION\", t[t.FINAL_SCRIPTSIG = 7] = \"FINAL_SCRIPTSIG\", t[t.FINAL_SCRIPTWITNESS = 8] = \"FINAL_SCRIPTWITNESS\", t[t.POR_COMMITMENT = 9] = \"POR_COMMITMENT\", t[t.TAP_KEY_SIG = 19] = \"TAP_KEY_SIG\", t[t.TAP_SCRIPT_SIG = 20] = \"TAP_SCRIPT_SIG\", t[t.TAP_LEAF_SCRIPT = 21] = \"TAP_LEAF_SCRIPT\", t[t.TAP_BIP32_DERIVATION = 22] = \"TAP_BIP32_DERIVATION\", t[t.TAP_INTERNAL_KEY = 23] = \"TAP_INTERNAL_KEY\", t[t.TAP_MERKLE_ROOT = 24] = \"TAP_MERKLE_ROOT\";\n }(e.InputTypes || (e.InputTypes = {})), e.INPUT_TYPE_NAMES = [\n \"nonWitnessUtxo\",\n \"witnessUtxo\",\n \"partialSig\",\n \"sighashType\",\n \"redeemScript\",\n \"witnessScript\",\n \"bip32Derivation\",\n \"finalScriptSig\",\n \"finalScriptWitness\",\n \"porCommitment\",\n \"tapKeySig\",\n \"tapScriptSig\",\n \"tapLeafScript\",\n \"tapBip32Derivation\",\n \"tapInternalKey\",\n \"tapMerkleRoot\"\n ], function(t) {\n t[t.REDEEM_SCRIPT = 0] = \"REDEEM_SCRIPT\", t[t.WITNESS_SCRIPT = 1] = \"WITNESS_SCRIPT\", t[t.BIP32_DERIVATION = 2] = \"BIP32_DERIVATION\", t[t.TAP_INTERNAL_KEY = 5] = \"TAP_INTERNAL_KEY\", t[t.TAP_TREE = 6] = \"TAP_TREE\", t[t.TAP_BIP32_DERIVATION = 7] = \"TAP_BIP32_DERIVATION\";\n }(e.OutputTypes || (e.OutputTypes = {})), e.OUTPUT_TYPE_NAMES = [\n \"redeemScript\",\n \"witnessScript\",\n \"bip32Derivation\",\n \"tapInternalKey\",\n \"tapTree\",\n \"tapBip32Derivation\"\n ];\n})($e);\nvar Hr = {};\nObject.defineProperty(Hr, \"__esModule\", { value: !0 });\nconst pc = $e, wp = (e) => [...Array(e).keys()];\nfunction Ep(e) {\n if (e.key[0] !== pc.GlobalTypes.GLOBAL_XPUB)\n throw new Error(\n \"Decode Error: could not decode globalXpub with key 0x\" + e.key.toString(\"hex\")\n );\n if (e.key.length !== 79 || ![2, 3].includes(e.key[46]))\n throw new Error(\n \"Decode Error: globalXpub has invalid extended pubkey in key 0x\" + e.key.toString(\"hex\")\n );\n if (e.value.length / 4 % 1 !== 0)\n throw new Error(\n \"Decode Error: Global GLOBAL_XPUB value length should be multiple of 4\"\n );\n const t = e.key.slice(1), r = {\n masterFingerprint: e.value.slice(0, 4),\n extendedPubkey: t,\n path: \"m\"\n };\n for (const n of wp(e.value.length / 4 - 1)) {\n const i = e.value.readUInt32LE(n * 4 + 4), s = !!(i & 2147483648), o = i & 2147483647;\n r.path += \"/\" + o.toString(10) + (s ? \"'\" : \"\");\n }\n return r;\n}\nHr.decode = Ep;\nfunction bp(e) {\n const t = I.from([pc.GlobalTypes.GLOBAL_XPUB]), r = I.concat([t, e.extendedPubkey]), n = e.path.split(\"/\"), i = I.allocUnsafe(n.length * 4);\n e.masterFingerprint.copy(i, 0);\n let s = 4;\n return n.slice(1).forEach((o) => {\n const a = o.slice(-1) === \"'\";\n let f = 2147483647 & parseInt(a ? o.slice(0, -1) : o, 10);\n a && (f += 2147483648), i.writeUInt32LE(f, s), s += 4;\n }), {\n key: r,\n value: i\n };\n}\nHr.encode = bp;\nHr.expected = \"{ masterFingerprint: Buffer; extendedPubkey: Buffer; path: string; }\";\nfunction Sp(e) {\n const t = e.extendedPubkey, r = e.masterFingerprint, n = e.path;\n return I.isBuffer(t) && t.length === 78 && [2, 3].indexOf(t[45]) > -1 && I.isBuffer(r) && r.length === 4 && typeof n == \"string\" && !!n.match(/^m(\\/\\d+'?)*$/);\n}\nHr.check = Sp;\nfunction vp(e, t, r) {\n const n = t.extendedPubkey.toString(\"hex\");\n return r.has(n) ? !1 : (r.add(n), e.filter((i) => i.extendedPubkey.equals(t.extendedPubkey)).length === 0);\n}\nHr.canAddToArray = vp;\nvar As = {};\nObject.defineProperty(As, \"__esModule\", { value: !0 });\nconst _p = $e;\nfunction Tp(e) {\n return {\n key: I.from([_p.GlobalTypes.UNSIGNED_TX]),\n value: e.toBuffer()\n };\n}\nAs.encode = Tp;\nvar $r = {};\nObject.defineProperty($r, \"__esModule\", { value: !0 });\nconst gc = $e;\nfunction Ip(e) {\n if (e.key[0] !== gc.InputTypes.FINAL_SCRIPTSIG)\n throw new Error(\n \"Decode Error: could not decode finalScriptSig with key 0x\" + e.key.toString(\"hex\")\n );\n return e.value;\n}\n$r.decode = Ip;\nfunction Pp(e) {\n return {\n key: I.from([gc.InputTypes.FINAL_SCRIPTSIG]),\n value: e\n };\n}\n$r.encode = Pp;\n$r.expected = \"Buffer\";\nfunction Op(e) {\n return I.isBuffer(e);\n}\n$r.check = Op;\nfunction kp(e, t) {\n return !!e && !!t && e.finalScriptSig === void 0;\n}\n$r.canAdd = kp;\nvar Mr = {};\nObject.defineProperty(Mr, \"__esModule\", { value: !0 });\nconst yc = $e;\nfunction Ap(e) {\n if (e.key[0] !== yc.InputTypes.FINAL_SCRIPTWITNESS)\n throw new Error(\n \"Decode Error: could not decode finalScriptWitness with key 0x\" + e.key.toString(\"hex\")\n );\n return e.value;\n}\nMr.decode = Ap;\nfunction xp(e) {\n return {\n key: I.from([yc.InputTypes.FINAL_SCRIPTWITNESS]),\n value: e\n };\n}\nMr.encode = xp;\nMr.expected = \"Buffer\";\nfunction Cp(e) {\n return I.isBuffer(e);\n}\nMr.check = Cp;\nfunction Bp(e, t) {\n return !!e && !!t && e.finalScriptWitness === void 0;\n}\nMr.canAdd = Bp;\nvar Dr = {};\nObject.defineProperty(Dr, \"__esModule\", { value: !0 });\nconst mc = $e;\nfunction Np(e) {\n if (e.key[0] !== mc.InputTypes.NON_WITNESS_UTXO)\n throw new Error(\n \"Decode Error: could not decode nonWitnessUtxo with key 0x\" + e.key.toString(\"hex\")\n );\n return e.value;\n}\nDr.decode = Np;\nfunction Fp(e) {\n return {\n key: I.from([mc.InputTypes.NON_WITNESS_UTXO]),\n value: e\n };\n}\nDr.encode = Fp;\nDr.expected = \"Buffer\";\nfunction Up(e) {\n return I.isBuffer(e);\n}\nDr.check = Up;\nfunction Rp(e, t) {\n return !!e && !!t && e.nonWitnessUtxo === void 0;\n}\nDr.canAdd = Rp;\nvar jr = {};\nObject.defineProperty(jr, \"__esModule\", { value: !0 });\nconst wc = $e;\nfunction Lp(e) {\n if (e.key[0] !== wc.InputTypes.PARTIAL_SIG)\n throw new Error(\n \"Decode Error: could not decode partialSig with key 0x\" + e.key.toString(\"hex\")\n );\n if (!(e.key.length === 34 || e.key.length === 66) || ![2, 3, 4].includes(e.key[1]))\n throw new Error(\n \"Decode Error: partialSig has invalid pubkey in key 0x\" + e.key.toString(\"hex\")\n );\n return {\n pubkey: e.key.slice(1),\n signature: e.value\n };\n}\njr.decode = Lp;\nfunction Hp(e) {\n const t = I.from([wc.InputTypes.PARTIAL_SIG]);\n return {\n key: I.concat([t, e.pubkey]),\n value: e.signature\n };\n}\njr.encode = Hp;\njr.expected = \"{ pubkey: Buffer; signature: Buffer; }\";\nfunction $p(e) {\n return I.isBuffer(e.pubkey) && I.isBuffer(e.signature) && [33, 65].includes(e.pubkey.length) && [2, 3, 4].includes(e.pubkey[0]) && Mp(e.signature);\n}\njr.check = $p;\nfunction Mp(e) {\n if (!I.isBuffer(e) || e.length < 9 || e[0] !== 48 || e.length !== e[1] + 3 || e[2] !== 2)\n return !1;\n const t = e[3];\n if (t > 33 || t < 1 || e[3 + t + 1] !== 2)\n return !1;\n const r = e[3 + t + 2];\n return !(r > 33 || r < 1 || e.length !== 3 + t + 2 + r + 2);\n}\nfunction Dp(e, t, r) {\n const n = t.pubkey.toString(\"hex\");\n return r.has(n) ? !1 : (r.add(n), e.filter((i) => i.pubkey.equals(t.pubkey)).length === 0);\n}\njr.canAddToArray = Dp;\nvar Kr = {};\nObject.defineProperty(Kr, \"__esModule\", { value: !0 });\nconst Ec = $e;\nfunction jp(e) {\n if (e.key[0] !== Ec.InputTypes.POR_COMMITMENT)\n throw new Error(\n \"Decode Error: could not decode porCommitment with key 0x\" + e.key.toString(\"hex\")\n );\n return e.value.toString(\"utf8\");\n}\nKr.decode = jp;\nfunction Kp(e) {\n return {\n key: I.from([Ec.InputTypes.POR_COMMITMENT]),\n value: I.from(e, \"utf8\")\n };\n}\nKr.encode = Kp;\nKr.expected = \"string\";\nfunction Wp(e) {\n return typeof e == \"string\";\n}\nKr.check = Wp;\nfunction Vp(e, t) {\n return !!e && !!t && e.porCommitment === void 0;\n}\nKr.canAdd = Vp;\nvar Wr = {};\nObject.defineProperty(Wr, \"__esModule\", { value: !0 });\nconst bc = $e;\nfunction Gp(e) {\n if (e.key[0] !== bc.InputTypes.SIGHASH_TYPE)\n throw new Error(\n \"Decode Error: could not decode sighashType with key 0x\" + e.key.toString(\"hex\")\n );\n return e.value.readUInt32LE(0);\n}\nWr.decode = Gp;\nfunction Xp(e) {\n const t = I.from([bc.InputTypes.SIGHASH_TYPE]), r = I.allocUnsafe(4);\n return r.writeUInt32LE(e, 0), {\n key: t,\n value: r\n };\n}\nWr.encode = Xp;\nWr.expected = \"number\";\nfunction qp(e) {\n return typeof e == \"number\";\n}\nWr.check = qp;\nfunction zp(e, t) {\n return !!e && !!t && e.sighashType === void 0;\n}\nWr.canAdd = zp;\nvar Vr = {};\nObject.defineProperty(Vr, \"__esModule\", { value: !0 });\nconst Sc = $e;\nfunction Yp(e) {\n if (e.key[0] !== Sc.InputTypes.TAP_KEY_SIG || e.key.length !== 1)\n throw new Error(\n \"Decode Error: could not decode tapKeySig with key 0x\" + e.key.toString(\"hex\")\n );\n if (!vc(e.value))\n throw new Error(\n \"Decode Error: tapKeySig not a valid 64-65-byte BIP340 signature\"\n );\n return e.value;\n}\nVr.decode = Yp;\nfunction Jp(e) {\n return { key: I.from([Sc.InputTypes.TAP_KEY_SIG]), value: e };\n}\nVr.encode = Jp;\nVr.expected = \"Buffer\";\nfunction vc(e) {\n return I.isBuffer(e) && (e.length === 64 || e.length === 65);\n}\nVr.check = vc;\nfunction Qp(e, t) {\n return !!e && !!t && e.tapKeySig === void 0;\n}\nVr.canAdd = Qp;\nvar Gr = {};\nObject.defineProperty(Gr, \"__esModule\", { value: !0 });\nconst _c = $e;\nfunction Zp(e) {\n if (e.key[0] !== _c.InputTypes.TAP_LEAF_SCRIPT)\n throw new Error(\n \"Decode Error: could not decode tapLeafScript with key 0x\" + e.key.toString(\"hex\")\n );\n if ((e.key.length - 2) % 32 !== 0)\n throw new Error(\n \"Decode Error: tapLeafScript has invalid control block in key 0x\" + e.key.toString(\"hex\")\n );\n const t = e.value[e.value.length - 1];\n if ((e.key[1] & 254) !== t)\n throw new Error(\n \"Decode Error: tapLeafScript bad leaf version in key 0x\" + e.key.toString(\"hex\")\n );\n const r = e.value.slice(0, -1);\n return { controlBlock: e.key.slice(1), script: r, leafVersion: t };\n}\nGr.decode = Zp;\nfunction e1(e) {\n const t = I.from([_c.InputTypes.TAP_LEAF_SCRIPT]), r = I.from([e.leafVersion]);\n return {\n key: I.concat([t, e.controlBlock]),\n value: I.concat([e.script, r])\n };\n}\nGr.encode = e1;\nGr.expected = \"{ controlBlock: Buffer; leafVersion: number, script: Buffer; }\";\nfunction t1(e) {\n return I.isBuffer(e.controlBlock) && (e.controlBlock.length - 1) % 32 === 0 && (e.controlBlock[0] & 254) === e.leafVersion && I.isBuffer(e.script);\n}\nGr.check = t1;\nfunction r1(e, t, r) {\n const n = t.controlBlock.toString(\"hex\");\n return r.has(n) ? !1 : (r.add(n), e.filter((i) => i.controlBlock.equals(t.controlBlock)).length === 0);\n}\nGr.canAddToArray = r1;\nvar Xr = {};\nObject.defineProperty(Xr, \"__esModule\", { value: !0 });\nconst Tc = $e;\nfunction n1(e) {\n if (e.key[0] !== Tc.InputTypes.TAP_MERKLE_ROOT || e.key.length !== 1)\n throw new Error(\n \"Decode Error: could not decode tapMerkleRoot with key 0x\" + e.key.toString(\"hex\")\n );\n if (!Ic(e.value))\n throw new Error(\"Decode Error: tapMerkleRoot not a 32-byte hash\");\n return e.value;\n}\nXr.decode = n1;\nfunction i1(e) {\n return { key: I.from([Tc.InputTypes.TAP_MERKLE_ROOT]), value: e };\n}\nXr.encode = i1;\nXr.expected = \"Buffer\";\nfunction Ic(e) {\n return I.isBuffer(e) && e.length === 32;\n}\nXr.check = Ic;\nfunction o1(e, t) {\n return !!e && !!t && e.tapMerkleRoot === void 0;\n}\nXr.canAdd = o1;\nvar qr = {};\nObject.defineProperty(qr, \"__esModule\", { value: !0 });\nconst Pc = $e;\nfunction s1(e) {\n if (e.key[0] !== Pc.InputTypes.TAP_SCRIPT_SIG)\n throw new Error(\n \"Decode Error: could not decode tapScriptSig with key 0x\" + e.key.toString(\"hex\")\n );\n if (e.key.length !== 65)\n throw new Error(\n \"Decode Error: tapScriptSig has invalid key 0x\" + e.key.toString(\"hex\")\n );\n if (e.value.length !== 64 && e.value.length !== 65)\n throw new Error(\n \"Decode Error: tapScriptSig has invalid signature in key 0x\" + e.key.toString(\"hex\")\n );\n const t = e.key.slice(1, 33), r = e.key.slice(33);\n return {\n pubkey: t,\n leafHash: r,\n signature: e.value\n };\n}\nqr.decode = s1;\nfunction a1(e) {\n const t = I.from([Pc.InputTypes.TAP_SCRIPT_SIG]);\n return {\n key: I.concat([t, e.pubkey, e.leafHash]),\n value: e.signature\n };\n}\nqr.encode = a1;\nqr.expected = \"{ pubkey: Buffer; leafHash: Buffer; signature: Buffer; }\";\nfunction u1(e) {\n return I.isBuffer(e.pubkey) && I.isBuffer(e.leafHash) && I.isBuffer(e.signature) && e.pubkey.length === 32 && e.leafHash.length === 32 && (e.signature.length === 64 || e.signature.length === 65);\n}\nqr.check = u1;\nfunction c1(e, t, r) {\n const n = t.pubkey.toString(\"hex\") + t.leafHash.toString(\"hex\");\n return r.has(n) ? !1 : (r.add(n), e.filter(\n (i) => i.pubkey.equals(t.pubkey) && i.leafHash.equals(t.leafHash)\n ).length === 0);\n}\nqr.canAddToArray = c1;\nvar zr = {}, Rt = {}, Tt = {};\nObject.defineProperty(Tt, \"__esModule\", { value: !0 });\nconst l1 = 9007199254740991;\nfunction xs(e) {\n if (e < 0 || e > l1 || e % 1 !== 0)\n throw new RangeError(\"value out of range\");\n}\nfunction jn(e, t, r) {\n if (xs(e), t || (t = I.allocUnsafe(Oc(e))), !I.isBuffer(t))\n throw new TypeError(\"buffer must be a Buffer instance\");\n return r || (r = 0), e < 253 ? (t.writeUInt8(e, r), Object.assign(jn, { bytes: 1 })) : e <= 65535 ? (t.writeUInt8(253, r), t.writeUInt16LE(e, r + 1), Object.assign(jn, { bytes: 3 })) : e <= 4294967295 ? (t.writeUInt8(254, r), t.writeUInt32LE(e, r + 1), Object.assign(jn, { bytes: 5 })) : (t.writeUInt8(255, r), t.writeUInt32LE(e >>> 0, r + 1), t.writeUInt32LE(e / 4294967296 | 0, r + 5), Object.assign(jn, { bytes: 9 })), t;\n}\nTt.encode = jn;\nfunction Kn(e, t) {\n if (!I.isBuffer(e))\n throw new TypeError(\"buffer must be a Buffer instance\");\n t || (t = 0);\n const r = e.readUInt8(t);\n if (r < 253)\n return Object.assign(Kn, { bytes: 1 }), r;\n if (r === 253)\n return Object.assign(Kn, { bytes: 3 }), e.readUInt16LE(t + 1);\n if (r === 254)\n return Object.assign(Kn, { bytes: 5 }), e.readUInt32LE(t + 1);\n {\n Object.assign(Kn, { bytes: 9 });\n const n = e.readUInt32LE(t + 1), s = e.readUInt32LE(t + 5) * 4294967296 + n;\n return xs(s), s;\n }\n}\nTt.decode = Kn;\nfunction Oc(e) {\n return xs(e), e < 253 ? 1 : e <= 65535 ? 3 : e <= 4294967295 ? 5 : 9;\n}\nTt.encodingLength = Oc;\nObject.defineProperty(Rt, \"__esModule\", { value: !0 });\nconst yi = Tt;\nRt.range = (e) => [...Array(e).keys()];\nfunction f1(e) {\n if (e.length < 1)\n return e;\n let t = e.length - 1, r = 0;\n for (let n = 0; n < e.length / 2; n++)\n r = e[n], e[n] = e[t], e[t] = r, t--;\n return e;\n}\nRt.reverseBuffer = f1;\nfunction h1(e) {\n const t = e.map(kc);\n return t.push(I.from([0])), I.concat(t);\n}\nRt.keyValsToBuffer = h1;\nfunction kc(e) {\n const t = e.key.length, r = e.value.length, n = yi.encodingLength(t), i = yi.encodingLength(r), s = I.allocUnsafe(\n n + t + i + r\n );\n return yi.encode(t, s, 0), e.key.copy(s, n), yi.encode(r, s, n + t), e.value.copy(s, n + t + i), s;\n}\nRt.keyValToBuffer = kc;\nfunction Ac(e, t) {\n if (typeof e != \"number\")\n throw new Error(\"cannot write a non-number as a number\");\n if (e < 0)\n throw new Error(\"specified a negative value for writing an unsigned value\");\n if (e > t)\n throw new Error(\"RangeError: value out of range\");\n if (Math.floor(e) !== e)\n throw new Error(\"value has a fractional component\");\n}\nfunction d1(e, t) {\n const r = e.readUInt32LE(t);\n let n = e.readUInt32LE(t + 4);\n return n *= 4294967296, Ac(n + r, 9007199254740991), n + r;\n}\nRt.readUInt64LE = d1;\nfunction p1(e, t, r) {\n return Ac(t, 9007199254740991), e.writeInt32LE(t & -1, r), e.writeUInt32LE(Math.floor(t / 4294967296), r + 4), r + 8;\n}\nRt.writeUInt64LE = p1;\nObject.defineProperty(zr, \"__esModule\", { value: !0 });\nconst xc = $e, Cc = Rt, Bi = Tt;\nfunction g1(e) {\n if (e.key[0] !== xc.InputTypes.WITNESS_UTXO)\n throw new Error(\n \"Decode Error: could not decode witnessUtxo with key 0x\" + e.key.toString(\"hex\")\n );\n const t = Cc.readUInt64LE(e.value, 0);\n let r = 8;\n const n = Bi.decode(e.value, r);\n r += Bi.encodingLength(n);\n const i = e.value.slice(r);\n if (i.length !== n)\n throw new Error(\"Decode Error: WITNESS_UTXO script is not proper length\");\n return {\n script: i,\n value: t\n };\n}\nzr.decode = g1;\nfunction y1(e) {\n const { script: t, value: r } = e, n = Bi.encodingLength(t.length), i = I.allocUnsafe(8 + n + t.length);\n return Cc.writeUInt64LE(i, r, 0), Bi.encode(t.length, i, 8), t.copy(i, 8 + n), {\n key: I.from([xc.InputTypes.WITNESS_UTXO]),\n value: i\n };\n}\nzr.encode = y1;\nzr.expected = \"{ script: Buffer; value: number; }\";\nfunction m1(e) {\n return I.isBuffer(e.script) && typeof e.value == \"number\";\n}\nzr.check = m1;\nfunction w1(e, t) {\n return !!e && !!t && e.witnessUtxo === void 0;\n}\nzr.canAdd = w1;\nvar Yr = {};\nObject.defineProperty(Yr, \"__esModule\", { value: !0 });\nconst Bc = $e, ns = Tt;\nfunction E1(e) {\n if (e.key[0] !== Bc.OutputTypes.TAP_TREE || e.key.length !== 1)\n throw new Error(\n \"Decode Error: could not decode tapTree with key 0x\" + e.key.toString(\"hex\")\n );\n let t = 0;\n const r = [];\n for (; t < e.value.length; ) {\n const n = e.value[t++], i = e.value[t++], s = ns.decode(e.value, t);\n t += ns.encodingLength(s), r.push({\n depth: n,\n leafVersion: i,\n script: e.value.slice(t, t + s)\n }), t += s;\n }\n return { leaves: r };\n}\nYr.decode = E1;\nfunction b1(e) {\n const t = I.from([Bc.OutputTypes.TAP_TREE]), r = [].concat(\n ...e.leaves.map((n) => [\n I.of(n.depth, n.leafVersion),\n ns.encode(n.script.length),\n n.script\n ])\n );\n return {\n key: t,\n value: I.concat(r)\n };\n}\nYr.encode = b1;\nYr.expected = \"{ leaves: [{ depth: number; leafVersion: number, script: Buffer; }] }\";\nfunction S1(e) {\n return Array.isArray(e.leaves) && e.leaves.every(\n (t) => t.depth >= 0 && t.depth <= 128 && (t.leafVersion & 254) === t.leafVersion && I.isBuffer(t.script)\n );\n}\nYr.check = S1;\nfunction v1(e, t) {\n return !!e && !!t && e.tapTree === void 0;\n}\nYr.canAdd = v1;\nvar so = {};\nObject.defineProperty(so, \"__esModule\", { value: !0 });\nconst _1 = (e) => [...Array(e).keys()], T1 = (e) => e.length === 33 && [2, 3].includes(e[0]) || e.length === 65 && e[0] === 4;\nfunction I1(e, t = T1) {\n function r(a) {\n if (a.key[0] !== e)\n throw new Error(\n \"Decode Error: could not decode bip32Derivation with key 0x\" + a.key.toString(\"hex\")\n );\n const f = a.key.slice(1);\n if (!t(f))\n throw new Error(\n \"Decode Error: bip32Derivation has invalid pubkey in key 0x\" + a.key.toString(\"hex\")\n );\n if (a.value.length / 4 % 1 !== 0)\n throw new Error(\n \"Decode Error: Input BIP32_DERIVATION value length should be multiple of 4\"\n );\n const h = {\n masterFingerprint: a.value.slice(0, 4),\n pubkey: f,\n path: \"m\"\n };\n for (const l of _1(a.value.length / 4 - 1)) {\n const p = a.value.readUInt32LE(l * 4 + 4), E = !!(p & 2147483648), y = p & 2147483647;\n h.path += \"/\" + y.toString(10) + (E ? \"'\" : \"\");\n }\n return h;\n }\n function n(a) {\n const f = I.from([e]), h = I.concat([f, a.pubkey]), l = a.path.split(\"/\"), p = I.allocUnsafe(l.length * 4);\n a.masterFingerprint.copy(p, 0);\n let E = 4;\n return l.slice(1).forEach((y) => {\n const v = y.slice(-1) === \"'\";\n let S = 2147483647 & parseInt(v ? y.slice(0, -1) : y, 10);\n v && (S += 2147483648), p.writeUInt32LE(S, E), E += 4;\n }), {\n key: h,\n value: p\n };\n }\n const i = \"{ masterFingerprint: Buffer; pubkey: Buffer; path: string; }\";\n function s(a) {\n return I.isBuffer(a.pubkey) && I.isBuffer(a.masterFingerprint) && typeof a.path == \"string\" && t(a.pubkey) && a.masterFingerprint.length === 4;\n }\n function o(a, f, h) {\n const l = f.pubkey.toString(\"hex\");\n return h.has(l) ? !1 : (h.add(l), a.filter((p) => p.pubkey.equals(f.pubkey)).length === 0);\n }\n return {\n decode: r,\n encode: n,\n check: s,\n expected: i,\n canAddToArray: o\n };\n}\nso.makeConverter = I1;\nvar Cs = {};\nObject.defineProperty(Cs, \"__esModule\", { value: !0 });\nfunction P1(e) {\n return t;\n function t(r) {\n let n;\n if (e.includes(r.key[0]) && (n = r.key.slice(1), !(n.length === 33 || n.length === 65) || ![2, 3, 4].includes(n[0])))\n throw new Error(\n \"Format Error: invalid pubkey in key 0x\" + r.key.toString(\"hex\")\n );\n return n;\n }\n}\nCs.makeChecker = P1;\nvar Bs = {};\nObject.defineProperty(Bs, \"__esModule\", { value: !0 });\nfunction O1(e) {\n function t(o) {\n if (o.key[0] !== e)\n throw new Error(\n \"Decode Error: could not decode redeemScript with key 0x\" + o.key.toString(\"hex\")\n );\n return o.value;\n }\n function r(o) {\n return {\n key: I.from([e]),\n value: o\n };\n }\n const n = \"Buffer\";\n function i(o) {\n return I.isBuffer(o);\n }\n function s(o, a) {\n return !!o && !!a && o.redeemScript === void 0;\n }\n return {\n decode: t,\n encode: r,\n check: i,\n expected: n,\n canAdd: s\n };\n}\nBs.makeConverter = O1;\nvar Ns = {};\nObject.defineProperty(Ns, \"__esModule\", { value: !0 });\nconst mi = Tt, k1 = so, A1 = (e) => e.length === 32;\nfunction x1(e) {\n const t = k1.makeConverter(e, A1);\n function r(o) {\n const a = mi.decode(o.value), f = mi.encodingLength(a), h = t.decode({\n key: o.key,\n value: o.value.slice(f + a * 32)\n }), l = new Array(a);\n for (let p = 0, E = f; p < a; p++, E += 32)\n l[p] = o.value.slice(E, E + 32);\n return Object.assign({}, h, { leafHashes: l });\n }\n function n(o) {\n const a = t.encode(o), f = mi.encodingLength(o.leafHashes.length), h = I.allocUnsafe(f);\n mi.encode(o.leafHashes.length, h);\n const l = I.concat([h, ...o.leafHashes, a.value]);\n return Object.assign({}, a, { value: l });\n }\n const i = \"{ masterFingerprint: Buffer; pubkey: Buffer; path: string; leafHashes: Buffer[]; }\";\n function s(o) {\n return Array.isArray(o.leafHashes) && o.leafHashes.every(\n (a) => I.isBuffer(a) && a.length === 32\n ) && t.check(o);\n }\n return {\n decode: r,\n encode: n,\n check: s,\n expected: i,\n canAddToArray: t.canAddToArray\n };\n}\nNs.makeConverter = x1;\nvar Fs = {};\nObject.defineProperty(Fs, \"__esModule\", { value: !0 });\nfunction C1(e) {\n function t(o) {\n if (o.key[0] !== e || o.key.length !== 1)\n throw new Error(\n \"Decode Error: could not decode tapInternalKey with key 0x\" + o.key.toString(\"hex\")\n );\n if (o.value.length !== 32)\n throw new Error(\n \"Decode Error: tapInternalKey not a 32-byte x-only pubkey\"\n );\n return o.value;\n }\n function r(o) {\n return { key: I.from([e]), value: o };\n }\n const n = \"Buffer\";\n function i(o) {\n return I.isBuffer(o) && o.length === 32;\n }\n function s(o, a) {\n return !!o && !!a && o.tapInternalKey === void 0;\n }\n return {\n decode: t,\n encode: r,\n check: i,\n expected: n,\n canAdd: s\n };\n}\nFs.makeConverter = C1;\nvar Us = {};\nObject.defineProperty(Us, \"__esModule\", { value: !0 });\nfunction B1(e) {\n function t(o) {\n if (o.key[0] !== e)\n throw new Error(\n \"Decode Error: could not decode witnessScript with key 0x\" + o.key.toString(\"hex\")\n );\n return o.value;\n }\n function r(o) {\n return {\n key: I.from([e]),\n value: o\n };\n }\n const n = \"Buffer\";\n function i(o) {\n return I.isBuffer(o);\n }\n function s(o, a) {\n return !!o && !!a && o.witnessScript === void 0;\n }\n return {\n decode: t,\n encode: r,\n check: i,\n expected: n,\n canAdd: s\n };\n}\nUs.makeConverter = B1;\nObject.defineProperty(Lr, \"__esModule\", { value: !0 });\nconst lt = $e, N1 = Hr, F1 = As, U1 = $r, R1 = Mr, L1 = Dr, H1 = jr, $1 = Kr, M1 = Wr, D1 = Vr, j1 = Gr, K1 = Xr, W1 = qr, V1 = zr, G1 = Yr, Nc = so, Rs = Cs, Fc = Bs, Uc = Ns, Rc = Fs, Lc = Us, X1 = {\n unsignedTx: F1,\n globalXpub: N1,\n // pass an Array of key bytes that require pubkey beside the key\n checkPubkey: Rs.makeChecker([])\n};\nLr.globals = X1;\nconst q1 = {\n nonWitnessUtxo: L1,\n partialSig: H1,\n sighashType: M1,\n finalScriptSig: U1,\n finalScriptWitness: R1,\n porCommitment: $1,\n witnessUtxo: V1,\n bip32Derivation: Nc.makeConverter(\n lt.InputTypes.BIP32_DERIVATION\n ),\n redeemScript: Fc.makeConverter(\n lt.InputTypes.REDEEM_SCRIPT\n ),\n witnessScript: Lc.makeConverter(\n lt.InputTypes.WITNESS_SCRIPT\n ),\n checkPubkey: Rs.makeChecker([\n lt.InputTypes.PARTIAL_SIG,\n lt.InputTypes.BIP32_DERIVATION\n ]),\n tapKeySig: D1,\n tapScriptSig: W1,\n tapLeafScript: j1,\n tapBip32Derivation: Uc.makeConverter(\n lt.InputTypes.TAP_BIP32_DERIVATION\n ),\n tapInternalKey: Rc.makeConverter(\n lt.InputTypes.TAP_INTERNAL_KEY\n ),\n tapMerkleRoot: K1\n};\nLr.inputs = q1;\nconst z1 = {\n bip32Derivation: Nc.makeConverter(\n lt.OutputTypes.BIP32_DERIVATION\n ),\n redeemScript: Fc.makeConverter(\n lt.OutputTypes.REDEEM_SCRIPT\n ),\n witnessScript: Lc.makeConverter(\n lt.OutputTypes.WITNESS_SCRIPT\n ),\n checkPubkey: Rs.makeChecker([\n lt.OutputTypes.BIP32_DERIVATION\n ]),\n tapBip32Derivation: Uc.makeConverter(\n lt.OutputTypes.TAP_BIP32_DERIVATION\n ),\n tapTree: G1,\n tapInternalKey: Rc.makeConverter(\n lt.OutputTypes.TAP_INTERNAL_KEY\n )\n};\nLr.outputs = z1;\nObject.defineProperty(ei, \"__esModule\", { value: !0 });\nconst he = Lr, Ni = Rt, Ca = Tt, G = $e;\nfunction Y1(e, t) {\n let r = 0;\n function n() {\n const T = Ca.decode(e, r);\n r += Ca.encodingLength(T);\n const C = e.slice(r, r + T);\n return r += T, C;\n }\n function i() {\n const T = e.readUInt32BE(r);\n return r += 4, T;\n }\n function s() {\n const T = e.readUInt8(r);\n return r += 1, T;\n }\n function o() {\n const T = n(), C = n();\n return {\n key: T,\n value: C\n };\n }\n function a() {\n if (r >= e.length)\n throw new Error(\"Format Error: Unexpected End of PSBT\");\n const T = e.readUInt8(r) === 0;\n return T && r++, T;\n }\n if (i() !== 1886610036)\n throw new Error(\"Format Error: Invalid Magic Number\");\n if (s() !== 255)\n throw new Error(\n \"Format Error: Magic Number must be followed by 0xff separator\"\n );\n const f = [], h = {};\n for (; !a(); ) {\n const T = o(), C = T.key.toString(\"hex\");\n if (h[C])\n throw new Error(\n \"Format Error: Keys must be unique for global keymap: key \" + C\n );\n h[C] = 1, f.push(T);\n }\n const l = f.filter(\n (T) => T.key[0] === G.GlobalTypes.UNSIGNED_TX\n );\n if (l.length !== 1)\n throw new Error(\"Format Error: Only one UNSIGNED_TX allowed\");\n const p = t(l[0].value), { inputCount: E, outputCount: y } = p.getInputOutputCounts(), v = [], S = [];\n for (const T of Ni.range(E)) {\n const C = {}, O = [];\n for (; !a(); ) {\n const B = o(), U = B.key.toString(\"hex\");\n if (C[U])\n throw new Error(\n \"Format Error: Keys must be unique for each input: input index \" + T + \" key \" + U\n );\n C[U] = 1, O.push(B);\n }\n v.push(O);\n }\n for (const T of Ni.range(y)) {\n const C = {}, O = [];\n for (; !a(); ) {\n const B = o(), U = B.key.toString(\"hex\");\n if (C[U])\n throw new Error(\n \"Format Error: Keys must be unique for each output: output index \" + T + \" key \" + U\n );\n C[U] = 1, O.push(B);\n }\n S.push(O);\n }\n return Hc(p, {\n globalMapKeyVals: f,\n inputKeyVals: v,\n outputKeyVals: S\n });\n}\nei.psbtFromBuffer = Y1;\nfunction je(e, t, r) {\n if (!t.equals(I.from([r])))\n throw new Error(\n `Format Error: Invalid ${e} key: ${t.toString(\"hex\")}`\n );\n}\nei.checkKeyBuffer = je;\nfunction Hc(e, { globalMapKeyVals: t, inputKeyVals: r, outputKeyVals: n }) {\n const i = {\n unsignedTx: e\n };\n let s = 0;\n for (const l of t)\n switch (l.key[0]) {\n case G.GlobalTypes.UNSIGNED_TX:\n if (je(\n \"global\",\n l.key,\n G.GlobalTypes.UNSIGNED_TX\n ), s > 0)\n throw new Error(\"Format Error: GlobalMap has multiple UNSIGNED_TX\");\n s++;\n break;\n case G.GlobalTypes.GLOBAL_XPUB:\n i.globalXpub === void 0 && (i.globalXpub = []), i.globalXpub.push(he.globals.globalXpub.decode(l));\n break;\n default:\n i.unknownKeyVals || (i.unknownKeyVals = []), i.unknownKeyVals.push(l);\n }\n const o = r.length, a = n.length, f = [], h = [];\n for (const l of Ni.range(o)) {\n const p = {};\n for (const E of r[l])\n switch (he.inputs.checkPubkey(E), E.key[0]) {\n case G.InputTypes.NON_WITNESS_UTXO:\n if (je(\n \"input\",\n E.key,\n G.InputTypes.NON_WITNESS_UTXO\n ), p.nonWitnessUtxo !== void 0)\n throw new Error(\n \"Format Error: Input has multiple NON_WITNESS_UTXO\"\n );\n p.nonWitnessUtxo = he.inputs.nonWitnessUtxo.decode(E);\n break;\n case G.InputTypes.WITNESS_UTXO:\n if (je(\n \"input\",\n E.key,\n G.InputTypes.WITNESS_UTXO\n ), p.witnessUtxo !== void 0)\n throw new Error(\"Format Error: Input has multiple WITNESS_UTXO\");\n p.witnessUtxo = he.inputs.witnessUtxo.decode(E);\n break;\n case G.InputTypes.PARTIAL_SIG:\n p.partialSig === void 0 && (p.partialSig = []), p.partialSig.push(he.inputs.partialSig.decode(E));\n break;\n case G.InputTypes.SIGHASH_TYPE:\n if (je(\n \"input\",\n E.key,\n G.InputTypes.SIGHASH_TYPE\n ), p.sighashType !== void 0)\n throw new Error(\"Format Error: Input has multiple SIGHASH_TYPE\");\n p.sighashType = he.inputs.sighashType.decode(E);\n break;\n case G.InputTypes.REDEEM_SCRIPT:\n if (je(\n \"input\",\n E.key,\n G.InputTypes.REDEEM_SCRIPT\n ), p.redeemScript !== void 0)\n throw new Error(\"Format Error: Input has multiple REDEEM_SCRIPT\");\n p.redeemScript = he.inputs.redeemScript.decode(E);\n break;\n case G.InputTypes.WITNESS_SCRIPT:\n if (je(\n \"input\",\n E.key,\n G.InputTypes.WITNESS_SCRIPT\n ), p.witnessScript !== void 0)\n throw new Error(\"Format Error: Input has multiple WITNESS_SCRIPT\");\n p.witnessScript = he.inputs.witnessScript.decode(E);\n break;\n case G.InputTypes.BIP32_DERIVATION:\n p.bip32Derivation === void 0 && (p.bip32Derivation = []), p.bip32Derivation.push(\n he.inputs.bip32Derivation.decode(E)\n );\n break;\n case G.InputTypes.FINAL_SCRIPTSIG:\n je(\n \"input\",\n E.key,\n G.InputTypes.FINAL_SCRIPTSIG\n ), p.finalScriptSig = he.inputs.finalScriptSig.decode(E);\n break;\n case G.InputTypes.FINAL_SCRIPTWITNESS:\n je(\n \"input\",\n E.key,\n G.InputTypes.FINAL_SCRIPTWITNESS\n ), p.finalScriptWitness = he.inputs.finalScriptWitness.decode(\n E\n );\n break;\n case G.InputTypes.POR_COMMITMENT:\n je(\n \"input\",\n E.key,\n G.InputTypes.POR_COMMITMENT\n ), p.porCommitment = he.inputs.porCommitment.decode(E);\n break;\n case G.InputTypes.TAP_KEY_SIG:\n je(\n \"input\",\n E.key,\n G.InputTypes.TAP_KEY_SIG\n ), p.tapKeySig = he.inputs.tapKeySig.decode(E);\n break;\n case G.InputTypes.TAP_SCRIPT_SIG:\n p.tapScriptSig === void 0 && (p.tapScriptSig = []), p.tapScriptSig.push(he.inputs.tapScriptSig.decode(E));\n break;\n case G.InputTypes.TAP_LEAF_SCRIPT:\n p.tapLeafScript === void 0 && (p.tapLeafScript = []), p.tapLeafScript.push(he.inputs.tapLeafScript.decode(E));\n break;\n case G.InputTypes.TAP_BIP32_DERIVATION:\n p.tapBip32Derivation === void 0 && (p.tapBip32Derivation = []), p.tapBip32Derivation.push(\n he.inputs.tapBip32Derivation.decode(E)\n );\n break;\n case G.InputTypes.TAP_INTERNAL_KEY:\n je(\n \"input\",\n E.key,\n G.InputTypes.TAP_INTERNAL_KEY\n ), p.tapInternalKey = he.inputs.tapInternalKey.decode(E);\n break;\n case G.InputTypes.TAP_MERKLE_ROOT:\n je(\n \"input\",\n E.key,\n G.InputTypes.TAP_MERKLE_ROOT\n ), p.tapMerkleRoot = he.inputs.tapMerkleRoot.decode(E);\n break;\n default:\n p.unknownKeyVals || (p.unknownKeyVals = []), p.unknownKeyVals.push(E);\n }\n f.push(p);\n }\n for (const l of Ni.range(a)) {\n const p = {};\n for (const E of n[l])\n switch (he.outputs.checkPubkey(E), E.key[0]) {\n case G.OutputTypes.REDEEM_SCRIPT:\n if (je(\n \"output\",\n E.key,\n G.OutputTypes.REDEEM_SCRIPT\n ), p.redeemScript !== void 0)\n throw new Error(\"Format Error: Output has multiple REDEEM_SCRIPT\");\n p.redeemScript = he.outputs.redeemScript.decode(E);\n break;\n case G.OutputTypes.WITNESS_SCRIPT:\n if (je(\n \"output\",\n E.key,\n G.OutputTypes.WITNESS_SCRIPT\n ), p.witnessScript !== void 0)\n throw new Error(\"Format Error: Output has multiple WITNESS_SCRIPT\");\n p.witnessScript = he.outputs.witnessScript.decode(E);\n break;\n case G.OutputTypes.BIP32_DERIVATION:\n p.bip32Derivation === void 0 && (p.bip32Derivation = []), p.bip32Derivation.push(\n he.outputs.bip32Derivation.decode(E)\n );\n break;\n case G.OutputTypes.TAP_INTERNAL_KEY:\n je(\n \"output\",\n E.key,\n G.OutputTypes.TAP_INTERNAL_KEY\n ), p.tapInternalKey = he.outputs.tapInternalKey.decode(E);\n break;\n case G.OutputTypes.TAP_TREE:\n je(\n \"output\",\n E.key,\n G.OutputTypes.TAP_TREE\n ), p.tapTree = he.outputs.tapTree.decode(E);\n break;\n case G.OutputTypes.TAP_BIP32_DERIVATION:\n p.tapBip32Derivation === void 0 && (p.tapBip32Derivation = []), p.tapBip32Derivation.push(\n he.outputs.tapBip32Derivation.decode(E)\n );\n break;\n default:\n p.unknownKeyVals || (p.unknownKeyVals = []), p.unknownKeyVals.push(E);\n }\n h.push(p);\n }\n return { globalMap: i, inputs: f, outputs: h };\n}\nei.psbtFromKeyVals = Hc;\nvar ao = {};\nObject.defineProperty(ao, \"__esModule\", { value: !0 });\nconst No = Lr, Ba = Rt;\nfunction J1({ globalMap: e, inputs: t, outputs: r }) {\n const { globalKeyVals: n, inputKeyVals: i, outputKeyVals: s } = $c({\n globalMap: e,\n inputs: t,\n outputs: r\n }), o = Ba.keyValsToBuffer(n), a = (p) => p.length === 0 ? [I.from([0])] : p.map(Ba.keyValsToBuffer), f = a(i), h = a(s), l = I.allocUnsafe(5);\n return l.writeUIntBE(482972169471, 0, 5), I.concat(\n [l, o].concat(f, h)\n );\n}\nao.psbtToBuffer = J1;\nconst Q1 = (e, t) => e.key.compare(t.key);\nfunction Fo(e, t) {\n const r = /* @__PURE__ */ new Set(), n = Object.entries(e).reduce((s, [o, a]) => {\n if (o === \"unknownKeyVals\")\n return s;\n const f = t[o];\n if (f === void 0)\n return s;\n const h = (Array.isArray(a) ? a : [a]).map(\n f.encode\n );\n return h.map((p) => p.key.toString(\"hex\")).forEach((p) => {\n if (r.has(p))\n throw new Error(\"Serialize Error: Duplicate key: \" + p);\n r.add(p);\n }), s.concat(h);\n }, []), i = e.unknownKeyVals ? e.unknownKeyVals.filter((s) => !r.has(s.key.toString(\"hex\"))) : [];\n return n.concat(i).sort(Q1);\n}\nfunction $c({ globalMap: e, inputs: t, outputs: r }) {\n return {\n globalKeyVals: Fo(e, No.globals),\n inputKeyVals: t.map((n) => Fo(n, No.inputs)),\n outputKeyVals: r.map((n) => Fo(n, No.outputs))\n };\n}\nao.psbtToKeyVals = $c;\n(function(e) {\n function t(r) {\n for (var n in r)\n e.hasOwnProperty(n) || (e[n] = r[n]);\n }\n Object.defineProperty(e, \"__esModule\", { value: !0 }), t(ei), t(ao);\n})(ks);\nObject.defineProperty(Os, \"__esModule\", { value: !0 });\nconst Uo = ks;\nfunction Z1(e) {\n const t = e[0], r = Uo.psbtToKeyVals(t), n = e.slice(1);\n if (n.length === 0)\n throw new Error(\"Combine: Nothing to combine\");\n const i = Na(t);\n if (i === void 0)\n throw new Error(\"Combine: Self missing transaction\");\n const s = un(r.globalKeyVals), o = r.inputKeyVals.map(un), a = r.outputKeyVals.map(un);\n for (const f of n) {\n const h = Na(f);\n if (h === void 0 || !h.toBuffer().equals(i.toBuffer()))\n throw new Error(\n \"Combine: One of the Psbts does not have the same transaction.\"\n );\n const l = Uo.psbtToKeyVals(f);\n un(l.globalKeyVals).forEach(\n Ro(\n s,\n r.globalKeyVals,\n l.globalKeyVals\n )\n ), l.inputKeyVals.map(un).forEach(\n (v, S) => v.forEach(\n Ro(\n o[S],\n r.inputKeyVals[S],\n l.inputKeyVals[S]\n )\n )\n ), l.outputKeyVals.map(un).forEach(\n (v, S) => v.forEach(\n Ro(\n a[S],\n r.outputKeyVals[S],\n l.outputKeyVals[S]\n )\n )\n );\n }\n return Uo.psbtFromKeyVals(i, {\n globalMapKeyVals: r.globalKeyVals,\n inputKeyVals: r.inputKeyVals,\n outputKeyVals: r.outputKeyVals\n });\n}\nOs.combine = Z1;\nfunction Ro(e, t, r) {\n return (n) => {\n if (e.has(n))\n return;\n const i = r.filter((s) => s.key.toString(\"hex\") === n)[0];\n t.push(i), e.add(n);\n };\n}\nfunction Na(e) {\n return e.globalMap.unsignedTx;\n}\nfunction un(e) {\n const t = /* @__PURE__ */ new Set();\n return e.forEach((r) => {\n const n = r.key.toString(\"hex\");\n if (t.has(n))\n throw new Error(\"Combine: KeyValue Map keys should be unique\");\n t.add(n);\n }), t;\n}\nvar Ls = {};\n(function(e) {\n Object.defineProperty(e, \"__esModule\", { value: !0 });\n const t = Lr;\n function r(y, v) {\n const S = y[v];\n if (S === void 0)\n throw new Error(`No input #${v}`);\n return S;\n }\n e.checkForInput = r;\n function n(y, v) {\n const S = y[v];\n if (S === void 0)\n throw new Error(`No output #${v}`);\n return S;\n }\n e.checkForOutput = n;\n function i(y, v, S) {\n if (y.key[0] < S)\n throw new Error(\n \"Use the method for your specific key instead of addUnknownKeyVal*\"\n );\n if (v && v.filter((T) => T.key.equals(y.key)).length !== 0)\n throw new Error(`Duplicate Key: ${y.key.toString(\"hex\")}`);\n }\n e.checkHasKey = i;\n function s(y) {\n let v = 0;\n return Object.keys(y).forEach((S) => {\n Number(isNaN(Number(S))) && v++;\n }), v;\n }\n e.getEnumLength = s;\n function o(y, v) {\n let S = !1;\n if (v.nonWitnessUtxo || v.witnessUtxo) {\n const T = !!v.redeemScript, C = !!v.witnessScript, O = !T || !!v.finalScriptSig, B = !C || !!v.finalScriptWitness, U = !!v.finalScriptSig || !!v.finalScriptWitness;\n S = O && B && U;\n }\n if (S === !1)\n throw new Error(\n `Input #${y} has too much or too little data to clean`\n );\n }\n e.inputCheckUncleanFinalized = o;\n function a(y, v, S, T) {\n throw new Error(\n `Data for ${y} key ${v} is incorrect: Expected ${S} and got ${JSON.stringify(T)}`\n );\n }\n function f(y) {\n return (v, S) => {\n for (const T of Object.keys(v)) {\n const C = v[T], { canAdd: O, canAddToArray: B, check: U, expected: R } = (\n // @ts-ignore\n t[y + \"s\"][T] || {}\n ), k = !!B;\n if (U)\n if (k) {\n if (!Array.isArray(C) || // @ts-ignore\n S[T] && !Array.isArray(S[T]))\n throw new Error(`Key type ${T} must be an array`);\n C.every(U) || a(y, T, R, C);\n const j = S[T] || [], A = /* @__PURE__ */ new Set();\n if (!C.every((b) => B(j, b, A)))\n throw new Error(\"Can not add duplicate data to array\");\n S[T] = j.concat(C);\n } else {\n if (U(C) || a(y, T, R, C), !O(S, C))\n throw new Error(`Can not add duplicate data to ${y}`);\n S[T] = C;\n }\n }\n };\n }\n e.updateGlobal = f(\"global\"), e.updateInput = f(\"input\"), e.updateOutput = f(\"output\");\n function h(y, v) {\n const S = y.length - 1, T = r(y, S);\n e.updateInput(v, T);\n }\n e.addInputAttributes = h;\n function l(y, v) {\n const S = y.length - 1, T = n(y, S);\n e.updateOutput(v, T);\n }\n e.addOutputAttributes = l;\n function p(y, v) {\n if (!I.isBuffer(v) || v.length < 4)\n throw new Error(\"Set Version: Invalid Transaction\");\n return v.writeUInt32LE(y, 0), v;\n }\n e.defaultVersionSetter = p;\n function E(y, v) {\n if (!I.isBuffer(v) || v.length < 4)\n throw new Error(\"Set Locktime: Invalid Transaction\");\n return v.writeUInt32LE(y, v.length - 4), v;\n }\n e.defaultLocktimeSetter = E;\n})(Ls);\nObject.defineProperty(Ps, \"__esModule\", { value: !0 });\nconst e2 = Os, Fa = ks, Lo = $e, De = Ls;\nlet t2 = class {\n constructor(t) {\n this.inputs = [], this.outputs = [], this.globalMap = {\n unsignedTx: t\n };\n }\n static fromBase64(t, r) {\n const n = I.from(t, \"base64\");\n return this.fromBuffer(n, r);\n }\n static fromHex(t, r) {\n const n = I.from(t, \"hex\");\n return this.fromBuffer(n, r);\n }\n static fromBuffer(t, r) {\n const n = Fa.psbtFromBuffer(t, r), i = new this(n.globalMap.unsignedTx);\n return Object.assign(i, n), i;\n }\n toBase64() {\n return this.toBuffer().toString(\"base64\");\n }\n toHex() {\n return this.toBuffer().toString(\"hex\");\n }\n toBuffer() {\n return Fa.psbtToBuffer(this);\n }\n updateGlobal(t) {\n return De.updateGlobal(t, this.globalMap), this;\n }\n updateInput(t, r) {\n const n = De.checkForInput(this.inputs, t);\n return De.updateInput(r, n), this;\n }\n updateOutput(t, r) {\n const n = De.checkForOutput(this.outputs, t);\n return De.updateOutput(r, n), this;\n }\n addUnknownKeyValToGlobal(t) {\n return De.checkHasKey(\n t,\n this.globalMap.unknownKeyVals,\n De.getEnumLength(Lo.GlobalTypes)\n ), this.globalMap.unknownKeyVals || (this.globalMap.unknownKeyVals = []), this.globalMap.unknownKeyVals.push(t), this;\n }\n addUnknownKeyValToInput(t, r) {\n const n = De.checkForInput(this.inputs, t);\n return De.checkHasKey(\n r,\n n.unknownKeyVals,\n De.getEnumLength(Lo.InputTypes)\n ), n.unknownKeyVals || (n.unknownKeyVals = []), n.unknownKeyVals.push(r), this;\n }\n addUnknownKeyValToOutput(t, r) {\n const n = De.checkForOutput(this.outputs, t);\n return De.checkHasKey(\n r,\n n.unknownKeyVals,\n De.getEnumLength(Lo.OutputTypes)\n ), n.unknownKeyVals || (n.unknownKeyVals = []), n.unknownKeyVals.push(r), this;\n }\n addInput(t) {\n this.globalMap.unsignedTx.addInput(t), this.inputs.push({\n unknownKeyVals: []\n });\n const r = t.unknownKeyVals || [], n = this.inputs.length - 1;\n if (!Array.isArray(r))\n throw new Error(\"unknownKeyVals must be an Array\");\n return r.forEach(\n (i) => this.addUnknownKeyValToInput(n, i)\n ), De.addInputAttributes(this.inputs, t), this;\n }\n addOutput(t) {\n this.globalMap.unsignedTx.addOutput(t), this.outputs.push({\n unknownKeyVals: []\n });\n const r = t.unknownKeyVals || [], n = this.outputs.length - 1;\n if (!Array.isArray(r))\n throw new Error(\"unknownKeyVals must be an Array\");\n return r.forEach(\n (i) => this.addUnknownKeyValToOutput(n, i)\n ), De.addOutputAttributes(this.outputs, t), this;\n }\n clearFinalizedInput(t) {\n const r = De.checkForInput(this.inputs, t);\n De.inputCheckUncleanFinalized(t, r);\n for (const n of Object.keys(r))\n [\n \"witnessUtxo\",\n \"nonWitnessUtxo\",\n \"finalScriptSig\",\n \"finalScriptWitness\",\n \"unknownKeyVals\"\n ].includes(n) || delete r[n];\n return this;\n }\n combine(...t) {\n const r = e2.combine([this].concat(t));\n return Object.assign(this, r), this;\n }\n getTransaction() {\n return this.globalMap.unsignedTx.toBuffer();\n }\n};\nPs.Psbt = t2;\nvar ye = {}, ue = {};\nObject.defineProperty(ue, \"__esModule\", { value: !0 });\nue.signatureBlocksAction = ue.checkInputForSig = ue.pubkeyInScript = ue.pubkeyPositionInScript = ue.witnessStackToScriptWitness = ue.isP2TR = ue.isP2SHScript = ue.isP2WSHScript = ue.isP2WPKH = ue.isP2PKH = ue.isP2PK = ue.isP2MS = void 0;\nconst Ua = Tt, Gn = ot, wi = Or, r2 = Ut, Jr = Tn;\nfunction Qr(e) {\n return (t) => {\n try {\n return e({ output: t }), !0;\n } catch {\n return !1;\n }\n };\n}\nue.isP2MS = Qr(Jr.p2ms);\nue.isP2PK = Qr(Jr.p2pk);\nue.isP2PKH = Qr(Jr.p2pkh);\nue.isP2WPKH = Qr(Jr.p2wpkh);\nue.isP2WSHScript = Qr(Jr.p2wsh);\nue.isP2SHScript = Qr(Jr.p2sh);\nue.isP2TR = Qr(Jr.p2tr);\nfunction n2(e) {\n let t = I.allocUnsafe(0);\n function r(o) {\n t = I.concat([t, I.from(o)]);\n }\n function n(o) {\n const a = t.length, f = Ua.encodingLength(o);\n t = I.concat([t, I.allocUnsafe(f)]), Ua.encode(o, t, a);\n }\n function i(o) {\n n(o.length), r(o);\n }\n function s(o) {\n n(o.length), o.forEach(i);\n }\n return s(e), t;\n}\nue.witnessStackToScriptWitness = n2;\nfunction Mc(e, t) {\n const r = (0, r2.hash160)(e), n = e.slice(1, 33), i = Gn.decompile(t);\n if (i === null)\n throw new Error(\"Unknown script error\");\n return i.findIndex((s) => typeof s == \"number\" ? !1 : s.equals(e) || s.equals(r) || s.equals(n));\n}\nue.pubkeyPositionInScript = Mc;\nfunction i2(e, t) {\n return Mc(e, t) !== -1;\n}\nue.pubkeyInScript = i2;\nfunction o2(e, t) {\n return s2(e).some(\n (n) => Dc(n, Gn.signature.decode, t)\n );\n}\nue.checkInputForSig = o2;\nfunction Dc(e, t, r) {\n const { hashType: n } = t(e), i = [];\n switch (n & wi.Transaction.SIGHASH_ANYONECANPAY && i.push(\"addInput\"), n & 31) {\n case wi.Transaction.SIGHASH_ALL:\n break;\n case wi.Transaction.SIGHASH_SINGLE:\n case wi.Transaction.SIGHASH_NONE:\n i.push(\"addOutput\"), i.push(\"setInputSequence\");\n break;\n }\n return i.indexOf(r) === -1;\n}\nue.signatureBlocksAction = Dc;\nfunction s2(e) {\n let t = [];\n if ((e.partialSig || []).length === 0) {\n if (!e.finalScriptSig && !e.finalScriptWitness)\n return [];\n t = a2(e);\n } else\n t = e.partialSig;\n return t.map((r) => r.signature);\n}\nfunction a2(e) {\n const t = e.finalScriptSig ? Gn.decompile(e.finalScriptSig) || [] : [], r = e.finalScriptWitness ? Gn.decompile(e.finalScriptWitness) || [] : [];\n return t.concat(r).filter((n) => I.isBuffer(n) && Gn.isCanonicalScriptSignature(n)).map((n) => ({ signature: n }));\n}\nObject.defineProperty(ye, \"__esModule\", { value: !0 });\nye.checkTaprootInputForSigs = ye.tapTreeFromList = ye.tapTreeToList = ye.tweakInternalPubKey = ye.checkTaprootOutputFields = ye.checkTaprootInputFields = ye.isTaprootOutput = ye.isTaprootInput = ye.serializeTaprootSignature = ye.tapScriptFinalizer = ye.toXOnly = void 0;\nconst Hs = qe, u2 = Or, uo = ue, Ir = ro, c2 = Tn, l2 = ue, f2 = (e) => e.length === 32 ? e : e.slice(1, 33);\nye.toXOnly = f2;\nfunction h2(e, t, r) {\n const n = x2(\n t,\n e,\n r\n );\n try {\n const s = k2(t, n).concat(n.script).concat(n.controlBlock);\n return {\n finalScriptWitness: (0, uo.witnessStackToScriptWitness)(s)\n };\n } catch (i) {\n throw new Error(`Can not finalize taproot input #${e}: ${i}`);\n }\n}\nye.tapScriptFinalizer = h2;\nfunction d2(e, t) {\n const r = t ? I.from([t]) : I.from([]);\n return I.concat([e, r]);\n}\nye.serializeTaprootSignature = d2;\nfunction Ti(e) {\n return e && !!(e.tapInternalKey || e.tapMerkleRoot || e.tapLeafScript && e.tapLeafScript.length || e.tapBip32Derivation && e.tapBip32Derivation.length || e.witnessUtxo && (0, uo.isP2TR)(e.witnessUtxo.script));\n}\nye.isTaprootInput = Ti;\nfunction Ii(e, t) {\n return e && !!(e.tapInternalKey || e.tapTree || e.tapBip32Derivation && e.tapBip32Derivation.length || t && (0, uo.isP2TR)(t));\n}\nye.isTaprootOutput = Ii;\nfunction p2(e, t, r) {\n I2(e, t, r), O2(e, t, r);\n}\nye.checkTaprootInputFields = p2;\nfunction g2(e, t, r) {\n P2(e, t, r), y2(e, t);\n}\nye.checkTaprootOutputFields = g2;\nfunction y2(e, t) {\n if (!t.tapTree && !t.tapInternalKey)\n return;\n const r = t.tapInternalKey || e.tapInternalKey, n = t.tapTree || e.tapTree;\n if (r) {\n const { script: i } = e, s = m2(r, n);\n if (i && !i.equals(s))\n throw new Error(\"Error adding output. Script or address missmatch.\");\n }\n}\nfunction m2(e, t) {\n const r = t && jc(t.leaves), { output: n } = (0, c2.p2tr)({\n internalPubkey: e,\n scriptTree: r\n });\n return n;\n}\nfunction w2(e, t) {\n const r = t.tapInternalKey, n = r && (0, Ir.tweakKey)(r, t.tapMerkleRoot);\n if (!n)\n throw new Error(\n `Cannot tweak tap internal key for input #${e}. Public key: ${r && r.toString(\"hex\")}`\n );\n return n.x;\n}\nye.tweakInternalPubKey = w2;\nfunction E2(e) {\n if (!(0, Hs.isTaptree)(e))\n throw new Error(\n \"Cannot convert taptree to tapleaf list. Expecting a tapree structure.\"\n );\n return is(e);\n}\nye.tapTreeToList = E2;\nfunction jc(e = []) {\n return e.length === 1 && e[0].depth === 0 ? {\n output: e[0].script,\n version: e[0].leafVersion\n } : T2(e);\n}\nye.tapTreeFromList = jc;\nfunction b2(e, t) {\n return v2(e).some(\n (n) => (0, l2.signatureBlocksAction)(n, S2, t)\n );\n}\nye.checkTaprootInputForSigs = b2;\nfunction S2(e) {\n return {\n signature: e.slice(0, 64),\n hashType: e.slice(64)[0] || u2.Transaction.SIGHASH_DEFAULT\n };\n}\nfunction v2(e) {\n const t = [];\n if (e.tapKeySig && t.push(e.tapKeySig), e.tapScriptSig && t.push(...e.tapScriptSig.map((r) => r.signature)), !t.length) {\n const r = _2(e.finalScriptWitness);\n r && t.push(r);\n }\n return t;\n}\nfunction _2(e) {\n if (!e)\n return;\n const t = e.slice(2);\n if (t.length === 64 || t.length === 65)\n return t;\n}\nfunction is(e, t = [], r = 0) {\n if (r > Ir.MAX_TAPTREE_DEPTH)\n throw new Error(\"Max taptree depth exceeded.\");\n return e ? (0, Hs.isTapleaf)(e) ? (t.push({\n depth: r,\n leafVersion: e.version || Ir.LEAF_VERSION_TAPSCRIPT,\n script: e.output\n }), t) : (e[0] && is(e[0], t, r + 1), e[1] && is(e[1], t, r + 1), t) : [];\n}\nfunction T2(e) {\n let t;\n for (const r of e)\n if (t = os(r, t), !t)\n throw new Error(\"No room left to insert tapleaf in tree\");\n return t;\n}\nfunction os(e, t, r = 0) {\n if (r > Ir.MAX_TAPTREE_DEPTH)\n throw new Error(\"Max taptree depth exceeded.\");\n if (e.depth === r)\n return t ? void 0 : {\n output: e.script,\n version: e.leafVersion\n };\n if ((0, Hs.isTapleaf)(t))\n return;\n const n = os(e, t && t[0], r + 1);\n if (n)\n return [n, t && t[1]];\n const i = os(e, t && t[1], r + 1);\n if (i)\n return [t && t[0], i];\n}\nfunction I2(e, t, r) {\n const n = Ti(e) && mn(t), i = mn(e) && Ti(t), s = e === t && Ti(t) && mn(t);\n if (n || i || s)\n throw new Error(\n `Invalid arguments for Psbt.${r}. Cannot use both taproot and non-taproot fields.`\n );\n}\nfunction P2(e, t, r) {\n const n = Ii(e) && mn(t), i = mn(e) && Ii(t), s = e === t && Ii(t) && mn(t);\n if (n || i || s)\n throw new Error(\n `Invalid arguments for Psbt.${r}. Cannot use both taproot and non-taproot fields.`\n );\n}\nfunction O2(e, t, r) {\n if (t.tapMerkleRoot) {\n const n = (t.tapLeafScript || []).every(\n (s) => Ho(s, t.tapMerkleRoot)\n ), i = (e.tapLeafScript || []).every(\n (s) => Ho(s, t.tapMerkleRoot)\n );\n if (!n || !i)\n throw new Error(\n `Invalid arguments for Psbt.${r}. Tapleaf not part of taptree.`\n );\n } else if (e.tapMerkleRoot && !(t.tapLeafScript || []).every(\n (i) => Ho(i, e.tapMerkleRoot)\n ))\n throw new Error(\n `Invalid arguments for Psbt.${r}. Tapleaf not part of taptree.`\n );\n}\nfunction Ho(e, t) {\n if (!t)\n return !0;\n const r = (0, Ir.tapleafHash)({\n output: e.script,\n version: e.leafVersion\n });\n return (0, Ir.rootHashFromPath)(\n e.controlBlock,\n r\n ).equals(t);\n}\nfunction k2(e, t) {\n const r = (0, Ir.tapleafHash)({\n output: t.script,\n version: t.leafVersion\n });\n return (e.tapScriptSig || []).filter((n) => n.leafHash.equals(r)).map((n) => A2(t.script, n)).sort((n, i) => i.positionInScript - n.positionInScript).map((n) => n.signature);\n}\nfunction A2(e, t) {\n return Object.assign(\n {\n positionInScript: (0, uo.pubkeyPositionInScript)(\n t.pubkey,\n e\n )\n },\n t\n );\n}\nfunction x2(e, t, r) {\n if (!e.tapScriptSig || !e.tapScriptSig.length)\n throw new Error(\n `Can not finalize taproot input #${t}. No tapleaf script signature provided.`\n );\n const n = (e.tapLeafScript || []).sort((i, s) => i.controlBlock.length - s.controlBlock.length).find(\n (i) => C2(i, e.tapScriptSig, r)\n );\n if (!n)\n throw new Error(\n `Can not finalize taproot input #${t}. Signature for tapleaf script not found.`\n );\n return n;\n}\nfunction C2(e, t, r) {\n const n = (0, Ir.tapleafHash)({\n output: e.script,\n version: e.leafVersion\n });\n return (!r || r.equals(n)) && t.find((s) => s.leafHash.equals(n)) !== void 0;\n}\nfunction mn(e) {\n return e && !!(e.redeemScript || e.witnessScript || e.bip32Derivation && e.bip32Derivation.length);\n}\nObject.defineProperty(oo, \"__esModule\", { value: !0 });\noo.Psbt = void 0;\nconst Ra = Ps, La = Tt, et = Ls, Ha = rt, Fi = Ce, B2 = He, wt = Tn, N2 = ro, Zt = ot, We = Or, we = ye, Oe = ue, F2 = {\n /**\n * A bitcoinjs Network object. This is only used if you pass an `address`\n * parameter to addOutput. Otherwise it is not needed and can be left default.\n */\n network: B2.bitcoin,\n /**\n * When extractTransaction is called, the fee rate is checked.\n * THIS IS NOT TO BE RELIED ON.\n * It is only here as a last ditch effort to prevent sending a 500 BTC fee etc.\n */\n maximumFeeRate: 5e3\n // satoshi per byte\n};\nclass Ui {\n static fromBase64(t, r = {}) {\n const n = I.from(t, \"base64\");\n return this.fromBuffer(n, r);\n }\n static fromHex(t, r = {}) {\n const n = I.from(t, \"hex\");\n return this.fromBuffer(n, r);\n }\n static fromBuffer(t, r = {}) {\n const n = Ra.Psbt.fromBuffer(t, U2), i = new Ui(r, n);\n return M2(i.__CACHE.__TX, i.__CACHE), i;\n }\n constructor(t = {}, r = new Ra.Psbt(new Kc())) {\n this.data = r, this.opts = Object.assign({}, F2, t), this.__CACHE = {\n __NON_WITNESS_UTXO_TX_CACHE: [],\n __NON_WITNESS_UTXO_BUF_CACHE: [],\n __TX_IN_CACHE: {},\n __TX: this.data.globalMap.unsignedTx.tx,\n // Psbt's predecesor (TransactionBuilder - now removed) behavior\n // was to not confirm input values before signing.\n // Even though we highly encourage people to get\n // the full parent transaction to verify values, the ability to\n // sign non-segwit inputs without the full transaction was often\n // requested. So the only way to activate is to use @ts-ignore.\n // We will disable exporting the Psbt when unsafe sign is active.\n // because it is not BIP174 compliant.\n __UNSAFE_SIGN_NONSEGWIT: !1\n }, this.data.inputs.length === 0 && this.setVersion(2);\n const n = (i, s, o, a) => Object.defineProperty(i, s, {\n enumerable: o,\n writable: a\n });\n n(this, \"__CACHE\", !1, !0), n(this, \"opts\", !1, !0);\n }\n get inputCount() {\n return this.data.inputs.length;\n }\n get version() {\n return this.__CACHE.__TX.version;\n }\n set version(t) {\n this.setVersion(t);\n }\n get locktime() {\n return this.__CACHE.__TX.locktime;\n }\n set locktime(t) {\n this.setLocktime(t);\n }\n get txInputs() {\n return this.__CACHE.__TX.ins.map((t) => ({\n hash: (0, Fi.cloneBuffer)(t.hash),\n index: t.index,\n sequence: t.sequence\n }));\n }\n get txOutputs() {\n return this.__CACHE.__TX.outs.map((t) => {\n let r;\n try {\n r = (0, Ha.fromOutputScript)(\n t.script,\n this.opts.network\n );\n } catch {\n }\n return {\n script: (0, Fi.cloneBuffer)(t.script),\n value: t.value,\n address: r\n };\n });\n }\n combine(...t) {\n return this.data.combine(...t.map((r) => r.data)), this;\n }\n clone() {\n const t = Ui.fromBuffer(this.data.toBuffer());\n return t.opts = JSON.parse(JSON.stringify(this.opts)), t;\n }\n setMaximumFeeRate(t) {\n Ei(t), this.opts.maximumFeeRate = t;\n }\n setVersion(t) {\n Ei(t), Ln(this.data.inputs, \"setVersion\");\n const r = this.__CACHE;\n return r.__TX.version = t, r.__EXTRACTED_TX = void 0, this;\n }\n setLocktime(t) {\n Ei(t), Ln(this.data.inputs, \"setLocktime\");\n const r = this.__CACHE;\n return r.__TX.locktime = t, r.__EXTRACTED_TX = void 0, this;\n }\n setInputSequence(t, r) {\n Ei(r), Ln(this.data.inputs, \"setInputSequence\");\n const n = this.__CACHE;\n if (n.__TX.ins.length <= t)\n throw new Error(\"Input index too high\");\n return n.__TX.ins[t].sequence = r, n.__EXTRACTED_TX = void 0, this;\n }\n addInputs(t) {\n return t.forEach((r) => this.addInput(r)), this;\n }\n addInput(t) {\n if (arguments.length > 1 || !t || t.hash === void 0 || t.index === void 0)\n throw new Error(\n \"Invalid arguments for Psbt.addInput. Requires single object with at least [hash] and [index]\"\n );\n (0, we.checkTaprootInputFields)(t, t, \"addInput\"), Ln(this.data.inputs, \"addInput\"), t.witnessScript && Ri(t.witnessScript);\n const r = this.__CACHE;\n this.data.addInput(t);\n const n = r.__TX.ins[r.__TX.ins.length - 1];\n Gc(r, n);\n const i = this.data.inputs.length - 1, s = this.data.inputs[i];\n return s.nonWitnessUtxo && as(this.__CACHE, s, i), r.__FEE = void 0, r.__FEE_RATE = void 0, r.__EXTRACTED_TX = void 0, this;\n }\n addOutputs(t) {\n return t.forEach((r) => this.addOutput(r)), this;\n }\n addOutput(t) {\n if (arguments.length > 1 || !t || t.value === void 0 || t.address === void 0 && t.script === void 0)\n throw new Error(\n \"Invalid arguments for Psbt.addOutput. Requires single object with at least [script or address] and [value]\"\n );\n Ln(this.data.inputs, \"addOutput\");\n const { address: r } = t;\n if (typeof r == \"string\") {\n const { network: i } = this.opts, s = (0, Ha.toOutputScript)(r, i);\n t = Object.assign(t, { script: s });\n }\n (0, we.checkTaprootOutputFields)(t, t, \"addOutput\");\n const n = this.__CACHE;\n return this.data.addOutput(t), n.__FEE = void 0, n.__FEE_RATE = void 0, n.__EXTRACTED_TX = void 0, this;\n }\n extractTransaction(t) {\n if (!this.data.inputs.every(Wc))\n throw new Error(\"Not finalized\");\n const r = this.__CACHE;\n if (t || L2(this, r, this.opts), r.__EXTRACTED_TX)\n return r.__EXTRACTED_TX;\n const n = r.__TX.clone();\n return Qc(this.data.inputs, n, r, !0), n;\n }\n getFeeRate() {\n return Ka(\n \"__FEE_RATE\",\n \"fee rate\",\n this.data.inputs,\n this.__CACHE\n );\n }\n getFee() {\n return Ka(\"__FEE\", \"fee\", this.data.inputs, this.__CACHE);\n }\n finalizeAllInputs() {\n return (0, et.checkForInput)(this.data.inputs, 0), Hn(this.data.inputs.length).forEach((t) => this.finalizeInput(t)), this;\n }\n finalizeInput(t, r) {\n const n = (0, et.checkForInput)(this.data.inputs, t);\n return (0, we.isTaprootInput)(n) ? this._finalizeTaprootInput(\n t,\n n,\n void 0,\n r\n ) : this._finalizeInput(t, n, r);\n }\n finalizeTaprootInput(t, r, n = we.tapScriptFinalizer) {\n const i = (0, et.checkForInput)(this.data.inputs, t);\n if ((0, we.isTaprootInput)(i))\n return this._finalizeTaprootInput(\n t,\n i,\n r,\n n\n );\n throw new Error(`Cannot finalize input #${t}. Not Taproot.`);\n }\n _finalizeInput(t, r, n = D2) {\n const { script: i, isP2SH: s, isP2WSH: o, isSegwit: a } = V2(\n t,\n r,\n this.__CACHE\n );\n if (!i)\n throw new Error(`No script found for input #${t}`);\n H2(r);\n const { finalScriptSig: f, finalScriptWitness: h } = n(\n t,\n r,\n i,\n a,\n s,\n o\n );\n if (f && this.data.updateInput(t, { finalScriptSig: f }), h && this.data.updateInput(t, { finalScriptWitness: h }), !f && !h)\n throw new Error(`Unknown error finalizing input #${t}`);\n return this.data.clearFinalizedInput(t), this;\n }\n _finalizeTaprootInput(t, r, n, i = we.tapScriptFinalizer) {\n if (!r.witnessUtxo)\n throw new Error(\n `Cannot finalize input #${t}. Missing withness utxo.`\n );\n if (r.tapKeySig) {\n const s = wt.p2tr({\n output: r.witnessUtxo.script,\n signature: r.tapKeySig\n }), o = (0, Oe.witnessStackToScriptWitness)(\n s.witness\n );\n this.data.updateInput(t, { finalScriptWitness: o });\n } else {\n const { finalScriptWitness: s } = i(\n t,\n r,\n n\n );\n this.data.updateInput(t, { finalScriptWitness: s });\n }\n return this.data.clearFinalizedInput(t), this;\n }\n getInputType(t) {\n const r = (0, et.checkForInput)(this.data.inputs, t), n = Zc(t, r, this.__CACHE), i = lo(\n n,\n t,\n \"input\",\n r.redeemScript || Y2(r.finalScriptSig),\n r.witnessScript || J2(r.finalScriptWitness)\n ), s = i.type === \"raw\" ? \"\" : i.type + \"-\", o = tl(i.meaningfulScript);\n return s + o;\n }\n inputHasPubkey(t, r) {\n const n = (0, et.checkForInput)(this.data.inputs, t);\n return q2(r, n, t, this.__CACHE);\n }\n inputHasHDKey(t, r) {\n const n = (0, et.checkForInput)(this.data.inputs, t), i = Ma(r);\n return !!n.bip32Derivation && n.bip32Derivation.some(i);\n }\n outputHasPubkey(t, r) {\n const n = (0, et.checkForOutput)(this.data.outputs, t);\n return z2(r, n, t, this.__CACHE);\n }\n outputHasHDKey(t, r) {\n const n = (0, et.checkForOutput)(this.data.outputs, t), i = Ma(r);\n return !!n.bip32Derivation && n.bip32Derivation.some(i);\n }\n validateSignaturesOfAllInputs(t) {\n return (0, et.checkForInput)(this.data.inputs, 0), Hn(this.data.inputs.length).map(\n (n) => this.validateSignaturesOfInput(n, t)\n ).reduce((n, i) => i === !0 && n, !0);\n }\n validateSignaturesOfInput(t, r, n) {\n const i = this.data.inputs[t];\n return (0, we.isTaprootInput)(i) ? this.validateSignaturesOfTaprootInput(\n t,\n r,\n n\n ) : this._validateSignaturesOfInput(t, r, n);\n }\n _validateSignaturesOfInput(t, r, n) {\n const i = this.data.inputs[t], s = (i || {}).partialSig;\n if (!i || !s || s.length < 1)\n throw new Error(\"No signatures to validate\");\n if (typeof r != \"function\")\n throw new Error(\"Need validator function to validate signatures\");\n const o = n ? s.filter((p) => p.pubkey.equals(n)) : s;\n if (o.length < 1)\n throw new Error(\"No signatures for this pubkey\");\n const a = [];\n let f, h, l;\n for (const p of o) {\n const E = Zt.signature.decode(p.signature), { hash: y, script: v } = l !== E.hashType ? qc(\n t,\n Object.assign({}, i, { sighashType: E.hashType }),\n this.__CACHE,\n !0\n ) : { hash: f, script: h };\n l = E.hashType, f = y, h = v, Vc(p.pubkey, v, \"verify\"), a.push(r(p.pubkey, y, E.signature));\n }\n return a.every((p) => p === !0);\n }\n validateSignaturesOfTaprootInput(t, r, n) {\n const i = this.data.inputs[t], s = (i || {}).tapKeySig, o = (i || {}).tapScriptSig;\n if (!i && !s && !(o && !o.length))\n throw new Error(\"No signatures to validate\");\n if (typeof r != \"function\")\n throw new Error(\"Need validator function to validate signatures\");\n n = n && (0, we.toXOnly)(n);\n const a = n ? ss(\n t,\n i,\n this.data.inputs,\n n,\n this.__CACHE\n ) : K2(\n t,\n i,\n this.data.inputs,\n this.__CACHE\n );\n if (!a.length)\n throw new Error(\"No signatures for this pubkey\");\n const f = a.find((l) => !l.leafHash);\n let h = 0;\n if (s && f) {\n if (!r(\n f.pubkey,\n f.hash,\n Va(s)\n ))\n return !1;\n h++;\n }\n if (o)\n for (const l of o) {\n const p = a.find((E) => l.pubkey.equals(E.pubkey));\n if (p) {\n if (!r(\n l.pubkey,\n p.hash,\n Va(l.signature)\n ))\n return !1;\n h++;\n }\n }\n return h > 0;\n }\n signAllInputsHD(t, r = [We.Transaction.SIGHASH_ALL]) {\n if (!t || !t.publicKey || !t.fingerprint)\n throw new Error(\"Need HDSigner to sign input\");\n const n = [];\n for (const i of Hn(this.data.inputs.length))\n try {\n this.signInputHD(i, t, r), n.push(!0);\n } catch {\n n.push(!1);\n }\n if (n.every((i) => i === !1))\n throw new Error(\"No inputs were signed\");\n return this;\n }\n signAllInputsHDAsync(t, r = [We.Transaction.SIGHASH_ALL]) {\n return new Promise((n, i) => {\n if (!t || !t.publicKey || !t.fingerprint)\n return i(new Error(\"Need HDSigner to sign input\"));\n const s = [], o = [];\n for (const a of Hn(this.data.inputs.length))\n o.push(\n this.signInputHDAsync(a, t, r).then(\n () => {\n s.push(!0);\n },\n () => {\n s.push(!1);\n }\n )\n );\n return Promise.all(o).then(() => {\n if (s.every((a) => a === !1))\n return i(new Error(\"No inputs were signed\"));\n n();\n });\n });\n }\n signInputHD(t, r, n = [We.Transaction.SIGHASH_ALL]) {\n if (!r || !r.publicKey || !r.fingerprint)\n throw new Error(\"Need HDSigner to sign input\");\n return Ga(t, this.data.inputs, r).forEach((s) => this.signInput(t, s, n)), this;\n }\n signInputHDAsync(t, r, n = [We.Transaction.SIGHASH_ALL]) {\n return new Promise((i, s) => {\n if (!r || !r.publicKey || !r.fingerprint)\n return s(new Error(\"Need HDSigner to sign input\"));\n const a = Ga(t, this.data.inputs, r).map(\n (f) => this.signInputAsync(t, f, n)\n );\n return Promise.all(a).then(() => {\n i();\n }).catch(s);\n });\n }\n signAllInputs(t, r) {\n if (!t || !t.publicKey)\n throw new Error(\"Need Signer to sign input\");\n const n = [];\n for (const i of Hn(this.data.inputs.length))\n try {\n this.signInput(i, t, r), n.push(!0);\n } catch {\n n.push(!1);\n }\n if (n.every((i) => i === !1))\n throw new Error(\"No inputs were signed\");\n return this;\n }\n signAllInputsAsync(t, r) {\n return new Promise((n, i) => {\n if (!t || !t.publicKey)\n return i(new Error(\"Need Signer to sign input\"));\n const s = [], o = [];\n for (const [a] of this.data.inputs.entries())\n o.push(\n this.signInputAsync(a, t, r).then(\n () => {\n s.push(!0);\n },\n () => {\n s.push(!1);\n }\n )\n );\n return Promise.all(o).then(() => {\n if (s.every((a) => a === !1))\n return i(new Error(\"No inputs were signed\"));\n n();\n });\n });\n }\n signInput(t, r, n) {\n if (!r || !r.publicKey)\n throw new Error(\"Need Signer to sign input\");\n const i = (0, et.checkForInput)(this.data.inputs, t);\n return (0, we.isTaprootInput)(i) ? this._signTaprootInput(\n t,\n i,\n r,\n void 0,\n n\n ) : this._signInput(t, r, n);\n }\n signTaprootInput(t, r, n, i) {\n if (!r || !r.publicKey)\n throw new Error(\"Need Signer to sign input\");\n const s = (0, et.checkForInput)(this.data.inputs, t);\n if ((0, we.isTaprootInput)(s))\n return this._signTaprootInput(\n t,\n s,\n r,\n n,\n i\n );\n throw new Error(`Input #${t} is not of type Taproot.`);\n }\n _signInput(t, r, n = [We.Transaction.SIGHASH_ALL]) {\n const { hash: i, sighashType: s } = Wa(\n this.data.inputs,\n t,\n r.publicKey,\n this.__CACHE,\n n\n ), o = [\n {\n pubkey: r.publicKey,\n signature: Zt.signature.encode(r.sign(i), s)\n }\n ];\n return this.data.updateInput(t, { partialSig: o }), this;\n }\n _signTaprootInput(t, r, n, i, s = [We.Transaction.SIGHASH_DEFAULT]) {\n const o = this.checkTaprootHashesForSig(\n t,\n r,\n n,\n i,\n s\n ), a = o.filter((h) => !h.leafHash).map(\n (h) => (0, we.serializeTaprootSignature)(\n n.signSchnorr(h.hash),\n r.sighashType\n )\n )[0], f = o.filter((h) => !!h.leafHash).map((h) => ({\n pubkey: (0, we.toXOnly)(n.publicKey),\n signature: (0, we.serializeTaprootSignature)(\n n.signSchnorr(h.hash),\n r.sighashType\n ),\n leafHash: h.leafHash\n }));\n return a && this.data.updateInput(t, { tapKeySig: a }), f.length && this.data.updateInput(t, { tapScriptSig: f }), this;\n }\n signInputAsync(t, r, n) {\n return Promise.resolve().then(() => {\n if (!r || !r.publicKey)\n throw new Error(\"Need Signer to sign input\");\n const i = (0, et.checkForInput)(this.data.inputs, t);\n return (0, we.isTaprootInput)(i) ? this._signTaprootInputAsync(\n t,\n i,\n r,\n void 0,\n n\n ) : this._signInputAsync(t, r, n);\n });\n }\n signTaprootInputAsync(t, r, n, i) {\n return Promise.resolve().then(() => {\n if (!r || !r.publicKey)\n throw new Error(\"Need Signer to sign input\");\n const s = (0, et.checkForInput)(this.data.inputs, t);\n if ((0, we.isTaprootInput)(s))\n return this._signTaprootInputAsync(\n t,\n s,\n r,\n n,\n i\n );\n throw new Error(`Input #${t} is not of type Taproot.`);\n });\n }\n _signInputAsync(t, r, n = [We.Transaction.SIGHASH_ALL]) {\n const { hash: i, sighashType: s } = Wa(\n this.data.inputs,\n t,\n r.publicKey,\n this.__CACHE,\n n\n );\n return Promise.resolve(r.sign(i)).then((o) => {\n const a = [\n {\n pubkey: r.publicKey,\n signature: Zt.signature.encode(o, s)\n }\n ];\n this.data.updateInput(t, { partialSig: a });\n });\n }\n async _signTaprootInputAsync(t, r, n, i, s = [We.Transaction.SIGHASH_DEFAULT]) {\n const o = this.checkTaprootHashesForSig(\n t,\n r,\n n,\n i,\n s\n ), a = [], f = o.filter((l) => !l.leafHash)[0];\n if (f) {\n const l = Promise.resolve(\n n.signSchnorr(f.hash)\n ).then((p) => ({\n tapKeySig: (0, we.serializeTaprootSignature)(\n p,\n r.sighashType\n )\n }));\n a.push(l);\n }\n const h = o.filter((l) => !!l.leafHash);\n if (h.length) {\n const l = h.map((p) => Promise.resolve(n.signSchnorr(p.hash)).then(\n (E) => ({ tapScriptSig: [\n {\n pubkey: (0, we.toXOnly)(n.publicKey),\n signature: (0, we.serializeTaprootSignature)(\n E,\n r.sighashType\n ),\n leafHash: p.leafHash\n }\n ] })\n ));\n a.push(...l);\n }\n return Promise.all(a).then((l) => {\n l.forEach((p) => this.data.updateInput(t, p));\n });\n }\n checkTaprootHashesForSig(t, r, n, i, s) {\n if (typeof n.signSchnorr != \"function\")\n throw new Error(\n `Need Schnorr Signer to sign taproot input #${t}.`\n );\n const o = ss(\n t,\n r,\n this.data.inputs,\n n.publicKey,\n this.__CACHE,\n i,\n s\n );\n if (!o || !o.length)\n throw new Error(\n `Can not sign for input #${t} with the key ${n.publicKey.toString(\n \"hex\"\n )}`\n );\n return o;\n }\n toBuffer() {\n return $o(this.__CACHE), this.data.toBuffer();\n }\n toHex() {\n return $o(this.__CACHE), this.data.toHex();\n }\n toBase64() {\n return $o(this.__CACHE), this.data.toBase64();\n }\n updateGlobal(t) {\n return this.data.updateGlobal(t), this;\n }\n updateInput(t, r) {\n return r.witnessScript && Ri(r.witnessScript), (0, we.checkTaprootInputFields)(\n this.data.inputs[t],\n r,\n \"updateInput\"\n ), this.data.updateInput(t, r), r.nonWitnessUtxo && as(\n this.__CACHE,\n this.data.inputs[t],\n t\n ), this;\n }\n updateOutput(t, r) {\n const n = this.data.outputs[t];\n return (0, we.checkTaprootOutputFields)(\n n,\n r,\n \"updateOutput\"\n ), this.data.updateOutput(t, r), this;\n }\n addUnknownKeyValToGlobal(t) {\n return this.data.addUnknownKeyValToGlobal(t), this;\n }\n addUnknownKeyValToInput(t, r) {\n return this.data.addUnknownKeyValToInput(t, r), this;\n }\n addUnknownKeyValToOutput(t, r) {\n return this.data.addUnknownKeyValToOutput(t, r), this;\n }\n clearFinalizedInput(t) {\n return this.data.clearFinalizedInput(t), this;\n }\n}\noo.Psbt = Ui;\nconst U2 = (e) => new Kc(e);\nclass Kc {\n constructor(t = I.from([2, 0, 0, 0, 0, 0, 0, 0, 0, 0])) {\n this.tx = We.Transaction.fromBuffer(t), $2(this.tx), Object.defineProperty(this, \"tx\", {\n enumerable: !1,\n writable: !0\n });\n }\n getInputOutputCounts() {\n return {\n inputCount: this.tx.ins.length,\n outputCount: this.tx.outs.length\n };\n }\n addInput(t) {\n if (t.hash === void 0 || t.index === void 0 || !I.isBuffer(t.hash) && typeof t.hash != \"string\" || typeof t.index != \"number\")\n throw new Error(\"Error adding input.\");\n const r = typeof t.hash == \"string\" ? (0, Fi.reverseBuffer)(I.from(t.hash, \"hex\")) : t.hash;\n this.tx.addInput(r, t.index, t.sequence);\n }\n addOutput(t) {\n if (t.script === void 0 || t.value === void 0 || !I.isBuffer(t.script) || typeof t.value != \"number\")\n throw new Error(\"Error adding output.\");\n this.tx.addOutput(t.script, t.value);\n }\n toBuffer() {\n return this.tx.toBuffer();\n }\n}\nfunction R2(e, t, r) {\n switch (r) {\n case \"pubkey\":\n case \"pubkeyhash\":\n case \"witnesspubkeyhash\":\n return $a(1, e.partialSig);\n case \"multisig\":\n const n = wt.p2ms({ output: t });\n return $a(n.m, e.partialSig, n.pubkeys);\n default:\n return !1;\n }\n}\nfunction $o(e) {\n if (e.__UNSAFE_SIGN_NONSEGWIT !== !1)\n throw new Error(\"Not BIP174 compliant, can not export\");\n}\nfunction $a(e, t, r) {\n if (!t)\n return !1;\n let n;\n if (r ? n = r.map((i) => {\n const s = Q2(i);\n return t.find((o) => o.pubkey.equals(s));\n }).filter((i) => !!i) : n = t, n.length > e)\n throw new Error(\"Too many signatures\");\n return n.length === e;\n}\nfunction Wc(e) {\n return !!e.finalScriptSig || !!e.finalScriptWitness;\n}\nfunction Ma(e) {\n return (t) => !(!t.masterFingerprint.equals(e.fingerprint) || !e.derivePath(t.path).publicKey.equals(t.pubkey));\n}\nfunction Ei(e) {\n if (typeof e != \"number\" || e !== Math.floor(e) || e > 4294967295 || e < 0)\n throw new Error(\"Invalid 32 bit integer\");\n}\nfunction L2(e, t, r) {\n const n = t.__FEE_RATE || e.getFeeRate(), i = t.__EXTRACTED_TX.virtualSize(), s = n * i;\n if (n >= r.maximumFeeRate)\n throw new Error(\n `Warning: You are paying around ${(s / 1e8).toFixed(8)} in fees, which is ${n} satoshi per byte for a transaction with a VSize of ${i} bytes (segwit counted as 0.25 byte per byte). Use setMaximumFeeRate method to raise your threshold, or pass true to the first arg of extractTransaction.`\n );\n}\nfunction Ln(e, t) {\n e.forEach((r) => {\n if ((0, we.isTaprootInput)(r) ? (0, we.checkTaprootInputForSigs)(r, t) : (0, Oe.checkInputForSig)(r, t))\n throw new Error(\"Can not modify transaction, signatures exist.\");\n });\n}\nfunction H2(e) {\n if (!e.sighashType || !e.partialSig)\n return;\n const { partialSig: t, sighashType: r } = e;\n t.forEach((n) => {\n const { hashType: i } = Zt.signature.decode(n.signature);\n if (r !== i)\n throw new Error(\"Signature sighash does not match input sighash type\");\n });\n}\nfunction Vc(e, t, r) {\n if (!(0, Oe.pubkeyInScript)(e, t))\n throw new Error(\n `Can not ${r} for this input with the key ${e.toString(\"hex\")}`\n );\n}\nfunction $2(e) {\n if (!e.ins.every(\n (r) => r.script && r.script.length === 0 && r.witness && r.witness.length === 0\n ))\n throw new Error(\"Format Error: Transaction ScriptSigs are not empty\");\n}\nfunction M2(e, t) {\n e.ins.forEach((r) => {\n Gc(t, r);\n });\n}\nfunction Gc(e, t) {\n const r = (0, Fi.reverseBuffer)(I.from(t.hash)).toString(\"hex\") + \":\" + t.index;\n if (e.__TX_IN_CACHE[r])\n throw new Error(\"Duplicate input detected.\");\n e.__TX_IN_CACHE[r] = 1;\n}\nfunction Xc(e, t) {\n return (r, n, i, s) => {\n const o = e({\n redeem: { output: i }\n }).output;\n if (!n.equals(o))\n throw new Error(\n `${t} for ${s} #${r} doesn't match the scriptPubKey in the prevout`\n );\n };\n}\nconst Da = Xc(wt.p2sh, \"Redeem script\"), ja = Xc(\n wt.p2wsh,\n \"Witness script\"\n);\nfunction Ka(e, t, r, n) {\n if (!r.every(Wc))\n throw new Error(`PSBT must be finalized to calculate ${t}`);\n if (e === \"__FEE_RATE\" && n.__FEE_RATE)\n return n.__FEE_RATE;\n if (e === \"__FEE\" && n.__FEE)\n return n.__FEE;\n let i, s = !0;\n if (n.__EXTRACTED_TX ? (i = n.__EXTRACTED_TX, s = !1) : i = n.__TX.clone(), Qc(r, i, n, s), e === \"__FEE_RATE\")\n return n.__FEE_RATE;\n if (e === \"__FEE\")\n return n.__FEE;\n}\nfunction D2(e, t, r, n, i, s) {\n const o = tl(r);\n if (!R2(t, r, o))\n throw new Error(`Can not finalize input #${e}`);\n return j2(\n r,\n o,\n t.partialSig,\n n,\n i,\n s\n );\n}\nfunction j2(e, t, r, n, i, s) {\n let o, a;\n const f = W2(e, t, r), h = s ? wt.p2wsh({ redeem: f }) : null, l = i ? wt.p2sh({ redeem: h || f }) : null;\n return n ? (h ? a = (0, Oe.witnessStackToScriptWitness)(\n h.witness\n ) : a = (0, Oe.witnessStackToScriptWitness)(\n f.witness\n ), l && (o = l.input)) : l ? o = l.input : o = f.input, {\n finalScriptSig: o,\n finalScriptWitness: a\n };\n}\nfunction Wa(e, t, r, n, i) {\n const s = (0, et.checkForInput)(e, t), { hash: o, sighashType: a, script: f } = qc(\n t,\n s,\n n,\n !1,\n i\n );\n return Vc(r, f, \"sign\"), {\n hash: o,\n sighashType: a\n };\n}\nfunction qc(e, t, r, n, i) {\n const s = r.__TX, o = t.sighashType || We.Transaction.SIGHASH_ALL;\n Yc(o, i);\n let a, f;\n if (t.nonWitnessUtxo) {\n const p = co(\n r,\n t,\n e\n ), E = s.ins[e].hash, y = p.getHash();\n if (!E.equals(y))\n throw new Error(\n `Non-witness UTXO hash for input #${e} doesn't match the hash specified in the prevout`\n );\n const v = s.ins[e].index;\n f = p.outs[v];\n } else if (t.witnessUtxo)\n f = t.witnessUtxo;\n else\n throw new Error(\"Need a Utxo input item for signing\");\n const { meaningfulScript: h, type: l } = lo(\n f.script,\n e,\n \"input\",\n t.redeemScript,\n t.witnessScript\n );\n if ([\"p2sh-p2wsh\", \"p2wsh\"].indexOf(l) >= 0)\n a = s.hashForWitnessV0(\n e,\n h,\n f.value,\n o\n );\n else if ((0, Oe.isP2WPKH)(h)) {\n const p = wt.p2pkh({\n hash: h.slice(2)\n }).output;\n a = s.hashForWitnessV0(\n e,\n p,\n f.value,\n o\n );\n } else {\n if (t.nonWitnessUtxo === void 0 && r.__UNSAFE_SIGN_NONSEGWIT === !1)\n throw new Error(\n `Input #${e} has witnessUtxo but non-segwit script: ${h.toString(\"hex\")}`\n );\n !n && r.__UNSAFE_SIGN_NONSEGWIT !== !1 && console.warn(\n `Warning: Signing non-segwit inputs without the full parent transaction means there is a chance that a miner could feed you incorrect information to trick you into paying large fees. This behavior is the same as Psbt's predecesor (TransactionBuilder - now removed) when signing non-segwit scripts. You are not able to export this Psbt with toBuffer|toBase64|toHex since it is not BIP174 compliant.\n*********************\nPROCEED WITH CAUTION!\n*********************`\n ), a = s.hashForSignature(\n e,\n h,\n o\n );\n }\n return {\n script: h,\n sighashType: o,\n hash: a\n };\n}\nfunction K2(e, t, r, n) {\n const i = [];\n if (t.tapInternalKey) {\n const o = zc(e, t, n);\n o && i.push(o);\n }\n if (t.tapScriptSig) {\n const o = t.tapScriptSig.map((a) => a.pubkey);\n i.push(...o);\n }\n return i.map(\n (o) => ss(e, t, r, o, n)\n ).flat();\n}\nfunction zc(e, t, r) {\n const { script: n } = $s(e, t, r);\n return (0, Oe.isP2TR)(n) ? n.subarray(2, 34) : null;\n}\nfunction Va(e) {\n return e.length === 64 ? e : e.subarray(0, 64);\n}\nfunction ss(e, t, r, n, i, s, o) {\n const a = i.__TX, f = t.sighashType || We.Transaction.SIGHASH_DEFAULT;\n Yc(f, o);\n const h = r.map(\n (v, S) => $s(S, v, i)\n ), l = h.map((v) => v.script), p = h.map((v) => v.value), E = [];\n if (t.tapInternalKey && !s) {\n const v = zc(e, t, i) || I.from([]);\n if ((0, we.toXOnly)(n).equals(v)) {\n const S = a.hashForWitnessV1(\n e,\n l,\n p,\n f\n );\n E.push({ pubkey: n, hash: S });\n }\n }\n const y = (t.tapLeafScript || []).filter((v) => (0, Oe.pubkeyInScript)(n, v.script)).map((v) => {\n const S = (0, N2.tapleafHash)({\n output: v.script,\n version: v.leafVersion\n });\n return Object.assign({ hash: S }, v);\n }).filter(\n (v) => !s || s.equals(v.hash)\n ).map((v) => {\n const S = a.hashForWitnessV1(\n e,\n l,\n p,\n We.Transaction.SIGHASH_DEFAULT,\n v.hash\n );\n return {\n pubkey: n,\n hash: S,\n leafHash: v.hash\n };\n });\n return E.concat(y);\n}\nfunction Yc(e, t) {\n if (t && t.indexOf(e) < 0) {\n const r = X2(e);\n throw new Error(\n `Sighash type is not allowed. Retry the sign method passing the sighashTypes array of whitelisted types. Sighash type: ${r}`\n );\n }\n}\nfunction W2(e, t, r) {\n let n;\n switch (t) {\n case \"multisig\":\n const i = G2(e, r);\n n = wt.p2ms({\n output: e,\n signatures: i\n });\n break;\n case \"pubkey\":\n n = wt.p2pk({\n output: e,\n signature: r[0].signature\n });\n break;\n case \"pubkeyhash\":\n n = wt.p2pkh({\n output: e,\n pubkey: r[0].pubkey,\n signature: r[0].signature\n });\n break;\n case \"witnesspubkeyhash\":\n n = wt.p2wpkh({\n output: e,\n pubkey: r[0].pubkey,\n signature: r[0].signature\n });\n break;\n }\n return n;\n}\nfunction V2(e, t, r) {\n const n = r.__TX, i = {\n script: null,\n isSegwit: !1,\n isP2SH: !1,\n isP2WSH: !1\n };\n if (i.isP2SH = !!t.redeemScript, i.isP2WSH = !!t.witnessScript, t.witnessScript)\n i.script = t.witnessScript;\n else if (t.redeemScript)\n i.script = t.redeemScript;\n else if (t.nonWitnessUtxo) {\n const s = co(\n r,\n t,\n e\n ), o = n.ins[e].index;\n i.script = s.outs[o].script;\n } else\n t.witnessUtxo && (i.script = t.witnessUtxo.script);\n return (t.witnessScript || (0, Oe.isP2WPKH)(i.script)) && (i.isSegwit = !0), i;\n}\nfunction Ga(e, t, r) {\n const n = (0, et.checkForInput)(t, e);\n if (!n.bip32Derivation || n.bip32Derivation.length === 0)\n throw new Error(\"Need bip32Derivation to sign with HD\");\n const i = n.bip32Derivation.map((o) => {\n if (o.masterFingerprint.equals(r.fingerprint))\n return o;\n }).filter((o) => !!o);\n if (i.length === 0)\n throw new Error(\n \"Need one bip32Derivation masterFingerprint to match the HDSigner fingerprint\"\n );\n return i.map((o) => {\n const a = r.derivePath(o.path);\n if (!o.pubkey.equals(a.publicKey))\n throw new Error(\"pubkey did not match bip32Derivation\");\n return a;\n });\n}\nfunction G2(e, t) {\n return wt.p2ms({ output: e }).pubkeys.map((n) => (t.filter((i) => i.pubkey.equals(n))[0] || {}).signature).filter((n) => !!n);\n}\nfunction Jc(e) {\n let t = 0;\n function r(o) {\n return t += o, e.slice(t - o, t);\n }\n function n() {\n const o = La.decode(e, t);\n return t += La.decode.bytes, o;\n }\n function i() {\n return r(n());\n }\n function s() {\n const o = n(), a = [];\n for (let f = 0; f < o; f++)\n a.push(i());\n return a;\n }\n return s();\n}\nfunction X2(e) {\n let t = e & We.Transaction.SIGHASH_ANYONECANPAY ? \"SIGHASH_ANYONECANPAY | \" : \"\";\n switch (e & 31) {\n case We.Transaction.SIGHASH_ALL:\n t += \"SIGHASH_ALL\";\n break;\n case We.Transaction.SIGHASH_SINGLE:\n t += \"SIGHASH_SINGLE\";\n break;\n case We.Transaction.SIGHASH_NONE:\n t += \"SIGHASH_NONE\";\n break;\n }\n return t;\n}\nfunction as(e, t, r) {\n e.__NON_WITNESS_UTXO_BUF_CACHE[r] = t.nonWitnessUtxo;\n const n = We.Transaction.fromBuffer(t.nonWitnessUtxo);\n e.__NON_WITNESS_UTXO_TX_CACHE[r] = n;\n const i = e, s = r;\n delete t.nonWitnessUtxo, Object.defineProperty(t, \"nonWitnessUtxo\", {\n enumerable: !0,\n get() {\n const o = i.__NON_WITNESS_UTXO_BUF_CACHE[s], a = i.__NON_WITNESS_UTXO_TX_CACHE[s];\n if (o !== void 0)\n return o;\n {\n const f = a.toBuffer();\n return i.__NON_WITNESS_UTXO_BUF_CACHE[s] = f, f;\n }\n },\n set(o) {\n i.__NON_WITNESS_UTXO_BUF_CACHE[s] = o;\n }\n });\n}\nfunction Qc(e, t, r, n) {\n let i = 0;\n e.forEach((f, h) => {\n if (n && f.finalScriptSig && (t.ins[h].script = f.finalScriptSig), n && f.finalScriptWitness && (t.ins[h].witness = Jc(\n f.finalScriptWitness\n )), f.witnessUtxo)\n i += f.witnessUtxo.value;\n else if (f.nonWitnessUtxo) {\n const l = co(r, f, h), p = t.ins[h].index, E = l.outs[p];\n i += E.value;\n }\n });\n const s = t.outs.reduce((f, h) => f + h.value, 0), o = i - s;\n if (o < 0)\n throw new Error(\"Outputs are spending more than Inputs\");\n const a = t.virtualSize();\n r.__FEE = o, r.__EXTRACTED_TX = t, r.__FEE_RATE = Math.floor(o / a);\n}\nfunction co(e, t, r) {\n const n = e.__NON_WITNESS_UTXO_TX_CACHE;\n return n[r] || as(e, t, r), n[r];\n}\nfunction Zc(e, t, r) {\n const { script: n } = $s(e, t, r);\n return n;\n}\nfunction $s(e, t, r) {\n if (t.witnessUtxo !== void 0)\n return {\n script: t.witnessUtxo.script,\n value: t.witnessUtxo.value\n };\n if (t.nonWitnessUtxo !== void 0) {\n const i = co(\n r,\n t,\n e\n ).outs[r.__TX.ins[e].index];\n return { script: i.script, value: i.value };\n } else\n throw new Error(\"Can't find pubkey in input without Utxo data\");\n}\nfunction q2(e, t, r, n) {\n const i = Zc(r, t, n), { meaningfulScript: s } = lo(\n i,\n r,\n \"input\",\n t.redeemScript,\n t.witnessScript\n );\n return (0, Oe.pubkeyInScript)(e, s);\n}\nfunction z2(e, t, r, n) {\n const i = n.__TX.outs[r].script, { meaningfulScript: s } = lo(\n i,\n r,\n \"output\",\n t.redeemScript,\n t.witnessScript\n );\n return (0, Oe.pubkeyInScript)(e, s);\n}\nfunction Y2(e) {\n if (!e)\n return;\n const t = Zt.decompile(e);\n if (!t)\n return;\n const r = t[t.length - 1];\n if (!(!I.isBuffer(r) || el(r) || Z2(r) || !Zt.decompile(r)))\n return r;\n}\nfunction J2(e) {\n if (!e)\n return;\n const t = Jc(e), r = t[t.length - 1];\n if (!(el(r) || !Zt.decompile(r)))\n return r;\n}\nfunction Q2(e) {\n if (e.length === 65) {\n const t = e[64] & 1, r = e.slice(0, 33);\n return r[0] = 2 | t, r;\n }\n return e.slice();\n}\nfunction el(e) {\n return e.length === 33 && Zt.isCanonicalPubKey(e);\n}\nfunction Z2(e) {\n return Zt.isCanonicalScriptSignature(e);\n}\nfunction lo(e, t, r, n, i) {\n const s = (0, Oe.isP2SHScript)(e), o = s && n && (0, Oe.isP2WSHScript)(n), a = (0, Oe.isP2WSHScript)(e);\n if (s && n === void 0)\n throw new Error(\"scriptPubkey is P2SH but redeemScript missing\");\n if ((a || o) && i === void 0)\n throw new Error(\n \"scriptPubkey or redeemScript is P2WSH but witnessScript missing\"\n );\n let f;\n return o ? (f = i, Da(t, e, n, r), ja(t, n, i, r), Ri(f)) : a ? (f = i, ja(t, e, i, r), Ri(f)) : s ? (f = n, Da(t, e, n, r)) : f = e, {\n meaningfulScript: f,\n type: o ? \"p2sh-p2wsh\" : s ? \"p2sh\" : a ? \"p2wsh\" : \"raw\"\n };\n}\nfunction Ri(e) {\n if ((0, Oe.isP2WPKH)(e) || (0, Oe.isP2SHScript)(e))\n throw new Error(\"P2WPKH or P2SH can not be contained within P2WSH\");\n}\nfunction tl(e) {\n return (0, Oe.isP2WPKH)(e) ? \"witnesspubkeyhash\" : (0, Oe.isP2PKH)(e) ? \"pubkeyhash\" : (0, Oe.isP2MS)(e) ? \"multisig\" : (0, Oe.isP2PK)(e) ? \"pubkey\" : \"nonstandard\";\n}\nfunction Hn(e) {\n return [...Array(e).keys()];\n}\n(function(e) {\n Object.defineProperty(e, \"__esModule\", { value: !0 }), e.initEccLib = e.Transaction = e.opcodes = e.Psbt = e.Block = e.script = e.payments = e.networks = e.crypto = e.address = void 0;\n const t = rt;\n e.address = t;\n const r = Ut;\n e.crypto = r;\n const n = He;\n e.networks = n;\n const i = Tn;\n e.payments = i;\n const s = ot;\n e.script = s;\n var o = no;\n Object.defineProperty(e, \"Block\", {\n enumerable: !0,\n get: function() {\n return o.Block;\n }\n });\n var a = oo;\n Object.defineProperty(e, \"Psbt\", {\n enumerable: !0,\n get: function() {\n return a.Psbt;\n }\n });\n var f = _r;\n Object.defineProperty(e, \"opcodes\", {\n enumerable: !0,\n get: function() {\n return f.OPS;\n }\n });\n var h = Or;\n Object.defineProperty(e, \"Transaction\", {\n enumerable: !0,\n get: function() {\n return h.Transaction;\n }\n });\n var l = Tr;\n Object.defineProperty(e, \"initEccLib\", {\n enumerable: !0,\n get: function() {\n return l.initEccLib;\n }\n });\n})(xu);\nfunction dg() {\n const { network: e, publicKey: t, format: r, wallet: n } = Pr(), [i, s] = Ee(null), [o, a] = Ee(!1);\n return { sign: Ue(\n async (h, l, p) => {\n a(!0);\n try {\n if (s(null), !r || !t || !n)\n throw new Error(\"No wallet is connected\");\n const E = xu.Psbt.fromBase64(l), y = await Au({\n address: h,\n wallet: n,\n network: e,\n psbt: E,\n options: p\n });\n return a(!1), y;\n } catch (E) {\n throw s(E.message), a(!1), E;\n }\n },\n [r, e, t, n]\n ), error: i, loading: o };\n}\nasync function eg({\n message: e,\n wallet: t,\n address: r,\n network: n\n}) {\n if (t === Ve.UNISAT) {\n const { base64: i } = await Sl(e, \"bip322-simple\");\n return i;\n }\n if (t === Ve.XVERSE) {\n const { base64: i } = await Tl(e, r, n);\n return i;\n }\n throw new Error(\"Invalid wallet selected\");\n}\nfunction pg() {\n const { network: e, wallet: t, publicKey: r, format: n } = Pr(), [i, s] = Ee(null), [o, a] = Ee(!1);\n return { signMsg: Ue(\n async (h, l) => {\n a(!0);\n try {\n if (s(null), !n || !r || !t)\n throw new Error(\"No wallet is connected\");\n const p = await eg({\n address: h,\n wallet: t,\n message: l,\n network: e\n });\n return a(!1), p;\n } catch (p) {\n throw s(p.message), a(!1), p;\n }\n },\n [n, e, r, t]\n ), error: i, isLoading: o };\n}\nexport {\n Rl as Network,\n ug as OrdConnectKit,\n sg as OrdConnectProvider,\n y0 as SelectWalletModal,\n cg as useBalance,\n Pr as useOrdConnect,\n lg as useSend,\n dg as useSign,\n pg as useSignMessage\n};\n","/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\nvar t=function(){return t=Object.assign||function(t){for(var r,e=1,n=arguments.length;e{if(!t||\"string\"!=typeof t)throw new Error(`Expected base58 string but got “${t}”`);if(t.match(/[IOl0]/gmu))throw new Error(`Invalid base58 character “${t.match(/[IOl0]/gmu)}”`);const e=t.match(/^1+/gmu),n=e?e[0].length:0,s=(t.length-n)*(Math.log(58)/Math.log(256))+1>>>0;return new Uint8Array([...new Uint8Array(n),...t.match(/.{1}/gmu).map((t=>r.indexOf(t))).reduce(((t,r)=>t=t.map((t=>{const e=58*t+r;return r=e>>8,e}))),new Uint8Array(s)).reverse().filter((i=!1,t=>i=i||t))]);var i};(()=>{const t=Array(256).fill(-1);for(let e=0;e>25;return(33554431&t)<<5^996825010&-(r>>0&1)^642813549&-(r>>1&1)^513874426&-(r>>2&1)^1027748829&-(r>>3&1)^705979059&-(r>>4&1)}function i(t){let r=1;for(let e=0;e126)return\"Invalid prefix (\"+t+\")\";r=s(r)^n>>5}r=s(r);for(let e=0;e=e;)i-=e,h.push(s>>i&o);if(n)i>0&&h.push(s<=r)return\"Excess padding\";if(s<e)return\"Exceeds length limit\";const o=t.toLowerCase(),h=t.toUpperCase();if(t!==o&&t!==h)return\"Mixed-case string \"+t;const c=(t=o).lastIndexOf(\"1\");if(-1===c)return\"No separator character for \"+t;if(0===c)return\"Missing prefix for \"+t;const a=t.slice(0,c),f=t.slice(c+1);if(f.length<6)return\"Data too short\";let u=i(a);if(\"string\"==typeof u)return u;const l=[];for(let t=0;t=f.length||l.push(e)}return u!==r?\"Invalid checksum for \"+t:{prefix:a,words:l}}return r=\"bech32\"===t?1:734539939,{decodeUnsafe:function(t,r){const e=o(t,r);if(\"object\"==typeof e)return e},decode:function(t,r){const e=o(t,r);if(\"object\"==typeof e)return e;throw new Error(e)},encode:function(t,n,o){if(o=o||90,t.length+7+n.length>o)throw new TypeError(\"Exceeds length limit\");let h=i(t=t.toLowerCase());if(\"string\"==typeof h)throw new Error(h);let c=t+\"1\";for(let t=0;t>5!=0)throw new Error(\"Non 5-bit word\");h=s(h)^r,c+=e.charAt(r)}for(let t=0;t<6;++t)h=s(h);h^=r;for(let t=0;t<6;++t)c+=e.charAt(h>>5*(5-t)&31);return c},toWords:h,fromWordsUnsafe:c,fromWords:a}}r.bech32=f(\"bech32\"),r.bech32m=f(\"bech32m\")},s(i={exports:{}},i.exports),i.exports);(o=h)&&o.__esModule&&Object.prototype.hasOwnProperty.call(o,\"default\")&&o.default;var c=h.bech32m,a=h.bech32;const f=[1116352408,1899447441,-1245643825,-373957723,961987163,1508970993,-1841331548,-1424204075,-670586216,310598401,607225278,1426881987,1925078388,-2132889090,-1680079193,-1046744716,-459576895,-272742522,264347078,604807628,770255983,1249150122,1555081692,1996064986,-1740746414,-1473132947,-1341970488,-1084653625,-958395405,-710438585,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,-2117940946,-1838011259,-1564481375,-1474664885,-1035236496,-949202525,-778901479,-694614492,-200395387,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,-2067236844,-1933114872,-1866530822,-1538233109,-1090935817,-965641998],u={sha256:1};class l{constructor(){this.A=1779033703,this.B=-1150833019,this.C=1013904242,this.D=-1521486534,this.E=1359893119,this.F=-1694144372,this.G=528734635,this.H=1541459225,this._size=0,this._sp=0,(!p||w>=8e3)&&(p=new ArrayBuffer(8e3),w=0),this._byte=new Uint8Array(p,w,80),this._word=new Int32Array(p,w,20),w+=80}update(t){if(\"string\"==typeof t)return this._utf8(t);if(null==t)throw new TypeError(\"Invalid type: \"+typeof t);const r=t.byteOffset,e=t.byteLength;let n=e/64|0,s=0;if(n&&!(3&r)&&!(this._size%64)){const e=new Int32Array(t.buffer,r,16*n);for(;n--;)this._int32(e,s>>2),s+=64;this._size+=s}if(1!==t.BYTES_PER_ELEMENT&&t.buffer){const n=new Uint8Array(t.buffer,r+s,e-s);return this._uint8(n)}return s===e?this:this._uint8(t,s)}_uint8(t,r){const{_byte:e,_word:n}=this,s=t.length;for(r|=0;r=64&&this._int32(n),this._size+=o-i}return this}_utf8(t){const{_byte:r,_word:e}=this,n=t.length;let s=this._sp;for(let i=0;i>>6,r[h++]=128|63&e):e<55296||e>57343?(r[h++]=224|e>>>12,r[h++]=128|e>>>6&63,r[h++]=128|63&e):s?(e=((1023&s)<<10)+(1023&e)+65536,r[h++]=240|e>>>18,r[h++]=128|e>>>12&63,r[h++]=128|e>>>6&63,r[h++]=128|63&e,s=0):s=e}h>=64&&(this._int32(e),e[0]=e[16]),this._size+=h-o}return this._sp=s,this}_int32(t,r){let{A:e,B:n,C:s,D:i,E:o,F:h,G:c,H:a}=this,u=0;for(r|=0;u<16;)d[u++]=g(t[r++]);for(u=16;u<64;u++)d[u]=A(d[u-2])+d[u-7]+m(d[u-15])+d[u-16]|0;for(u=0;u<64;u++){const t=a+E(o)+b(o,h,c)+f[u]+d[u]|0,r=v(e)+_(e,n,s)|0;a=c,c=h,h=o,o=i+t|0,i=s,s=n,n=e,e=t+r|0}this.A=e+this.A|0,this.B=n+this.B|0,this.C=s+this.C|0,this.D=i+this.D|0,this.E=o+this.E|0,this.F=h+this.F|0,this.G=c+this.G|0,this.H=a+this.H|0}digest(t){const{_byte:r,_word:e}=this;let n=this._size%64|0;for(r[n++]=128;3&n;)r[n++]=0;if(n>>=2,n>14){for(;n<16;)e[n++]=0;n=0,this._int32(e)}for(;n<16;)e[n++]=0;const s=8*this._size,i=(4294967295&s)>>>0,o=(s-i)/4294967296;return o&&(e[14]=g(o)),i&&(e[15]=g(i)),this._int32(e),\"hex\"===t?this._hex():this._bin()}_hex(){const{A:t,B:r,C:e,D:n,E:s,F:i,G:o,H:h}=this;return y(t)+y(r)+y(e)+y(n)+y(s)+y(i)+y(o)+y(h)}_bin(){const{A:t,B:r,C:e,D:n,E:s,F:i,G:o,H:h,_byte:c,_word:a}=this;return a[0]=g(t),a[1]=g(r),a[2]=g(e),a[3]=g(n),a[4]=g(s),a[5]=g(i),a[6]=g(o),a[7]=g(h),c.slice(0,32)}}const d=new Int32Array(64);let p,w=0;const y=t=>(t+4294967296).toString(16).substr(-8),g=254===new Uint8Array(new Uint16Array([65279]).buffer)[0]?t=>t:t=>t<<24&4278190080|t<<8&16711680|t>>8&65280|t>>24&255,b=(t,r,e)=>e^t&(r^e),_=(t,r,e)=>t&r|e&(t|r),v=t=>(t>>>2|t<<30)^(t>>>13|t<<19)^(t>>>22|t<<10),E=t=>(t>>>6|t<<26)^(t>>>11|t<<21)^(t>>>25|t<<7),m=t=>(t>>>7|t<<25)^(t>>>18|t<<14)^t>>>3,A=t=>(t>>>17|t<<15)^(t>>>19|t<<13)^t>>>10;var x,k,I=function(t){return function(t){if(t&&!u[t]&&!u[t.toLowerCase()])throw new Error(\"Digest method not supported\");return new l}().update(t).digest()};!function(t){t.mainnet=\"mainnet\",t.testnet=\"testnet\",t.regtest=\"regtest\"}(x||(x={})),function(t){t.p2pkh=\"p2pkh\",t.p2sh=\"p2sh\",t.p2wpkh=\"p2wpkh\",t.p2wsh=\"p2wsh\",t.p2tr=\"p2tr\"}(k||(k={}));var C={0:{type:k.p2pkh,network:x.mainnet},111:{type:k.p2pkh,network:x.testnet},5:{type:k.p2sh,network:x.mainnet},196:{type:k.p2sh,network:x.testnet}},z=function(r){var e,s=r.substr(0,2).toLowerCase();if(\"bc\"===s||\"tb\"===s)return function(t){var r;try{r=t.startsWith(\"bc1p\")||t.startsWith(\"tb1p\")||t.startsWith(\"bcrt1p\")?c.decode(t):a.decode(t)}catch(t){throw new Error(\"Invalid address\")}var e={bc:x.mainnet,tb:x.testnet,bcrt:x.regtest}[r.prefix];if(void 0===e)throw new Error(\"Invalid address\");var n=r.words[0];if(n<0||n>16)throw new Error(\"Invalid address\");return{bech32:!0,network:e,address:t,type:20===a.fromWords(r.words.slice(1)).length?k.p2wpkh:1===n?k.p2tr:k.p2wsh}}(r);try{e=n(r)}catch(t){throw new Error(\"Invalid address\")}var i=e.length;if(25!==i)throw new Error(\"Invalid address\");var o=e[0],h=e.slice(i-4,i),f=e.slice(0,i-4),u=I(I(f)).slice(0,4);if(h.some((function(t,r){return t!==u[r]})))throw new Error(\"Invalid address\");if(!Object.keys(C).map(Number).includes(o))throw new Error(\"Invalid address\");return t(t({},C[o]),{address:r,bech32:!1})},O=function(t,r){try{var e=z(t);return!r||r===e.network}catch(t){return!1}};export{k as AddressType,x as Network,O as default,z as getAddressInfo,O as validate};\n","import { validate as Kr, getAddressInfo as dr } from \"bitcoin-address-validation\";\nimport * as Br from \"@bitcoinerlab/secp256k1\";\nimport { BIP32Factory as qr } from \"bip32\";\nimport { networks as wr, initEccLib as Hr, payments as N } from \"bitcoinjs-lib\";\nimport \"ecpair\";\nvar Q = {}, G = {};\nG.byteLength = Vr;\nG.toByteArray = Zr;\nG.fromByteArray = rt;\nvar C = [], R = [], Xr = typeof Uint8Array < \"u\" ? Uint8Array : Array, Z = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\nfor (var O = 0, zr = Z.length; O < zr; ++O)\n C[O] = Z[O], R[Z.charCodeAt(O)] = O;\nR[\"-\".charCodeAt(0)] = 62;\nR[\"_\".charCodeAt(0)] = 63;\nfunction Er(c) {\n var s = c.length;\n if (s % 4 > 0)\n throw new Error(\"Invalid string. Length must be a multiple of 4\");\n var f = c.indexOf(\"=\");\n f === -1 && (f = s);\n var w = f === s ? 0 : 4 - f % 4;\n return [f, w];\n}\nfunction Vr(c) {\n var s = Er(c), f = s[0], w = s[1];\n return (f + w) * 3 / 4 - w;\n}\nfunction Jr(c, s, f) {\n return (s + f) * 3 / 4 - f;\n}\nfunction Zr(c) {\n var s, f = Er(c), w = f[0], a = f[1], p = new Xr(Jr(c, w, a)), l = 0, g = a > 0 ? w - 4 : w, d;\n for (d = 0; d < g; d += 4)\n s = R[c.charCodeAt(d)] << 18 | R[c.charCodeAt(d + 1)] << 12 | R[c.charCodeAt(d + 2)] << 6 | R[c.charCodeAt(d + 3)], p[l++] = s >> 16 & 255, p[l++] = s >> 8 & 255, p[l++] = s & 255;\n return a === 2 && (s = R[c.charCodeAt(d)] << 2 | R[c.charCodeAt(d + 1)] >> 4, p[l++] = s & 255), a === 1 && (s = R[c.charCodeAt(d)] << 10 | R[c.charCodeAt(d + 1)] << 4 | R[c.charCodeAt(d + 2)] >> 2, p[l++] = s >> 8 & 255, p[l++] = s & 255), p;\n}\nfunction Qr(c) {\n return C[c >> 18 & 63] + C[c >> 12 & 63] + C[c >> 6 & 63] + C[c & 63];\n}\nfunction vr(c, s, f) {\n for (var w, a = [], p = s; p < f; p += 3)\n w = (c[p] << 16 & 16711680) + (c[p + 1] << 8 & 65280) + (c[p + 2] & 255), a.push(Qr(w));\n return a.join(\"\");\n}\nfunction rt(c) {\n for (var s, f = c.length, w = f % 3, a = [], p = 16383, l = 0, g = f - w; l < g; l += p)\n a.push(vr(c, l, l + p > g ? g : l + p));\n return w === 1 ? (s = c[f - 1], a.push(\n C[s >> 2] + C[s << 4 & 63] + \"==\"\n )) : w === 2 && (s = (c[f - 2] << 8) + c[f - 1], a.push(\n C[s >> 10] + C[s >> 4 & 63] + C[s << 2 & 63] + \"=\"\n )), a.join(\"\");\n}\nvar v = {};\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nv.read = function(c, s, f, w, a) {\n var p, l, g = a * 8 - w - 1, d = (1 << g) - 1, F = d >> 1, o = -7, A = f ? a - 1 : 0, b = f ? -1 : 1, T = c[s + A];\n for (A += b, p = T & (1 << -o) - 1, T >>= -o, o += g; o > 0; p = p * 256 + c[s + A], A += b, o -= 8)\n ;\n for (l = p & (1 << -o) - 1, p >>= -o, o += w; o > 0; l = l * 256 + c[s + A], A += b, o -= 8)\n ;\n if (p === 0)\n p = 1 - F;\n else {\n if (p === d)\n return l ? NaN : (T ? -1 : 1) * (1 / 0);\n l = l + Math.pow(2, w), p = p - F;\n }\n return (T ? -1 : 1) * l * Math.pow(2, p - w);\n};\nv.write = function(c, s, f, w, a, p) {\n var l, g, d, F = p * 8 - a - 1, o = (1 << F) - 1, A = o >> 1, b = a === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0, T = w ? 0 : p - 1, P = w ? 1 : -1, K = s < 0 || s === 0 && 1 / s < 0 ? 1 : 0;\n for (s = Math.abs(s), isNaN(s) || s === 1 / 0 ? (g = isNaN(s) ? 1 : 0, l = o) : (l = Math.floor(Math.log(s) / Math.LN2), s * (d = Math.pow(2, -l)) < 1 && (l--, d *= 2), l + A >= 1 ? s += b / d : s += b * Math.pow(2, 1 - A), s * d >= 2 && (l++, d /= 2), l + A >= o ? (g = 0, l = o) : l + A >= 1 ? (g = (s * d - 1) * Math.pow(2, a), l = l + A) : (g = s * Math.pow(2, A - 1) * Math.pow(2, a), l = 0)); a >= 8; c[f + T] = g & 255, T += P, g /= 256, a -= 8)\n ;\n for (l = l << a | g, F += a; F > 0; c[f + T] = l & 255, T += P, l /= 256, F -= 8)\n ;\n c[f + T - P] |= K * 128;\n};\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n(function(c) {\n const s = G, f = v, w = typeof Symbol == \"function\" && typeof Symbol.for == \"function\" ? Symbol.for(\"nodejs.util.inspect.custom\") : null;\n c.Buffer = o, c.SlowBuffer = Ar, c.INSPECT_MAX_BYTES = 50;\n const a = 2147483647;\n c.kMaxLength = a;\n const { Uint8Array: p, ArrayBuffer: l, SharedArrayBuffer: g } = globalThis;\n o.TYPED_ARRAY_SUPPORT = d(), !o.TYPED_ARRAY_SUPPORT && typeof console < \"u\" && typeof console.error == \"function\" && console.error(\n \"This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.\"\n );\n function d() {\n try {\n const e = new p(1), r = { foo: function() {\n return 42;\n } };\n return Object.setPrototypeOf(r, p.prototype), Object.setPrototypeOf(e, r), e.foo() === 42;\n } catch {\n return !1;\n }\n }\n Object.defineProperty(o.prototype, \"parent\", {\n enumerable: !0,\n get: function() {\n if (o.isBuffer(this))\n return this.buffer;\n }\n }), Object.defineProperty(o.prototype, \"offset\", {\n enumerable: !0,\n get: function() {\n if (o.isBuffer(this))\n return this.byteOffset;\n }\n });\n function F(e) {\n if (e > a)\n throw new RangeError('The value \"' + e + '\" is invalid for option \"size\"');\n const r = new p(e);\n return Object.setPrototypeOf(r, o.prototype), r;\n }\n function o(e, r, t) {\n if (typeof e == \"number\") {\n if (typeof r == \"string\")\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n );\n return P(e);\n }\n return A(e, r, t);\n }\n o.poolSize = 8192;\n function A(e, r, t) {\n if (typeof e == \"string\")\n return K(e, r);\n if (l.isView(e))\n return Ir(e);\n if (e == null)\n throw new TypeError(\n \"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type \" + typeof e\n );\n if (S(e, l) || e && S(e.buffer, l) || typeof g < \"u\" && (S(e, g) || e && S(e.buffer, g)))\n return H(e, r, t);\n if (typeof e == \"number\")\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n );\n const n = e.valueOf && e.valueOf();\n if (n != null && n !== e)\n return o.from(n, r, t);\n const i = Fr(e);\n if (i)\n return i;\n if (typeof Symbol < \"u\" && Symbol.toPrimitive != null && typeof e[Symbol.toPrimitive] == \"function\")\n return o.from(e[Symbol.toPrimitive](\"string\"), r, t);\n throw new TypeError(\n \"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type \" + typeof e\n );\n }\n o.from = function(e, r, t) {\n return A(e, r, t);\n }, Object.setPrototypeOf(o.prototype, p.prototype), Object.setPrototypeOf(o, p);\n function b(e) {\n if (typeof e != \"number\")\n throw new TypeError('\"size\" argument must be of type number');\n if (e < 0)\n throw new RangeError('The value \"' + e + '\" is invalid for option \"size\"');\n }\n function T(e, r, t) {\n return b(e), e <= 0 ? F(e) : r !== void 0 ? typeof t == \"string\" ? F(e).fill(r, t) : F(e).fill(r) : F(e);\n }\n o.alloc = function(e, r, t) {\n return T(e, r, t);\n };\n function P(e) {\n return b(e), F(e < 0 ? 0 : X(e) | 0);\n }\n o.allocUnsafe = function(e) {\n return P(e);\n }, o.allocUnsafeSlow = function(e) {\n return P(e);\n };\n function K(e, r) {\n if ((typeof r != \"string\" || r === \"\") && (r = \"utf8\"), !o.isEncoding(r))\n throw new TypeError(\"Unknown encoding: \" + r);\n const t = tr(e, r) | 0;\n let n = F(t);\n const i = n.write(e, r);\n return i !== t && (n = n.slice(0, i)), n;\n }\n function q(e) {\n const r = e.length < 0 ? 0 : X(e.length) | 0, t = F(r);\n for (let n = 0; n < r; n += 1)\n t[n] = e[n] & 255;\n return t;\n }\n function Ir(e) {\n if (S(e, p)) {\n const r = new p(e);\n return H(r.buffer, r.byteOffset, r.byteLength);\n }\n return q(e);\n }\n function H(e, r, t) {\n if (r < 0 || e.byteLength < r)\n throw new RangeError('\"offset\" is outside of buffer bounds');\n if (e.byteLength < r + (t || 0))\n throw new RangeError('\"length\" is outside of buffer bounds');\n let n;\n return r === void 0 && t === void 0 ? n = new p(e) : t === void 0 ? n = new p(e, r) : n = new p(e, r, t), Object.setPrototypeOf(n, o.prototype), n;\n }\n function Fr(e) {\n if (o.isBuffer(e)) {\n const r = X(e.length) | 0, t = F(r);\n return t.length === 0 || e.copy(t, 0, 0, r), t;\n }\n if (e.length !== void 0)\n return typeof e.length != \"number\" || J(e.length) ? F(0) : q(e);\n if (e.type === \"Buffer\" && Array.isArray(e.data))\n return q(e.data);\n }\n function X(e) {\n if (e >= a)\n throw new RangeError(\"Attempt to allocate Buffer larger than maximum size: 0x\" + a.toString(16) + \" bytes\");\n return e | 0;\n }\n function Ar(e) {\n return +e != e && (e = 0), o.alloc(+e);\n }\n o.isBuffer = function(r) {\n return r != null && r._isBuffer === !0 && r !== o.prototype;\n }, o.compare = function(r, t) {\n if (S(r, p) && (r = o.from(r, r.offset, r.byteLength)), S(t, p) && (t = o.from(t, t.offset, t.byteLength)), !o.isBuffer(r) || !o.isBuffer(t))\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n );\n if (r === t)\n return 0;\n let n = r.length, i = t.length;\n for (let u = 0, h = Math.min(n, i); u < h; ++u)\n if (r[u] !== t[u]) {\n n = r[u], i = t[u];\n break;\n }\n return n < i ? -1 : i < n ? 1 : 0;\n }, o.isEncoding = function(r) {\n switch (String(r).toLowerCase()) {\n case \"hex\":\n case \"utf8\":\n case \"utf-8\":\n case \"ascii\":\n case \"latin1\":\n case \"binary\":\n case \"base64\":\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return !0;\n default:\n return !1;\n }\n }, o.concat = function(r, t) {\n if (!Array.isArray(r))\n throw new TypeError('\"list\" argument must be an Array of Buffers');\n if (r.length === 0)\n return o.alloc(0);\n let n;\n if (t === void 0)\n for (t = 0, n = 0; n < r.length; ++n)\n t += r[n].length;\n const i = o.allocUnsafe(t);\n let u = 0;\n for (n = 0; n < r.length; ++n) {\n let h = r[n];\n if (S(h, p))\n u + h.length > i.length ? (o.isBuffer(h) || (h = o.from(h)), h.copy(i, u)) : p.prototype.set.call(\n i,\n h,\n u\n );\n else if (o.isBuffer(h))\n h.copy(i, u);\n else\n throw new TypeError('\"list\" argument must be an Array of Buffers');\n u += h.length;\n }\n return i;\n };\n function tr(e, r) {\n if (o.isBuffer(e))\n return e.length;\n if (l.isView(e) || S(e, l))\n return e.byteLength;\n if (typeof e != \"string\")\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. Received type ' + typeof e\n );\n const t = e.length, n = arguments.length > 2 && arguments[2] === !0;\n if (!n && t === 0)\n return 0;\n let i = !1;\n for (; ; )\n switch (r) {\n case \"ascii\":\n case \"latin1\":\n case \"binary\":\n return t;\n case \"utf8\":\n case \"utf-8\":\n return V(e).length;\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return t * 2;\n case \"hex\":\n return t >>> 1;\n case \"base64\":\n return ar(e).length;\n default:\n if (i)\n return n ? -1 : V(e).length;\n r = (\"\" + r).toLowerCase(), i = !0;\n }\n }\n o.byteLength = tr;\n function Ur(e, r, t) {\n let n = !1;\n if ((r === void 0 || r < 0) && (r = 0), r > this.length || ((t === void 0 || t > this.length) && (t = this.length), t <= 0) || (t >>>= 0, r >>>= 0, t <= r))\n return \"\";\n for (e || (e = \"utf8\"); ; )\n switch (e) {\n case \"hex\":\n return Mr(this, r, t);\n case \"utf8\":\n case \"utf-8\":\n return ir(this, r, t);\n case \"ascii\":\n return Nr(this, r, t);\n case \"latin1\":\n case \"binary\":\n return Pr(this, r, t);\n case \"base64\":\n return br(this, r, t);\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return Dr(this, r, t);\n default:\n if (n)\n throw new TypeError(\"Unknown encoding: \" + e);\n e = (e + \"\").toLowerCase(), n = !0;\n }\n }\n o.prototype._isBuffer = !0;\n function M(e, r, t) {\n const n = e[r];\n e[r] = e[t], e[t] = n;\n }\n o.prototype.swap16 = function() {\n const r = this.length;\n if (r % 2 !== 0)\n throw new RangeError(\"Buffer size must be a multiple of 16-bits\");\n for (let t = 0; t < r; t += 2)\n M(this, t, t + 1);\n return this;\n }, o.prototype.swap32 = function() {\n const r = this.length;\n if (r % 4 !== 0)\n throw new RangeError(\"Buffer size must be a multiple of 32-bits\");\n for (let t = 0; t < r; t += 4)\n M(this, t, t + 3), M(this, t + 1, t + 2);\n return this;\n }, o.prototype.swap64 = function() {\n const r = this.length;\n if (r % 8 !== 0)\n throw new RangeError(\"Buffer size must be a multiple of 64-bits\");\n for (let t = 0; t < r; t += 8)\n M(this, t, t + 7), M(this, t + 1, t + 6), M(this, t + 2, t + 5), M(this, t + 3, t + 4);\n return this;\n }, o.prototype.toString = function() {\n const r = this.length;\n return r === 0 ? \"\" : arguments.length === 0 ? ir(this, 0, r) : Ur.apply(this, arguments);\n }, o.prototype.toLocaleString = o.prototype.toString, o.prototype.equals = function(r) {\n if (!o.isBuffer(r))\n throw new TypeError(\"Argument must be a Buffer\");\n return this === r ? !0 : o.compare(this, r) === 0;\n }, o.prototype.inspect = function() {\n let r = \"\";\n const t = c.INSPECT_MAX_BYTES;\n return r = this.toString(\"hex\", 0, t).replace(/(.{2})/g, \"$1 \").trim(), this.length > t && (r += \" ... \"), \"\";\n }, w && (o.prototype[w] = o.prototype.inspect), o.prototype.compare = function(r, t, n, i, u) {\n if (S(r, p) && (r = o.from(r, r.offset, r.byteLength)), !o.isBuffer(r))\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. Received type ' + typeof r\n );\n if (t === void 0 && (t = 0), n === void 0 && (n = r ? r.length : 0), i === void 0 && (i = 0), u === void 0 && (u = this.length), t < 0 || n > r.length || i < 0 || u > this.length)\n throw new RangeError(\"out of range index\");\n if (i >= u && t >= n)\n return 0;\n if (i >= u)\n return -1;\n if (t >= n)\n return 1;\n if (t >>>= 0, n >>>= 0, i >>>= 0, u >>>= 0, this === r)\n return 0;\n let h = u - i, y = n - t;\n const E = Math.min(h, y), B = this.slice(i, u), m = r.slice(t, n);\n for (let x = 0; x < E; ++x)\n if (B[x] !== m[x]) {\n h = B[x], y = m[x];\n break;\n }\n return h < y ? -1 : y < h ? 1 : 0;\n };\n function er(e, r, t, n, i) {\n if (e.length === 0)\n return -1;\n if (typeof t == \"string\" ? (n = t, t = 0) : t > 2147483647 ? t = 2147483647 : t < -2147483648 && (t = -2147483648), t = +t, J(t) && (t = i ? 0 : e.length - 1), t < 0 && (t = e.length + t), t >= e.length) {\n if (i)\n return -1;\n t = e.length - 1;\n } else if (t < 0)\n if (i)\n t = 0;\n else\n return -1;\n if (typeof r == \"string\" && (r = o.from(r, n)), o.isBuffer(r))\n return r.length === 0 ? -1 : nr(e, r, t, n, i);\n if (typeof r == \"number\")\n return r = r & 255, typeof p.prototype.indexOf == \"function\" ? i ? p.prototype.indexOf.call(e, r, t) : p.prototype.lastIndexOf.call(e, r, t) : nr(e, [r], t, n, i);\n throw new TypeError(\"val must be string, number or Buffer\");\n }\n function nr(e, r, t, n, i) {\n let u = 1, h = e.length, y = r.length;\n if (n !== void 0 && (n = String(n).toLowerCase(), n === \"ucs2\" || n === \"ucs-2\" || n === \"utf16le\" || n === \"utf-16le\")) {\n if (e.length < 2 || r.length < 2)\n return -1;\n u = 2, h /= 2, y /= 2, t /= 2;\n }\n function E(m, x) {\n return u === 1 ? m[x] : m.readUInt16BE(x * u);\n }\n let B;\n if (i) {\n let m = -1;\n for (B = t; B < h; B++)\n if (E(e, B) === E(r, m === -1 ? 0 : B - m)) {\n if (m === -1 && (m = B), B - m + 1 === y)\n return m * u;\n } else\n m !== -1 && (B -= B - m), m = -1;\n } else\n for (t + y > h && (t = h - y), B = t; B >= 0; B--) {\n let m = !0;\n for (let x = 0; x < y; x++)\n if (E(e, B + x) !== E(r, x)) {\n m = !1;\n break;\n }\n if (m)\n return B;\n }\n return -1;\n }\n o.prototype.includes = function(r, t, n) {\n return this.indexOf(r, t, n) !== -1;\n }, o.prototype.indexOf = function(r, t, n) {\n return er(this, r, t, n, !0);\n }, o.prototype.lastIndexOf = function(r, t, n) {\n return er(this, r, t, n, !1);\n };\n function Tr(e, r, t, n) {\n t = Number(t) || 0;\n const i = e.length - t;\n n ? (n = Number(n), n > i && (n = i)) : n = i;\n const u = r.length;\n n > u / 2 && (n = u / 2);\n let h;\n for (h = 0; h < n; ++h) {\n const y = parseInt(r.substr(h * 2, 2), 16);\n if (J(y))\n return h;\n e[t + h] = y;\n }\n return h;\n }\n function Rr(e, r, t, n) {\n return W(V(r, e.length - t), e, t, n);\n }\n function Sr(e, r, t, n) {\n return W(Wr(r), e, t, n);\n }\n function Cr(e, r, t, n) {\n return W(ar(r), e, t, n);\n }\n function _r(e, r, t, n) {\n return W(Gr(r, e.length - t), e, t, n);\n }\n o.prototype.write = function(r, t, n, i) {\n if (t === void 0)\n i = \"utf8\", n = this.length, t = 0;\n else if (n === void 0 && typeof t == \"string\")\n i = t, n = this.length, t = 0;\n else if (isFinite(t))\n t = t >>> 0, isFinite(n) ? (n = n >>> 0, i === void 0 && (i = \"utf8\")) : (i = n, n = void 0);\n else\n throw new Error(\n \"Buffer.write(string, encoding, offset[, length]) is no longer supported\"\n );\n const u = this.length - t;\n if ((n === void 0 || n > u) && (n = u), r.length > 0 && (n < 0 || t < 0) || t > this.length)\n throw new RangeError(\"Attempt to write outside buffer bounds\");\n i || (i = \"utf8\");\n let h = !1;\n for (; ; )\n switch (i) {\n case \"hex\":\n return Tr(this, r, t, n);\n case \"utf8\":\n case \"utf-8\":\n return Rr(this, r, t, n);\n case \"ascii\":\n case \"latin1\":\n case \"binary\":\n return Sr(this, r, t, n);\n case \"base64\":\n return Cr(this, r, t, n);\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return _r(this, r, t, n);\n default:\n if (h)\n throw new TypeError(\"Unknown encoding: \" + i);\n i = (\"\" + i).toLowerCase(), h = !0;\n }\n }, o.prototype.toJSON = function() {\n return {\n type: \"Buffer\",\n data: Array.prototype.slice.call(this._arr || this, 0)\n };\n };\n function br(e, r, t) {\n return r === 0 && t === e.length ? s.fromByteArray(e) : s.fromByteArray(e.slice(r, t));\n }\n function ir(e, r, t) {\n t = Math.min(e.length, t);\n const n = [];\n let i = r;\n for (; i < t; ) {\n const u = e[i];\n let h = null, y = u > 239 ? 4 : u > 223 ? 3 : u > 191 ? 2 : 1;\n if (i + y <= t) {\n let E, B, m, x;\n switch (y) {\n case 1:\n u < 128 && (h = u);\n break;\n case 2:\n E = e[i + 1], (E & 192) === 128 && (x = (u & 31) << 6 | E & 63, x > 127 && (h = x));\n break;\n case 3:\n E = e[i + 1], B = e[i + 2], (E & 192) === 128 && (B & 192) === 128 && (x = (u & 15) << 12 | (E & 63) << 6 | B & 63, x > 2047 && (x < 55296 || x > 57343) && (h = x));\n break;\n case 4:\n E = e[i + 1], B = e[i + 2], m = e[i + 3], (E & 192) === 128 && (B & 192) === 128 && (m & 192) === 128 && (x = (u & 15) << 18 | (E & 63) << 12 | (B & 63) << 6 | m & 63, x > 65535 && x < 1114112 && (h = x));\n }\n }\n h === null ? (h = 65533, y = 1) : h > 65535 && (h -= 65536, n.push(h >>> 10 & 1023 | 55296), h = 56320 | h & 1023), n.push(h), i += y;\n }\n return kr(n);\n }\n const or = 4096;\n function kr(e) {\n const r = e.length;\n if (r <= or)\n return String.fromCharCode.apply(String, e);\n let t = \"\", n = 0;\n for (; n < r; )\n t += String.fromCharCode.apply(\n String,\n e.slice(n, n += or)\n );\n return t;\n }\n function Nr(e, r, t) {\n let n = \"\";\n t = Math.min(e.length, t);\n for (let i = r; i < t; ++i)\n n += String.fromCharCode(e[i] & 127);\n return n;\n }\n function Pr(e, r, t) {\n let n = \"\";\n t = Math.min(e.length, t);\n for (let i = r; i < t; ++i)\n n += String.fromCharCode(e[i]);\n return n;\n }\n function Mr(e, r, t) {\n const n = e.length;\n (!r || r < 0) && (r = 0), (!t || t < 0 || t > n) && (t = n);\n let i = \"\";\n for (let u = r; u < t; ++u)\n i += Yr[e[u]];\n return i;\n }\n function Dr(e, r, t) {\n const n = e.slice(r, t);\n let i = \"\";\n for (let u = 0; u < n.length - 1; u += 2)\n i += String.fromCharCode(n[u] + n[u + 1] * 256);\n return i;\n }\n o.prototype.slice = function(r, t) {\n const n = this.length;\n r = ~~r, t = t === void 0 ? n : ~~t, r < 0 ? (r += n, r < 0 && (r = 0)) : r > n && (r = n), t < 0 ? (t += n, t < 0 && (t = 0)) : t > n && (t = n), t < r && (t = r);\n const i = this.subarray(r, t);\n return Object.setPrototypeOf(i, o.prototype), i;\n };\n function I(e, r, t) {\n if (e % 1 !== 0 || e < 0)\n throw new RangeError(\"offset is not uint\");\n if (e + r > t)\n throw new RangeError(\"Trying to access beyond buffer length\");\n }\n o.prototype.readUintLE = o.prototype.readUIntLE = function(r, t, n) {\n r = r >>> 0, t = t >>> 0, n || I(r, t, this.length);\n let i = this[r], u = 1, h = 0;\n for (; ++h < t && (u *= 256); )\n i += this[r + h] * u;\n return i;\n }, o.prototype.readUintBE = o.prototype.readUIntBE = function(r, t, n) {\n r = r >>> 0, t = t >>> 0, n || I(r, t, this.length);\n let i = this[r + --t], u = 1;\n for (; t > 0 && (u *= 256); )\n i += this[r + --t] * u;\n return i;\n }, o.prototype.readUint8 = o.prototype.readUInt8 = function(r, t) {\n return r = r >>> 0, t || I(r, 1, this.length), this[r];\n }, o.prototype.readUint16LE = o.prototype.readUInt16LE = function(r, t) {\n return r = r >>> 0, t || I(r, 2, this.length), this[r] | this[r + 1] << 8;\n }, o.prototype.readUint16BE = o.prototype.readUInt16BE = function(r, t) {\n return r = r >>> 0, t || I(r, 2, this.length), this[r] << 8 | this[r + 1];\n }, o.prototype.readUint32LE = o.prototype.readUInt32LE = function(r, t) {\n return r = r >>> 0, t || I(r, 4, this.length), (this[r] | this[r + 1] << 8 | this[r + 2] << 16) + this[r + 3] * 16777216;\n }, o.prototype.readUint32BE = o.prototype.readUInt32BE = function(r, t) {\n return r = r >>> 0, t || I(r, 4, this.length), this[r] * 16777216 + (this[r + 1] << 16 | this[r + 2] << 8 | this[r + 3]);\n }, o.prototype.readBigUInt64LE = k(function(r) {\n r = r >>> 0, L(r, \"offset\");\n const t = this[r], n = this[r + 7];\n (t === void 0 || n === void 0) && $(r, this.length - 8);\n const i = t + this[++r] * 2 ** 8 + this[++r] * 2 ** 16 + this[++r] * 2 ** 24, u = this[++r] + this[++r] * 2 ** 8 + this[++r] * 2 ** 16 + n * 2 ** 24;\n return BigInt(i) + (BigInt(u) << BigInt(32));\n }), o.prototype.readBigUInt64BE = k(function(r) {\n r = r >>> 0, L(r, \"offset\");\n const t = this[r], n = this[r + 7];\n (t === void 0 || n === void 0) && $(r, this.length - 8);\n const i = t * 2 ** 24 + this[++r] * 2 ** 16 + this[++r] * 2 ** 8 + this[++r], u = this[++r] * 2 ** 24 + this[++r] * 2 ** 16 + this[++r] * 2 ** 8 + n;\n return (BigInt(i) << BigInt(32)) + BigInt(u);\n }), o.prototype.readIntLE = function(r, t, n) {\n r = r >>> 0, t = t >>> 0, n || I(r, t, this.length);\n let i = this[r], u = 1, h = 0;\n for (; ++h < t && (u *= 256); )\n i += this[r + h] * u;\n return u *= 128, i >= u && (i -= Math.pow(2, 8 * t)), i;\n }, o.prototype.readIntBE = function(r, t, n) {\n r = r >>> 0, t = t >>> 0, n || I(r, t, this.length);\n let i = t, u = 1, h = this[r + --i];\n for (; i > 0 && (u *= 256); )\n h += this[r + --i] * u;\n return u *= 128, h >= u && (h -= Math.pow(2, 8 * t)), h;\n }, o.prototype.readInt8 = function(r, t) {\n return r = r >>> 0, t || I(r, 1, this.length), this[r] & 128 ? (255 - this[r] + 1) * -1 : this[r];\n }, o.prototype.readInt16LE = function(r, t) {\n r = r >>> 0, t || I(r, 2, this.length);\n const n = this[r] | this[r + 1] << 8;\n return n & 32768 ? n | 4294901760 : n;\n }, o.prototype.readInt16BE = function(r, t) {\n r = r >>> 0, t || I(r, 2, this.length);\n const n = this[r + 1] | this[r] << 8;\n return n & 32768 ? n | 4294901760 : n;\n }, o.prototype.readInt32LE = function(r, t) {\n return r = r >>> 0, t || I(r, 4, this.length), this[r] | this[r + 1] << 8 | this[r + 2] << 16 | this[r + 3] << 24;\n }, o.prototype.readInt32BE = function(r, t) {\n return r = r >>> 0, t || I(r, 4, this.length), this[r] << 24 | this[r + 1] << 16 | this[r + 2] << 8 | this[r + 3];\n }, o.prototype.readBigInt64LE = k(function(r) {\n r = r >>> 0, L(r, \"offset\");\n const t = this[r], n = this[r + 7];\n (t === void 0 || n === void 0) && $(r, this.length - 8);\n const i = this[r + 4] + this[r + 5] * 2 ** 8 + this[r + 6] * 2 ** 16 + (n << 24);\n return (BigInt(i) << BigInt(32)) + BigInt(t + this[++r] * 2 ** 8 + this[++r] * 2 ** 16 + this[++r] * 2 ** 24);\n }), o.prototype.readBigInt64BE = k(function(r) {\n r = r >>> 0, L(r, \"offset\");\n const t = this[r], n = this[r + 7];\n (t === void 0 || n === void 0) && $(r, this.length - 8);\n const i = (t << 24) + // Overflow\n this[++r] * 2 ** 16 + this[++r] * 2 ** 8 + this[++r];\n return (BigInt(i) << BigInt(32)) + BigInt(this[++r] * 2 ** 24 + this[++r] * 2 ** 16 + this[++r] * 2 ** 8 + n);\n }), o.prototype.readFloatLE = function(r, t) {\n return r = r >>> 0, t || I(r, 4, this.length), f.read(this, r, !0, 23, 4);\n }, o.prototype.readFloatBE = function(r, t) {\n return r = r >>> 0, t || I(r, 4, this.length), f.read(this, r, !1, 23, 4);\n }, o.prototype.readDoubleLE = function(r, t) {\n return r = r >>> 0, t || I(r, 8, this.length), f.read(this, r, !0, 52, 8);\n }, o.prototype.readDoubleBE = function(r, t) {\n return r = r >>> 0, t || I(r, 8, this.length), f.read(this, r, !1, 52, 8);\n };\n function U(e, r, t, n, i, u) {\n if (!o.isBuffer(e))\n throw new TypeError('\"buffer\" argument must be a Buffer instance');\n if (r > i || r < u)\n throw new RangeError('\"value\" argument is out of bounds');\n if (t + n > e.length)\n throw new RangeError(\"Index out of range\");\n }\n o.prototype.writeUintLE = o.prototype.writeUIntLE = function(r, t, n, i) {\n if (r = +r, t = t >>> 0, n = n >>> 0, !i) {\n const y = Math.pow(2, 8 * n) - 1;\n U(this, r, t, n, y, 0);\n }\n let u = 1, h = 0;\n for (this[t] = r & 255; ++h < n && (u *= 256); )\n this[t + h] = r / u & 255;\n return t + n;\n }, o.prototype.writeUintBE = o.prototype.writeUIntBE = function(r, t, n, i) {\n if (r = +r, t = t >>> 0, n = n >>> 0, !i) {\n const y = Math.pow(2, 8 * n) - 1;\n U(this, r, t, n, y, 0);\n }\n let u = n - 1, h = 1;\n for (this[t + u] = r & 255; --u >= 0 && (h *= 256); )\n this[t + u] = r / h & 255;\n return t + n;\n }, o.prototype.writeUint8 = o.prototype.writeUInt8 = function(r, t, n) {\n return r = +r, t = t >>> 0, n || U(this, r, t, 1, 255, 0), this[t] = r & 255, t + 1;\n }, o.prototype.writeUint16LE = o.prototype.writeUInt16LE = function(r, t, n) {\n return r = +r, t = t >>> 0, n || U(this, r, t, 2, 65535, 0), this[t] = r & 255, this[t + 1] = r >>> 8, t + 2;\n }, o.prototype.writeUint16BE = o.prototype.writeUInt16BE = function(r, t, n) {\n return r = +r, t = t >>> 0, n || U(this, r, t, 2, 65535, 0), this[t] = r >>> 8, this[t + 1] = r & 255, t + 2;\n }, o.prototype.writeUint32LE = o.prototype.writeUInt32LE = function(r, t, n) {\n return r = +r, t = t >>> 0, n || U(this, r, t, 4, 4294967295, 0), this[t + 3] = r >>> 24, this[t + 2] = r >>> 16, this[t + 1] = r >>> 8, this[t] = r & 255, t + 4;\n }, o.prototype.writeUint32BE = o.prototype.writeUInt32BE = function(r, t, n) {\n return r = +r, t = t >>> 0, n || U(this, r, t, 4, 4294967295, 0), this[t] = r >>> 24, this[t + 1] = r >>> 16, this[t + 2] = r >>> 8, this[t + 3] = r & 255, t + 4;\n };\n function ur(e, r, t, n, i) {\n lr(r, n, i, e, t, 7);\n let u = Number(r & BigInt(4294967295));\n e[t++] = u, u = u >> 8, e[t++] = u, u = u >> 8, e[t++] = u, u = u >> 8, e[t++] = u;\n let h = Number(r >> BigInt(32) & BigInt(4294967295));\n return e[t++] = h, h = h >> 8, e[t++] = h, h = h >> 8, e[t++] = h, h = h >> 8, e[t++] = h, t;\n }\n function cr(e, r, t, n, i) {\n lr(r, n, i, e, t, 7);\n let u = Number(r & BigInt(4294967295));\n e[t + 7] = u, u = u >> 8, e[t + 6] = u, u = u >> 8, e[t + 5] = u, u = u >> 8, e[t + 4] = u;\n let h = Number(r >> BigInt(32) & BigInt(4294967295));\n return e[t + 3] = h, h = h >> 8, e[t + 2] = h, h = h >> 8, e[t + 1] = h, h = h >> 8, e[t] = h, t + 8;\n }\n o.prototype.writeBigUInt64LE = k(function(r, t = 0) {\n return ur(this, r, t, BigInt(0), BigInt(\"0xffffffffffffffff\"));\n }), o.prototype.writeBigUInt64BE = k(function(r, t = 0) {\n return cr(this, r, t, BigInt(0), BigInt(\"0xffffffffffffffff\"));\n }), o.prototype.writeIntLE = function(r, t, n, i) {\n if (r = +r, t = t >>> 0, !i) {\n const E = Math.pow(2, 8 * n - 1);\n U(this, r, t, n, E - 1, -E);\n }\n let u = 0, h = 1, y = 0;\n for (this[t] = r & 255; ++u < n && (h *= 256); )\n r < 0 && y === 0 && this[t + u - 1] !== 0 && (y = 1), this[t + u] = (r / h >> 0) - y & 255;\n return t + n;\n }, o.prototype.writeIntBE = function(r, t, n, i) {\n if (r = +r, t = t >>> 0, !i) {\n const E = Math.pow(2, 8 * n - 1);\n U(this, r, t, n, E - 1, -E);\n }\n let u = n - 1, h = 1, y = 0;\n for (this[t + u] = r & 255; --u >= 0 && (h *= 256); )\n r < 0 && y === 0 && this[t + u + 1] !== 0 && (y = 1), this[t + u] = (r / h >> 0) - y & 255;\n return t + n;\n }, o.prototype.writeInt8 = function(r, t, n) {\n return r = +r, t = t >>> 0, n || U(this, r, t, 1, 127, -128), r < 0 && (r = 255 + r + 1), this[t] = r & 255, t + 1;\n }, o.prototype.writeInt16LE = function(r, t, n) {\n return r = +r, t = t >>> 0, n || U(this, r, t, 2, 32767, -32768), this[t] = r & 255, this[t + 1] = r >>> 8, t + 2;\n }, o.prototype.writeInt16BE = function(r, t, n) {\n return r = +r, t = t >>> 0, n || U(this, r, t, 2, 32767, -32768), this[t] = r >>> 8, this[t + 1] = r & 255, t + 2;\n }, o.prototype.writeInt32LE = function(r, t, n) {\n return r = +r, t = t >>> 0, n || U(this, r, t, 4, 2147483647, -2147483648), this[t] = r & 255, this[t + 1] = r >>> 8, this[t + 2] = r >>> 16, this[t + 3] = r >>> 24, t + 4;\n }, o.prototype.writeInt32BE = function(r, t, n) {\n return r = +r, t = t >>> 0, n || U(this, r, t, 4, 2147483647, -2147483648), r < 0 && (r = 4294967295 + r + 1), this[t] = r >>> 24, this[t + 1] = r >>> 16, this[t + 2] = r >>> 8, this[t + 3] = r & 255, t + 4;\n }, o.prototype.writeBigInt64LE = k(function(r, t = 0) {\n return ur(this, r, t, -BigInt(\"0x8000000000000000\"), BigInt(\"0x7fffffffffffffff\"));\n }), o.prototype.writeBigInt64BE = k(function(r, t = 0) {\n return cr(this, r, t, -BigInt(\"0x8000000000000000\"), BigInt(\"0x7fffffffffffffff\"));\n });\n function hr(e, r, t, n, i, u) {\n if (t + n > e.length)\n throw new RangeError(\"Index out of range\");\n if (t < 0)\n throw new RangeError(\"Index out of range\");\n }\n function sr(e, r, t, n, i) {\n return r = +r, t = t >>> 0, i || hr(e, r, t, 4), f.write(e, r, t, n, 23, 4), t + 4;\n }\n o.prototype.writeFloatLE = function(r, t, n) {\n return sr(this, r, t, !0, n);\n }, o.prototype.writeFloatBE = function(r, t, n) {\n return sr(this, r, t, !1, n);\n };\n function fr(e, r, t, n, i) {\n return r = +r, t = t >>> 0, i || hr(e, r, t, 8), f.write(e, r, t, n, 52, 8), t + 8;\n }\n o.prototype.writeDoubleLE = function(r, t, n) {\n return fr(this, r, t, !0, n);\n }, o.prototype.writeDoubleBE = function(r, t, n) {\n return fr(this, r, t, !1, n);\n }, o.prototype.copy = function(r, t, n, i) {\n if (!o.isBuffer(r))\n throw new TypeError(\"argument should be a Buffer\");\n if (n || (n = 0), !i && i !== 0 && (i = this.length), t >= r.length && (t = r.length), t || (t = 0), i > 0 && i < n && (i = n), i === n || r.length === 0 || this.length === 0)\n return 0;\n if (t < 0)\n throw new RangeError(\"targetStart out of bounds\");\n if (n < 0 || n >= this.length)\n throw new RangeError(\"Index out of range\");\n if (i < 0)\n throw new RangeError(\"sourceEnd out of bounds\");\n i > this.length && (i = this.length), r.length - t < i - n && (i = r.length - t + n);\n const u = i - n;\n return this === r && typeof p.prototype.copyWithin == \"function\" ? this.copyWithin(t, n, i) : p.prototype.set.call(\n r,\n this.subarray(n, i),\n t\n ), u;\n }, o.prototype.fill = function(r, t, n, i) {\n if (typeof r == \"string\") {\n if (typeof t == \"string\" ? (i = t, t = 0, n = this.length) : typeof n == \"string\" && (i = n, n = this.length), i !== void 0 && typeof i != \"string\")\n throw new TypeError(\"encoding must be a string\");\n if (typeof i == \"string\" && !o.isEncoding(i))\n throw new TypeError(\"Unknown encoding: \" + i);\n if (r.length === 1) {\n const h = r.charCodeAt(0);\n (i === \"utf8\" && h < 128 || i === \"latin1\") && (r = h);\n }\n } else\n typeof r == \"number\" ? r = r & 255 : typeof r == \"boolean\" && (r = Number(r));\n if (t < 0 || this.length < t || this.length < n)\n throw new RangeError(\"Out of range index\");\n if (n <= t)\n return this;\n t = t >>> 0, n = n === void 0 ? this.length : n >>> 0, r || (r = 0);\n let u;\n if (typeof r == \"number\")\n for (u = t; u < n; ++u)\n this[u] = r;\n else {\n const h = o.isBuffer(r) ? r : o.from(r, i), y = h.length;\n if (y === 0)\n throw new TypeError('The value \"' + r + '\" is invalid for argument \"value\"');\n for (u = 0; u < n - t; ++u)\n this[u + t] = h[u % y];\n }\n return this;\n };\n const D = {};\n function z(e, r, t) {\n D[e] = class extends t {\n constructor() {\n super(), Object.defineProperty(this, \"message\", {\n value: r.apply(this, arguments),\n writable: !0,\n configurable: !0\n }), this.name = `${this.name} [${e}]`, this.stack, delete this.name;\n }\n get code() {\n return e;\n }\n set code(i) {\n Object.defineProperty(this, \"code\", {\n configurable: !0,\n enumerable: !0,\n value: i,\n writable: !0\n });\n }\n toString() {\n return `${this.name} [${e}]: ${this.message}`;\n }\n };\n }\n z(\n \"ERR_BUFFER_OUT_OF_BOUNDS\",\n function(e) {\n return e ? `${e} is outside of buffer bounds` : \"Attempt to access memory outside buffer bounds\";\n },\n RangeError\n ), z(\n \"ERR_INVALID_ARG_TYPE\",\n function(e, r) {\n return `The \"${e}\" argument must be of type number. Received type ${typeof r}`;\n },\n TypeError\n ), z(\n \"ERR_OUT_OF_RANGE\",\n function(e, r, t) {\n let n = `The value of \"${e}\" is out of range.`, i = t;\n return Number.isInteger(t) && Math.abs(t) > 2 ** 32 ? i = pr(String(t)) : typeof t == \"bigint\" && (i = String(t), (t > BigInt(2) ** BigInt(32) || t < -(BigInt(2) ** BigInt(32))) && (i = pr(i)), i += \"n\"), n += ` It must be ${r}. Received ${i}`, n;\n },\n RangeError\n );\n function pr(e) {\n let r = \"\", t = e.length;\n const n = e[0] === \"-\" ? 1 : 0;\n for (; t >= n + 4; t -= 3)\n r = `_${e.slice(t - 3, t)}${r}`;\n return `${e.slice(0, t)}${r}`;\n }\n function Lr(e, r, t) {\n L(r, \"offset\"), (e[r] === void 0 || e[r + t] === void 0) && $(r, e.length - (t + 1));\n }\n function lr(e, r, t, n, i, u) {\n if (e > t || e < r) {\n const h = typeof r == \"bigint\" ? \"n\" : \"\";\n let y;\n throw u > 3 ? r === 0 || r === BigInt(0) ? y = `>= 0${h} and < 2${h} ** ${(u + 1) * 8}${h}` : y = `>= -(2${h} ** ${(u + 1) * 8 - 1}${h}) and < 2 ** ${(u + 1) * 8 - 1}${h}` : y = `>= ${r}${h} and <= ${t}${h}`, new D.ERR_OUT_OF_RANGE(\"value\", y, e);\n }\n Lr(n, i, u);\n }\n function L(e, r) {\n if (typeof e != \"number\")\n throw new D.ERR_INVALID_ARG_TYPE(r, \"number\", e);\n }\n function $(e, r, t) {\n throw Math.floor(e) !== e ? (L(e, t), new D.ERR_OUT_OF_RANGE(t || \"offset\", \"an integer\", e)) : r < 0 ? new D.ERR_BUFFER_OUT_OF_BOUNDS() : new D.ERR_OUT_OF_RANGE(\n t || \"offset\",\n `>= ${t ? 1 : 0} and <= ${r}`,\n e\n );\n }\n const Or = /[^+/0-9A-Za-z-_]/g;\n function $r(e) {\n if (e = e.split(\"=\")[0], e = e.trim().replace(Or, \"\"), e.length < 2)\n return \"\";\n for (; e.length % 4 !== 0; )\n e = e + \"=\";\n return e;\n }\n function V(e, r) {\n r = r || 1 / 0;\n let t;\n const n = e.length;\n let i = null;\n const u = [];\n for (let h = 0; h < n; ++h) {\n if (t = e.charCodeAt(h), t > 55295 && t < 57344) {\n if (!i) {\n if (t > 56319) {\n (r -= 3) > -1 && u.push(239, 191, 189);\n continue;\n } else if (h + 1 === n) {\n (r -= 3) > -1 && u.push(239, 191, 189);\n continue;\n }\n i = t;\n continue;\n }\n if (t < 56320) {\n (r -= 3) > -1 && u.push(239, 191, 189), i = t;\n continue;\n }\n t = (i - 55296 << 10 | t - 56320) + 65536;\n } else\n i && (r -= 3) > -1 && u.push(239, 191, 189);\n if (i = null, t < 128) {\n if ((r -= 1) < 0)\n break;\n u.push(t);\n } else if (t < 2048) {\n if ((r -= 2) < 0)\n break;\n u.push(\n t >> 6 | 192,\n t & 63 | 128\n );\n } else if (t < 65536) {\n if ((r -= 3) < 0)\n break;\n u.push(\n t >> 12 | 224,\n t >> 6 & 63 | 128,\n t & 63 | 128\n );\n } else if (t < 1114112) {\n if ((r -= 4) < 0)\n break;\n u.push(\n t >> 18 | 240,\n t >> 12 & 63 | 128,\n t >> 6 & 63 | 128,\n t & 63 | 128\n );\n } else\n throw new Error(\"Invalid code point\");\n }\n return u;\n }\n function Wr(e) {\n const r = [];\n for (let t = 0; t < e.length; ++t)\n r.push(e.charCodeAt(t) & 255);\n return r;\n }\n function Gr(e, r) {\n let t, n, i;\n const u = [];\n for (let h = 0; h < e.length && !((r -= 2) < 0); ++h)\n t = e.charCodeAt(h), n = t >> 8, i = t % 256, u.push(i), u.push(n);\n return u;\n }\n function ar(e) {\n return s.toByteArray($r(e));\n }\n function W(e, r, t, n) {\n let i;\n for (i = 0; i < n && !(i + t >= r.length || i >= e.length); ++i)\n r[i + t] = e[i];\n return i;\n }\n function S(e, r) {\n return e instanceof r || e != null && e.constructor != null && e.constructor.name != null && e.constructor.name === r.name;\n }\n function J(e) {\n return e !== e;\n }\n const Yr = function() {\n const e = \"0123456789abcdef\", r = new Array(256);\n for (let t = 0; t < 16; ++t) {\n const n = t * 16;\n for (let i = 0; i < 16; ++i)\n r[n + i] = e[t] + e[i];\n }\n return r;\n }();\n function k(e) {\n return typeof BigInt > \"u\" ? jr : e;\n }\n function jr() {\n throw new Error(\"BigInt not supported\");\n }\n})(Q);\nconst yr = Q.Buffer, tt = Q.Buffer, Bt = 600, Et = 5e6, mt = 2, et = qr(Br), nt = tt.alloc(32, 1);\nclass gt extends Error {\n constructor(s = \"Cannot extract transaction from non-finalized psbt.\") {\n super(s), this.name = \"BrowserWalletExtractTxFromNonFinalizedPsbtError\";\n }\n}\nclass It extends Error {\n constructor(s) {\n super(s), this.name = \"BrowserWalletNotInstalledError\";\n }\n}\nclass Ft extends Error {\n constructor(s = \"Request canceled by user.\") {\n super(s), this.name = \"BrowserWalletRequestCancelledByUserError\";\n }\n}\nclass At extends Error {\n constructor(s) {\n super(s), this.name = \"BrowserWalletSigningError\";\n }\n}\nclass Y extends Error {\n constructor(s) {\n super(s), this.name = \"OrditSDKError\";\n }\n}\nfunction it(c) {\n return Object.fromEntries(\n Object.entries(c).map(([s, f]) => [f, s])\n );\n}\nconst _ = {\n p2pkh: \"legacy\",\n p2sh: \"p2sh-p2wpkh\",\n p2wsh: \"p2wsh\",\n p2wpkh: \"segwit\",\n p2tr: \"taproot\"\n}, Ut = it(_);\nfunction rr(c) {\n return c === \"mainnet\" ? wr.bitcoin : wr[c];\n}\nfunction mr(c, s, f, w) {\n Hr(Br);\n const a = typeof f == \"string\" ? rr(f) : f;\n return s === \"p2tr\" ? N.p2tr({\n internalPubkey: c,\n network: a,\n ...w\n }) : s === \"p2sh\" ? N.p2sh({\n redeem: N.p2wpkh({ pubkey: c, network: a }),\n network: a\n }) : N[s]({ pubkey: c, network: a });\n}\nfunction Tt(c) {\n return c.subarray(1, 33);\n}\nconst ot = (c) => (c == null ? void 0 : c.constructor) === Object, ut = (c) => c instanceof String || typeof c == \"string\";\nfunction gr(c, { encode: s, depth: f = 0 }) {\n if (f > 5)\n throw new Y(\"Object too deep\");\n for (const a in c) {\n if (!c.hasOwnProperty(a))\n continue;\n const p = c[a];\n ot(p) ? c[a] = gr(p, {\n encode: s,\n depth: f + 1\n }) : ut(p) && (c[a] = s ? encodeURIComponent(p) : decodeURIComponent(p));\n }\n return c;\n}\nfunction Rt(c) {\n return gr(c, { encode: !1 });\n}\nfunction St(c) {\n return c / 10 ** 8;\n}\nfunction Ct(c, s) {\n return `${c}:${s}`;\n}\nfunction _t(c) {\n return c.includes(\":\") ? c.replace(\":\", \"i\") : c.includes(\"i\") ? c : `${c}i0`;\n}\nfunction j(c, s) {\n return (f) => {\n try {\n return c({ output: f, network: rr(s) });\n } catch {\n return !1;\n }\n };\n}\nconst ct = (c, s) => ({\n type: \"p2pkh\",\n payload: j(N.p2pkh, s)(c)\n}), ht = (c, s) => ({\n type: \"p2wpkh\",\n payload: j(N.p2wpkh, s)(c)\n}), st = (c, s) => ({\n type: \"p2sh\",\n payload: j(N.p2sh, s)(c)\n}), ft = (c, s) => ({\n type: \"p2tr\",\n payload: j(N.p2tr, s)(c)\n});\nfunction bt(c, s) {\n const f = ct(c, s);\n if (f.payload)\n return {\n format: _.p2pkh,\n ...f\n };\n const w = ht(c, s);\n if (w.payload)\n return {\n format: _.p2wpkh,\n ...w\n };\n const a = st(c, s);\n if (a.payload)\n return {\n format: _.p2sh,\n ...a\n };\n const p = ft(c, s);\n if (p.payload)\n return {\n format: _.p2tr,\n ...p\n };\n throw new Y(\"Unsupported input\");\n}\nfunction pt(c) {\n try {\n const { type: s, network: f, bech32: w } = dr(c);\n if (!w && f !== \"testnet\" || w && f !== \"regtest\")\n throw new Error(\"Invalid address\");\n return _[s];\n } catch {\n throw new Y(\"Invalid address\");\n }\n}\nfunction kt(c, s) {\n if (s === \"regtest\")\n return pt(c);\n if (!Kr(c, s))\n throw new Y(\"Invalid address\");\n const { type: f } = dr(c);\n return _[f];\n}\nfunction lt(c, s) {\n const f = c.subarray(1, 33), { address: w } = mr(f, \"p2tr\", s);\n return {\n address: w,\n // address will never be undefined\n format: _.p2tr,\n publicKey: c.toString(\"hex\"),\n xKey: f.toString(\"hex\")\n };\n}\nfunction xr(c, s, f) {\n if (f === \"p2tr\")\n return lt(c, s);\n const { address: w } = mr(c, f, s);\n return {\n address: w,\n // address will never be undefined\n format: _[f],\n publicKey: c.toString(\"hex\")\n };\n}\nfunction Nt(c, s = \"mainnet\", f = \"all\") {\n const w = yr.isBuffer(c) ? c : yr.from(c, \"hex\"), { publicKey: a } = et.fromPublicKey(\n w,\n nt,\n rr(s)\n );\n return f === \"all\" ? Object.keys(_).filter((l) => l !== \"p2wsh\").map(\n (l) => xr(a, s, l)\n ) : [xr(a, s, f)];\n}\nexport {\n _ as A,\n et as B,\n nt as C,\n mt as I,\n Et as M,\n Y as O,\n Rt as U,\n bt as a,\n tt as b,\n mr as c,\n yr as d,\n Ct as e,\n Bt as f,\n rr as g,\n St as h,\n kt as i,\n Nt as j,\n Ut as k,\n gt as l,\n It as m,\n Ft as n,\n _t as o,\n At as p,\n Tt as t\n};\n","import { O as w, m as c, i as g, n as d, l as f, p as u, d as h } from \"./index-7cd24a6f.js\";\nimport { Psbt as m } from \"bitcoinjs-lib\";\nimport \"bitcoin-address-validation\";\nimport \"@bitcoinerlab/secp256k1\";\nimport \"bip32\";\nimport \"ecpair\";\nconst b = {\n mainnet: \"livenet\",\n testnet: \"testnet\"\n};\nfunction l() {\n if (typeof window > \"u\")\n throw new w(\"Cannot call this function outside a browser\");\n return typeof window.unisat < \"u\";\n}\nasync function F(o = \"mainnet\", i) {\n if (!l())\n throw new c(\"Unisat not installed\");\n try {\n const t = await window.unisat.getNetwork(), e = b[o];\n t !== e && await window.unisat.switchNetwork(e);\n const n = i ? await window.unisat.getAccounts() : await window.unisat.requestAccounts(), r = await window.unisat.getPublicKey(), s = n[0];\n if (!s)\n return [];\n const a = g(s, o);\n return [\n {\n publicKey: r,\n address: s,\n format: a\n }\n ];\n } catch (t) {\n if (t instanceof w)\n throw t;\n const e = t;\n throw (e == null ? void 0 : e.code) === 4001 ? new d() : new w(e.message);\n }\n}\nasync function U(o, { finalize: i = !0, extractTx: t = !0 } = {}) {\n if (!l())\n throw new c(\"Unisat not installed\");\n if (t && !i)\n throw new f();\n const e = o.toHex();\n let n = \"\";\n try {\n n = await window.unisat.signPsbt(e, {\n autoFinalized: i\n });\n } catch (s) {\n const a = s;\n if ((a == null ? void 0 : a.code) === 4001)\n throw new d();\n }\n if (!n)\n throw new u(\"Failed to sign psbt hex using Unisat\");\n const r = m.fromHex(n);\n if (t)\n try {\n return {\n base64: null,\n hex: r.extractTransaction().toHex()\n };\n } catch (s) {\n throw s instanceof Error && s.message === \"Not finalized\" ? new f() : new w(\"Failed to extract transaction from PSBT\");\n }\n else\n return {\n base64: r.toBase64(),\n hex: r.toHex()\n };\n}\nasync function E(o, i = \"ecdsa\") {\n if (!l())\n throw new c(\"Unisat not installed\");\n let t = \"\";\n try {\n t = await window.unisat.signMessage(o, i);\n } catch (e) {\n const n = e;\n if ((n == null ? void 0 : n.code) === 4001)\n throw new d();\n }\n if (!t)\n throw new u(\"Failed to sign message using Unisat\");\n return {\n base64: t,\n hex: h.from(t, \"base64\").toString(\"hex\")\n };\n}\nexport {\n F as getAddresses,\n l as isInstalled,\n E as signMessage,\n U as signPsbt\n};\n","import { O as d, m as f, l as y, p as h, n as u, i as O, d as x } from \"./index-7cd24a6f.js\";\nimport * as P from \"@bitcoinerlab/secp256k1\";\nimport { initEccLib as T, Psbt as C } from \"bitcoinjs-lib\";\nimport { BitcoinNetworkType as B, getAddress as I, signTransaction as K, signMessage as N } from \"sats-connect\";\nimport \"bitcoin-address-validation\";\nimport \"bip32\";\nimport \"ecpair\";\nconst p = {\n mainnet: B.Mainnet,\n testnet: B.Testnet\n};\nfunction X(n) {\n return `02${n}`;\n}\nT(P);\nfunction g() {\n if (typeof window > \"u\")\n throw new d(\"Cannot call this function outside a browser\");\n return typeof window.BitcoinProvider < \"u\";\n}\nasync function A(n = \"mainnet\") {\n if (!g())\n throw new f(\"Xverse not installed\");\n const s = [], i = (e) => {\n if (!e || !e.addresses || e.addresses.length !== 2)\n throw new h(\n \"Failed to retrieve addresses using Xverse\"\n );\n e.addresses.forEach((t) => {\n const l = O(t.address, n);\n let o = t.publicKey;\n l === \"taproot\" && (o = X(t.publicKey)), s.push({\n publicKey: o,\n address: t.address,\n format: l\n });\n });\n }, a = () => {\n throw new u();\n }, r = {\n payload: {\n purposes: [\"ordinals\", \"payment\"],\n message: \"Provide access to Payment address and Ordinals address\",\n network: {\n type: p[n]\n }\n },\n onFinish: (e) => i(e),\n onCancel: a\n };\n return await I(r), s;\n}\nasync function R(n, {\n finalize: s = !0,\n extractTx: i = !0,\n network: a,\n inputsToSign: r\n} = { network: \"mainnet\", inputsToSign: [] }) {\n if (!g())\n throw new f(\"Xverse not installed\");\n if (!s && i)\n throw new y();\n if (!n || !a || !r.length)\n throw new d(\"Invalid options provided\");\n let e, t = null;\n const l = (v) => {\n const { psbtBase64: m } = v;\n if (!m)\n throw new h(\"Failed to sign psbt using Xverse\");\n const c = C.fromBase64(m);\n if (s && r.forEach((w) => {\n w.signingIndexes.forEach((F) => {\n try {\n c.finalizeInput(F);\n } catch (E) {\n throw console.error(\"Sign psbt error\", E), new d(\"Failed to finalize input\");\n }\n });\n }), i) {\n try {\n e = c.extractTransaction().toHex();\n } catch (w) {\n throw w instanceof Error && w.message === \"Not finalized\" ? new y() : new d(\"Failed to extract transaction from PSBT\");\n }\n t = null;\n } else\n e = c.toHex(), t = c.toBase64();\n }, o = () => {\n throw new u();\n }, b = {\n payload: {\n network: {\n type: p[a]\n },\n message: \"Sign PSBT\",\n psbtBase64: n.toBase64(),\n broadcast: !1,\n inputsToSign: r\n },\n onFinish: l,\n onCancel: o\n };\n return await K(b), { hex: e, base64: t };\n}\nasync function H(n, s, i = \"mainnet\") {\n if (!g())\n throw new f(\"Xverse not installed\");\n if (!n || !i || !s)\n throw new d(\"Invalid options provided\");\n let a, r = null;\n const e = (o) => {\n if (!o)\n throw new h(\n \"Failed to sign message using Xverse\"\n );\n a = x.from(o, \"base64\").toString(\"hex\"), r = o;\n }, t = () => {\n throw new u();\n }, l = {\n payload: {\n network: {\n type: p[i]\n },\n message: n,\n address: s\n },\n onFinish: e,\n onCancel: t\n };\n return await N(l), { hex: a, base64: r };\n}\nexport {\n A as getAddresses,\n g as isInstalled,\n H as signMessage,\n R as signPsbt\n};\n","import EventEmitter from 'eventemitter3';\nimport { WalletNotConnectedError } from './errors.js';\nexport { EventEmitter };\n/**\n * A wallet's readiness describes a series of states that the wallet can be in,\n * depending on what kind of wallet it is. An installable wallet (eg. a browser\n * extension like Phantom) might be `Installed` if we've found the Phantom API\n * in the global scope, or `NotDetected` otherwise. A loadable, zero-install\n * runtime (eg. Torus Wallet) might simply signal that it's `Loadable`. Use this\n * metadata to personalize the wallet list for each user (eg. to show their\n * installed wallets first).\n */\nexport var WalletReadyState;\n(function (WalletReadyState) {\n /**\n * User-installable wallets can typically be detected by scanning for an API\n * that they've injected into the global context. If such an API is present,\n * we consider the wallet to have been installed.\n */\n WalletReadyState[\"Installed\"] = \"Installed\";\n WalletReadyState[\"NotDetected\"] = \"NotDetected\";\n /**\n * Loadable wallets are always available to you. Since you can load them at\n * any time, it's meaningless to say that they have been detected.\n */\n WalletReadyState[\"Loadable\"] = \"Loadable\";\n /**\n * If a wallet is not supported on a given platform (eg. server-rendering, or\n * mobile) then it will stay in the `Unsupported` state.\n */\n WalletReadyState[\"Unsupported\"] = \"Unsupported\";\n})(WalletReadyState || (WalletReadyState = {}));\nexport class BaseWalletAdapter extends EventEmitter {\n get connected() {\n return !!this.publicKey;\n }\n async autoConnect() {\n await this.connect();\n }\n async prepareTransaction(transaction, connection, options = {}) {\n const publicKey = this.publicKey;\n if (!publicKey)\n throw new WalletNotConnectedError();\n transaction.feePayer = transaction.feePayer || publicKey;\n transaction.recentBlockhash =\n transaction.recentBlockhash ||\n (await connection.getLatestBlockhash({\n commitment: options.preflightCommitment,\n minContextSlot: options.minContextSlot,\n })).blockhash;\n return transaction;\n }\n}\nexport function scopePollingDetectionStrategy(detect) {\n // Early return when server-side rendering\n if (typeof window === 'undefined' || typeof document === 'undefined')\n return;\n const disposers = [];\n function detectAndDispose() {\n const detected = detect();\n if (detected) {\n for (const dispose of disposers) {\n dispose();\n }\n }\n }\n // Strategy #1: Try detecting every second.\n const interval = \n // TODO: #334 Replace with idle callback strategy.\n setInterval(detectAndDispose, 1000);\n disposers.push(() => clearInterval(interval));\n // Strategy #2: Detect as soon as the DOM becomes 'ready'/'interactive'.\n if (\n // Implies that `DOMContentLoaded` has not yet fired.\n document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', detectAndDispose, { once: true });\n disposers.push(() => document.removeEventListener('DOMContentLoaded', detectAndDispose));\n }\n // Strategy #3: Detect after the `window` has fully loaded.\n if (\n // If the `complete` state has been reached, we're too late.\n document.readyState !== 'complete') {\n window.addEventListener('load', detectAndDispose, { once: true });\n disposers.push(() => window.removeEventListener('load', detectAndDispose));\n }\n // Strategy #4: Detect synchronously, now.\n detectAndDispose();\n}\n/**\n * Users on iOS can be redirected into a wallet's in-app browser automatically,\n * if that wallet has a universal link configured to do so\n * But should not be redirected from within a webview, eg. if they're already\n * inside a wallet's browser\n * This function can be used to identify users who are on iOS and can be redirected\n *\n * @returns true if the user can be redirected\n */\nexport function isIosAndRedirectable() {\n // SSR: return false\n if (!navigator)\n return false;\n const userAgent = navigator.userAgent.toLowerCase();\n // if on iOS the user agent will contain either iPhone or iPad\n // caveat: if requesting desktop site then this won't work\n const isIos = userAgent.includes('iphone') || userAgent.includes('ipad');\n // if in a webview then it will not include Safari\n // note that other iOS browsers also include Safari\n // so we will redirect only if Safari is also included\n const isSafari = userAgent.includes('safari');\n return isIos && isSafari;\n}\n//# sourceMappingURL=adapter.js.map","export class WalletError extends Error {\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n constructor(message, error) {\n super(message);\n this.error = error;\n }\n}\nexport class WalletNotReadyError extends WalletError {\n constructor() {\n super(...arguments);\n this.name = 'WalletNotReadyError';\n }\n}\nexport class WalletLoadError extends WalletError {\n constructor() {\n super(...arguments);\n this.name = 'WalletLoadError';\n }\n}\nexport class WalletConfigError extends WalletError {\n constructor() {\n super(...arguments);\n this.name = 'WalletConfigError';\n }\n}\nexport class WalletConnectionError extends WalletError {\n constructor() {\n super(...arguments);\n this.name = 'WalletConnectionError';\n }\n}\nexport class WalletDisconnectedError extends WalletError {\n constructor() {\n super(...arguments);\n this.name = 'WalletDisconnectedError';\n }\n}\nexport class WalletDisconnectionError extends WalletError {\n constructor() {\n super(...arguments);\n this.name = 'WalletDisconnectionError';\n }\n}\nexport class WalletAccountError extends WalletError {\n constructor() {\n super(...arguments);\n this.name = 'WalletAccountError';\n }\n}\nexport class WalletPublicKeyError extends WalletError {\n constructor() {\n super(...arguments);\n this.name = 'WalletPublicKeyError';\n }\n}\nexport class WalletKeypairError extends WalletError {\n constructor() {\n super(...arguments);\n this.name = 'WalletKeypairError';\n }\n}\nexport class WalletNotConnectedError extends WalletError {\n constructor() {\n super(...arguments);\n this.name = 'WalletNotConnectedError';\n }\n}\nexport class WalletSendTransactionError extends WalletError {\n constructor() {\n super(...arguments);\n this.name = 'WalletSendTransactionError';\n }\n}\nexport class WalletSignMessageError extends WalletError {\n constructor() {\n super(...arguments);\n this.name = 'WalletSignMessageError';\n }\n}\nexport class WalletSignTransactionError extends WalletError {\n constructor() {\n super(...arguments);\n this.name = 'WalletSignTransactionError';\n }\n}\nexport class WalletTimeoutError extends WalletError {\n constructor() {\n super(...arguments);\n this.name = 'WalletTimeoutError';\n }\n}\nexport class WalletWindowBlockedError extends WalletError {\n constructor() {\n super(...arguments);\n this.name = 'WalletWindowBlockedError';\n }\n}\nexport class WalletWindowClosedError extends WalletError {\n constructor() {\n super(...arguments);\n this.name = 'WalletWindowClosedError';\n }\n}\n//# sourceMappingURL=errors.js.map","import { BaseWalletAdapter, } from './adapter.js';\nimport { WalletSendTransactionError, WalletSignTransactionError } from './errors.js';\nimport { isVersionedTransaction } from './transaction.js';\nexport class BaseSignerWalletAdapter extends BaseWalletAdapter {\n async sendTransaction(transaction, connection, options = {}) {\n let emit = true;\n try {\n if (isVersionedTransaction(transaction)) {\n if (!this.supportedTransactionVersions)\n throw new WalletSendTransactionError(`Sending versioned transactions isn't supported by this wallet`);\n if (!this.supportedTransactionVersions.has(transaction.version))\n throw new WalletSendTransactionError(`Sending transaction version ${transaction.version} isn't supported by this wallet`);\n try {\n transaction = await this.signTransaction(transaction);\n const rawTransaction = transaction.serialize();\n return await connection.sendRawTransaction(rawTransaction, options);\n }\n catch (error) {\n // If the error was thrown by `signTransaction`, rethrow it and don't emit a duplicate event\n if (error instanceof WalletSignTransactionError) {\n emit = false;\n throw error;\n }\n throw new WalletSendTransactionError(error?.message, error);\n }\n }\n else {\n try {\n const { signers, ...sendOptions } = options;\n transaction = await this.prepareTransaction(transaction, connection, sendOptions);\n signers?.length && transaction.partialSign(...signers);\n transaction = await this.signTransaction(transaction);\n const rawTransaction = transaction.serialize();\n return await connection.sendRawTransaction(rawTransaction, sendOptions);\n }\n catch (error) {\n // If the error was thrown by `signTransaction`, rethrow it and don't emit a duplicate event\n if (error instanceof WalletSignTransactionError) {\n emit = false;\n throw error;\n }\n throw new WalletSendTransactionError(error?.message, error);\n }\n }\n }\n catch (error) {\n if (emit) {\n this.emit('error', error);\n }\n throw error;\n }\n }\n async signAllTransactions(transactions) {\n for (const transaction of transactions) {\n if (isVersionedTransaction(transaction)) {\n if (!this.supportedTransactionVersions)\n throw new WalletSignTransactionError(`Signing versioned transactions isn't supported by this wallet`);\n if (!this.supportedTransactionVersions.has(transaction.version))\n throw new WalletSignTransactionError(`Signing transaction version ${transaction.version} isn't supported by this wallet`);\n }\n }\n const signedTransactions = [];\n for (const transaction of transactions) {\n signedTransactions.push(await this.signTransaction(transaction));\n }\n return signedTransactions;\n }\n}\nexport class BaseMessageSignerWalletAdapter extends BaseSignerWalletAdapter {\n}\n//# sourceMappingURL=signer.js.map","export function isVersionedTransaction(transaction) {\n return 'version' in transaction;\n}\n//# sourceMappingURL=transaction.js.map","export var WalletAdapterNetwork;\n(function (WalletAdapterNetwork) {\n WalletAdapterNetwork[\"Mainnet\"] = \"mainnet-beta\";\n WalletAdapterNetwork[\"Testnet\"] = \"testnet\";\n WalletAdapterNetwork[\"Devnet\"] = \"devnet\";\n})(WalletAdapterNetwork || (WalletAdapterNetwork = {}));\n//# sourceMappingURL=types.js.map","import { BaseMessageSignerWalletAdapter, isIosAndRedirectable, isVersionedTransaction, scopePollingDetectionStrategy, WalletAccountError, WalletConnectionError, WalletDisconnectedError, WalletDisconnectionError, WalletError, WalletNotConnectedError, WalletNotReadyError, WalletPublicKeyError, WalletReadyState, WalletSendTransactionError, WalletSignMessageError, WalletSignTransactionError, } from '@solana/wallet-adapter-base';\nimport { PublicKey } from '@solana/web3.js';\nexport const PhantomWalletName = 'Phantom';\nexport class PhantomWalletAdapter extends BaseMessageSignerWalletAdapter {\n constructor(config = {}) {\n super();\n this.name = PhantomWalletName;\n this.url = 'https://phantom.app';\n this.icon = 'data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiBoZWlnaHQ9IjM0IiB3aWR0aD0iMzQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGxpbmVhckdyYWRpZW50IGlkPSJhIiB4MT0iLjUiIHgyPSIuNSIgeTE9IjAiIHkyPSIxIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiM1MzRiYjEiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM1NTFiZjkiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iYiIgeDE9Ii41IiB4Mj0iLjUiIHkxPSIwIiB5Mj0iMSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjZmZmIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjZmZmIiBzdG9wLW9wYWNpdHk9Ii44MiIvPjwvbGluZWFyR3JhZGllbnQ+PGNpcmNsZSBjeD0iMTciIGN5PSIxNyIgZmlsbD0idXJsKCNhKSIgcj0iMTciLz48cGF0aCBkPSJtMjkuMTcwMiAxNy4yMDcxaC0yLjk5NjljMC02LjEwNzQtNC45NjgzLTExLjA1ODE3LTExLjA5NzUtMTEuMDU4MTctNi4wNTMyNSAwLTEwLjk3NDYzIDQuODI5NTctMTEuMDk1MDggMTAuODMyMzctLjEyNDYxIDYuMjA1IDUuNzE3NTIgMTEuNTkzMiAxMS45NDUzOCAxMS41OTMyaC43ODM0YzUuNDkwNiAwIDEyLjg0OTctNC4yODI5IDEzLjk5OTUtOS41MDEzLjIxMjMtLjk2MTktLjU1MDItMS44NjYxLTEuNTM4OC0xLjg2NjF6bS0xOC41NDc5LjI3MjFjMCAuODE2Ny0uNjcwMzggMS40ODQ3LTEuNDkwMDEgMS40ODQ3LS44MTk2NCAwLTEuNDg5OTgtLjY2ODMtMS40ODk5OC0xLjQ4NDd2LTIuNDAxOWMwLS44MTY3LjY3MDM0LTEuNDg0NyAxLjQ4OTk4LTEuNDg0Ny44MTk2MyAwIDEuNDkwMDEuNjY4IDEuNDkwMDEgMS40ODQ3em01LjE3MzggMGMwIC44MTY3LS42NzAzIDEuNDg0Ny0xLjQ4OTkgMS40ODQ3LS44MTk3IDAtMS40OS0uNjY4My0xLjQ5LTEuNDg0N3YtMi40MDE5YzAtLjgxNjcuNjcwNi0xLjQ4NDcgMS40OS0xLjQ4NDcuODE5NiAwIDEuNDg5OS42NjggMS40ODk5IDEuNDg0N3oiIGZpbGw9InVybCgjYikiLz48L3N2Zz4K';\n this.supportedTransactionVersions = new Set(['legacy', 0]);\n this._readyState = typeof window === 'undefined' || typeof document === 'undefined'\n ? WalletReadyState.Unsupported\n : WalletReadyState.NotDetected;\n this._disconnected = () => {\n const wallet = this._wallet;\n if (wallet) {\n wallet.off('disconnect', this._disconnected);\n wallet.off('accountChanged', this._accountChanged);\n this._wallet = null;\n this._publicKey = null;\n this.emit('error', new WalletDisconnectedError());\n this.emit('disconnect');\n }\n };\n this._accountChanged = (newPublicKey) => {\n const publicKey = this._publicKey;\n if (!publicKey)\n return;\n try {\n newPublicKey = new PublicKey(newPublicKey.toBytes());\n }\n catch (error) {\n this.emit('error', new WalletPublicKeyError(error?.message, error));\n return;\n }\n if (publicKey.equals(newPublicKey))\n return;\n this._publicKey = newPublicKey;\n this.emit('connect', newPublicKey);\n };\n this._connecting = false;\n this._wallet = null;\n this._publicKey = null;\n if (this._readyState !== WalletReadyState.Unsupported) {\n if (isIosAndRedirectable()) {\n // when in iOS (not webview), set Phantom as loadable instead of checking for install\n this._readyState = WalletReadyState.Loadable;\n this.emit('readyStateChange', this._readyState);\n }\n else {\n scopePollingDetectionStrategy(() => {\n if (window.phantom?.solana?.isPhantom || window.solana?.isPhantom) {\n this._readyState = WalletReadyState.Installed;\n this.emit('readyStateChange', this._readyState);\n return true;\n }\n return false;\n });\n }\n }\n }\n get publicKey() {\n return this._publicKey;\n }\n get connecting() {\n return this._connecting;\n }\n get readyState() {\n return this._readyState;\n }\n async autoConnect() {\n // Skip autoconnect in the Loadable state\n // We can't redirect to a universal link without user input\n if (this.readyState === WalletReadyState.Installed) {\n await this.connect();\n }\n }\n async connect() {\n try {\n if (this.connected || this.connecting)\n return;\n if (this.readyState === WalletReadyState.Loadable) {\n // redirect to the Phantom /browse universal link\n // this will open the current URL in the Phantom in-wallet browser\n const url = encodeURIComponent(window.location.href);\n const ref = encodeURIComponent(window.location.origin);\n window.location.href = `https://phantom.app/ul/browse/${url}?ref=${ref}`;\n return;\n }\n if (this.readyState !== WalletReadyState.Installed)\n throw new WalletNotReadyError();\n this._connecting = true;\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const wallet = window.phantom?.solana || window.solana;\n if (!wallet.isConnected) {\n try {\n await wallet.connect();\n }\n catch (error) {\n throw new WalletConnectionError(error?.message, error);\n }\n }\n if (!wallet.publicKey)\n throw new WalletAccountError();\n let publicKey;\n try {\n publicKey = new PublicKey(wallet.publicKey.toBytes());\n }\n catch (error) {\n throw new WalletPublicKeyError(error?.message, error);\n }\n wallet.on('disconnect', this._disconnected);\n wallet.on('accountChanged', this._accountChanged);\n this._wallet = wallet;\n this._publicKey = publicKey;\n this.emit('connect', publicKey);\n }\n catch (error) {\n this.emit('error', error);\n throw error;\n }\n finally {\n this._connecting = false;\n }\n }\n async disconnect() {\n const wallet = this._wallet;\n if (wallet) {\n wallet.off('disconnect', this._disconnected);\n wallet.off('accountChanged', this._accountChanged);\n this._wallet = null;\n this._publicKey = null;\n try {\n await wallet.disconnect();\n }\n catch (error) {\n this.emit('error', new WalletDisconnectionError(error?.message, error));\n }\n }\n this.emit('disconnect');\n }\n async sendTransaction(transaction, connection, options = {}) {\n try {\n const wallet = this._wallet;\n if (!wallet)\n throw new WalletNotConnectedError();\n try {\n const { signers, ...sendOptions } = options;\n if (isVersionedTransaction(transaction)) {\n signers?.length && transaction.sign(signers);\n }\n else {\n transaction = (await this.prepareTransaction(transaction, connection, sendOptions));\n signers?.length && transaction.partialSign(...signers);\n }\n sendOptions.preflightCommitment = sendOptions.preflightCommitment || connection.commitment;\n const { signature } = await wallet.signAndSendTransaction(transaction, sendOptions);\n return signature;\n }\n catch (error) {\n if (error instanceof WalletError)\n throw error;\n throw new WalletSendTransactionError(error?.message, error);\n }\n }\n catch (error) {\n this.emit('error', error);\n throw error;\n }\n }\n async signTransaction(transaction) {\n try {\n const wallet = this._wallet;\n if (!wallet)\n throw new WalletNotConnectedError();\n try {\n return (await wallet.signTransaction(transaction)) || transaction;\n }\n catch (error) {\n throw new WalletSignTransactionError(error?.message, error);\n }\n }\n catch (error) {\n this.emit('error', error);\n throw error;\n }\n }\n async signAllTransactions(transactions) {\n try {\n const wallet = this._wallet;\n if (!wallet)\n throw new WalletNotConnectedError();\n try {\n return (await wallet.signAllTransactions(transactions)) || transactions;\n }\n catch (error) {\n throw new WalletSignTransactionError(error?.message, error);\n }\n }\n catch (error) {\n this.emit('error', error);\n throw error;\n }\n }\n async signMessage(message) {\n try {\n const wallet = this._wallet;\n if (!wallet)\n throw new WalletNotConnectedError();\n try {\n const { signature } = await wallet.signMessage(message);\n return signature;\n }\n catch (error) {\n throw new WalletSignMessageError(error?.message, error);\n }\n }\n catch (error) {\n this.emit('error', error);\n throw error;\n }\n }\n}\n//# sourceMappingURL=adapter.js.map","import { createContext, useContext } from 'react';\nconst DEFAULT_CONTEXT = {\n setVisible(_open) {\n console.error(constructMissingProviderErrorMessage('call', 'setVisible'));\n },\n visible: false,\n};\nObject.defineProperty(DEFAULT_CONTEXT, 'visible', {\n get() {\n console.error(constructMissingProviderErrorMessage('read', 'visible'));\n return false;\n },\n});\nfunction constructMissingProviderErrorMessage(action, valueName) {\n return ('You have tried to ' +\n ` ${action} \"${valueName}\"` +\n ' on a WalletModalContext without providing one.' +\n ' Make sure to render a WalletModalProvider' +\n ' as an ancestor of the component that uses ' +\n 'WalletModalContext');\n}\nexport const WalletModalContext = createContext(DEFAULT_CONTEXT);\nexport function useWalletModal() {\n return useContext(WalletModalContext);\n}\n//# sourceMappingURL=useWalletModal.js.map","import React, { useLayoutEffect, useRef } from 'react';\nexport const Collapse = ({ id, children, expanded = false }) => {\n const ref = useRef(null);\n const instant = useRef(true);\n const transition = 'height 250ms ease-out';\n const openCollapse = () => {\n const node = ref.current;\n if (!node)\n return;\n requestAnimationFrame(() => {\n node.style.height = node.scrollHeight + 'px';\n });\n };\n const closeCollapse = () => {\n const node = ref.current;\n if (!node)\n return;\n requestAnimationFrame(() => {\n node.style.height = node.offsetHeight + 'px';\n node.style.overflow = 'hidden';\n requestAnimationFrame(() => {\n node.style.height = '0';\n });\n });\n };\n useLayoutEffect(() => {\n if (expanded) {\n openCollapse();\n }\n else {\n closeCollapse();\n }\n }, [expanded]);\n useLayoutEffect(() => {\n const node = ref.current;\n if (!node)\n return;\n function handleComplete() {\n if (!node)\n return;\n node.style.overflow = expanded ? 'initial' : 'hidden';\n if (expanded) {\n node.style.height = 'auto';\n }\n }\n function handleTransitionEnd(event) {\n if (node && event.target === node && event.propertyName === 'height') {\n handleComplete();\n }\n }\n if (instant.current) {\n handleComplete();\n instant.current = false;\n }\n node.addEventListener('transitionend', handleTransitionEnd);\n return () => node.removeEventListener('transitionend', handleTransitionEnd);\n }, [expanded]);\n return (React.createElement(\"div\", { className: \"wallet-adapter-collapse\", id: id, ref: ref, role: \"region\", style: { height: 0, transition: instant.current ? undefined : transition } }, children));\n};\n//# sourceMappingURL=Collapse.js.map","import React from 'react';\nexport const Button = (props) => {\n return (React.createElement(\"button\", { className: `wallet-adapter-button ${props.className || ''}`, disabled: props.disabled, style: props.style, onClick: props.onClick, tabIndex: props.tabIndex || 0, type: \"button\" },\n props.startIcon && React.createElement(\"i\", { className: \"wallet-adapter-button-start-icon\" }, props.startIcon),\n props.children,\n props.endIcon && React.createElement(\"i\", { className: \"wallet-adapter-button-end-icon\" }, props.endIcon)));\n};\n//# sourceMappingURL=Button.js.map","import React from 'react';\nexport const WalletIcon = ({ wallet, ...props }) => {\n return wallet && React.createElement(\"img\", { src: wallet.adapter.icon, alt: `${wallet.adapter.name} icon`, ...props });\n};\n//# sourceMappingURL=WalletIcon.js.map","import { WalletReadyState } from '@solana/wallet-adapter-base';\nimport React from 'react';\nimport { Button } from './Button.js';\nimport { WalletIcon } from './WalletIcon.js';\nexport const WalletListItem = ({ handleClick, tabIndex, wallet }) => {\n return (React.createElement(\"li\", null,\n React.createElement(Button, { onClick: handleClick, startIcon: React.createElement(WalletIcon, { wallet: wallet }), tabIndex: tabIndex },\n wallet.adapter.name,\n wallet.readyState === WalletReadyState.Installed && React.createElement(\"span\", null, \"Detected\"))));\n};\n//# sourceMappingURL=WalletListItem.js.map","import React from 'react';\nexport const WalletSVG = () => {\n return (React.createElement(\"svg\", { width: \"97\", height: \"96\", viewBox: \"0 0 97 96\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n React.createElement(\"circle\", { cx: \"48.5\", cy: \"48\", r: \"48\", fill: \"url(#paint0_linear_880_5115)\", fillOpacity: \"0.1\" }),\n React.createElement(\"circle\", { cx: \"48.5\", cy: \"48\", r: \"47\", stroke: \"url(#paint1_linear_880_5115)\", strokeOpacity: \"0.4\", strokeWidth: \"2\" }),\n React.createElement(\"g\", { clipPath: \"url(#clip0_880_5115)\" },\n React.createElement(\"path\", { d: \"M65.5769 28.1523H31.4231C27.6057 28.1523 24.5 31.258 24.5 35.0754V60.9215C24.5 64.7389 27.6057 67.8446 31.4231 67.8446H65.5769C69.3943 67.8446 72.5 64.7389 72.5 60.9215V35.0754C72.5 31.258 69.3943 28.1523 65.5769 28.1523ZM69.7308 52.1523H59.5769C57.2865 52.1523 55.4231 50.289 55.4231 47.9985C55.4231 45.708 57.2864 43.8446 59.5769 43.8446H69.7308V52.1523ZM69.7308 41.0754H59.5769C55.7595 41.0754 52.6539 44.1811 52.6539 47.9985C52.6539 51.8159 55.7595 54.9215 59.5769 54.9215H69.7308V60.9215C69.7308 63.2119 67.8674 65.0754 65.5769 65.0754H31.4231C29.1327 65.0754 27.2692 63.212 27.2692 60.9215V35.0754C27.2692 32.785 29.1326 30.9215 31.4231 30.9215H65.5769C67.8673 30.9215 69.7308 32.7849 69.7308 35.0754V41.0754Z\", fill: \"url(#paint2_linear_880_5115)\" }),\n React.createElement(\"path\", { d: \"M61.4231 46.6172H59.577C58.8123 46.6172 58.1924 47.2371 58.1924 48.0018C58.1924 48.7665 58.8123 49.3863 59.577 49.3863H61.4231C62.1878 49.3863 62.8077 48.7664 62.8077 48.0018C62.8077 47.2371 62.1878 46.6172 61.4231 46.6172Z\", fill: \"url(#paint3_linear_880_5115)\" })),\n React.createElement(\"defs\", null,\n React.createElement(\"linearGradient\", { id: \"paint0_linear_880_5115\", x1: \"3.41664\", y1: \"98.0933\", x2: \"103.05\", y2: \"8.42498\", gradientUnits: \"userSpaceOnUse\" },\n React.createElement(\"stop\", { stopColor: \"#9945FF\" }),\n React.createElement(\"stop\", { offset: \"0.14\", stopColor: \"#8A53F4\" }),\n React.createElement(\"stop\", { offset: \"0.42\", stopColor: \"#6377D6\" }),\n React.createElement(\"stop\", { offset: \"0.79\", stopColor: \"#24B0A7\" }),\n React.createElement(\"stop\", { offset: \"0.99\", stopColor: \"#00D18C\" }),\n React.createElement(\"stop\", { offset: \"1\", stopColor: \"#00D18C\" })),\n React.createElement(\"linearGradient\", { id: \"paint1_linear_880_5115\", x1: \"3.41664\", y1: \"98.0933\", x2: \"103.05\", y2: \"8.42498\", gradientUnits: \"userSpaceOnUse\" },\n React.createElement(\"stop\", { stopColor: \"#9945FF\" }),\n React.createElement(\"stop\", { offset: \"0.14\", stopColor: \"#8A53F4\" }),\n React.createElement(\"stop\", { offset: \"0.42\", stopColor: \"#6377D6\" }),\n React.createElement(\"stop\", { offset: \"0.79\", stopColor: \"#24B0A7\" }),\n React.createElement(\"stop\", { offset: \"0.99\", stopColor: \"#00D18C\" }),\n React.createElement(\"stop\", { offset: \"1\", stopColor: \"#00D18C\" })),\n React.createElement(\"linearGradient\", { id: \"paint2_linear_880_5115\", x1: \"25.9583\", y1: \"68.7101\", x2: \"67.2337\", y2: \"23.7879\", gradientUnits: \"userSpaceOnUse\" },\n React.createElement(\"stop\", { stopColor: \"#9945FF\" }),\n React.createElement(\"stop\", { offset: \"0.14\", stopColor: \"#8A53F4\" }),\n React.createElement(\"stop\", { offset: \"0.42\", stopColor: \"#6377D6\" }),\n React.createElement(\"stop\", { offset: \"0.79\", stopColor: \"#24B0A7\" }),\n React.createElement(\"stop\", { offset: \"0.99\", stopColor: \"#00D18C\" }),\n React.createElement(\"stop\", { offset: \"1\", stopColor: \"#00D18C\" })),\n React.createElement(\"linearGradient\", { id: \"paint3_linear_880_5115\", x1: \"58.3326\", y1: \"49.4467\", x2: \"61.0002\", y2: \"45.4453\", gradientUnits: \"userSpaceOnUse\" },\n React.createElement(\"stop\", { stopColor: \"#9945FF\" }),\n React.createElement(\"stop\", { offset: \"0.14\", stopColor: \"#8A53F4\" }),\n React.createElement(\"stop\", { offset: \"0.42\", stopColor: \"#6377D6\" }),\n React.createElement(\"stop\", { offset: \"0.79\", stopColor: \"#24B0A7\" }),\n React.createElement(\"stop\", { offset: \"0.99\", stopColor: \"#00D18C\" }),\n React.createElement(\"stop\", { offset: \"1\", stopColor: \"#00D18C\" })),\n React.createElement(\"clipPath\", { id: \"clip0_880_5115\" },\n React.createElement(\"rect\", { width: \"48\", height: \"48\", fill: \"white\", transform: \"translate(24.5 24)\" })))));\n};\n//# sourceMappingURL=WalletSVG.js.map","import { WalletReadyState } from '@solana/wallet-adapter-base';\nimport { useWallet } from '@solana/wallet-adapter-react';\nimport React, { useCallback, useLayoutEffect, useMemo, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport { Collapse } from './Collapse.js';\nimport { useWalletModal } from './useWalletModal.js';\nimport { WalletListItem } from './WalletListItem.js';\nimport { WalletSVG } from './WalletSVG.js';\nexport const WalletModal = ({ className = '', container = 'body' }) => {\n const ref = useRef(null);\n const { wallets, select } = useWallet();\n const { setVisible } = useWalletModal();\n const [expanded, setExpanded] = useState(false);\n const [fadeIn, setFadeIn] = useState(false);\n const [portal, setPortal] = useState(null);\n const [listedWallets, collapsedWallets] = useMemo(() => {\n const installed = [];\n const loadable = [];\n const notDetected = [];\n for (const wallet of wallets) {\n if (wallet.readyState === WalletReadyState.NotDetected) {\n notDetected.push(wallet);\n }\n else if (wallet.readyState === WalletReadyState.Loadable) {\n loadable.push(wallet);\n }\n else if (wallet.readyState === WalletReadyState.Installed) {\n installed.push(wallet);\n }\n }\n let listed = [];\n let collapsed = [];\n if (installed.length) {\n listed = installed;\n collapsed = [...loadable, ...notDetected];\n }\n else if (loadable.length) {\n listed = loadable;\n collapsed = notDetected;\n }\n else {\n collapsed = notDetected;\n }\n return [listed, collapsed];\n }, [wallets]);\n const hideModal = useCallback(() => {\n setFadeIn(false);\n setTimeout(() => setVisible(false), 150);\n }, [setVisible]);\n const handleClose = useCallback((event) => {\n event.preventDefault();\n hideModal();\n }, [hideModal]);\n const handleWalletClick = useCallback((event, walletName) => {\n select(walletName);\n handleClose(event);\n }, [select, handleClose]);\n const handleCollapseClick = useCallback(() => setExpanded(!expanded), [expanded]);\n const handleTabKey = useCallback((event) => {\n const node = ref.current;\n if (!node)\n return;\n // here we query all focusable elements\n const focusableElements = node.querySelectorAll('button');\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const firstElement = focusableElements[0];\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const lastElement = focusableElements[focusableElements.length - 1];\n if (event.shiftKey) {\n // if going backward by pressing tab and firstElement is active, shift focus to last focusable element\n if (document.activeElement === firstElement) {\n lastElement.focus();\n event.preventDefault();\n }\n }\n else {\n // if going forward by pressing tab and lastElement is active, shift focus to first focusable element\n if (document.activeElement === lastElement) {\n firstElement.focus();\n event.preventDefault();\n }\n }\n }, [ref]);\n useLayoutEffect(() => {\n const handleKeyDown = (event) => {\n if (event.key === 'Escape') {\n hideModal();\n }\n else if (event.key === 'Tab') {\n handleTabKey(event);\n }\n };\n // Get original overflow\n const { overflow } = window.getComputedStyle(document.body);\n // Hack to enable fade in animation after mount\n setTimeout(() => setFadeIn(true), 0);\n // Prevent scrolling on mount\n document.body.style.overflow = 'hidden';\n // Listen for keydown events\n window.addEventListener('keydown', handleKeyDown, false);\n return () => {\n // Re-enable scrolling when component unmounts\n document.body.style.overflow = overflow;\n window.removeEventListener('keydown', handleKeyDown, false);\n };\n }, [hideModal, handleTabKey]);\n useLayoutEffect(() => setPortal(document.querySelector(container)), [container]);\n return (portal &&\n createPortal(React.createElement(\"div\", { \"aria-labelledby\": \"wallet-adapter-modal-title\", \"aria-modal\": \"true\", className: `wallet-adapter-modal ${fadeIn && 'wallet-adapter-modal-fade-in'} ${className}`, ref: ref, role: \"dialog\" },\n React.createElement(\"div\", { className: \"wallet-adapter-modal-container\" },\n React.createElement(\"div\", { className: \"wallet-adapter-modal-wrapper\" },\n React.createElement(\"button\", { onClick: handleClose, className: \"wallet-adapter-modal-button-close\" },\n React.createElement(\"svg\", { width: \"14\", height: \"14\" },\n React.createElement(\"path\", { d: \"M14 12.461 8.3 6.772l5.234-5.233L12.006 0 6.772 5.234 1.54 0 0 1.539l5.234 5.233L0 12.006l1.539 1.528L6.772 8.3l5.69 5.7L14 12.461z\" }))),\n listedWallets.length ? (React.createElement(React.Fragment, null,\n React.createElement(\"h1\", { className: \"wallet-adapter-modal-title\" }, \"Connect a wallet on Solana to continue\"),\n React.createElement(\"ul\", { className: \"wallet-adapter-modal-list\" },\n listedWallets.map((wallet) => (React.createElement(WalletListItem, { key: wallet.adapter.name, handleClick: (event) => handleWalletClick(event, wallet.adapter.name), wallet: wallet }))),\n collapsedWallets.length ? (React.createElement(Collapse, { expanded: expanded, id: \"wallet-adapter-modal-collapse\" }, collapsedWallets.map((wallet) => (React.createElement(WalletListItem, { key: wallet.adapter.name, handleClick: (event) => handleWalletClick(event, wallet.adapter.name), tabIndex: expanded ? 0 : -1, wallet: wallet }))))) : null),\n collapsedWallets.length ? (React.createElement(\"button\", { className: \"wallet-adapter-modal-list-more\", onClick: handleCollapseClick, tabIndex: 0 },\n React.createElement(\"span\", null,\n expanded ? 'Less ' : 'More ',\n \"options\"),\n React.createElement(\"svg\", { width: \"13\", height: \"7\", viewBox: \"0 0 13 7\", xmlns: \"http://www.w3.org/2000/svg\", className: `${expanded ? 'wallet-adapter-modal-list-more-icon-rotate' : ''}` },\n React.createElement(\"path\", { d: \"M0.71418 1.626L5.83323 6.26188C5.91574 6.33657 6.0181 6.39652 6.13327 6.43762C6.24844 6.47872 6.37371 6.5 6.50048 6.5C6.62725 6.5 6.75252 6.47872 6.8677 6.43762C6.98287 6.39652 7.08523 6.33657 7.16774 6.26188L12.2868 1.626C12.7753 1.1835 12.3703 0.5 11.6195 0.5H1.37997C0.629216 0.5 0.224175 1.1835 0.71418 1.626Z\" })))) : null)) : (React.createElement(React.Fragment, null,\n React.createElement(\"h1\", { className: \"wallet-adapter-modal-title\" }, \"You'll need a wallet on Solana to continue\"),\n React.createElement(\"div\", { className: \"wallet-adapter-modal-middle\" },\n React.createElement(WalletSVG, null)),\n collapsedWallets.length ? (React.createElement(React.Fragment, null,\n React.createElement(\"button\", { className: \"wallet-adapter-modal-list-more\", onClick: handleCollapseClick, tabIndex: 0 },\n React.createElement(\"span\", null,\n expanded ? 'Hide ' : 'Already have a wallet? View ',\n \"options\"),\n React.createElement(\"svg\", { width: \"13\", height: \"7\", viewBox: \"0 0 13 7\", xmlns: \"http://www.w3.org/2000/svg\", className: `${expanded ? 'wallet-adapter-modal-list-more-icon-rotate' : ''}` },\n React.createElement(\"path\", { d: \"M0.71418 1.626L5.83323 6.26188C5.91574 6.33657 6.0181 6.39652 6.13327 6.43762C6.24844 6.47872 6.37371 6.5 6.50048 6.5C6.62725 6.5 6.75252 6.47872 6.8677 6.43762C6.98287 6.39652 7.08523 6.33657 7.16774 6.26188L12.2868 1.626C12.7753 1.1835 12.3703 0.5 11.6195 0.5H1.37997C0.629216 0.5 0.224175 1.1835 0.71418 1.626Z\" }))),\n React.createElement(Collapse, { expanded: expanded, id: \"wallet-adapter-modal-collapse\" },\n React.createElement(\"ul\", { className: \"wallet-adapter-modal-list\" }, collapsedWallets.map((wallet) => (React.createElement(WalletListItem, { key: wallet.adapter.name, handleClick: (event) => handleWalletClick(event, wallet.adapter.name), tabIndex: expanded ? 0 : -1, wallet: wallet }))))))) : null)))),\n React.createElement(\"div\", { className: \"wallet-adapter-modal-overlay\", onMouseDown: handleClose })), portal));\n};\n//# sourceMappingURL=WalletModal.js.map","import React, { useState } from 'react';\nimport { WalletModalContext } from './useWalletModal.js';\nimport { WalletModal } from './WalletModal.js';\nexport const WalletModalProvider = ({ children, ...props }) => {\n const [visible, setVisible] = useState(false);\n return (React.createElement(WalletModalContext.Provider, { value: {\n visible,\n setVisible,\n } },\n children,\n visible && React.createElement(WalletModal, { ...props })));\n};\n//# sourceMappingURL=WalletModalProvider.js.map","import { Connection } from '@solana/web3.js';\nimport React, { useMemo } from 'react';\nimport { ConnectionContext } from './useConnection.js';\nexport const ConnectionProvider = ({ children, endpoint, config = { commitment: 'confirmed' }, }) => {\n const connection = useMemo(() => new Connection(endpoint, config), [endpoint, config]);\n return React.createElement(ConnectionContext.Provider, { value: { connection } }, children);\n};\n//# sourceMappingURL=ConnectionProvider.js.map","// Typescript `enums` thwart tree-shaking. See https://bargsten.org/jsts/enums/\nconst SolanaMobileWalletAdapterErrorCode = {\n ERROR_ASSOCIATION_PORT_OUT_OF_RANGE: 'ERROR_ASSOCIATION_PORT_OUT_OF_RANGE',\n ERROR_FORBIDDEN_WALLET_BASE_URL: 'ERROR_FORBIDDEN_WALLET_BASE_URL',\n ERROR_SECURE_CONTEXT_REQUIRED: 'ERROR_SECURE_CONTEXT_REQUIRED',\n ERROR_SESSION_CLOSED: 'ERROR_SESSION_CLOSED',\n ERROR_SESSION_TIMEOUT: 'ERROR_SESSION_TIMEOUT',\n ERROR_WALLET_NOT_FOUND: 'ERROR_WALLET_NOT_FOUND',\n};\nclass SolanaMobileWalletAdapterError extends Error {\n constructor(...args) {\n const [code, message, data] = args;\n super(message);\n this.code = code;\n this.data = data;\n this.name = 'SolanaMobileWalletAdapterError';\n }\n}\n// Typescript `enums` thwart tree-shaking. See https://bargsten.org/jsts/enums/\nconst SolanaMobileWalletAdapterProtocolErrorCode = {\n // Keep these in sync with `mobilewalletadapter/common/ProtocolContract.java`.\n ERROR_AUTHORIZATION_FAILED: -1,\n ERROR_INVALID_PAYLOADS: -2,\n ERROR_NOT_SIGNED: -3,\n ERROR_NOT_SUBMITTED: -4,\n ERROR_TOO_MANY_PAYLOADS: -5,\n ERROR_ATTEST_ORIGIN_ANDROID: -100,\n};\nclass SolanaMobileWalletAdapterProtocolError extends Error {\n constructor(...args) {\n const [jsonRpcMessageId, code, message, data] = args;\n super(message);\n this.code = code;\n this.data = data;\n this.jsonRpcMessageId = jsonRpcMessageId;\n this.name = 'SolanaMobileWalletAdapterProtocolError';\n }\n}\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\r\nfunction __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}\n\nfunction createHelloReq(ecdhPublicKey, associationKeypairPrivateKey) {\n return __awaiter(this, void 0, void 0, function* () {\n const publicKeyBuffer = yield crypto.subtle.exportKey('raw', ecdhPublicKey);\n const signatureBuffer = yield crypto.subtle.sign({ hash: 'SHA-256', name: 'ECDSA' }, associationKeypairPrivateKey, publicKeyBuffer);\n const response = new Uint8Array(publicKeyBuffer.byteLength + signatureBuffer.byteLength);\n response.set(new Uint8Array(publicKeyBuffer), 0);\n response.set(new Uint8Array(signatureBuffer), publicKeyBuffer.byteLength);\n return response;\n });\n}\n\nconst SEQUENCE_NUMBER_BYTES = 4;\nfunction createSequenceNumberVector(sequenceNumber) {\n if (sequenceNumber >= 4294967296) {\n throw new Error('Outbound sequence number overflow. The maximum sequence number is 32-bytes.');\n }\n const byteArray = new ArrayBuffer(SEQUENCE_NUMBER_BYTES);\n const view = new DataView(byteArray);\n view.setUint32(0, sequenceNumber, /* littleEndian */ false);\n return new Uint8Array(byteArray);\n}\n\nfunction generateAssociationKeypair() {\n return __awaiter(this, void 0, void 0, function* () {\n return yield crypto.subtle.generateKey({\n name: 'ECDSA',\n namedCurve: 'P-256',\n }, false /* extractable */, ['sign'] /* keyUsages */);\n });\n}\n\nfunction generateECDHKeypair() {\n return __awaiter(this, void 0, void 0, function* () {\n return yield crypto.subtle.generateKey({\n name: 'ECDH',\n namedCurve: 'P-256',\n }, false /* extractable */, ['deriveKey', 'deriveBits'] /* keyUsages */);\n });\n}\n\nconst INITIALIZATION_VECTOR_BYTES = 12;\nfunction encryptJsonRpcMessage(jsonRpcMessage, sharedSecret) {\n return __awaiter(this, void 0, void 0, function* () {\n const plaintext = JSON.stringify(jsonRpcMessage);\n const sequenceNumberVector = createSequenceNumberVector(jsonRpcMessage.id);\n const initializationVector = new Uint8Array(INITIALIZATION_VECTOR_BYTES);\n crypto.getRandomValues(initializationVector);\n const ciphertext = yield crypto.subtle.encrypt(getAlgorithmParams(sequenceNumberVector, initializationVector), sharedSecret, new TextEncoder().encode(plaintext));\n const response = new Uint8Array(sequenceNumberVector.byteLength + initializationVector.byteLength + ciphertext.byteLength);\n response.set(new Uint8Array(sequenceNumberVector), 0);\n response.set(new Uint8Array(initializationVector), sequenceNumberVector.byteLength);\n response.set(new Uint8Array(ciphertext), sequenceNumberVector.byteLength + initializationVector.byteLength);\n return response;\n });\n}\nfunction decryptJsonRpcMessage(message, sharedSecret) {\n return __awaiter(this, void 0, void 0, function* () {\n const sequenceNumberVector = message.slice(0, SEQUENCE_NUMBER_BYTES);\n const initializationVector = message.slice(SEQUENCE_NUMBER_BYTES, SEQUENCE_NUMBER_BYTES + INITIALIZATION_VECTOR_BYTES);\n const ciphertext = message.slice(SEQUENCE_NUMBER_BYTES + INITIALIZATION_VECTOR_BYTES);\n const plaintextBuffer = yield crypto.subtle.decrypt(getAlgorithmParams(sequenceNumberVector, initializationVector), sharedSecret, ciphertext);\n const plaintext = getUtf8Decoder().decode(plaintextBuffer);\n const jsonRpcMessage = JSON.parse(plaintext);\n if (Object.hasOwnProperty.call(jsonRpcMessage, 'error')) {\n throw new SolanaMobileWalletAdapterProtocolError(jsonRpcMessage.id, jsonRpcMessage.error.code, jsonRpcMessage.error.message);\n }\n return jsonRpcMessage;\n });\n}\nfunction getAlgorithmParams(sequenceNumber, initializationVector) {\n return {\n additionalData: sequenceNumber,\n iv: initializationVector,\n name: 'AES-GCM',\n tagLength: 128, // 16 byte tag => 128 bits\n };\n}\nlet _utf8Decoder;\nfunction getUtf8Decoder() {\n if (_utf8Decoder === undefined) {\n _utf8Decoder = new TextDecoder('utf-8');\n }\n return _utf8Decoder;\n}\n\nfunction parseHelloRsp(payloadBuffer, // The X9.62-encoded wallet endpoint ephemeral ECDH public keypoint.\nassociationPublicKey, ecdhPrivateKey) {\n return __awaiter(this, void 0, void 0, function* () {\n const [associationPublicKeyBuffer, walletPublicKey] = yield Promise.all([\n crypto.subtle.exportKey('raw', associationPublicKey),\n crypto.subtle.importKey('raw', payloadBuffer, { name: 'ECDH', namedCurve: 'P-256' }, false /* extractable */, [] /* keyUsages */),\n ]);\n const sharedSecret = yield crypto.subtle.deriveBits({ name: 'ECDH', public: walletPublicKey }, ecdhPrivateKey, 256);\n const ecdhSecretKey = yield crypto.subtle.importKey('raw', sharedSecret, 'HKDF', false /* extractable */, ['deriveKey'] /* keyUsages */);\n const aesKeyMaterialVal = yield crypto.subtle.deriveKey({\n name: 'HKDF',\n hash: 'SHA-256',\n salt: new Uint8Array(associationPublicKeyBuffer),\n info: new Uint8Array(),\n }, ecdhSecretKey, { name: 'AES-GCM', length: 128 }, false /* extractable */, ['encrypt', 'decrypt']);\n return aesKeyMaterialVal;\n });\n}\n\nfunction getRandomAssociationPort() {\n return assertAssociationPort(49152 + Math.floor(Math.random() * (65535 - 49152 + 1)));\n}\nfunction assertAssociationPort(port) {\n if (port < 49152 || port > 65535) {\n throw new SolanaMobileWalletAdapterError(SolanaMobileWalletAdapterErrorCode.ERROR_ASSOCIATION_PORT_OUT_OF_RANGE, `Association port number must be between 49152 and 65535. ${port} given.`, { port });\n }\n return port;\n}\n\n// https://stackoverflow.com/a/9458996/802047\nfunction arrayBufferToBase64String(buffer) {\n let binary = '';\n const bytes = new Uint8Array(buffer);\n const len = bytes.byteLength;\n for (let ii = 0; ii < len; ii++) {\n binary += String.fromCharCode(bytes[ii]);\n }\n return window.btoa(binary);\n}\n\nfunction getStringWithURLUnsafeCharactersReplaced(unsafeBase64EncodedString) {\n return unsafeBase64EncodedString.replace(/[/+=]/g, (m) => ({\n '/': '_',\n '+': '-',\n '=': '.',\n }[m]));\n}\n\nconst INTENT_NAME = 'solana-wallet';\nfunction getPathParts(pathString) {\n return (pathString\n // Strip leading and trailing slashes\n .replace(/(^\\/+|\\/+$)/g, '')\n // Return an array of directories\n .split('/'));\n}\nfunction getIntentURL(methodPathname, intentUrlBase) {\n let baseUrl = null;\n if (intentUrlBase) {\n try {\n baseUrl = new URL(intentUrlBase);\n }\n catch (_a) { } // eslint-disable-line no-empty\n if ((baseUrl === null || baseUrl === void 0 ? void 0 : baseUrl.protocol) !== 'https:') {\n throw new SolanaMobileWalletAdapterError(SolanaMobileWalletAdapterErrorCode.ERROR_FORBIDDEN_WALLET_BASE_URL, 'Base URLs supplied by wallets must be valid `https` URLs');\n }\n }\n baseUrl || (baseUrl = new URL(`${INTENT_NAME}:/`));\n const pathname = methodPathname.startsWith('/')\n ? // Method is an absolute path. Replace it wholesale.\n methodPathname\n : // Method is a relative path. Merge it with the existing one.\n [...getPathParts(baseUrl.pathname), ...getPathParts(methodPathname)].join('/');\n return new URL(pathname, baseUrl);\n}\nfunction getAssociateAndroidIntentURL(associationPublicKey, putativePort, associationURLBase) {\n return __awaiter(this, void 0, void 0, function* () {\n const associationPort = assertAssociationPort(putativePort);\n const exportedKey = yield crypto.subtle.exportKey('raw', associationPublicKey);\n const encodedKey = arrayBufferToBase64String(exportedKey);\n const url = getIntentURL('v1/associate/local', associationURLBase);\n url.searchParams.set('association', getStringWithURLUnsafeCharactersReplaced(encodedKey));\n url.searchParams.set('port', `${associationPort}`);\n return url;\n });\n}\n\n// Typescript `enums` thwart tree-shaking. See https://bargsten.org/jsts/enums/\nconst Browser = {\n Firefox: 0,\n Other: 1,\n};\nfunction assertUnreachable(x) {\n return x;\n}\nfunction getBrowser() {\n return navigator.userAgent.indexOf('Firefox/') !== -1 ? Browser.Firefox : Browser.Other;\n}\nfunction getDetectionPromise() {\n // Chrome and others silently fail if a custom protocol is not supported.\n // For these, we wait to see if the browser is navigated away from in\n // a reasonable amount of time (ie. the native wallet opened).\n return new Promise((resolve, reject) => {\n function cleanup() {\n clearTimeout(timeoutId);\n window.removeEventListener('blur', handleBlur);\n }\n function handleBlur() {\n cleanup();\n resolve();\n }\n window.addEventListener('blur', handleBlur);\n const timeoutId = setTimeout(() => {\n cleanup();\n reject();\n }, 2000);\n });\n}\nlet _frame = null;\nfunction launchUrlThroughHiddenFrame(url) {\n if (_frame == null) {\n _frame = document.createElement('iframe');\n _frame.style.display = 'none';\n document.body.appendChild(_frame);\n }\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n _frame.contentWindow.location.href = url.toString();\n}\nfunction startSession(associationPublicKey, associationURLBase) {\n return __awaiter(this, void 0, void 0, function* () {\n const randomAssociationPort = getRandomAssociationPort();\n const associationUrl = yield getAssociateAndroidIntentURL(associationPublicKey, randomAssociationPort, associationURLBase);\n if (associationUrl.protocol === 'https:') {\n // The association URL is an Android 'App Link' or iOS 'Universal Link'.\n // These are regular web URLs that are designed to launch an app if it\n // is installed or load the actual target webpage if not.\n window.location.assign(associationUrl);\n }\n else {\n // The association URL has a custom protocol (eg. `solana-wallet:`)\n try {\n const browser = getBrowser();\n switch (browser) {\n case Browser.Firefox:\n // If a custom protocol is not supported in Firefox, it throws.\n launchUrlThroughHiddenFrame(associationUrl);\n // If we reached this line, it's supported.\n break;\n case Browser.Other: {\n const detectionPromise = getDetectionPromise();\n window.location.assign(associationUrl);\n yield detectionPromise;\n break;\n }\n default:\n assertUnreachable(browser);\n }\n }\n catch (e) {\n throw new SolanaMobileWalletAdapterError(SolanaMobileWalletAdapterErrorCode.ERROR_WALLET_NOT_FOUND, 'Found no installed wallet that supports the mobile wallet protocol.');\n }\n }\n return randomAssociationPort;\n });\n}\n\nconst WEBSOCKET_CONNECTION_CONFIG = {\n /**\n * 300 milliseconds is a generally accepted threshold for what someone\n * would consider an acceptable response time for a user interface\n * after having performed a low-attention tapping task. We set the initial\n * interval at which we wait for the wallet to set up the websocket at\n * half this, as per the Nyquist frequency, with a progressive backoff\n * sequence from there. The total wait time is 30s, which allows for the\n * user to be presented with a disambiguation dialog, select a wallet, and\n * for the wallet app to subsequently start.\n */\n retryDelayScheduleMs: [150, 150, 200, 500, 500, 750, 750, 1000],\n timeoutMs: 30000,\n};\nconst WEBSOCKET_PROTOCOL = 'com.solana.mobilewalletadapter.v1';\nfunction assertSecureContext() {\n if (typeof window === 'undefined' || window.isSecureContext !== true) {\n throw new SolanaMobileWalletAdapterError(SolanaMobileWalletAdapterErrorCode.ERROR_SECURE_CONTEXT_REQUIRED, 'The mobile wallet adapter protocol must be used in a secure context (`https`).');\n }\n}\nfunction assertSecureEndpointSpecificURI(walletUriBase) {\n let url;\n try {\n url = new URL(walletUriBase);\n }\n catch (_a) {\n throw new SolanaMobileWalletAdapterError(SolanaMobileWalletAdapterErrorCode.ERROR_FORBIDDEN_WALLET_BASE_URL, 'Invalid base URL supplied by wallet');\n }\n if (url.protocol !== 'https:') {\n throw new SolanaMobileWalletAdapterError(SolanaMobileWalletAdapterErrorCode.ERROR_FORBIDDEN_WALLET_BASE_URL, 'Base URLs supplied by wallets must be valid `https` URLs');\n }\n}\nfunction getSequenceNumberFromByteArray(byteArray) {\n const view = new DataView(byteArray);\n return view.getUint32(0, /* littleEndian */ false);\n}\nfunction transact(callback, config) {\n return __awaiter(this, void 0, void 0, function* () {\n assertSecureContext();\n const associationKeypair = yield generateAssociationKeypair();\n const sessionPort = yield startSession(associationKeypair.publicKey, config === null || config === void 0 ? void 0 : config.baseUri);\n const websocketURL = `ws://localhost:${sessionPort}/solana-wallet`;\n let connectionStartTime;\n const getNextRetryDelayMs = (() => {\n const schedule = [...WEBSOCKET_CONNECTION_CONFIG.retryDelayScheduleMs];\n return () => (schedule.length > 1 ? schedule.shift() : schedule[0]);\n })();\n let nextJsonRpcMessageId = 1;\n let lastKnownInboundSequenceNumber = 0;\n let state = { __type: 'disconnected' };\n return new Promise((resolve, reject) => {\n let socket;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const jsonRpcResponsePromises = {};\n const handleOpen = () => __awaiter(this, void 0, void 0, function* () {\n if (state.__type !== 'connecting') {\n console.warn('Expected adapter state to be `connecting` at the moment the websocket opens. ' +\n `Got \\`${state.__type}\\`.`);\n return;\n }\n const { associationKeypair } = state;\n socket.removeEventListener('open', handleOpen);\n const ecdhKeypair = yield generateECDHKeypair();\n socket.send(yield createHelloReq(ecdhKeypair.publicKey, associationKeypair.privateKey));\n state = {\n __type: 'hello_req_sent',\n associationPublicKey: associationKeypair.publicKey,\n ecdhPrivateKey: ecdhKeypair.privateKey,\n };\n });\n const handleClose = (evt) => {\n if (evt.wasClean) {\n state = { __type: 'disconnected' };\n }\n else {\n reject(new SolanaMobileWalletAdapterError(SolanaMobileWalletAdapterErrorCode.ERROR_SESSION_CLOSED, `The wallet session dropped unexpectedly (${evt.code}: ${evt.reason}).`, { closeEvent: evt }));\n }\n disposeSocket();\n };\n const handleError = (_evt) => __awaiter(this, void 0, void 0, function* () {\n disposeSocket();\n if (Date.now() - connectionStartTime >= WEBSOCKET_CONNECTION_CONFIG.timeoutMs) {\n reject(new SolanaMobileWalletAdapterError(SolanaMobileWalletAdapterErrorCode.ERROR_SESSION_TIMEOUT, `Failed to connect to the wallet websocket on port ${sessionPort}.`));\n }\n else {\n yield new Promise((resolve) => {\n const retryDelayMs = getNextRetryDelayMs();\n retryWaitTimeoutId = window.setTimeout(resolve, retryDelayMs);\n });\n attemptSocketConnection();\n }\n });\n const handleMessage = (evt) => __awaiter(this, void 0, void 0, function* () {\n const responseBuffer = yield evt.data.arrayBuffer();\n switch (state.__type) {\n case 'connected':\n try {\n const sequenceNumberVector = responseBuffer.slice(0, SEQUENCE_NUMBER_BYTES);\n const sequenceNumber = getSequenceNumberFromByteArray(sequenceNumberVector);\n if (sequenceNumber !== (lastKnownInboundSequenceNumber + 1)) {\n throw new Error('Encrypted message has invalid sequence number');\n }\n lastKnownInboundSequenceNumber = sequenceNumber;\n const jsonRpcMessage = yield decryptJsonRpcMessage(responseBuffer, state.sharedSecret);\n const responsePromise = jsonRpcResponsePromises[jsonRpcMessage.id];\n delete jsonRpcResponsePromises[jsonRpcMessage.id];\n responsePromise.resolve(jsonRpcMessage.result);\n }\n catch (e) {\n if (e instanceof SolanaMobileWalletAdapterProtocolError) {\n const responsePromise = jsonRpcResponsePromises[e.jsonRpcMessageId];\n delete jsonRpcResponsePromises[e.jsonRpcMessageId];\n responsePromise.reject(e);\n }\n else {\n throw e;\n }\n }\n break;\n case 'hello_req_sent': {\n const sharedSecret = yield parseHelloRsp(responseBuffer, state.associationPublicKey, state.ecdhPrivateKey);\n state = { __type: 'connected', sharedSecret };\n const wallet = new Proxy({}, {\n get(target, p) {\n if (target[p] == null) {\n const method = p\n .toString()\n .replace(/[A-Z]/g, (letter) => `_${letter.toLowerCase()}`)\n .toLowerCase();\n target[p] = function (params) {\n return __awaiter(this, void 0, void 0, function* () {\n const id = nextJsonRpcMessageId++;\n socket.send(yield encryptJsonRpcMessage({\n id,\n jsonrpc: '2.0',\n method,\n params: params !== null && params !== void 0 ? params : {},\n }, sharedSecret));\n return new Promise((resolve, reject) => {\n jsonRpcResponsePromises[id] = {\n resolve(result) {\n switch (p) {\n case 'authorize':\n case 'reauthorize': {\n const { wallet_uri_base } = result;\n if (wallet_uri_base != null) {\n try {\n assertSecureEndpointSpecificURI(wallet_uri_base);\n }\n catch (e) {\n reject(e);\n return;\n }\n }\n break;\n }\n }\n resolve(result);\n },\n reject,\n };\n });\n });\n };\n }\n return target[p];\n },\n defineProperty() {\n return false;\n },\n deleteProperty() {\n return false;\n },\n });\n try {\n resolve(yield callback(wallet));\n }\n catch (e) {\n reject(e);\n }\n finally {\n disposeSocket();\n socket.close();\n }\n break;\n }\n }\n });\n let disposeSocket;\n let retryWaitTimeoutId;\n const attemptSocketConnection = () => {\n if (disposeSocket) {\n disposeSocket();\n }\n state = { __type: 'connecting', associationKeypair };\n if (connectionStartTime === undefined) {\n connectionStartTime = Date.now();\n }\n socket = new WebSocket(websocketURL, [WEBSOCKET_PROTOCOL]);\n socket.addEventListener('open', handleOpen);\n socket.addEventListener('close', handleClose);\n socket.addEventListener('error', handleError);\n socket.addEventListener('message', handleMessage);\n disposeSocket = () => {\n window.clearTimeout(retryWaitTimeoutId);\n socket.removeEventListener('open', handleOpen);\n socket.removeEventListener('close', handleClose);\n socket.removeEventListener('error', handleError);\n socket.removeEventListener('message', handleMessage);\n };\n };\n attemptSocketConnection();\n });\n });\n}\n\nexport { SolanaMobileWalletAdapterError, SolanaMobileWalletAdapterErrorCode, SolanaMobileWalletAdapterProtocolError, SolanaMobileWalletAdapterProtocolErrorCode, transact };\n","import { createDefaultAddressSelector, createDefaultAuthorizationResultCache, createDefaultWalletNotFoundHandler, SolanaMobileWalletAdapter, SolanaMobileWalletAdapterWalletName, } from '@solana-mobile/wallet-adapter-mobile';\nimport { useStandardWalletAdapters } from '@solana/wallet-standard-wallet-adapter-react';\nimport React, { useCallback, useEffect, useMemo, useRef } from 'react';\nimport getEnvironment, { Environment } from './getEnvironment.js';\nimport getInferredClusterFromEndpoint from './getInferredClusterFromEndpoint.js';\nimport { useConnection } from './useConnection.js';\nimport { useLocalStorage } from './useLocalStorage.js';\nimport { WalletProviderBase } from './WalletProviderBase.js';\nlet _userAgent;\nfunction getUserAgent() {\n if (_userAgent === undefined) {\n _userAgent = globalThis.navigator?.userAgent ?? null;\n }\n return _userAgent;\n}\nfunction getIsMobile(adapters) {\n const userAgentString = getUserAgent();\n return getEnvironment({ adapters, userAgentString }) === Environment.MOBILE_WEB;\n}\nfunction getUriForAppIdentity() {\n const location = globalThis.location;\n if (location == null) {\n return;\n }\n return `${location.protocol}//${location.host}`;\n}\nexport function WalletProvider({ children, wallets: adapters, autoConnect, localStorageKey = 'walletName', onError, }) {\n const { connection } = useConnection();\n const adaptersWithStandardAdapters = useStandardWalletAdapters(adapters);\n const mobileWalletAdapter = useMemo(() => {\n if (!getIsMobile(adaptersWithStandardAdapters)) {\n return null;\n }\n const existingMobileWalletAdapter = adaptersWithStandardAdapters.find((adapter) => adapter.name === SolanaMobileWalletAdapterWalletName);\n if (existingMobileWalletAdapter) {\n return existingMobileWalletAdapter;\n }\n return new SolanaMobileWalletAdapter({\n addressSelector: createDefaultAddressSelector(),\n appIdentity: {\n uri: getUriForAppIdentity(),\n },\n authorizationResultCache: createDefaultAuthorizationResultCache(),\n cluster: getInferredClusterFromEndpoint(connection?.rpcEndpoint),\n onWalletNotFound: createDefaultWalletNotFoundHandler(),\n });\n }, [adaptersWithStandardAdapters, connection?.rpcEndpoint]);\n const adaptersWithMobileWalletAdapter = useMemo(() => {\n if (mobileWalletAdapter == null || adaptersWithStandardAdapters.indexOf(mobileWalletAdapter) !== -1) {\n return adaptersWithStandardAdapters;\n }\n return [mobileWalletAdapter, ...adaptersWithStandardAdapters];\n }, [adaptersWithStandardAdapters, mobileWalletAdapter]);\n const [walletName, setWalletName] = useLocalStorage(localStorageKey, getIsMobile(adaptersWithStandardAdapters) ? SolanaMobileWalletAdapterWalletName : null);\n const adapter = useMemo(() => adaptersWithMobileWalletAdapter.find((a) => a.name === walletName) ?? null, [adaptersWithMobileWalletAdapter, walletName]);\n const changeWallet = useCallback((nextWalletName) => {\n if (walletName === nextWalletName) {\n return;\n }\n if (adapter &&\n // Selecting a wallet other than the mobile wallet adapter is not\n // sufficient reason to call `disconnect` on the mobile wallet adapter.\n // Calling `disconnect` on the mobile wallet adapter causes the entire\n // authorization store to be wiped.\n adapter.name !== SolanaMobileWalletAdapterWalletName) {\n adapter.disconnect();\n }\n setWalletName(nextWalletName);\n }, [adapter, setWalletName, walletName]);\n useEffect(() => {\n if (adapter == null) {\n return;\n }\n function handleDisconnect() {\n if (isUnloadingRef.current) {\n return;\n }\n if (walletName === SolanaMobileWalletAdapterWalletName && getIsMobile(adaptersWithStandardAdapters)) {\n // Leave the adapter selected in the event of a disconnection.\n return;\n }\n setWalletName(null);\n }\n adapter.on('disconnect', handleDisconnect);\n return () => {\n adapter.off('disconnect', handleDisconnect);\n };\n }, [adapter, adaptersWithStandardAdapters, setWalletName, walletName]);\n const hasUserSelectedAWallet = useRef(false);\n const handleAutoConnectRequest = useMemo(() => {\n if (autoConnect !== true || !adapter) {\n return;\n }\n return () => (hasUserSelectedAWallet.current ? adapter.connect() : adapter.autoConnect());\n }, [adapter, autoConnect]);\n const isUnloadingRef = useRef(false);\n useEffect(() => {\n if (walletName === SolanaMobileWalletAdapterWalletName && getIsMobile(adaptersWithStandardAdapters)) {\n isUnloadingRef.current = false;\n return;\n }\n function handleBeforeUnload() {\n isUnloadingRef.current = true;\n }\n /**\n * Some wallets fire disconnection events when the window unloads. Since there's no way to\n * distinguish between a disconnection event received because a user initiated it, and one\n * that was received because they've closed the window, we have to track window unload\n * events themselves. Downstream components use this information to decide whether to act\n * upon or drop wallet events and errors.\n */\n window.addEventListener('beforeunload', handleBeforeUnload);\n return () => {\n window.removeEventListener('beforeunload', handleBeforeUnload);\n };\n }, [adaptersWithStandardAdapters, walletName]);\n const handleConnectError = useCallback(() => {\n if (adapter && adapter.name !== SolanaMobileWalletAdapterWalletName) {\n // If any error happens while connecting, unset the adapter.\n changeWallet(null);\n }\n }, [adapter, changeWallet]);\n const selectWallet = useCallback((walletName) => {\n hasUserSelectedAWallet.current = true;\n changeWallet(walletName);\n }, [changeWallet]);\n return (React.createElement(WalletProviderBase, { wallets: adaptersWithMobileWalletAdapter, adapter: adapter, isUnloadingRef: isUnloadingRef, onAutoConnectRequest: handleAutoConnectRequest, onConnectError: handleConnectError, onError: onError, onSelectWallet: selectWallet }, children));\n}\n//# sourceMappingURL=WalletProvider.js.map","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _AppReadyEvent_detail;\nlet wallets = undefined;\nconst registered = new Set();\nconst listeners = {};\n/**\n * Get an API for {@link Wallets.get | getting}, {@link Wallets.on | listening for}, and\n * {@link Wallets.register | registering} {@link \"@wallet-standard/base\".Wallet | Wallets}.\n *\n * When called for the first time --\n *\n * This dispatches a {@link \"@wallet-standard/base\".WindowAppReadyEvent} to notify each Wallet that the app is ready\n * to register it.\n *\n * This also adds a listener for {@link \"@wallet-standard/base\".WindowRegisterWalletEvent} to listen for a notification\n * from each Wallet that the Wallet is ready to be registered by the app.\n *\n * This combination of event dispatch and listener guarantees that each Wallet will be registered synchronously as soon\n * as the app is ready whether the app loads before or after each Wallet.\n *\n * @return API for getting, listening for, and registering Wallets.\n *\n * @group App\n */\nexport function getWallets() {\n if (wallets)\n return wallets;\n wallets = Object.freeze({ register, get, on });\n if (typeof window === 'undefined')\n return wallets;\n const api = Object.freeze({ register });\n try {\n window.addEventListener('wallet-standard:register-wallet', ({ detail: callback }) => callback(api));\n }\n catch (error) {\n console.error('wallet-standard:register-wallet event listener could not be added\\n', error);\n }\n try {\n window.dispatchEvent(new AppReadyEvent(api));\n }\n catch (error) {\n console.error('wallet-standard:app-ready event could not be dispatched\\n', error);\n }\n return wallets;\n}\nfunction register(...wallets) {\n // Filter out wallets that have already been registered.\n // This prevents the same wallet from being registered twice, but it also prevents wallets from being\n // unregistered by reusing a reference to the wallet to obtain the unregister function for it.\n wallets = wallets.filter((wallet) => !registered.has(wallet));\n // If there are no new wallets to register, just return a no-op unregister function.\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n if (!wallets.length)\n return () => { };\n wallets.forEach((wallet) => registered.add(wallet));\n listeners['register']?.forEach((listener) => guard(() => listener(...wallets)));\n // Return a function that unregisters the registered wallets.\n return function unregister() {\n wallets.forEach((wallet) => registered.delete(wallet));\n listeners['unregister']?.forEach((listener) => guard(() => listener(...wallets)));\n };\n}\nfunction get() {\n return [...registered];\n}\nfunction on(event, listener) {\n listeners[event]?.push(listener) || (listeners[event] = [listener]);\n // Return a function that removes the event listener.\n return function off() {\n listeners[event] = listeners[event]?.filter((existingListener) => listener !== existingListener);\n };\n}\nfunction guard(callback) {\n try {\n callback();\n }\n catch (error) {\n console.error(error);\n }\n}\nclass AppReadyEvent extends Event {\n constructor(api) {\n super('wallet-standard:app-ready', {\n bubbles: false,\n cancelable: false,\n composed: false,\n });\n _AppReadyEvent_detail.set(this, void 0);\n __classPrivateFieldSet(this, _AppReadyEvent_detail, api, \"f\");\n }\n get detail() {\n return __classPrivateFieldGet(this, _AppReadyEvent_detail, \"f\");\n }\n get type() {\n return 'wallet-standard:app-ready';\n }\n /** @deprecated */\n preventDefault() {\n throw new Error('preventDefault cannot be called');\n }\n /** @deprecated */\n stopImmediatePropagation() {\n throw new Error('stopImmediatePropagation cannot be called');\n }\n /** @deprecated */\n stopPropagation() {\n throw new Error('stopPropagation cannot be called');\n }\n}\n_AppReadyEvent_detail = new WeakMap();\n/**\n * @deprecated Use {@link getWallets} instead.\n *\n * @group Deprecated\n */\nexport function DEPRECATED_getWallets() {\n if (wallets)\n return wallets;\n wallets = getWallets();\n if (typeof window === 'undefined')\n return wallets;\n const callbacks = window.navigator.wallets || [];\n if (!Array.isArray(callbacks)) {\n console.error('window.navigator.wallets is not an array');\n return wallets;\n }\n const { register } = wallets;\n const push = (...callbacks) => callbacks.forEach((callback) => guard(() => callback({ register })));\n try {\n Object.defineProperty(window.navigator, 'wallets', {\n value: Object.freeze({ push }),\n });\n }\n catch (error) {\n console.error('window.navigator.wallets could not be set');\n return wallets;\n }\n push(...callbacks);\n return wallets;\n}\n//# sourceMappingURL=wallets.js.map","import { SolanaMobileWalletAdapterWalletName } from '@solana-mobile/wallet-adapter-mobile';\nimport { WalletReadyState } from '@solana/wallet-adapter-base';\nexport var Environment;\n(function (Environment) {\n Environment[Environment[\"DESKTOP_WEB\"] = 0] = \"DESKTOP_WEB\";\n Environment[Environment[\"MOBILE_WEB\"] = 1] = \"MOBILE_WEB\";\n})(Environment || (Environment = {}));\nfunction isWebView(userAgentString) {\n return /(WebView|Version\\/.+(Chrome)\\/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)|; wv\\).+(Chrome)\\/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+))/i.test(userAgentString);\n}\nexport default function getEnvironment({ adapters, userAgentString }) {\n if (adapters.some((adapter) => adapter.name !== SolanaMobileWalletAdapterWalletName &&\n adapter.readyState === WalletReadyState.Installed)) {\n /**\n * There are only two ways a browser extension adapter should be able to reach `Installed` status:\n *\n * 1. Its browser extension is installed.\n * 2. The app is running on a mobile wallet's in-app browser.\n *\n * In either case, we consider the environment to be desktop-like.\n */\n return Environment.DESKTOP_WEB;\n }\n if (userAgentString &&\n // Step 1: Check whether we're on a platform that supports MWA at all.\n /android/i.test(userAgentString) &&\n // Step 2: Determine that we are *not* running in a WebView.\n !isWebView(userAgentString)) {\n return Environment.MOBILE_WEB;\n }\n else {\n return Environment.DESKTOP_WEB;\n }\n}\n//# sourceMappingURL=getEnvironment.js.map","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _StandardWalletAdapter_instances, _StandardWalletAdapter_account, _StandardWalletAdapter_publicKey, _StandardWalletAdapter_connecting, _StandardWalletAdapter_off, _StandardWalletAdapter_wallet, _StandardWalletAdapter_supportedTransactionVersions, _StandardWalletAdapter_readyState, _StandardWalletAdapter_connected, _StandardWalletAdapter_disconnected, _StandardWalletAdapter_changed, _StandardWalletAdapter_signTransaction, _StandardWalletAdapter_signAllTransactions, _StandardWalletAdapter_signMessage;\nimport { BaseWalletAdapter, isVersionedTransaction, WalletAccountError, WalletConfigError, WalletConnectionError, WalletDisconnectedError, WalletDisconnectionError, WalletError, WalletNotConnectedError, WalletNotReadyError, WalletPublicKeyError, WalletReadyState, WalletSendTransactionError, WalletSignMessageError, WalletSignTransactionError, } from '@solana/wallet-adapter-base';\nimport { SolanaSignAndSendTransaction, SolanaSignMessage, SolanaSignTransaction, } from '@solana/wallet-standard-features';\nimport { getChainForEndpoint, getCommitment } from '@solana/wallet-standard-util';\nimport { PublicKey, Transaction, VersionedTransaction } from '@solana/web3.js';\nimport { StandardConnect, StandardDisconnect, StandardEvents, } from '@wallet-standard/features';\nimport { arraysEqual } from '@wallet-standard/wallet';\nimport bs58 from 'bs58';\n/** TODO: docs */\nexport class StandardWalletAdapter extends BaseWalletAdapter {\n constructor({ wallet }) {\n super();\n _StandardWalletAdapter_instances.add(this);\n _StandardWalletAdapter_account.set(this, void 0);\n _StandardWalletAdapter_publicKey.set(this, void 0);\n _StandardWalletAdapter_connecting.set(this, void 0);\n _StandardWalletAdapter_off.set(this, void 0);\n _StandardWalletAdapter_wallet.set(this, void 0);\n _StandardWalletAdapter_supportedTransactionVersions.set(this, void 0);\n _StandardWalletAdapter_readyState.set(this, typeof window === 'undefined' || typeof document === 'undefined'\n ? WalletReadyState.Unsupported\n : WalletReadyState.Installed);\n _StandardWalletAdapter_changed.set(this, (properties) => {\n // If the adapter isn't connected or the change doesn't include accounts, do nothing.\n if (!__classPrivateFieldGet(this, _StandardWalletAdapter_account, \"f\") || !__classPrivateFieldGet(this, _StandardWalletAdapter_publicKey, \"f\") || !('accounts' in properties))\n return;\n const account = __classPrivateFieldGet(this, _StandardWalletAdapter_wallet, \"f\").accounts[0];\n // If there's no connected account, disconnect the adapter.\n if (!account) {\n __classPrivateFieldGet(this, _StandardWalletAdapter_instances, \"m\", _StandardWalletAdapter_disconnected).call(this);\n this.emit('error', new WalletDisconnectedError());\n this.emit('disconnect');\n return;\n }\n // If the account hasn't actually changed, do nothing.\n if (account === __classPrivateFieldGet(this, _StandardWalletAdapter_account, \"f\"))\n return;\n let publicKey;\n // If the account public key isn't valid, disconnect the adapter.\n try {\n publicKey = new PublicKey(account.publicKey);\n }\n catch (error) {\n __classPrivateFieldGet(this, _StandardWalletAdapter_instances, \"m\", _StandardWalletAdapter_disconnected).call(this);\n this.emit('error', new WalletPublicKeyError(error?.message));\n this.emit('disconnect');\n return;\n }\n // Change the adapter's account and public key and emit an event.\n __classPrivateFieldGet(this, _StandardWalletAdapter_instances, \"m\", _StandardWalletAdapter_connected).call(this, account, publicKey);\n this.emit('connect', publicKey);\n });\n __classPrivateFieldSet(this, _StandardWalletAdapter_wallet, wallet, \"f\");\n const supportedTransactionVersions = SolanaSignAndSendTransaction in wallet.features\n ? wallet.features[SolanaSignAndSendTransaction].supportedTransactionVersions\n : wallet.features[SolanaSignTransaction].supportedTransactionVersions;\n __classPrivateFieldSet(this, _StandardWalletAdapter_supportedTransactionVersions, arraysEqual(supportedTransactionVersions, ['legacy'])\n ? null\n : new Set(supportedTransactionVersions), \"f\");\n __classPrivateFieldSet(this, _StandardWalletAdapter_account, null, \"f\");\n __classPrivateFieldSet(this, _StandardWalletAdapter_publicKey, null, \"f\");\n __classPrivateFieldSet(this, _StandardWalletAdapter_connecting, false, \"f\");\n }\n get supportedTransactionVersions() {\n return __classPrivateFieldGet(this, _StandardWalletAdapter_supportedTransactionVersions, \"f\");\n }\n get name() {\n return __classPrivateFieldGet(this, _StandardWalletAdapter_wallet, \"f\").name;\n }\n get icon() {\n return __classPrivateFieldGet(this, _StandardWalletAdapter_wallet, \"f\").icon;\n }\n get url() {\n return 'https://github.com/solana-labs/wallet-standard';\n }\n get publicKey() {\n return __classPrivateFieldGet(this, _StandardWalletAdapter_publicKey, \"f\");\n }\n get connecting() {\n return __classPrivateFieldGet(this, _StandardWalletAdapter_connecting, \"f\");\n }\n get readyState() {\n return __classPrivateFieldGet(this, _StandardWalletAdapter_readyState, \"f\");\n }\n get wallet() {\n return __classPrivateFieldGet(this, _StandardWalletAdapter_wallet, \"f\");\n }\n get standard() {\n return true;\n }\n async connect() {\n try {\n if (this.connected || this.connecting)\n return;\n if (__classPrivateFieldGet(this, _StandardWalletAdapter_readyState, \"f\") !== WalletReadyState.Installed)\n throw new WalletNotReadyError();\n __classPrivateFieldSet(this, _StandardWalletAdapter_connecting, true, \"f\");\n if (!__classPrivateFieldGet(this, _StandardWalletAdapter_wallet, \"f\").accounts.length) {\n try {\n await __classPrivateFieldGet(this, _StandardWalletAdapter_wallet, \"f\").features[StandardConnect].connect();\n }\n catch (error) {\n throw new WalletConnectionError(error?.message, error);\n }\n }\n if (!__classPrivateFieldGet(this, _StandardWalletAdapter_wallet, \"f\").accounts.length)\n throw new WalletAccountError();\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const account = __classPrivateFieldGet(this, _StandardWalletAdapter_wallet, \"f\").accounts[0];\n let publicKey;\n try {\n publicKey = new PublicKey(account.publicKey);\n }\n catch (error) {\n throw new WalletPublicKeyError(error?.message, error);\n }\n __classPrivateFieldSet(this, _StandardWalletAdapter_off, __classPrivateFieldGet(this, _StandardWalletAdapter_wallet, \"f\").features[StandardEvents].on('change', __classPrivateFieldGet(this, _StandardWalletAdapter_changed, \"f\")), \"f\");\n __classPrivateFieldGet(this, _StandardWalletAdapter_instances, \"m\", _StandardWalletAdapter_connected).call(this, account, publicKey);\n this.emit('connect', publicKey);\n }\n catch (error) {\n this.emit('error', error);\n throw error;\n }\n finally {\n __classPrivateFieldSet(this, _StandardWalletAdapter_connecting, false, \"f\");\n }\n }\n async disconnect() {\n if (StandardDisconnect in __classPrivateFieldGet(this, _StandardWalletAdapter_wallet, \"f\").features) {\n try {\n await __classPrivateFieldGet(this, _StandardWalletAdapter_wallet, \"f\").features[StandardDisconnect].disconnect();\n }\n catch (error) {\n this.emit('error', new WalletDisconnectionError(error?.message, error));\n }\n }\n __classPrivateFieldGet(this, _StandardWalletAdapter_instances, \"m\", _StandardWalletAdapter_disconnected).call(this);\n this.emit('disconnect');\n }\n async sendTransaction(transaction, connection, options = {}) {\n try {\n const account = __classPrivateFieldGet(this, _StandardWalletAdapter_account, \"f\");\n if (!account)\n throw new WalletNotConnectedError();\n let feature;\n if (SolanaSignAndSendTransaction in __classPrivateFieldGet(this, _StandardWalletAdapter_wallet, \"f\").features) {\n if (account.features.includes(SolanaSignAndSendTransaction)) {\n feature = SolanaSignAndSendTransaction;\n }\n else if (SolanaSignTransaction in __classPrivateFieldGet(this, _StandardWalletAdapter_wallet, \"f\").features &&\n account.features.includes(SolanaSignTransaction)) {\n feature = SolanaSignTransaction;\n }\n else {\n throw new WalletAccountError();\n }\n }\n else if (SolanaSignTransaction in __classPrivateFieldGet(this, _StandardWalletAdapter_wallet, \"f\").features) {\n if (!account.features.includes(SolanaSignTransaction))\n throw new WalletAccountError();\n feature = SolanaSignTransaction;\n }\n else {\n throw new WalletConfigError();\n }\n const chain = getChainForEndpoint(connection.rpcEndpoint);\n if (!account.chains.includes(chain))\n throw new WalletSendTransactionError();\n try {\n const { signers, ...sendOptions } = options;\n let serializedTransaction;\n if (isVersionedTransaction(transaction)) {\n signers?.length && transaction.sign(signers);\n serializedTransaction = transaction.serialize();\n }\n else {\n transaction = (await this.prepareTransaction(transaction, connection, sendOptions));\n signers?.length && transaction.partialSign(...signers);\n serializedTransaction = new Uint8Array(transaction.serialize({\n requireAllSignatures: false,\n verifySignatures: false,\n }));\n }\n if (feature === SolanaSignAndSendTransaction) {\n const [output] = await __classPrivateFieldGet(this, _StandardWalletAdapter_wallet, \"f\").features[SolanaSignAndSendTransaction].signAndSendTransaction({\n account,\n chain,\n transaction: serializedTransaction,\n options: {\n preflightCommitment: getCommitment(sendOptions.preflightCommitment || connection.commitment),\n skipPreflight: sendOptions.skipPreflight,\n maxRetries: sendOptions.maxRetries,\n minContextSlot: sendOptions.minContextSlot,\n },\n });\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return bs58.encode(output.signature);\n }\n else {\n const [output] = await __classPrivateFieldGet(this, _StandardWalletAdapter_wallet, \"f\").features[SolanaSignTransaction].signTransaction({\n account,\n chain,\n transaction: serializedTransaction,\n options: {\n preflightCommitment: getCommitment(sendOptions.preflightCommitment || connection.commitment),\n minContextSlot: sendOptions.minContextSlot,\n },\n });\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return await connection.sendRawTransaction(output.signedTransaction, {\n ...sendOptions,\n preflightCommitment: getCommitment(sendOptions.preflightCommitment || connection.commitment),\n });\n }\n }\n catch (error) {\n if (error instanceof WalletError)\n throw error;\n throw new WalletSendTransactionError(error?.message, error);\n }\n }\n catch (error) {\n this.emit('error', error);\n throw error;\n }\n }\n}\n_StandardWalletAdapter_account = new WeakMap(), _StandardWalletAdapter_publicKey = new WeakMap(), _StandardWalletAdapter_connecting = new WeakMap(), _StandardWalletAdapter_off = new WeakMap(), _StandardWalletAdapter_wallet = new WeakMap(), _StandardWalletAdapter_supportedTransactionVersions = new WeakMap(), _StandardWalletAdapter_readyState = new WeakMap(), _StandardWalletAdapter_changed = new WeakMap(), _StandardWalletAdapter_instances = new WeakSet(), _StandardWalletAdapter_connected = function _StandardWalletAdapter_connected(account, publicKey) {\n __classPrivateFieldSet(this, _StandardWalletAdapter_account, account, \"f\");\n __classPrivateFieldSet(this, _StandardWalletAdapter_publicKey, publicKey, \"f\");\n if (account?.features.includes(SolanaSignTransaction)) {\n this.signTransaction = __classPrivateFieldGet(this, _StandardWalletAdapter_instances, \"m\", _StandardWalletAdapter_signTransaction);\n this.signAllTransactions = __classPrivateFieldGet(this, _StandardWalletAdapter_instances, \"m\", _StandardWalletAdapter_signAllTransactions);\n }\n else {\n delete this.signTransaction;\n delete this.signAllTransactions;\n }\n if (account?.features.includes(SolanaSignMessage)) {\n this.signMessage = __classPrivateFieldGet(this, _StandardWalletAdapter_instances, \"m\", _StandardWalletAdapter_signMessage);\n }\n else {\n delete this.signMessage;\n }\n}, _StandardWalletAdapter_disconnected = function _StandardWalletAdapter_disconnected() {\n const off = __classPrivateFieldGet(this, _StandardWalletAdapter_off, \"f\");\n if (off) {\n __classPrivateFieldSet(this, _StandardWalletAdapter_off, undefined, \"f\");\n off();\n }\n __classPrivateFieldGet(this, _StandardWalletAdapter_instances, \"m\", _StandardWalletAdapter_connected).call(this, null, null);\n}, _StandardWalletAdapter_signTransaction = async function _StandardWalletAdapter_signTransaction(transaction) {\n try {\n const account = __classPrivateFieldGet(this, _StandardWalletAdapter_account, \"f\");\n if (!account)\n throw new WalletNotConnectedError();\n if (!(SolanaSignTransaction in __classPrivateFieldGet(this, _StandardWalletAdapter_wallet, \"f\").features))\n throw new WalletConfigError();\n if (!account.features.includes(SolanaSignTransaction))\n throw new WalletAccountError();\n try {\n const signedTransactions = await __classPrivateFieldGet(this, _StandardWalletAdapter_wallet, \"f\").features[SolanaSignTransaction].signTransaction({\n account,\n transaction: isVersionedTransaction(transaction)\n ? transaction.serialize()\n : new Uint8Array(transaction.serialize({\n requireAllSignatures: false,\n verifySignatures: false,\n })),\n });\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const serializedTransaction = signedTransactions[0].signedTransaction;\n return (isVersionedTransaction(transaction)\n ? VersionedTransaction.deserialize(serializedTransaction)\n : Transaction.from(serializedTransaction));\n }\n catch (error) {\n if (error instanceof WalletError)\n throw error;\n throw new WalletSignTransactionError(error?.message, error);\n }\n }\n catch (error) {\n this.emit('error', error);\n throw error;\n }\n}, _StandardWalletAdapter_signAllTransactions = async function _StandardWalletAdapter_signAllTransactions(transactions) {\n try {\n const account = __classPrivateFieldGet(this, _StandardWalletAdapter_account, \"f\");\n if (!account)\n throw new WalletNotConnectedError();\n if (!(SolanaSignTransaction in __classPrivateFieldGet(this, _StandardWalletAdapter_wallet, \"f\").features))\n throw new WalletConfigError();\n if (!account.features.includes(SolanaSignTransaction))\n throw new WalletSignTransactionError();\n try {\n const signedTransactions = await __classPrivateFieldGet(this, _StandardWalletAdapter_wallet, \"f\").features[SolanaSignTransaction].signTransaction(...transactions.map((transaction) => ({\n account,\n transaction: isVersionedTransaction(transaction)\n ? transaction.serialize()\n : new Uint8Array(transaction.serialize({\n requireAllSignatures: false,\n verifySignatures: false,\n })),\n })));\n return transactions.map((transaction, index) => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const signedTransaction = signedTransactions[index].signedTransaction;\n return (isVersionedTransaction(transaction)\n ? VersionedTransaction.deserialize(signedTransaction)\n : Transaction.from(signedTransaction));\n });\n }\n catch (error) {\n throw new WalletSignTransactionError(error?.message, error);\n }\n }\n catch (error) {\n this.emit('error', error);\n throw error;\n }\n}, _StandardWalletAdapter_signMessage = async function _StandardWalletAdapter_signMessage(message) {\n try {\n const account = __classPrivateFieldGet(this, _StandardWalletAdapter_account, \"f\");\n if (!account)\n throw new WalletNotConnectedError();\n if (!(SolanaSignMessage in __classPrivateFieldGet(this, _StandardWalletAdapter_wallet, \"f\").features))\n throw new WalletConfigError();\n if (!account.features.includes(SolanaSignMessage))\n throw new WalletSignMessageError();\n try {\n const signedMessages = await __classPrivateFieldGet(this, _StandardWalletAdapter_wallet, \"f\").features[SolanaSignMessage].signMessage({\n account,\n message,\n });\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return signedMessages[0].signature;\n }\n catch (error) {\n throw new WalletSignMessageError(error?.message, error);\n }\n }\n catch (error) {\n this.emit('error', error);\n throw error;\n }\n};\n//# sourceMappingURL=adapter.js.map","import { VersionedMessage, Transaction, VersionedTransaction } from '@solana/web3.js';\nimport { transact as transact$1 } from '@solana-mobile/mobile-wallet-adapter-protocol';\nimport bs58 from 'bs58';\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\r\nfunction __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\nfunction __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}\n\nfunction fromUint8Array(byteArray) {\n return window.btoa(String.fromCharCode.call(null, ...byteArray));\n}\nfunction toUint8Array(base64EncodedByteArray) {\n return new Uint8Array(window\n .atob(base64EncodedByteArray)\n .split('')\n .map((c) => c.charCodeAt(0)));\n}\n\nfunction getPayloadFromTransaction(transaction) {\n const serializedTransaction = 'version' in transaction\n ? transaction.serialize()\n : transaction.serialize({\n requireAllSignatures: false,\n verifySignatures: false,\n });\n const payload = fromUint8Array(serializedTransaction);\n return payload;\n}\nfunction getTransactionFromWireMessage(byteArray) {\n const version = VersionedMessage.deserializeMessageVersion(byteArray);\n if (version === 'legacy') {\n return Transaction.from(byteArray);\n }\n else {\n return VersionedTransaction.deserialize(byteArray);\n }\n}\nfunction transact(callback, config) {\n return __awaiter(this, void 0, void 0, function* () {\n const augmentedCallback = (wallet) => {\n const augmentedAPI = new Proxy({}, {\n get(target, p) {\n if (target[p] == null) {\n switch (p) {\n case 'signAndSendTransactions':\n target[p] = function (_a) {\n var { minContextSlot, transactions } = _a, rest = __rest(_a, [\"minContextSlot\", \"transactions\"]);\n return __awaiter(this, void 0, void 0, function* () {\n const payloads = transactions.map(getPayloadFromTransaction);\n const { signatures: base64EncodedSignatures } = yield wallet.signAndSendTransactions(Object.assign(Object.assign(Object.assign({}, rest), (minContextSlot != null\n ? { options: { min_context_slot: minContextSlot } }\n : null)), { payloads }));\n const signatures = base64EncodedSignatures.map(toUint8Array).map(bs58.encode);\n return signatures;\n });\n };\n break;\n case 'signMessages':\n target[p] = function (_a) {\n var { payloads } = _a, rest = __rest(_a, [\"payloads\"]);\n return __awaiter(this, void 0, void 0, function* () {\n const base64EncodedPayloads = payloads.map(fromUint8Array);\n const { signed_payloads: base64EncodedSignedMessages } = yield wallet.signMessages(Object.assign(Object.assign({}, rest), { payloads: base64EncodedPayloads }));\n const signedMessages = base64EncodedSignedMessages.map(toUint8Array);\n return signedMessages;\n });\n };\n break;\n case 'signTransactions':\n target[p] = function (_a) {\n var { transactions } = _a, rest = __rest(_a, [\"transactions\"]);\n return __awaiter(this, void 0, void 0, function* () {\n const payloads = transactions.map(getPayloadFromTransaction);\n const { signed_payloads: base64EncodedCompiledTransactions } = yield wallet.signTransactions(Object.assign(Object.assign({}, rest), { payloads }));\n const compiledTransactions = base64EncodedCompiledTransactions.map(toUint8Array);\n const signedTransactions = compiledTransactions.map(getTransactionFromWireMessage);\n return signedTransactions;\n });\n };\n break;\n default: {\n target[p] = wallet[p];\n break;\n }\n }\n }\n return target[p];\n },\n defineProperty() {\n return false;\n },\n deleteProperty() {\n return false;\n },\n });\n return callback(augmentedAPI);\n };\n return yield transact$1(augmentedCallback, config);\n });\n}\n\nexport { transact };\n","import { BaseMessageSignerWalletAdapter, WalletReadyState, WalletPublicKeyError, WalletNotReadyError, WalletConnectionError, WalletDisconnectedError, WalletNotConnectedError, WalletSignTransactionError, WalletSendTransactionError, WalletSignMessageError } from '@solana/wallet-adapter-base';\nimport { PublicKey } from '@solana/web3.js';\nimport { transact } from '@solana-mobile/mobile-wallet-adapter-protocol-web3js';\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\r\nfunction __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}\n\nfunction toUint8Array(base64EncodedByteArray) {\n return new Uint8Array(window\n .atob(base64EncodedByteArray)\n .split('')\n .map((c) => c.charCodeAt(0)));\n}\n\nfunction getIsSupported() {\n return (typeof window !== 'undefined' &&\n window.isSecureContext &&\n typeof document !== 'undefined' &&\n /android/i.test(navigator.userAgent));\n}\n\nconst SolanaMobileWalletAdapterWalletName = 'Mobile Wallet Adapter';\nconst SIGNATURE_LENGTH_IN_BYTES = 64;\nfunction getPublicKeyFromAddress(address) {\n const publicKeyByteArray = toUint8Array(address);\n return new PublicKey(publicKeyByteArray);\n}\nfunction isVersionedTransaction(transaction) {\n return 'version' in transaction;\n}\nclass SolanaMobileWalletAdapter extends BaseMessageSignerWalletAdapter {\n constructor(config) {\n super();\n this.supportedTransactionVersions = new Set(\n // FIXME(#244): We can't actually know what versions are supported until we know which wallet we're talking to.\n ['legacy', 0]);\n this.name = SolanaMobileWalletAdapterWalletName;\n this.url = 'https://solanamobile.com/wallets';\n this.icon = 'data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiBoZWlnaHQ9IjI4IiB3aWR0aD0iMjgiIHZpZXdCb3g9Ii0zIDAgMjggMjgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iI0RDQjhGRiI+PHBhdGggZD0iTTE3LjQgMTcuNEgxNXYyLjRoMi40di0yLjRabTEuMi05LjZoLTIuNHYyLjRoMi40VjcuOFoiLz48cGF0aCBkPSJNMjEuNiAzVjBoLTIuNHYzaC0zLjZWMGgtMi40djNoLTIuNHY2LjZINC41YTIuMSAyLjEgMCAxIDEgMC00LjJoMi43VjNINC41QTQuNSA0LjUgMCAwIDAgMCA3LjVWMjRoMjEuNnYtNi42aC0yLjR2NC4ySDIuNFYxMS41Yy41LjMgMS4yLjQgMS44LjVoNy41QTYuNiA2LjYgMCAwIDAgMjQgOVYzaC0yLjRabTAgNS43YTQuMiA0LjIgMCAxIDEtOC40IDBWNS40aDguNHYzLjNaIi8+PC9nPjwvc3ZnPg==';\n this._connecting = false;\n /**\n * Every time the connection is recycled in some way (eg. `disconnect()` is called)\n * increment this and use it to make sure that `transact` calls from the previous\n * 'generation' don't continue to do work and throw exceptions.\n */\n this._connectionGeneration = 0;\n this._readyState = getIsSupported() ? WalletReadyState.Loadable : WalletReadyState.Unsupported;\n this._authorizationResultCache = config.authorizationResultCache;\n this._addressSelector = config.addressSelector;\n this._appIdentity = config.appIdentity;\n this._cluster = config.cluster;\n this._onWalletNotFound = config.onWalletNotFound;\n if (this._readyState !== WalletReadyState.Unsupported) {\n this._authorizationResultCache.get().then((authorizationResult) => {\n if (authorizationResult) {\n // Having a prior authorization result is, right now, the best\n // indication that a mobile wallet is installed. There is no API\n // we can use to test for whether the association URI is supported.\n this.declareWalletAsInstalled();\n }\n });\n }\n }\n get publicKey() {\n if (this._publicKey == null && this._selectedAddress != null) {\n try {\n this._publicKey = getPublicKeyFromAddress(this._selectedAddress);\n }\n catch (e) {\n throw new WalletPublicKeyError((e instanceof Error && (e === null || e === void 0 ? void 0 : e.message)) || 'Unknown error', e);\n }\n }\n return this._publicKey ? this._publicKey : null;\n }\n get connected() {\n return !!this._authorizationResult;\n }\n get connecting() {\n return this._connecting;\n }\n get readyState() {\n return this._readyState;\n }\n declareWalletAsInstalled() {\n if (this._readyState !== WalletReadyState.Installed) {\n this.emit('readyStateChange', (this._readyState = WalletReadyState.Installed));\n }\n }\n runWithGuard(callback) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n return yield callback();\n }\n catch (e) {\n this.emit('error', e);\n throw e;\n }\n });\n }\n /** @deprecated Use `autoConnect()` instead. */\n autoConnect_DO_NOT_USE_OR_YOU_WILL_BE_FIRED() {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.autoConnect();\n });\n }\n autoConnect() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this.connecting || this.connected) {\n return;\n }\n return yield this.runWithGuard(() => __awaiter(this, void 0, void 0, function* () {\n if (this._readyState !== WalletReadyState.Installed && this._readyState !== WalletReadyState.Loadable) {\n throw new WalletNotReadyError();\n }\n this._connecting = true;\n try {\n const cachedAuthorizationResult = yield this._authorizationResultCache.get();\n if (cachedAuthorizationResult) {\n // TODO: Evaluate whether there's any threat to not `awaiting` this expression\n this.handleAuthorizationResult(cachedAuthorizationResult);\n }\n }\n catch (e) {\n throw new WalletConnectionError((e instanceof Error && e.message) || 'Unknown error', e);\n }\n finally {\n this._connecting = false;\n }\n }));\n });\n }\n connect() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this.connecting || this.connected) {\n return;\n }\n return yield this.runWithGuard(() => __awaiter(this, void 0, void 0, function* () {\n if (this._readyState !== WalletReadyState.Installed && this._readyState !== WalletReadyState.Loadable) {\n throw new WalletNotReadyError();\n }\n this._connecting = true;\n try {\n const cachedAuthorizationResult = yield this._authorizationResultCache.get();\n if (cachedAuthorizationResult) {\n // TODO: Evaluate whether there's any threat to not `awaiting` this expression\n this.handleAuthorizationResult(cachedAuthorizationResult);\n return;\n }\n yield this.transact((wallet) => __awaiter(this, void 0, void 0, function* () {\n const authorizationResult = yield wallet.authorize({\n cluster: this._cluster,\n identity: this._appIdentity,\n });\n // TODO: Evaluate whether there's any threat to not `awaiting` this expression\n Promise.all([\n this._authorizationResultCache.set(authorizationResult),\n this.handleAuthorizationResult(authorizationResult),\n ]);\n }));\n }\n catch (e) {\n throw new WalletConnectionError((e instanceof Error && e.message) || 'Unknown error', e);\n }\n finally {\n this._connecting = false;\n }\n }));\n });\n }\n handleAuthorizationResult(authorizationResult) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n const didPublicKeysChange = \n // Case 1: We started from having no authorization.\n this._authorizationResult == null ||\n // Case 2: The number of authorized accounts changed.\n ((_a = this._authorizationResult) === null || _a === void 0 ? void 0 : _a.accounts.length) !== authorizationResult.accounts.length ||\n // Case 3: The new list of addresses isn't exactly the same as the old list, in the same order.\n this._authorizationResult.accounts.some((account, ii) => account.address !== authorizationResult.accounts[ii].address);\n this._authorizationResult = authorizationResult;\n this.declareWalletAsInstalled();\n if (didPublicKeysChange) {\n const nextSelectedAddress = yield this._addressSelector.select(authorizationResult.accounts.map(({ address }) => address));\n if (nextSelectedAddress !== this._selectedAddress) {\n this._selectedAddress = nextSelectedAddress;\n delete this._publicKey;\n this.emit('connect', \n // Having just set `this._selectedAddress`, `this.publicKey` is definitely non-null\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.publicKey);\n }\n }\n });\n }\n performReauthorization(wallet, authToken) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const authorizationResult = yield wallet.reauthorize({\n auth_token: authToken,\n });\n // TODO: Evaluate whether there's any threat to not `awaiting` this expression\n Promise.all([\n this._authorizationResultCache.set(authorizationResult),\n this.handleAuthorizationResult(authorizationResult),\n ]);\n }\n catch (e) {\n this.disconnect();\n throw new WalletDisconnectedError((e instanceof Error && (e === null || e === void 0 ? void 0 : e.message)) || 'Unknown error', e);\n }\n });\n }\n disconnect() {\n return __awaiter(this, void 0, void 0, function* () {\n this._authorizationResultCache.clear(); // TODO: Evaluate whether there's any threat to not `awaiting` this expression\n this._connecting = false;\n this._connectionGeneration++;\n delete this._authorizationResult;\n delete this._publicKey;\n delete this._selectedAddress;\n this.emit('disconnect');\n });\n }\n transact(callback) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n const walletUriBase = (_a = this._authorizationResult) === null || _a === void 0 ? void 0 : _a.wallet_uri_base;\n const config = walletUriBase ? { baseUri: walletUriBase } : undefined;\n const currentConnectionGeneration = this._connectionGeneration;\n try {\n return yield transact(callback, config);\n }\n catch (e) {\n if (this._connectionGeneration !== currentConnectionGeneration) {\n yield new Promise(() => { }); // Never resolve.\n }\n if (e instanceof Error &&\n e.name === 'SolanaMobileWalletAdapterError' &&\n e.code === 'ERROR_WALLET_NOT_FOUND') {\n yield this._onWalletNotFound(this);\n }\n throw e;\n }\n });\n }\n assertIsAuthorized() {\n if (!this._authorizationResult || !this._selectedAddress)\n throw new WalletNotConnectedError();\n return {\n authToken: this._authorizationResult.auth_token,\n selectedAddress: this._selectedAddress,\n };\n }\n performSignTransactions(transactions) {\n return __awaiter(this, void 0, void 0, function* () {\n const { authToken } = this.assertIsAuthorized();\n try {\n return yield this.transact((wallet) => __awaiter(this, void 0, void 0, function* () {\n yield this.performReauthorization(wallet, authToken);\n const signedTransactions = yield wallet.signTransactions({\n transactions,\n });\n return signedTransactions;\n }));\n }\n catch (error) {\n throw new WalletSignTransactionError(error === null || error === void 0 ? void 0 : error.message, error);\n }\n });\n }\n sendTransaction(transaction, connection, options) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.runWithGuard(() => __awaiter(this, void 0, void 0, function* () {\n const { authToken } = this.assertIsAuthorized();\n const minContextSlot = options === null || options === void 0 ? void 0 : options.minContextSlot;\n try {\n return yield this.transact((wallet) => __awaiter(this, void 0, void 0, function* () {\n function getTargetCommitment() {\n let targetCommitment;\n switch (connection.commitment) {\n case 'confirmed':\n case 'finalized':\n case 'processed':\n targetCommitment = connection.commitment;\n break;\n default:\n targetCommitment = 'finalized';\n }\n let targetPreflightCommitment;\n switch (options === null || options === void 0 ? void 0 : options.preflightCommitment) {\n case 'confirmed':\n case 'finalized':\n case 'processed':\n targetPreflightCommitment = options.preflightCommitment;\n break;\n case undefined:\n targetPreflightCommitment = targetCommitment;\n default:\n targetPreflightCommitment = 'finalized';\n }\n const preflightCommitmentScore = targetPreflightCommitment === 'finalized'\n ? 2\n : targetPreflightCommitment === 'confirmed'\n ? 1\n : 0;\n const targetCommitmentScore = targetCommitment === 'finalized' ? 2 : targetCommitment === 'confirmed' ? 1 : 0;\n return preflightCommitmentScore < targetCommitmentScore\n ? targetPreflightCommitment\n : targetCommitment;\n }\n const [capabilities, _1, _2] = yield Promise.all([\n wallet.getCapabilities(),\n this.performReauthorization(wallet, authToken),\n isVersionedTransaction(transaction)\n ? null\n : /**\n * Unlike versioned transactions, legacy `Transaction` objects\n * may not have an associated `feePayer` or `recentBlockhash`.\n * This code exists to patch them up in case they are missing.\n */\n (() => __awaiter(this, void 0, void 0, function* () {\n var _a;\n transaction.feePayer || (transaction.feePayer = (_a = this.publicKey) !== null && _a !== void 0 ? _a : undefined);\n if (transaction.recentBlockhash == null) {\n const { blockhash } = yield connection.getLatestBlockhash({\n commitment: getTargetCommitment(),\n });\n transaction.recentBlockhash = blockhash;\n }\n }))(),\n ]);\n if (capabilities.supports_sign_and_send_transactions) {\n const signatures = yield wallet.signAndSendTransactions({\n minContextSlot,\n transactions: [transaction],\n });\n return signatures[0];\n }\n else {\n const [signedTransaction] = yield wallet.signTransactions({\n transactions: [transaction],\n });\n if (isVersionedTransaction(signedTransaction)) {\n return yield connection.sendTransaction(signedTransaction);\n }\n else {\n const serializedTransaction = signedTransaction.serialize();\n return yield connection.sendRawTransaction(serializedTransaction, Object.assign(Object.assign({}, options), { preflightCommitment: getTargetCommitment() }));\n }\n }\n }));\n }\n catch (error) {\n throw new WalletSendTransactionError(error === null || error === void 0 ? void 0 : error.message, error);\n }\n }));\n });\n }\n signTransaction(transaction) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.runWithGuard(() => __awaiter(this, void 0, void 0, function* () {\n const [signedTransaction] = yield this.performSignTransactions([transaction]);\n return signedTransaction;\n }));\n });\n }\n signAllTransactions(transactions) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.runWithGuard(() => __awaiter(this, void 0, void 0, function* () {\n const signedTransactions = yield this.performSignTransactions(transactions);\n return signedTransactions;\n }));\n });\n }\n signMessage(message) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.runWithGuard(() => __awaiter(this, void 0, void 0, function* () {\n const { authToken, selectedAddress } = this.assertIsAuthorized();\n try {\n return yield this.transact((wallet) => __awaiter(this, void 0, void 0, function* () {\n yield this.performReauthorization(wallet, authToken);\n const [signedMessage] = yield wallet.signMessages({\n addresses: [selectedAddress],\n payloads: [message],\n });\n const signature = signedMessage.slice(-SIGNATURE_LENGTH_IN_BYTES);\n return signature;\n }));\n }\n catch (error) {\n throw new WalletSignMessageError(error === null || error === void 0 ? void 0 : error.message, error);\n }\n }));\n });\n }\n}\n\nfunction createDefaultAddressSelector() {\n return {\n select(addresses) {\n return __awaiter(this, void 0, void 0, function* () {\n return addresses[0];\n });\n },\n };\n}\n\nconst CACHE_KEY = 'SolanaMobileWalletAdapterDefaultAuthorizationCache';\nfunction createDefaultAuthorizationResultCache() {\n let storage;\n try {\n storage = window.localStorage;\n // eslint-disable-next-line no-empty\n }\n catch (_a) { }\n return {\n clear() {\n return __awaiter(this, void 0, void 0, function* () {\n if (!storage) {\n return;\n }\n try {\n storage.removeItem(CACHE_KEY);\n // eslint-disable-next-line no-empty\n }\n catch (_a) { }\n });\n },\n get() {\n return __awaiter(this, void 0, void 0, function* () {\n if (!storage) {\n return;\n }\n try {\n return JSON.parse(storage.getItem(CACHE_KEY)) || undefined;\n // eslint-disable-next-line no-empty\n }\n catch (_a) { }\n });\n },\n set(authorizationResult) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!storage) {\n return;\n }\n try {\n storage.setItem(CACHE_KEY, JSON.stringify(authorizationResult));\n // eslint-disable-next-line no-empty\n }\n catch (_a) { }\n });\n },\n };\n}\n\nfunction defaultWalletNotFoundHandler(mobileWalletAdapter) {\n return __awaiter(this, void 0, void 0, function* () {\n if (typeof window !== 'undefined') {\n window.location.assign(mobileWalletAdapter.url);\n }\n });\n}\nfunction createDefaultWalletNotFoundHandler() {\n return defaultWalletNotFoundHandler;\n}\n\nexport { SolanaMobileWalletAdapter, SolanaMobileWalletAdapterWalletName, createDefaultAddressSelector, createDefaultAuthorizationResultCache, createDefaultWalletNotFoundHandler };\n","/** Name of the feature. */\nexport const StandardConnect = 'standard:connect';\n/**\n * @deprecated Use {@link StandardConnect} instead.\n *\n * @group Deprecated\n */\nexport const Connect = StandardConnect;\n//# sourceMappingURL=connect.js.map","/** Name of the feature. */\nexport const StandardEvents = 'standard:events';\n/**\n * @deprecated Use {@link StandardEvents} instead.\n *\n * @group Deprecated\n */\nexport const Events = StandardEvents;\n//# sourceMappingURL=events.js.map","import { isWalletAdapterCompatibleStandardWallet, } from '@solana/wallet-adapter-base';\n/**\n * @deprecated Use `isWalletAdapterCompatibleStandardWallet` from `@solana/wallet-adapter-base` instead.\n *\n * @group Deprecated\n */\nexport const isWalletAdapterCompatibleWallet = isWalletAdapterCompatibleStandardWallet;\n//# sourceMappingURL=types.js.map","import { SolanaSignAndSendTransaction, SolanaSignTransaction, } from '@solana/wallet-standard-features';\nimport { StandardConnect, StandardEvents, } from '@wallet-standard/features';\nexport function isWalletAdapterCompatibleStandardWallet(wallet) {\n return (StandardConnect in wallet.features &&\n StandardEvents in wallet.features &&\n (SolanaSignAndSendTransaction in wallet.features || SolanaSignTransaction in wallet.features));\n}\n//# sourceMappingURL=standard.js.map","/** Name of the feature. */\nexport const SolanaSignAndSendTransaction = 'solana:signAndSendTransaction';\n//# sourceMappingURL=signAndSendTransaction.js.map","/** Name of the feature. */\nexport const SolanaSignTransaction = 'solana:signTransaction';\n//# sourceMappingURL=signTransaction.js.map","/** Name of the feature. */\nexport const SolanaSignMessage = 'solana:signMessage';\n//# sourceMappingURL=signMessage.js.map","/** Solana Mainnet (beta) cluster, e.g. https://api.mainnet-beta.solana.com */\nexport const SOLANA_MAINNET_CHAIN = 'solana:mainnet';\n/** Solana Devnet cluster, e.g. https://api.devnet.solana.com */\nexport const SOLANA_DEVNET_CHAIN = 'solana:devnet';\n/** Solana Testnet cluster, e.g. https://api.testnet.solana.com */\nexport const SOLANA_TESTNET_CHAIN = 'solana:testnet';\n/** Solana Localnet cluster, e.g. http://localhost:8899 */\nexport const SOLANA_LOCALNET_CHAIN = 'solana:localnet';\n/** Array of all Solana clusters */\nexport const SOLANA_CHAINS = [\n SOLANA_MAINNET_CHAIN,\n SOLANA_DEVNET_CHAIN,\n SOLANA_TESTNET_CHAIN,\n SOLANA_LOCALNET_CHAIN,\n];\n/**\n * Check if a chain corresponds with one of the Solana clusters.\n */\nexport function isSolanaChain(chain) {\n return SOLANA_CHAINS.includes(chain);\n}\n//# sourceMappingURL=index.js.map","/**\n * TODO: docs\n */\nexport function getCommitment(commitment) {\n switch (commitment) {\n case 'processed':\n case 'confirmed':\n case 'finalized':\n case undefined:\n return commitment;\n case 'recent':\n return 'processed';\n case 'single':\n case 'singleGossip':\n return 'confirmed';\n case 'max':\n case 'root':\n return 'finalized';\n default:\n return undefined;\n }\n}\n//# sourceMappingURL=commitment.js.map","/** Name of the feature. */\nexport const StandardDisconnect = 'standard:disconnect';\n/**\n * @deprecated Use {@link StandardDisconnect} instead.\n *\n * @group Deprecated\n */\nexport const Disconnect = StandardDisconnect;\n//# sourceMappingURL=disconnect.js.map","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _ReadonlyWalletAccount_address, _ReadonlyWalletAccount_publicKey, _ReadonlyWalletAccount_chains, _ReadonlyWalletAccount_features, _ReadonlyWalletAccount_label, _ReadonlyWalletAccount_icon;\n/**\n * Base implementation of a {@link \"@wallet-standard/base\".WalletAccount} to be used or extended by a\n * {@link \"@wallet-standard/base\".Wallet}.\n *\n * `WalletAccount` properties must be read-only. This class enforces this by making all properties\n * [truly private](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/Private_class_fields) and\n * read-only, using getters for access, returning copies instead of references, and calling\n * [Object.freeze](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze)\n * on the instance.\n *\n * @group Account\n */\nexport class ReadonlyWalletAccount {\n /**\n * Create and freeze a read-only account.\n *\n * @param account Account to copy properties from.\n */\n constructor(account) {\n _ReadonlyWalletAccount_address.set(this, void 0);\n _ReadonlyWalletAccount_publicKey.set(this, void 0);\n _ReadonlyWalletAccount_chains.set(this, void 0);\n _ReadonlyWalletAccount_features.set(this, void 0);\n _ReadonlyWalletAccount_label.set(this, void 0);\n _ReadonlyWalletAccount_icon.set(this, void 0);\n if (new.target === ReadonlyWalletAccount) {\n Object.freeze(this);\n }\n __classPrivateFieldSet(this, _ReadonlyWalletAccount_address, account.address, \"f\");\n __classPrivateFieldSet(this, _ReadonlyWalletAccount_publicKey, account.publicKey.slice(), \"f\");\n __classPrivateFieldSet(this, _ReadonlyWalletAccount_chains, account.chains.slice(), \"f\");\n __classPrivateFieldSet(this, _ReadonlyWalletAccount_features, account.features.slice(), \"f\");\n __classPrivateFieldSet(this, _ReadonlyWalletAccount_label, account.label, \"f\");\n __classPrivateFieldSet(this, _ReadonlyWalletAccount_icon, account.icon, \"f\");\n }\n /** Implementation of {@link \"@wallet-standard/base\".WalletAccount.address | WalletAccount::address} */\n get address() {\n return __classPrivateFieldGet(this, _ReadonlyWalletAccount_address, \"f\");\n }\n /** Implementation of {@link \"@wallet-standard/base\".WalletAccount.publicKey | WalletAccount::publicKey} */\n get publicKey() {\n return __classPrivateFieldGet(this, _ReadonlyWalletAccount_publicKey, \"f\").slice();\n }\n /** Implementation of {@link \"@wallet-standard/base\".WalletAccount.chains | WalletAccount::chains} */\n get chains() {\n return __classPrivateFieldGet(this, _ReadonlyWalletAccount_chains, \"f\").slice();\n }\n /** Implementation of {@link \"@wallet-standard/base\".WalletAccount.features | WalletAccount::features} */\n get features() {\n return __classPrivateFieldGet(this, _ReadonlyWalletAccount_features, \"f\").slice();\n }\n /** Implementation of {@link \"@wallet-standard/base\".WalletAccount.label | WalletAccount::label} */\n get label() {\n return __classPrivateFieldGet(this, _ReadonlyWalletAccount_label, \"f\");\n }\n /** Implementation of {@link \"@wallet-standard/base\".WalletAccount.icon | WalletAccount::icon} */\n get icon() {\n return __classPrivateFieldGet(this, _ReadonlyWalletAccount_icon, \"f\");\n }\n}\n_ReadonlyWalletAccount_address = new WeakMap(), _ReadonlyWalletAccount_publicKey = new WeakMap(), _ReadonlyWalletAccount_chains = new WeakMap(), _ReadonlyWalletAccount_features = new WeakMap(), _ReadonlyWalletAccount_label = new WeakMap(), _ReadonlyWalletAccount_icon = new WeakMap();\n/**\n * Efficiently compare {@link Indexed} arrays (e.g. `Array` and `Uint8Array`).\n *\n * @param a An array.\n * @param b Another array.\n *\n * @return `true` if the arrays have the same length and elements, `false` otherwise.\n *\n * @group Util\n */\nexport function arraysEqual(a, b) {\n if (a === b)\n return true;\n const length = a.length;\n if (length !== b.length)\n return false;\n for (let i = 0; i < length; i++) {\n if (a[i] !== b[i])\n return false;\n }\n return true;\n}\n/**\n * Efficiently compare byte arrays, using {@link arraysEqual}.\n *\n * @param a A byte array.\n * @param b Another byte array.\n *\n * @return `true` if the byte arrays have the same length and bytes, `false` otherwise.\n *\n * @group Util\n */\nexport function bytesEqual(a, b) {\n return arraysEqual(a, b);\n}\n/**\n * Efficiently concatenate byte arrays without modifying them.\n *\n * @param first A byte array.\n * @param others Additional byte arrays.\n *\n * @return New byte array containing the concatenation of all the byte arrays.\n *\n * @group Util\n */\nexport function concatBytes(first, ...others) {\n const length = others.reduce((length, bytes) => length + bytes.length, first.length);\n const bytes = new Uint8Array(length);\n bytes.set(first, 0);\n for (const other of others) {\n bytes.set(other, bytes.length);\n }\n return bytes;\n}\n/**\n * Create a new object with a subset of fields from a source object.\n *\n * @param source Object to pick fields from.\n * @param keys Names of fields to pick.\n *\n * @return New object with only the picked fields.\n *\n * @group Util\n */\nexport function pick(source, ...keys) {\n const picked = {};\n for (const key of keys) {\n picked[key] = source[key];\n }\n return picked;\n}\n/**\n * Call a callback function, catch an error if it throws, and log the error without rethrowing.\n *\n * @param callback Function to call.\n *\n * @group Util\n */\nexport function guard(callback) {\n try {\n callback();\n }\n catch (error) {\n console.error(error);\n }\n}\n//# sourceMappingURL=util.js.map","import { SOLANA_DEVNET_CHAIN, SOLANA_LOCALNET_CHAIN, SOLANA_MAINNET_CHAIN, SOLANA_TESTNET_CHAIN, } from '@solana/wallet-standard-chains';\nexport const MAINNET_ENDPOINT = 'https://api.mainnet-beta.solana.com';\nexport const DEVNET_ENDPOINT = 'https://api.devnet.solana.com';\nexport const TESTNET_ENDPOINT = 'https://api.testnet.solana.com';\nexport const LOCALNET_ENDPOINT = 'http://localhost:8899';\nexport function getChainForEndpoint(endpoint) {\n if (endpoint.includes(MAINNET_ENDPOINT))\n return SOLANA_MAINNET_CHAIN;\n if (/\\bdevnet\\b/i.test(endpoint))\n return SOLANA_DEVNET_CHAIN;\n if (/\\btestnet\\b/i.test(endpoint))\n return SOLANA_TESTNET_CHAIN;\n if (/\\blocalhost\\b/i.test(endpoint) || /\\b127\\.0\\.0\\.1\\b/.test(endpoint))\n return SOLANA_LOCALNET_CHAIN;\n return SOLANA_MAINNET_CHAIN;\n}\nexport function getEndpointForChain(chain, endpoint) {\n if (endpoint)\n return endpoint;\n if (chain === SOLANA_MAINNET_CHAIN)\n return MAINNET_ENDPOINT;\n if (chain === SOLANA_DEVNET_CHAIN)\n return DEVNET_ENDPOINT;\n if (chain === SOLANA_TESTNET_CHAIN)\n return TESTNET_ENDPOINT;\n if (chain === SOLANA_LOCALNET_CHAIN)\n return LOCALNET_ENDPOINT;\n return MAINNET_ENDPOINT;\n}\n//# sourceMappingURL=endpoint.js.map","import { isWalletAdapterCompatibleWallet, StandardWalletAdapter } from '@solana/wallet-standard-wallet-adapter-base';\nimport { DEPRECATED_getWallets } from '@wallet-standard/app';\nimport { useEffect, useMemo, useRef, useState } from 'react';\nexport function useStandardWalletAdapters(adapters) {\n const { get, on } = useConstant(() => DEPRECATED_getWallets());\n const [standardAdapters, setStandardAdapters] = useState(() => wrapWalletsWithAdapters(get()));\n const warnings = useConstant(() => new Set());\n useEffect(() => {\n const listeners = [\n on('register', (...wallets) => setStandardAdapters((standardAdapters) => [...standardAdapters, ...wrapWalletsWithAdapters(wallets)])),\n on('unregister', (...wallets) => setStandardAdapters((standardAdapters) => standardAdapters.filter((standardAdapter) => wallets.some((wallet) => wallet === standardAdapter.wallet)))),\n ];\n return () => listeners.forEach((destroy) => destroy());\n }, [on]);\n return useMemo(() => [\n ...standardAdapters,\n ...adapters.filter(({ name }) => {\n if (standardAdapters.some((standardAdapter) => standardAdapter.name === name)) {\n if (!warnings.has(name)) {\n warnings.add(name);\n console.warn(`${name} was registered as a Standard Wallet. The Wallet Adapter for ${name} can be removed from your app.`);\n }\n return false;\n }\n return true;\n }),\n ], [standardAdapters, adapters, warnings]);\n}\nfunction useConstant(fn) {\n const ref = useRef();\n if (!ref.current) {\n ref.current = { value: fn() };\n }\n return ref.current.value;\n}\nfunction wrapWalletsWithAdapters(wallets) {\n return wallets.filter(isWalletAdapterCompatibleWallet).map((wallet) => new StandardWalletAdapter({ wallet }));\n}\n//# sourceMappingURL=useStandardWalletAdapters.js.map","import { WalletError } from '@solana/wallet-adapter-base';\nexport class WalletNotSelectedError extends WalletError {\n constructor() {\n super(...arguments);\n this.name = 'WalletNotSelectedError';\n }\n}\n//# sourceMappingURL=errors.js.map","import { WalletNotConnectedError, WalletNotReadyError, WalletReadyState, } from '@solana/wallet-adapter-base';\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { WalletNotSelectedError } from './errors.js';\nimport { WalletContext } from './useWallet.js';\nexport function WalletProviderBase({ children, wallets: adapters, adapter, isUnloadingRef, onAutoConnectRequest, onConnectError, onError, onSelectWallet, }) {\n const isConnectingRef = useRef(false);\n const [connecting, setConnecting] = useState(false);\n const isDisconnectingRef = useRef(false);\n const [disconnecting, setDisconnecting] = useState(false);\n const [publicKey, setPublicKey] = useState(() => adapter?.publicKey ?? null);\n const [connected, setConnected] = useState(() => adapter?.connected ?? false);\n /**\n * Store the error handlers as refs so that a change in the\n * custom error handler does not recompute other dependencies.\n */\n const onErrorRef = useRef(onError);\n useEffect(() => {\n onErrorRef.current = onError;\n return () => {\n onErrorRef.current = undefined;\n };\n }, [onError]);\n const handleErrorRef = useRef((error, adapter) => {\n if (!isUnloadingRef.current) {\n if (onErrorRef.current) {\n onErrorRef.current(error, adapter);\n }\n else {\n console.error(error, adapter);\n if (error instanceof WalletNotReadyError && typeof window !== 'undefined' && adapter) {\n window.open(adapter.url, '_blank');\n }\n }\n }\n return error;\n });\n // Wrap adapters to conform to the `Wallet` interface\n const [wallets, setWallets] = useState(() => adapters\n .map((adapter) => ({\n adapter,\n readyState: adapter.readyState,\n }))\n .filter(({ readyState }) => readyState !== WalletReadyState.Unsupported));\n // When the adapters change, start to listen for changes to their `readyState`\n useEffect(() => {\n // When the adapters change, wrap them to conform to the `Wallet` interface\n setWallets((wallets) => adapters\n .map((adapter, index) => {\n const wallet = wallets[index];\n // If the wallet hasn't changed, return the same instance\n return wallet && wallet.adapter === adapter && wallet.readyState === adapter.readyState\n ? wallet\n : {\n adapter: adapter,\n readyState: adapter.readyState,\n };\n })\n .filter(({ readyState }) => readyState !== WalletReadyState.Unsupported));\n function handleReadyStateChange(readyState) {\n setWallets((prevWallets) => {\n const index = prevWallets.findIndex(({ adapter }) => adapter === this);\n if (index === -1)\n return prevWallets;\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const { adapter } = prevWallets[index];\n return [\n ...prevWallets.slice(0, index),\n { adapter, readyState },\n ...prevWallets.slice(index + 1),\n ].filter(({ readyState }) => readyState !== WalletReadyState.Unsupported);\n });\n }\n adapters.forEach((adapter) => adapter.on('readyStateChange', handleReadyStateChange, adapter));\n return () => {\n adapters.forEach((adapter) => adapter.off('readyStateChange', handleReadyStateChange, adapter));\n };\n }, [adapter, adapters]);\n const wallet = useMemo(() => wallets.find((wallet) => wallet.adapter === adapter) ?? null, [adapter, wallets]);\n // Setup and teardown event listeners when the adapter changes\n useEffect(() => {\n if (!adapter)\n return;\n const handleConnect = (publicKey) => {\n setPublicKey(publicKey);\n isConnectingRef.current = false;\n setConnecting(false);\n setConnected(true);\n isDisconnectingRef.current = false;\n setDisconnecting(false);\n };\n const handleDisconnect = () => {\n if (isUnloadingRef.current)\n return;\n setPublicKey(null);\n isConnectingRef.current = false;\n setConnecting(false);\n setConnected(false);\n isDisconnectingRef.current = false;\n setDisconnecting(false);\n };\n const handleError = (error) => {\n handleErrorRef.current(error, adapter);\n };\n adapter.on('connect', handleConnect);\n adapter.on('disconnect', handleDisconnect);\n adapter.on('error', handleError);\n return () => {\n adapter.off('connect', handleConnect);\n adapter.off('disconnect', handleDisconnect);\n adapter.off('error', handleError);\n handleDisconnect();\n };\n }, [adapter, isUnloadingRef]);\n // When the adapter changes, clear the `autoConnect` tracking flag\n const didAttemptAutoConnectRef = useRef(false);\n useEffect(() => {\n return () => {\n didAttemptAutoConnectRef.current = false;\n };\n }, [adapter]);\n // If auto-connect is enabled, request to connect when the adapter changes and is ready\n useEffect(() => {\n if (didAttemptAutoConnectRef.current ||\n isConnectingRef.current ||\n connected ||\n !onAutoConnectRequest ||\n !(wallet?.readyState === WalletReadyState.Installed || wallet?.readyState === WalletReadyState.Loadable)) {\n return;\n }\n isConnectingRef.current = true;\n setConnecting(true);\n didAttemptAutoConnectRef.current = true;\n (async function () {\n try {\n await onAutoConnectRequest();\n }\n catch {\n onConnectError();\n // Drop the error. It will be caught by `handleError` anyway.\n }\n finally {\n setConnecting(false);\n isConnectingRef.current = false;\n }\n })();\n }, [connected, onAutoConnectRequest, onConnectError, wallet]);\n // Send a transaction using the provided connection\n const sendTransaction = useCallback(async (transaction, connection, options) => {\n if (!adapter)\n throw handleErrorRef.current(new WalletNotSelectedError());\n if (!connected)\n throw handleErrorRef.current(new WalletNotConnectedError(), adapter);\n return await adapter.sendTransaction(transaction, connection, options);\n }, [adapter, connected]);\n // Sign a transaction if the wallet supports it\n const signTransaction = useMemo(() => adapter && 'signTransaction' in adapter\n ? async (transaction) => {\n if (!connected)\n throw handleErrorRef.current(new WalletNotConnectedError(), adapter);\n return await adapter.signTransaction(transaction);\n }\n : undefined, [adapter, connected]);\n // Sign multiple transactions if the wallet supports it\n const signAllTransactions = useMemo(() => adapter && 'signAllTransactions' in adapter\n ? async (transactions) => {\n if (!connected)\n throw handleErrorRef.current(new WalletNotConnectedError(), adapter);\n return await adapter.signAllTransactions(transactions);\n }\n : undefined, [adapter, connected]);\n // Sign an arbitrary message if the wallet supports it\n const signMessage = useMemo(() => adapter && 'signMessage' in adapter\n ? async (message) => {\n if (!connected)\n throw handleErrorRef.current(new WalletNotConnectedError(), adapter);\n return await adapter.signMessage(message);\n }\n : undefined, [adapter, connected]);\n const handleConnect = useCallback(async () => {\n if (isConnectingRef.current || isDisconnectingRef.current || wallet?.adapter.connected)\n return;\n if (!wallet)\n throw handleErrorRef.current(new WalletNotSelectedError());\n const { adapter, readyState } = wallet;\n if (!(readyState === WalletReadyState.Installed || readyState === WalletReadyState.Loadable))\n throw handleErrorRef.current(new WalletNotReadyError(), adapter);\n isConnectingRef.current = true;\n setConnecting(true);\n try {\n await adapter.connect();\n }\n catch (e) {\n onConnectError();\n throw e;\n }\n finally {\n setConnecting(false);\n isConnectingRef.current = false;\n }\n }, [onConnectError, wallet]);\n const handleDisconnect = useCallback(async () => {\n if (isDisconnectingRef.current)\n return;\n if (!adapter)\n return;\n isDisconnectingRef.current = true;\n setDisconnecting(true);\n try {\n await adapter.disconnect();\n }\n finally {\n setDisconnecting(false);\n isDisconnectingRef.current = false;\n }\n }, [adapter]);\n return (React.createElement(WalletContext.Provider, { value: {\n autoConnect: !!onAutoConnectRequest,\n wallets,\n wallet,\n publicKey,\n connected,\n connecting,\n disconnecting,\n select: onSelectWallet,\n connect: handleConnect,\n disconnect: handleDisconnect,\n sendTransaction,\n signTransaction,\n signAllTransactions,\n signMessage,\n } }, children));\n}\n//# sourceMappingURL=WalletProviderBase.js.map","export default function getInferredClusterFromEndpoint(endpoint) {\n if (!endpoint) {\n return 'mainnet-beta';\n }\n if (/devnet/i.test(endpoint)) {\n return 'devnet';\n }\n else if (/testnet/i.test(endpoint)) {\n return 'testnet';\n }\n else {\n return 'mainnet-beta';\n }\n}\n//# sourceMappingURL=getInferredClusterFromEndpoint.js.map","import { useEffect, useRef, useState } from 'react';\nexport function useLocalStorage(key, defaultState) {\n const state = useState(() => {\n try {\n const value = localStorage.getItem(key);\n if (value)\n return JSON.parse(value);\n }\n catch (error) {\n if (typeof window !== 'undefined') {\n console.error(error);\n }\n }\n return defaultState;\n });\n const value = state[0];\n const isFirstRenderRef = useRef(true);\n useEffect(() => {\n if (isFirstRenderRef.current) {\n isFirstRenderRef.current = false;\n return;\n }\n try {\n if (value === null) {\n localStorage.removeItem(key);\n }\n else {\n localStorage.setItem(key, JSON.stringify(value));\n }\n }\n catch (error) {\n if (typeof window !== 'undefined') {\n console.error(error);\n }\n }\n }, [value, key]);\n return state;\n}\n//# sourceMappingURL=useLocalStorage.js.map","import { createContext, useContext } from 'react';\nexport const ConnectionContext = createContext({});\nexport function useConnection() {\n return useContext(ConnectionContext);\n}\n//# sourceMappingURL=useConnection.js.map","import { createContext, useContext } from 'react';\nconst EMPTY_ARRAY = [];\nconst DEFAULT_CONTEXT = {\n autoConnect: false,\n connecting: false,\n connected: false,\n disconnecting: false,\n select(_name) {\n console.error(constructMissingProviderErrorMessage('get', 'select'));\n },\n connect() {\n return Promise.reject(console.error(constructMissingProviderErrorMessage('get', 'connect')));\n },\n disconnect() {\n return Promise.reject(console.error(constructMissingProviderErrorMessage('get', 'disconnect')));\n },\n sendTransaction(_transaction, _connection, _options) {\n return Promise.reject(console.error(constructMissingProviderErrorMessage('get', 'sendTransaction')));\n },\n signTransaction(_transaction) {\n return Promise.reject(console.error(constructMissingProviderErrorMessage('get', 'signTransaction')));\n },\n signAllTransactions(_transaction) {\n return Promise.reject(console.error(constructMissingProviderErrorMessage('get', 'signAllTransactions')));\n },\n signMessage(_message) {\n return Promise.reject(console.error(constructMissingProviderErrorMessage('get', 'signMessage')));\n },\n};\nObject.defineProperty(DEFAULT_CONTEXT, 'wallets', {\n get() {\n console.error(constructMissingProviderErrorMessage('read', 'wallets'));\n return EMPTY_ARRAY;\n },\n});\nObject.defineProperty(DEFAULT_CONTEXT, 'wallet', {\n get() {\n console.error(constructMissingProviderErrorMessage('read', 'wallet'));\n return null;\n },\n});\nObject.defineProperty(DEFAULT_CONTEXT, 'publicKey', {\n get() {\n console.error(constructMissingProviderErrorMessage('read', 'publicKey'));\n return null;\n },\n});\nfunction constructMissingProviderErrorMessage(action, valueName) {\n return ('You have tried to ' +\n ` ${action} \"${valueName}\"` +\n ' on a WalletContext without providing one.' +\n ' Make sure to render a WalletProvider' +\n ' as an ancestor of the component that uses ' +\n 'WalletContext');\n}\nexport const WalletContext = createContext(DEFAULT_CONTEXT);\nexport function useWallet() {\n return useContext(WalletContext);\n}\n//# sourceMappingURL=useWallet.js.map","// src/arbitrum.ts\nvar arbitrum = {\n id: 42161,\n name: \"Arbitrum One\",\n network: \"arbitrum\",\n nativeCurrency: { name: \"Ether\", symbol: \"ETH\", decimals: 18 },\n rpcUrls: {\n alchemy: {\n http: [\"https://arb-mainnet.g.alchemy.com/v2\"],\n webSocket: [\"wss://arb-mainnet.g.alchemy.com/v2\"]\n },\n infura: {\n http: [\"https://arbitrum-mainnet.infura.io/v3\"],\n webSocket: [\"wss://arbitrum-mainnet.infura.io/ws/v3\"]\n },\n default: {\n http: [\"https://arb1.arbitrum.io/rpc\"]\n },\n public: {\n http: [\"https://arb1.arbitrum.io/rpc\"]\n }\n },\n blockExplorers: {\n etherscan: { name: \"Arbiscan\", url: \"https://arbiscan.io\" },\n default: { name: \"Arbiscan\", url: \"https://arbiscan.io\" }\n },\n contracts: {\n multicall3: {\n address: \"0xca11bde05977b3631167028862be2a173976ca11\",\n blockCreated: 7654707\n }\n }\n};\n\n// src/arbitrumGoerli.ts\nvar arbitrumGoerli = {\n id: 421613,\n name: \"Arbitrum Goerli\",\n network: \"arbitrum-goerli\",\n nativeCurrency: {\n name: \"Arbitrum Goerli Ether\",\n symbol: \"ETH\",\n decimals: 18\n },\n rpcUrls: {\n alchemy: {\n http: [\"https://arb-goerli.g.alchemy.com/v2\"],\n webSocket: [\"wss://arb-goerli.g.alchemy.com/v2\"]\n },\n infura: {\n http: [\"https://arbitrum-goerli.infura.io/v3\"],\n webSocket: [\"wss://arbitrum-goerli.infura.io/ws/v3\"]\n },\n default: {\n http: [\"https://goerli-rollup.arbitrum.io/rpc\"]\n },\n public: {\n http: [\"https://goerli-rollup.arbitrum.io/rpc\"]\n }\n },\n blockExplorers: {\n etherscan: { name: \"Arbiscan\", url: \"https://goerli.arbiscan.io/\" },\n default: { name: \"Arbiscan\", url: \"https://goerli.arbiscan.io/\" }\n },\n contracts: {\n multicall3: {\n address: \"0xca11bde05977b3631167028862be2a173976ca11\",\n blockCreated: 88114\n }\n },\n testnet: true\n};\n\n// src/arbitrumNova.ts\nvar arbitrumNova = {\n id: 42170,\n name: \"Arbitrum Nova\",\n network: \"arbitrum-nova\",\n nativeCurrency: { name: \"Ether\", symbol: \"ETH\", decimals: 18 },\n rpcUrls: {\n blast: {\n http: [\"https://arbitrum-nova.public.blastapi.io\"],\n webSocket: [\"wss://arbitrum-nova.public.blastapi.io\"]\n },\n default: {\n http: [\"https://nova.arbitrum.io/rpc\"]\n },\n public: {\n http: [\"https://nova.arbitrum.io/rpc\"]\n }\n },\n blockExplorers: {\n etherscan: { name: \"Arbiscan\", url: \"https://nova.arbiscan.io\" },\n blockScout: {\n name: \"BlockScout\",\n url: \"https://nova-explorer.arbitrum.io/\"\n },\n default: { name: \"Arbiscan\", url: \"https://nova.arbiscan.io\" }\n },\n contracts: {\n multicall3: {\n address: \"0xca11bde05977b3631167028862be2a173976ca11\",\n blockCreated: 1746963\n }\n }\n};\n\n// src/aurora.ts\nvar aurora = {\n id: 1313161554,\n name: \"Aurora\",\n network: \"aurora\",\n nativeCurrency: {\n decimals: 18,\n name: \"Ether\",\n symbol: \"ETH\"\n },\n rpcUrls: {\n infura: { http: [\"https://aurora-mainnet.infura.io/v3\"] },\n default: { http: [\"https://mainnet.aurora.dev\"] },\n public: { http: [\"https://mainnet.aurora.dev\"] }\n },\n blockExplorers: {\n etherscan: { name: \"Aurorascan\", url: \"https://aurorascan.dev\" },\n default: { name: \"Aurorascan\", url: \"https://aurorascan.dev\" }\n }\n};\n\n// src/auroraTestnet.ts\nvar auroraTestnet = {\n id: 1313161555,\n name: \"Aurora Testnet\",\n network: \"aurora-testnet\",\n nativeCurrency: {\n decimals: 18,\n name: \"Ether\",\n symbol: \"ETH\"\n },\n rpcUrls: {\n infura: { http: [\"https://aurora-testnet.infura.io/v3\"] },\n default: { http: [\"https://testnet.aurora.dev\"] },\n public: { http: [\"https://testnet.aurora.dev\"] }\n },\n blockExplorers: {\n etherscan: { name: \"Aurorascan\", url: \"https://testnet.aurorascan.dev\" },\n default: { name: \"Aurorascan\", url: \"https://testnet.aurorascan.dev\" }\n },\n testnet: true\n};\n\n// src/avalanche.ts\nvar avalanche = {\n id: 43114,\n name: \"Avalanche\",\n network: \"avalanche\",\n nativeCurrency: {\n decimals: 18,\n name: \"Avalanche\",\n symbol: \"AVAX\"\n },\n rpcUrls: {\n default: { http: [\"https://api.avax.network/ext/bc/C/rpc\"] },\n public: { http: [\"https://api.avax.network/ext/bc/C/rpc\"] }\n },\n blockExplorers: {\n etherscan: { name: \"SnowTrace\", url: \"https://snowtrace.io\" },\n default: { name: \"SnowTrace\", url: \"https://snowtrace.io\" }\n },\n contracts: {\n multicall3: {\n address: \"0xca11bde05977b3631167028862be2a173976ca11\",\n blockCreated: 11907934\n }\n }\n};\n\n// src/avalancheFuji.ts\nvar avalancheFuji = {\n id: 43113,\n name: \"Avalanche Fuji\",\n network: \"avalanche-fuji\",\n nativeCurrency: {\n decimals: 18,\n name: \"Avalanche Fuji\",\n symbol: \"AVAX\"\n },\n rpcUrls: {\n default: { http: [\"https://api.avax-test.network/ext/bc/C/rpc\"] },\n public: { http: [\"https://api.avax-test.network/ext/bc/C/rpc\"] }\n },\n blockExplorers: {\n etherscan: { name: \"SnowTrace\", url: \"https://testnet.snowtrace.io\" },\n default: { name: \"SnowTrace\", url: \"https://testnet.snowtrace.io\" }\n },\n contracts: {\n multicall3: {\n address: \"0xca11bde05977b3631167028862be2a173976ca11\",\n blockCreated: 7096959\n }\n },\n testnet: true\n};\n\n// src/baseGoerli.ts\nvar baseGoerli = {\n id: 84531,\n network: \"base-goerli\",\n name: \"Base Goerli\",\n nativeCurrency: { name: \"Base Goerli\", symbol: \"ETH\", decimals: 18 },\n rpcUrls: {\n default: {\n http: [\"https://goerli.base.org\"]\n },\n public: {\n http: [\"https://goerli.base.org\"]\n }\n },\n blockExplorers: {\n etherscan: {\n name: \"Basescan\",\n url: \"https://goerli.basescan.org\"\n },\n default: {\n name: \"Basescan\",\n url: \"https://goerli.basescan.org\"\n }\n },\n contracts: {\n multicall3: {\n address: \"0xca11bde05977b3631167028862be2a173976ca11\",\n blockCreated: 1376988\n }\n },\n testnet: true\n};\n\n// src/bearNetworkChainMainnet.ts\nvar bearNetworkChainMainnet = {\n id: 641230,\n name: \"Bear Network Chain Mainnet\",\n network: \"BearNetworkChainMainnet\",\n nativeCurrency: {\n decimals: 18,\n name: \"BearNetworkChain\",\n symbol: \"BRNKC\"\n },\n rpcUrls: {\n public: { http: [\"https://brnkc-mainnet.bearnetwork.net\"] },\n default: { http: [\"https://brnkc-mainnet.bearnetwork.net\"] }\n },\n blockExplorers: {\n default: { name: \"BrnkScan\", url: \"https://brnkscan.bearnetwork.net\" }\n }\n};\n\n// src/bearNetworkChainTestnet.ts\nvar bearNetworkChainTestnet = {\n id: 751230,\n name: \"Bear Network Chain Testnet\",\n network: \"BearNetworkChainTestnet\",\n nativeCurrency: {\n decimals: 18,\n name: \"tBRNKC\",\n symbol: \"tBRNKC\"\n },\n rpcUrls: {\n public: { http: [\"https://brnkc-test.bearnetwork.net\"] },\n default: { http: [\"https://brnkc-test.bearnetwork.net\"] }\n },\n blockExplorers: {\n default: {\n name: \"BrnkTestScan\",\n url: \"https://brnktest-scan.bearnetwork.net\"\n }\n },\n testnet: true\n};\n\n// src/boba.ts\nvar boba = {\n id: 288,\n name: \"Boba Network\",\n network: \"boba\",\n nativeCurrency: {\n decimals: 18,\n name: \"Boba\",\n symbol: \"BOBA\"\n },\n rpcUrls: {\n default: { http: [\"https://mainnet.boba.network\"] },\n public: { http: [\"https://mainnet.boba.network\"] }\n },\n blockExplorers: {\n etherscan: { name: \"BOBAScan\", url: \"https://bobascan.com\" },\n default: { name: \"BOBAScan\", url: \"https://bobascan.com\" }\n },\n contracts: {\n multicall3: {\n address: \"0xca11bde05977b3631167028862be2a173976ca11\",\n blockCreated: 446859\n }\n }\n};\n\n// src/bronos.ts\nvar bronos = {\n id: 1039,\n name: \"Bronos\",\n network: \"bronos\",\n nativeCurrency: {\n decimals: 18,\n name: \"BRO\",\n symbol: \"BRO\"\n },\n rpcUrls: {\n default: { http: [\"https://evm.bronos.org\"] },\n public: { http: [\"https://evm.bronos.org\"] }\n },\n blockExplorers: {\n default: { name: \"BronoScan\", url: \"https://broscan.bronos.org\" }\n }\n};\n\n// src/bronosTestnet.ts\nvar bronosTestnet = {\n id: 1038,\n name: \"Bronos Testnet\",\n network: \"bronos-testnet\",\n nativeCurrency: {\n decimals: 18,\n name: \"Bronos Coin\",\n symbol: \"tBRO\"\n },\n rpcUrls: {\n default: { http: [\"https://evm-testnet.bronos.org\"] },\n public: { http: [\"https://evm-testnet.bronos.org\"] }\n },\n blockExplorers: {\n default: { name: \"BronoScan\", url: \"https://tbroscan.bronos.org\" }\n },\n testnet: true\n};\n\n// src/bsc.ts\nvar bsc = {\n id: 56,\n name: \"BNB Smart Chain\",\n network: \"bsc\",\n nativeCurrency: {\n decimals: 18,\n name: \"BNB\",\n symbol: \"BNB\"\n },\n rpcUrls: {\n default: { http: [\"https://rpc.ankr.com/bsc\"] },\n public: { http: [\"https://rpc.ankr.com/bsc\"] }\n },\n blockExplorers: {\n etherscan: { name: \"BscScan\", url: \"https://bscscan.com\" },\n default: { name: \"BscScan\", url: \"https://bscscan.com\" }\n },\n contracts: {\n multicall3: {\n address: \"0xca11bde05977b3631167028862be2a173976ca11\",\n blockCreated: 15921452\n }\n }\n};\n\n// src/bscTestnet.ts\nvar bscTestnet = {\n id: 97,\n name: \"Binance Smart Chain Testnet\",\n network: \"bsc-testnet\",\n nativeCurrency: {\n decimals: 18,\n name: \"BNB\",\n symbol: \"tBNB\"\n },\n rpcUrls: {\n default: { http: [\"https://data-seed-prebsc-1-s1.binance.org:8545\"] },\n public: { http: [\"https://data-seed-prebsc-1-s1.binance.org:8545\"] }\n },\n blockExplorers: {\n etherscan: { name: \"BscScan\", url: \"https://testnet.bscscan.com\" },\n default: { name: \"BscScan\", url: \"https://testnet.bscscan.com\" }\n },\n contracts: {\n multicall3: {\n address: \"0xca11bde05977b3631167028862be2a173976ca11\",\n blockCreated: 17422483\n }\n },\n testnet: true\n};\n\n// src/bxn.ts\nvar bxn = {\n id: 4999,\n name: \"BlackFort Exchange Network\",\n network: \"bxn\",\n nativeCurrency: { name: \"BlackFort Token\", symbol: \"BXN\", decimals: 18 },\n rpcUrls: {\n default: {\n http: [\"https://mainnet.blackfort.network/rpc\"]\n },\n public: {\n http: [\"https://mainnet.blackfort.network/rpc\"]\n }\n },\n blockExplorers: {\n default: {\n name: \"Blockscout\",\n url: \"https://explorer.blackfort.network\"\n }\n }\n};\n\n// src/bxnTestnet.ts\nvar bxnTestnet = {\n id: 4777,\n name: \"BlackFort Exchange Network Testnet\",\n network: \"bxnTestnet\",\n nativeCurrency: {\n name: \"BlackFort Testnet Token\",\n symbol: \"TBXN\",\n decimals: 18\n },\n rpcUrls: {\n default: {\n http: [\"https://testnet.blackfort.network/rpc\"]\n },\n public: {\n http: [\"https://testnet.blackfort.network/rpc\"]\n }\n },\n blockExplorers: {\n default: {\n name: \"Blockscout\",\n url: \"https://testnet-explorer.blackfort.network\"\n }\n }\n};\n\n// src/canto.ts\nvar canto = {\n id: 7700,\n name: \"Canto\",\n network: \"canto\",\n nativeCurrency: {\n decimals: 18,\n name: \"Canto\",\n symbol: \"CANTO\"\n },\n rpcUrls: {\n default: { http: [\"https://canto.gravitychain.io\"] },\n public: { http: [\"https://canto.gravitychain.io\"] }\n },\n blockExplorers: {\n default: {\n name: \"Tuber.Build (Blockscout)\",\n url: \"https://tuber.build\"\n }\n },\n contracts: {\n multicall3: {\n address: \"0xca11bde05977b3631167028862be2a173976ca11\",\n blockCreated: 2905789\n }\n }\n};\n\n// src/celo.ts\nvar celo = {\n id: 42220,\n name: \"Celo\",\n network: \"celo\",\n nativeCurrency: {\n decimals: 18,\n name: \"CELO\",\n symbol: \"CELO\"\n },\n rpcUrls: {\n default: { http: [\"https://forno.celo.org\"] },\n infura: {\n http: [\"https://celo-mainnet.infura.io/v3\"]\n },\n public: {\n http: [\"https://forno.celo.org\"]\n }\n },\n blockExplorers: {\n default: {\n name: \"Celo Explorer\",\n url: \"https://explorer.celo.org/mainnet\"\n },\n etherscan: { name: \"CeloScan\", url: \"https://celoscan.io\" }\n },\n contracts: {\n multicall3: {\n address: \"0xcA11bde05977b3631167028862bE2a173976CA11\",\n blockCreated: 13112599\n }\n },\n testnet: false\n};\n\n// src/celoAlfajores.ts\nvar celoAlfajores = {\n id: 44787,\n name: \"Alfajores\",\n network: \"celo-alfajores\",\n nativeCurrency: {\n decimals: 18,\n name: \"CELO\",\n symbol: \"A-CELO\"\n },\n rpcUrls: {\n default: {\n http: [\"https://alfajores-forno.celo-testnet.org\"]\n },\n infura: {\n http: [\"https://celo-alfajores.infura.io/v3\"]\n },\n public: {\n http: [\"https://alfajores-forno.celo-testnet.org\"]\n }\n },\n blockExplorers: {\n default: {\n name: \"Celo Explorer\",\n url: \"https://explorer.celo.org/alfajores\"\n },\n etherscan: { name: \"CeloScan\", url: \"https://alfajores.celoscan.io/\" }\n },\n contracts: {\n multicall3: {\n address: \"0xcA11bde05977b3631167028862bE2a173976CA11\",\n blockCreated: 14569001\n }\n },\n testnet: true\n};\n\n// src/celoCannoli.ts\nvar celoCannoli = {\n id: 17323,\n name: \"Cannoli\",\n network: \"celo-cannoli\",\n nativeCurrency: {\n decimals: 18,\n name: \"CELO\",\n symbol: \"C-CELO\"\n },\n rpcUrls: {\n default: {\n http: [\"https://forno.cannoli.celo-testnet.org\"]\n },\n public: {\n http: [\"https://forno.cannoli.celo-testnet.org\"]\n }\n },\n blockExplorers: {\n default: {\n name: \"Celo Explorer\",\n url: \"https://explorer.celo.org/cannoli\"\n }\n },\n contracts: {\n multicall3: {\n address: \"0x5Acb0aa8BF4E8Ff0d882Ee187140713C12BF9718\",\n blockCreated: 87429\n }\n },\n testnet: true\n};\n\n// src/confluxESpace.ts\nvar confluxESpace = {\n id: 1030,\n name: \"Conflux eSpace\",\n network: \"cfx-espace\",\n nativeCurrency: { name: \"Conflux\", symbol: \"CFX\", decimals: 18 },\n rpcUrls: {\n default: {\n http: [\"https://evm.confluxrpc.org\"]\n },\n public: {\n http: [\"https://evm.confluxrpc.org\"]\n }\n },\n blockExplorers: {\n default: {\n name: \"ConfluxScan\",\n url: \"https://evm.confluxscan.io\"\n }\n },\n contracts: {\n multicall3: {\n address: \"0xEFf0078910f638cd81996cc117bccD3eDf2B072F\",\n blockCreated: 68602935\n }\n }\n};\n\n// src/cronos.ts\nvar cronos = {\n id: 25,\n name: \"Cronos\",\n network: \"cronos\",\n nativeCurrency: {\n decimals: 18,\n name: \"Cronos\",\n symbol: \"CRO\"\n },\n rpcUrls: {\n default: { http: [\"https://node.croswap.com/rpc\"] },\n public: { http: [\"https://node.croswap.com/rpc\"] }\n },\n blockExplorers: {\n default: { name: \"CronosScan\", url: \"https://cronoscan.com\" }\n },\n contracts: {\n multicall3: {\n address: \"0xcA11bde05977b3631167028862bE2a173976CA11\",\n blockCreated: 1963112\n }\n }\n};\n\n// src/cronosTestnet.ts\nvar cronosTestnet = {\n id: 338,\n name: \"Cronos Testnet\",\n network: \"cronos-testnet\",\n nativeCurrency: {\n decimals: 18,\n name: \"CRO\",\n symbol: \"tCRO\"\n },\n rpcUrls: {\n default: { http: [\"https://evm-t3.cronos.org\"] },\n public: { http: [\"https://evm-t3.cronos.org\"] }\n },\n blockExplorers: {\n default: {\n name: \"Cronos Explorer\",\n url: \"https://cronos.org/explorer/testnet3\"\n }\n },\n contracts: {\n multicall3: {\n address: \"0xcA11bde05977b3631167028862bE2a173976CA11\",\n blockCreated: 10191251\n }\n },\n testnet: true\n};\n\n// src/crossbell.ts\nvar crossbell = {\n id: 3737,\n network: \"crossbell\",\n name: \"Crossbell\",\n nativeCurrency: {\n decimals: 18,\n name: \"CSB\",\n symbol: \"CSB\"\n },\n rpcUrls: {\n default: {\n http: [\"https://rpc.crossbell.io\"]\n },\n public: {\n http: [\"https://rpc.crossbell.io\"]\n }\n },\n blockExplorers: {\n default: { name: \"CrossScan\", url: \"https://scan.crossbell.io\" }\n },\n contracts: {\n multicall3: {\n address: \"0xBB9759009cDaC82774EfC84D94cD9F7440f75Fcf\",\n blockCreated: 23499787\n }\n }\n};\n\n// src/dfk.ts\nvar dfk = {\n id: 53935,\n name: \"DFK Chain\",\n network: \"dfk\",\n nativeCurrency: {\n decimals: 18,\n name: \"Jewel\",\n symbol: \"JEWEL\"\n },\n rpcUrls: {\n default: {\n http: [\"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc\"]\n },\n public: {\n http: [\"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc\"]\n }\n },\n blockExplorers: {\n etherscan: {\n name: \"DFKSubnetScan\",\n url: \"https://subnets.avax.network/defi-kingdoms\"\n },\n default: {\n name: \"DFKSubnetScan\",\n url: \"https://subnets.avax.network/defi-kingdoms\"\n }\n }\n};\n\n// src/dogechain.ts\nvar dogechain = {\n id: 2e3,\n name: \"Dogechain\",\n network: \"dogechain\",\n nativeCurrency: {\n decimals: 18,\n name: \"Dogechain\",\n symbol: \"DC\"\n },\n rpcUrls: {\n default: { http: [\"https://rpc.dogechain.dog\"] },\n public: { http: [\"https://rpc.dogechain.dog\"] }\n },\n blockExplorers: {\n etherscan: {\n name: \"DogeChainExplorer\",\n url: \"https://explorer.dogechain.dog\"\n },\n default: {\n name: \"DogeChainExplorer\",\n url: \"https://explorer.dogechain.dog\"\n }\n }\n};\n\n// src/edgeware.ts\nvar edgeware = {\n id: 2021,\n name: \"Edgeware EdgeEVM Mainnet\",\n network: \"edgeware\",\n nativeCurrency: {\n decimals: 18,\n name: \"Edgeware\",\n symbol: \"EDG\"\n },\n rpcUrls: {\n default: { http: [\"https://edgeware-evm.jelliedowl.net\"] },\n public: { http: [\"https://edgeware-evm.jelliedowl.net\"] }\n },\n blockExplorers: {\n etherscan: { name: \"Edgscan by Bharathcoorg\", url: \"https://edgscan.live\" },\n default: { name: \"Edgscan by Bharathcoorg\", url: \"https://edgscan.live\" }\n },\n contracts: {\n multicall3: {\n address: \"0xDDF47eEB4e5FF4AA60e063E0Ec4f7C35B47Ed445\",\n blockCreated: 17126780\n }\n }\n};\n\n// src/edgewareTestnet.ts\nvar edgewareTestnet = {\n id: 2022,\n name: \"Beresheet BereEVM Testnet\",\n network: \"edgewareTestnet\",\n nativeCurrency: {\n decimals: 18,\n name: \"Testnet EDG\",\n symbol: \"tEDG\"\n },\n rpcUrls: {\n default: { http: [\"https://beresheet-evm.jelliedowl.net\"] },\n public: { http: [\"https://beresheet-evm.jelliedowl.net\"] }\n },\n blockExplorers: {\n etherscan: {\n name: \"Edgscan by Bharathcoorg\",\n url: \"https://testnet.edgscan.live\"\n },\n default: {\n name: \"Edgscan by Bharathcoorg\",\n url: \"https://testnet.edgscan.live\"\n }\n }\n};\n\n// src/eos.ts\nvar eos = {\n id: 17777,\n name: \"EOS EVM\",\n network: \"eos\",\n nativeCurrency: {\n decimals: 18,\n name: \"EOS\",\n symbol: \"EOS\"\n },\n rpcUrls: {\n default: { http: [\"https://api.evm.eosnetwork.com\"] },\n public: { http: [\"https://api.evm.eosnetwork.com\"] }\n },\n blockExplorers: {\n etherscan: {\n name: \"EOS EVM Explorer\",\n url: \"https://explorer.evm.eosnetwork.com\"\n },\n default: {\n name: \"EOS EVM Explorer\",\n url: \"https://explorer.evm.eosnetwork.com\"\n }\n }\n};\n\n// src/eosTestnet.ts\nvar eosTestnet = {\n id: 15557,\n name: \"EOS EVM Testnet\",\n network: \"eos\",\n nativeCurrency: {\n decimals: 18,\n name: \"EOS\",\n symbol: \"EOS\"\n },\n rpcUrls: {\n default: { http: [\"https://api.testnet.evm.eosnetwork.com\"] },\n public: { http: [\"https://api.testnet.evm.eosnetwork.com\"] }\n },\n blockExplorers: {\n etherscan: {\n name: \"EOS EVM Testnet Explorer\",\n url: \"https://explorer.testnet.evm.eosnetwork.com\"\n },\n default: {\n name: \"EOS EVM Testnet Explorer\",\n url: \"https://explorer.testnet.evm.eosnetwork.com\"\n }\n },\n testnet: true\n};\n\n// src/evmos.ts\nvar evmos = {\n id: 9001,\n name: \"Evmos\",\n network: \"evmos\",\n nativeCurrency: {\n decimals: 18,\n name: \"Evmos\",\n symbol: \"EVMOS\"\n },\n rpcUrls: {\n default: { http: [\"https://eth.bd.evmos.org:8545\"] },\n public: { http: [\"https://eth.bd.evmos.org:8545\"] }\n },\n blockExplorers: {\n default: { name: \"Evmos Block Explorer\", url: \"https://escan.live\" }\n }\n};\n\n// src/evmosTestnet.ts\nvar evmosTestnet = {\n id: 9e3,\n name: \"Evmos Testnet\",\n network: \"evmos-testnet\",\n nativeCurrency: {\n decimals: 18,\n name: \"Evmos\",\n symbol: \"EVMOS\"\n },\n rpcUrls: {\n default: { http: [\"https://eth.bd.evmos.dev:8545\"] },\n public: { http: [\"https://eth.bd.evmos.dev:8545\"] }\n },\n blockExplorers: {\n default: {\n name: \"Evmos Testnet Block Explorer\",\n url: \"https://evm.evmos.dev/\"\n }\n }\n};\n\n// src/ekta.ts\nvar ekta = {\n id: 1994,\n name: \"Ekta\",\n network: \"ekta\",\n nativeCurrency: {\n decimals: 18,\n name: \"EKTA\",\n symbol: \"EKTA\"\n },\n rpcUrls: {\n public: { http: [\"https://main.ekta.io\"] },\n default: { http: [\"https://main.ekta.io\"] }\n },\n blockExplorers: {\n default: { name: \"Ektascan\", url: \"https://ektascan.io\" }\n }\n};\n\n// src/ektaTestnet.ts\nvar ektaTestnet = {\n id: 1004,\n name: \"Ekta Testnet\",\n network: \"ekta-testnet\",\n nativeCurrency: {\n decimals: 18,\n name: \"EKTA\",\n symbol: \"EKTA\"\n },\n rpcUrls: {\n public: { http: [\"https://test.ekta.io:8545\"] },\n default: { http: [\"https://test.ekta.io:8545\"] }\n },\n blockExplorers: {\n default: { name: \"Test Ektascan\", url: \"https://test.ektascan.io\" }\n },\n testnet: true\n};\n\n// src/fantom.ts\nvar fantom = {\n id: 250,\n name: \"Fantom\",\n network: \"fantom\",\n nativeCurrency: {\n decimals: 18,\n name: \"Fantom\",\n symbol: \"FTM\"\n },\n rpcUrls: {\n default: { http: [\"https://rpc.ankr.com/fantom\"] },\n public: { http: [\"https://rpc.ankr.com/fantom\"] }\n },\n blockExplorers: {\n etherscan: { name: \"FTMScan\", url: \"https://ftmscan.com\" },\n default: { name: \"FTMScan\", url: \"https://ftmscan.com\" }\n },\n contracts: {\n multicall3: {\n address: \"0xca11bde05977b3631167028862be2a173976ca11\",\n blockCreated: 33001987\n }\n }\n};\n\n// src/fantomTestnet.ts\nvar fantomTestnet = {\n id: 4002,\n name: \"Fantom Testnet\",\n network: \"fantom-testnet\",\n nativeCurrency: {\n decimals: 18,\n name: \"Fantom\",\n symbol: \"FTM\"\n },\n rpcUrls: {\n default: { http: [\"https://rpc.testnet.fantom.network\"] },\n public: { http: [\"https://rpc.testnet.fantom.network\"] }\n },\n blockExplorers: {\n etherscan: { name: \"FTMScan\", url: \"https://testnet.ftmscan.com\" },\n default: { name: \"FTMScan\", url: \"https://testnet.ftmscan.com\" }\n },\n contracts: {\n multicall3: {\n address: \"0xca11bde05977b3631167028862be2a173976ca11\",\n blockCreated: 8328688\n }\n }\n};\n\n// src/fibo.ts\nvar fibo = {\n id: 12306,\n name: \"Fibo Chain\",\n network: \"fibochain\",\n nativeCurrency: {\n decimals: 18,\n name: \"fibo\",\n symbol: \"FIBO\"\n },\n rpcUrls: {\n default: { http: [\"https://network.hzroc.art\"] },\n public: { http: [\"https://network.hzroc.art\"] }\n },\n blockExplorers: {\n default: { name: \"FiboScan\", url: \"https://scan.fibochain.org\" }\n }\n};\n\n// src/filecoin.ts\nvar filecoin = {\n id: 314,\n name: \"Filecoin Mainnet\",\n network: \"filecoin-mainnet\",\n nativeCurrency: {\n decimals: 18,\n name: \"filecoin\",\n symbol: \"FIL\"\n },\n rpcUrls: {\n default: { http: [\"https://api.node.glif.io/rpc/v1\"] },\n public: { http: [\"https://api.node.glif.io/rpc/v1\"] }\n },\n blockExplorers: {\n default: { name: \"Filfox\", url: \"https://filfox.info/en\" },\n filscan: { name: \"Filscan\", url: \"https://filscan.io\" },\n filscout: { name: \"Filscout\", url: \"https://filscout.io/en\" },\n glif: { name: \"Glif\", url: \"https://explorer.glif.io\" }\n }\n};\n\n// src/filecoinCalibration.ts\nvar filecoinCalibration = {\n id: 314159,\n name: \"Filecoin Calibration\",\n network: \"filecoin-calibration\",\n nativeCurrency: {\n decimals: 18,\n name: \"testnet filecoin\",\n symbol: \"tFIL\"\n },\n rpcUrls: {\n default: { http: [\"https://api.calibration.node.glif.io/rpc/v1\"] },\n public: { http: [\"https://api.calibration.node.glif.io/rpc/v1\"] }\n },\n blockExplorers: {\n default: { name: \"Filscan\", url: \"https://calibration.filscan.io\" }\n }\n};\n\n// src/filecoinHyperspace.ts\nvar filecoinHyperspace = {\n id: 3141,\n name: \"Filecoin Hyperspace\",\n network: \"filecoin-hyperspace\",\n nativeCurrency: {\n decimals: 18,\n name: \"testnet filecoin\",\n symbol: \"tFIL\"\n },\n rpcUrls: {\n default: { http: [\"https://api.hyperspace.node.glif.io/rpc/v1\"] },\n public: { http: [\"https://api.hyperspace.node.glif.io/rpc/v1\"] }\n },\n blockExplorers: {\n default: { name: \"Filfox\", url: \"https://hyperspace.filfox.info/en\" },\n filscan: { name: \"Filscan\", url: \"https://hyperspace.filscan.io\" }\n }\n};\n\n// src/flare.ts\nvar flare = {\n id: 14,\n name: \"Flare Mainnet\",\n network: \"flare-mainnet\",\n nativeCurrency: {\n decimals: 18,\n name: \"flare\",\n symbol: \"FLR\"\n },\n rpcUrls: {\n default: { http: [\"https://flare-api.flare.network/ext/C/rpc\"] },\n public: { http: [\"https://flare-api.flare.network/ext/C/rpc\"] }\n },\n blockExplorers: {\n default: {\n name: \"Flare Explorer\",\n url: \"https://flare-explorer.flare.network\"\n }\n }\n};\n\n// src/flareTestnet.ts\nvar flareTestnet = {\n id: 114,\n name: \"Coston2\",\n network: \"coston2\",\n nativeCurrency: {\n decimals: 18,\n name: \"coston2flare\",\n symbol: \"C2FLR\"\n },\n rpcUrls: {\n default: { http: [\"https://coston2-api.flare.network/ext/C/rpc\"] },\n public: { http: [\"https://coston2-api.flare.network/ext/C/rpc\"] }\n },\n blockExplorers: {\n default: {\n name: \"Coston2 Explorer\",\n url: \"https://coston2-explorer.flare.network\"\n }\n },\n testnet: true\n};\n\n// src/foundry.ts\nvar foundry = {\n id: 31337,\n name: \"Foundry\",\n network: \"foundry\",\n nativeCurrency: {\n decimals: 18,\n name: \"Ether\",\n symbol: \"ETH\"\n },\n rpcUrls: {\n default: {\n http: [\"http://127.0.0.1:8545\"],\n webSocket: [\"ws://127.0.0.1:8545\"]\n },\n public: {\n http: [\"http://127.0.0.1:8545\"],\n webSocket: [\"ws://127.0.0.1:8545\"]\n }\n }\n};\n\n// src/fuse.ts\nvar fuse = {\n id: 122,\n name: \"Fuse\",\n network: \"fuse\",\n nativeCurrency: { name: \"Fuse\", symbol: \"FUSE\", decimals: 18 },\n rpcUrls: {\n default: { http: [\"https://rpc.fuse.io\"] },\n public: { http: [\"https://fuse-mainnet.chainstacklabs.com\"] }\n },\n blockExplorers: {\n default: { name: \"Fuse Explorer\", url: \"https://explorer.fuse.io\" }\n }\n};\n\n// src/iotex.ts\nvar iotex = {\n id: 4689,\n name: \"IoTeX\",\n network: \"iotex\",\n nativeCurrency: {\n decimals: 18,\n name: \"IoTeX\",\n symbol: \"IOTX\"\n },\n rpcUrls: {\n default: {\n http: [\"https://babel-api.mainnet.iotex.io\"],\n webSocket: [\"wss://babel-api.mainnet.iotex.io\"]\n },\n public: {\n http: [\"https://babel-api.mainnet.iotex.io\"],\n webSocket: [\"wss://babel-api.mainnet.iotex.io\"]\n }\n },\n blockExplorers: {\n default: { name: \"IoTeXScan\", url: \"https://iotexscan.io\" }\n }\n};\n\n// src/iotexTestnet.ts\nvar iotexTestnet = {\n id: 4690,\n name: \"IoTeX Testnet\",\n network: \"iotex-testnet\",\n nativeCurrency: {\n decimals: 18,\n name: \"IoTeX\",\n symbol: \"IOTX\"\n },\n rpcUrls: {\n default: {\n http: [\"https://babel-api.testnet.iotex.io\"],\n webSocket: [\"wss://babel-api.testnet.iotex.io\"]\n },\n public: {\n http: [\"https://babel-api.testnet.iotex.io\"],\n webSocket: [\"wss://babel-api.testnet.iotex.io\"]\n }\n },\n blockExplorers: {\n default: { name: \"IoTeXScan\", url: \"https://testnet.iotexscan.io\" }\n }\n};\n\n// src/goerli.ts\nvar goerli = {\n id: 5,\n network: \"goerli\",\n name: \"Goerli\",\n nativeCurrency: { name: \"Goerli Ether\", symbol: \"ETH\", decimals: 18 },\n rpcUrls: {\n alchemy: {\n http: [\"https://eth-goerli.g.alchemy.com/v2\"],\n webSocket: [\"wss://eth-goerli.g.alchemy.com/v2\"]\n },\n infura: {\n http: [\"https://goerli.infura.io/v3\"],\n webSocket: [\"wss://goerli.infura.io/ws/v3\"]\n },\n default: {\n http: [\"https://rpc.ankr.com/eth_goerli\"]\n },\n public: {\n http: [\"https://rpc.ankr.com/eth_goerli\"]\n }\n },\n blockExplorers: {\n etherscan: {\n name: \"Etherscan\",\n url: \"https://goerli.etherscan.io\"\n },\n default: {\n name: \"Etherscan\",\n url: \"https://goerli.etherscan.io\"\n }\n },\n contracts: {\n ensRegistry: {\n address: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\"\n },\n ensUniversalResolver: {\n address: \"0x56522D00C410a43BFfDF00a9A569489297385790\",\n blockCreated: 8765204\n },\n multicall3: {\n address: \"0xca11bde05977b3631167028862be2a173976ca11\",\n blockCreated: 6507670\n }\n },\n testnet: true\n};\n\n// src/gnosis.ts\nvar gnosis = {\n id: 100,\n name: \"Gnosis\",\n network: \"gnosis\",\n nativeCurrency: {\n decimals: 18,\n name: \"Gnosis\",\n symbol: \"xDAI\"\n },\n rpcUrls: {\n default: { http: [\"https://rpc.gnosischain.com\"] },\n public: { http: [\"https://rpc.gnosischain.com\"] }\n },\n blockExplorers: {\n etherscan: {\n name: \"Gnosisscan\",\n url: \"https://gnosisscan.io/\"\n },\n default: {\n name: \"Gnosis Chain Explorer\",\n url: \"https://blockscout.com/xdai/mainnet/\"\n }\n }\n};\n\n// src/gnosisChiado.ts\nvar gnosisChiado = {\n id: 10200,\n name: \"Gnosis Chiado\",\n network: \"chiado\",\n nativeCurrency: {\n decimals: 18,\n name: \"Gnosis\",\n symbol: \"xDAI\"\n },\n rpcUrls: {\n default: { http: [\"https://rpc.chiadochain.net\"] },\n public: { http: [\"https://rpc.chiadochain.net\"] }\n },\n blockExplorers: {\n default: {\n name: \"Blockscout\",\n url: \"https://blockscout.chiadochain.net\"\n }\n }\n};\n\n// src/hardhat.ts\nvar hardhat = {\n id: 31337,\n name: \"Hardhat\",\n network: \"hardhat\",\n nativeCurrency: {\n decimals: 18,\n name: \"Ether\",\n symbol: \"ETH\"\n },\n rpcUrls: {\n default: { http: [\"http://127.0.0.1:8545\"] },\n public: { http: [\"http://127.0.0.1:8545\"] }\n }\n};\n\n// src/harmonyOne.ts\nvar harmonyOne = {\n id: 16666e5,\n name: \"Harmony One\",\n network: \"harmony\",\n nativeCurrency: {\n name: \"Harmony\",\n symbol: \"ONE\",\n decimals: 18\n },\n rpcUrls: {\n public: { http: [\"https://rpc.ankr.com/harmony\"] },\n default: { http: [\"https://rpc.ankr.com/harmony\"] }\n },\n blockExplorers: {\n default: { name: \"Harmony Explorer\", url: \"https://explorer.harmony.one\" }\n },\n contracts: {\n multicall3: {\n address: \"0xca11bde05977b3631167028862be2a173976ca11\",\n blockCreated: 24185753\n }\n }\n};\n\n// src/haqqMainnet.ts\nvar haqqMainnet = {\n id: 11235,\n name: \"HAQQ Mainnet\",\n network: \"haqq-mainnet\",\n nativeCurrency: {\n decimals: 18,\n name: \"Islamic Coin\",\n symbol: \"ISLM\"\n },\n rpcUrls: {\n default: {\n http: [\"https://rpc.eth.haqq.network\"]\n },\n public: {\n http: [\"https://rpc.eth.haqq.network\"]\n }\n },\n blockExplorers: {\n default: {\n name: \"HAQQ Explorer\",\n url: \"https://explorer.haqq.network\"\n }\n }\n};\n\n// src/haqqTestedge2.ts\nvar haqqTestedge2 = {\n id: 54211,\n name: \"HAQQ Testedge 2\",\n network: \"haqq-testedge-2\",\n nativeCurrency: {\n decimals: 18,\n name: \"Islamic Coin\",\n symbol: \"ISLMT\"\n },\n rpcUrls: {\n default: {\n http: [\"https://rpc.eth.testedge2.haqq.network\"]\n },\n public: {\n http: [\"https://rpc.eth.testedge2.haqq.network\"]\n }\n },\n blockExplorers: {\n default: {\n name: \"HAQQ Explorer\",\n url: \"https://explorer.testedge2.haqq.network\"\n }\n }\n};\n\n// src/klaytn.ts\nvar klaytn = {\n id: 8217,\n name: \"Klaytn\",\n network: \"klaytn\",\n nativeCurrency: {\n decimals: 18,\n name: \"Klaytn\",\n symbol: \"KLAY\"\n },\n rpcUrls: {\n default: { http: [\"https://cypress.fautor.app/archive\"] },\n public: { http: [\"https://cypress.fautor.app/archive\"] }\n },\n blockExplorers: {\n etherscan: { name: \"KlaytnScope\", url: \"https://scope.klaytn.com\" },\n default: { name: \"KlaytnScope\", url: \"https://scope.klaytn.com\" }\n }\n};\n\n// src/lineaTestnet.ts\nvar lineaTestnet = {\n id: 59140,\n name: \"Linea Goerli Testnet\",\n network: \"linea-testnet\",\n nativeCurrency: { name: \"Linea Ether\", symbol: \"ETH\", decimals: 18 },\n rpcUrls: {\n infura: {\n http: [\"https://consensys-zkevm-goerli-prealpha.infura.io/v3\"],\n webSocket: [\"wss://consensys-zkevm-goerli-prealpha.infura.io/ws/v3\"]\n },\n default: {\n http: [\"https://rpc.goerli.linea.build\"],\n webSocket: [\"wss://rpc.goerli.linea.build\"]\n },\n public: {\n http: [\"https://rpc.goerli.linea.build\"],\n webSocket: [\"wss://rpc.goerli.linea.build\"]\n }\n },\n blockExplorers: {\n default: {\n name: \"BlockScout\",\n url: \"https://explorer.goerli.linea.build\"\n }\n },\n contracts: {\n multicall3: {\n address: \"0xca11bde05977b3631167028862be2a173976ca11\",\n blockCreated: 498623\n }\n },\n testnet: true\n};\n\n// src/localhost.ts\nvar localhost = {\n id: 1337,\n name: \"Localhost\",\n network: \"localhost\",\n nativeCurrency: {\n decimals: 18,\n name: \"Ether\",\n symbol: \"ETH\"\n },\n rpcUrls: {\n default: { http: [\"http://127.0.0.1:8545\"] },\n public: { http: [\"http://127.0.0.1:8545\"] }\n }\n};\n\n// src/mainnet.ts\nvar mainnet = {\n id: 1,\n network: \"homestead\",\n name: \"Ethereum\",\n nativeCurrency: { name: \"Ether\", symbol: \"ETH\", decimals: 18 },\n rpcUrls: {\n alchemy: {\n http: [\"https://eth-mainnet.g.alchemy.com/v2\"],\n webSocket: [\"wss://eth-mainnet.g.alchemy.com/v2\"]\n },\n infura: {\n http: [\"https://mainnet.infura.io/v3\"],\n webSocket: [\"wss://mainnet.infura.io/ws/v3\"]\n },\n default: {\n http: [\"https://cloudflare-eth.com\"]\n },\n public: {\n http: [\"https://cloudflare-eth.com\"]\n }\n },\n blockExplorers: {\n etherscan: {\n name: \"Etherscan\",\n url: \"https://etherscan.io\"\n },\n default: {\n name: \"Etherscan\",\n url: \"https://etherscan.io\"\n }\n },\n contracts: {\n ensRegistry: {\n address: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\"\n },\n ensUniversalResolver: {\n address: \"0xc0497E381f536Be9ce14B0dD3817cBcAe57d2F62\",\n blockCreated: 16966585\n },\n multicall3: {\n address: \"0xca11bde05977b3631167028862be2a173976ca11\",\n blockCreated: 14353601\n }\n }\n};\n\n// src/mantle.ts\nvar mantle = {\n id: 5e3,\n name: \"Mantle\",\n network: \"mantle\",\n nativeCurrency: {\n decimals: 18,\n name: \"MNT\",\n symbol: \"MNT\"\n },\n rpcUrls: {\n default: { http: [\"https://rpc.mantle.xyz\"] },\n public: { http: [\"https://rpc.mantle.xyz\"] }\n },\n blockExplorers: {\n etherscan: {\n name: \"Mantle Testnet Explorer\",\n url: \"https://explorer.mantle.xyz\"\n },\n default: {\n name: \"Mantle Testnet Explorer\",\n url: \"https://explorer.mantle.xyz\"\n }\n }\n};\n\n// src/mantleTestnet.ts\nvar mantleTestnet = {\n id: 5001,\n name: \"Mantle Testnet\",\n network: \"mantle\",\n nativeCurrency: {\n decimals: 18,\n name: \"MNT\",\n symbol: \"MNT\"\n },\n rpcUrls: {\n default: { http: [\"https://rpc.testnet.mantle.xyz\"] },\n public: { http: [\"https://rpc.testnet.mantle.xyz\"] }\n },\n blockExplorers: {\n etherscan: {\n name: \"Mantle Testnet Explorer\",\n url: \"https://explorer.testnet.mantle.xyz\"\n },\n default: {\n name: \"Mantle Testnet Explorer\",\n url: \"https://explorer.testnet.mantle.xyz\"\n }\n },\n testnet: true\n};\n\n// src/metis.ts\nvar metis = {\n id: 1088,\n name: \"Metis\",\n network: \"andromeda\",\n nativeCurrency: {\n decimals: 18,\n name: \"Metis\",\n symbol: \"METIS\"\n },\n rpcUrls: {\n default: { http: [\"https://andromeda.metis.io/?owner=1088\"] },\n public: { http: [\"https://andromeda.metis.io/?owner=1088\"] }\n },\n blockExplorers: {\n default: {\n name: \"Andromeda Explorer\",\n url: \"https://andromeda-explorer.metis.io\"\n }\n },\n contracts: {\n multicall3: {\n address: \"0xca11bde05977b3631167028862be2a173976ca11\",\n blockCreated: 2338552\n }\n }\n};\n\n// src/metisGoerli.ts\nvar metisGoerli = {\n id: 599,\n name: \"Metis Goerli\",\n network: \"metis-goerli\",\n nativeCurrency: {\n decimals: 18,\n name: \"Metis Goerli\",\n symbol: \"METIS\"\n },\n rpcUrls: {\n default: { http: [\"https://goerli.gateway.metisdevops.link\"] },\n public: { http: [\"https://goerli.gateway.metisdevops.link\"] }\n },\n blockExplorers: {\n default: {\n name: \"Metis Goerli Explorer\",\n url: \"https://goerli.explorer.metisdevops.link\"\n }\n },\n contracts: {\n multicall3: {\n address: \"0xca11bde05977b3631167028862be2a173976ca11\",\n blockCreated: 1006207\n }\n }\n};\n\n// src/moonbaseAlpha.ts\nvar moonbaseAlpha = {\n id: 1287,\n name: \"Moonbase Alpha\",\n network: \"moonbase-alpha\",\n nativeCurrency: {\n decimals: 18,\n name: \"DEV\",\n symbol: \"DEV\"\n },\n rpcUrls: {\n default: {\n http: [\"https://rpc.api.moonbase.moonbeam.network\"],\n webSocket: [\"wss://wss.api.moonbase.moonbeam.network\"]\n },\n public: {\n http: [\"https://rpc.api.moonbase.moonbeam.network\"],\n webSocket: [\"wss://wss.api.moonbase.moonbeam.network\"]\n }\n },\n blockExplorers: {\n default: {\n name: \"Moonscan\",\n url: \"https://moonbase.moonscan.io\"\n },\n etherscan: {\n name: \"Moonscan\",\n url: \"https://moonbase.moonscan.io\"\n }\n },\n contracts: {\n multicall3: {\n address: \"0xcA11bde05977b3631167028862bE2a173976CA11\",\n blockCreated: 1850686\n }\n },\n testnet: true\n};\n\n// src/moonbeam.ts\nvar moonbeam = {\n id: 1284,\n name: \"Moonbeam\",\n network: \"moonbeam\",\n nativeCurrency: {\n decimals: 18,\n name: \"GLMR\",\n symbol: \"GLMR\"\n },\n rpcUrls: {\n public: {\n http: [\"https://moonbeam.public.blastapi.io\"],\n webSocket: [\"wss://moonbeam.public.blastapi.io\"]\n },\n default: {\n http: [\"https://moonbeam.public.blastapi.io\"],\n webSocket: [\"wss://moonbeam.public.blastapi.io\"]\n }\n },\n blockExplorers: {\n default: {\n name: \"Moonscan\",\n url: \"https://moonscan.io\"\n },\n etherscan: {\n name: \"Moonscan\",\n url: \"https://moonscan.io\"\n }\n },\n contracts: {\n multicall3: {\n address: \"0xcA11bde05977b3631167028862bE2a173976CA11\",\n blockCreated: 609002\n }\n },\n testnet: false\n};\n\n// src/moonriver.ts\nvar moonriver = {\n id: 1285,\n name: \"Moonriver\",\n network: \"moonriver\",\n nativeCurrency: {\n decimals: 18,\n name: \"MOVR\",\n symbol: \"MOVR\"\n },\n rpcUrls: {\n public: {\n http: [\"https://moonriver.public.blastapi.io\"],\n webSocket: [\"wss://moonriver.public.blastapi.io\"]\n },\n default: {\n http: [\"https://moonriver.public.blastapi.io\"],\n webSocket: [\"wss://moonriver.public.blastapi.io\"]\n }\n },\n blockExplorers: {\n default: {\n name: \"Moonscan\",\n url: \"https://moonriver.moonscan.io\"\n },\n etherscan: {\n name: \"Moonscan\",\n url: \"https://moonriver.moonscan.io\"\n }\n },\n contracts: {\n multicall3: {\n address: \"0xcA11bde05977b3631167028862bE2a173976CA11\",\n blockCreated: 1597904\n }\n },\n testnet: false\n};\n\n// src/neonDevnet.ts\nvar neonDevnet = {\n id: 245022926,\n network: \"neonDevnet\",\n name: \"Neon EVM DevNet\",\n nativeCurrency: { name: \"NEON\", symbol: \"NEON\", decimals: 18 },\n rpcUrls: {\n default: {\n http: [\"https://devnet.neonevm.org\"]\n },\n public: {\n http: [\"https://devnet.neonevm.org\"]\n }\n },\n blockExplorers: {\n default: {\n name: \"Neonscan\",\n url: \"https://neonscan.org\"\n }\n },\n contracts: {\n multicall3: {\n address: \"0xca11bde05977b3631167028862be2a173976ca11\",\n blockCreated: 205206112\n }\n },\n testnet: true\n};\n\n// src/nexi.ts\nvar nexi = {\n id: 4242,\n name: \"Nexi\",\n network: \"nexi\",\n nativeCurrency: { name: \"Nexi\", symbol: \"NEXI\", decimals: 18 },\n rpcUrls: {\n default: {\n http: [\"https://rpc.chain.nexi.technology\"]\n },\n public: {\n http: [\"https://rpc.chain.nexi.technology\"]\n }\n },\n blockExplorers: {\n etherscan: {\n name: \"NexiScan\",\n url: \"https://www.nexiscan.com\"\n },\n default: {\n name: \"NexiScan\",\n url: \"https://www.nexiscan.com\"\n }\n },\n contracts: {\n multicall3: {\n address: \"0x0277A46Cc69A57eE3A6C8c158bA874832F718B8E\",\n blockCreated: 25770160\n }\n }\n};\n\n// src/nexilix.ts\nvar nexilix = {\n id: 240,\n name: \"Nexilix Smart Chain\",\n network: \"nexilix\",\n nativeCurrency: {\n decimals: 18,\n name: \"Nexilix\",\n symbol: \"NEXILIX\"\n },\n rpcUrls: {\n default: { http: [\"https://rpcurl.pos.nexilix.com\"] },\n public: { http: [\"https://rpcurl.pos.nexilix.com\"] }\n },\n blockExplorers: {\n etherscan: { name: \"NexilixScan\", url: \"https://scan.nexilix.com\" },\n default: { name: \"NexilixScan\", url: \"https://scan.nexilix.com\" }\n },\n contracts: {\n multicall3: {\n address: \"0x58381c8e2BF9d0C2C4259cA14BdA9Afe02831244\",\n blockCreated: 74448\n }\n }\n};\n\n// src/oasys.ts\nvar oasys = {\n id: 248,\n name: \"Oasys\",\n network: \"oasys\",\n nativeCurrency: { name: \"Oasys\", symbol: \"OAS\", decimals: 18 },\n rpcUrls: {\n default: {\n http: [\"https://rpc.mainnet.oasys.games\"]\n },\n public: {\n http: [\"https://rpc.mainnet.oasys.games\"]\n }\n },\n blockExplorers: {\n default: {\n name: \"OasysScan\",\n url: \"https://scan.oasys.games\"\n }\n }\n};\n\n// src/okc.ts\nvar okc = {\n id: 66,\n name: \"OKC\",\n network: \"okc\",\n nativeCurrency: {\n decimals: 18,\n name: \"OKT\",\n symbol: \"OKT\"\n },\n rpcUrls: {\n default: { http: [\"https://exchainrpc.okex.org\"] },\n public: { http: [\"https://exchainrpc.okex.org\"] }\n },\n blockExplorers: {\n default: { name: \"oklink\", url: \"https://www.oklink.com/okc\" }\n },\n contracts: {\n multicall3: {\n address: \"0xca11bde05977b3631167028862be2a173976ca11\",\n blockCreated: 10364792\n }\n }\n};\n\n// src/optimism.ts\nvar optimism = {\n id: 10,\n name: \"Optimism\",\n network: \"optimism\",\n nativeCurrency: { name: \"Ether\", symbol: \"ETH\", decimals: 18 },\n rpcUrls: {\n alchemy: {\n http: [\"https://opt-mainnet.g.alchemy.com/v2\"],\n webSocket: [\"wss://opt-mainnet.g.alchemy.com/v2\"]\n },\n infura: {\n http: [\"https://optimism-mainnet.infura.io/v3\"],\n webSocket: [\"wss://optimism-mainnet.infura.io/ws/v3\"]\n },\n default: {\n http: [\"https://mainnet.optimism.io\"]\n },\n public: {\n http: [\"https://mainnet.optimism.io\"]\n }\n },\n blockExplorers: {\n etherscan: {\n name: \"Etherscan\",\n url: \"https://optimistic.etherscan.io\"\n },\n default: {\n name: \"Optimism Explorer\",\n url: \"https://explorer.optimism.io\"\n }\n },\n contracts: {\n multicall3: {\n address: \"0xca11bde05977b3631167028862be2a173976ca11\",\n blockCreated: 4286263\n }\n }\n};\n\n// src/optimismGoerli.ts\nvar optimismGoerli = {\n id: 420,\n name: \"Optimism Goerli\",\n network: \"optimism-goerli\",\n nativeCurrency: { name: \"Goerli Ether\", symbol: \"ETH\", decimals: 18 },\n rpcUrls: {\n alchemy: {\n http: [\"https://opt-goerli.g.alchemy.com/v2\"],\n webSocket: [\"wss://opt-goerli.g.alchemy.com/v2\"]\n },\n infura: {\n http: [\"https://optimism-goerli.infura.io/v3\"],\n webSocket: [\"wss://optimism-goerli.infura.io/ws/v3\"]\n },\n default: {\n http: [\"https://goerli.optimism.io\"]\n },\n public: {\n http: [\"https://goerli.optimism.io\"]\n }\n },\n blockExplorers: {\n etherscan: {\n name: \"Etherscan\",\n url: \"https://goerli-optimism.etherscan.io\"\n },\n default: {\n name: \"Etherscan\",\n url: \"https://goerli-optimism.etherscan.io\"\n }\n },\n contracts: {\n multicall3: {\n address: \"0xca11bde05977b3631167028862be2a173976ca11\",\n blockCreated: 49461\n }\n },\n testnet: true\n};\n\n// src/polygon.ts\nvar polygon = {\n id: 137,\n name: \"Polygon\",\n network: \"matic\",\n nativeCurrency: { name: \"MATIC\", symbol: \"MATIC\", decimals: 18 },\n rpcUrls: {\n alchemy: {\n http: [\"https://polygon-mainnet.g.alchemy.com/v2\"],\n webSocket: [\"wss://polygon-mainnet.g.alchemy.com/v2\"]\n },\n infura: {\n http: [\"https://polygon-mainnet.infura.io/v3\"],\n webSocket: [\"wss://polygon-mainnet.infura.io/ws/v3\"]\n },\n default: {\n http: [\"https://polygon-rpc.com\"]\n },\n public: {\n http: [\"https://polygon-rpc.com\"]\n }\n },\n blockExplorers: {\n etherscan: {\n name: \"PolygonScan\",\n url: \"https://polygonscan.com\"\n },\n default: {\n name: \"PolygonScan\",\n url: \"https://polygonscan.com\"\n }\n },\n contracts: {\n multicall3: {\n address: \"0xca11bde05977b3631167028862be2a173976ca11\",\n blockCreated: 25770160\n }\n }\n};\n\n// src/polygonMumbai.ts\nvar polygonMumbai = {\n id: 80001,\n name: \"Polygon Mumbai\",\n network: \"maticmum\",\n nativeCurrency: { name: \"MATIC\", symbol: \"MATIC\", decimals: 18 },\n rpcUrls: {\n alchemy: {\n http: [\"https://polygon-mumbai.g.alchemy.com/v2\"],\n webSocket: [\"wss://polygon-mumbai.g.alchemy.com/v2\"]\n },\n infura: {\n http: [\"https://polygon-mumbai.infura.io/v3\"],\n webSocket: [\"wss://polygon-mumbai.infura.io/ws/v3\"]\n },\n default: {\n http: [\"https://matic-mumbai.chainstacklabs.com\"]\n },\n public: {\n http: [\"https://matic-mumbai.chainstacklabs.com\"]\n }\n },\n blockExplorers: {\n etherscan: {\n name: \"PolygonScan\",\n url: \"https://mumbai.polygonscan.com\"\n },\n default: {\n name: \"PolygonScan\",\n url: \"https://mumbai.polygonscan.com\"\n }\n },\n contracts: {\n multicall3: {\n address: \"0xca11bde05977b3631167028862be2a173976ca11\",\n blockCreated: 25770160\n }\n },\n testnet: true\n};\n\n// src/polygonZkEvmTestnet.ts\nvar polygonZkEvmTestnet = {\n id: 1442,\n name: \"Polygon zkEVM Testnet\",\n network: \"polygon-zkevm-testnet\",\n nativeCurrency: { name: \"Ether\", symbol: \"ETH\", decimals: 18 },\n rpcUrls: {\n default: {\n http: [\"https://rpc.public.zkevm-test.net\"]\n },\n public: {\n http: [\"https://rpc.public.zkevm-test.net\"]\n }\n },\n blockExplorers: {\n blockscout: {\n name: \"Blockscout\",\n url: \"https://explorer.public.zkevm-test.net\"\n },\n default: {\n name: \"PolygonScan\",\n url: \"https://testnet-zkevm.polygonscan.com\"\n }\n },\n testnet: true,\n contracts: {\n multicall3: {\n address: \"0xca11bde05977b3631167028862be2a173976ca11\",\n blockCreated: 525686\n }\n }\n};\n\n// src/polygonZkEvm.ts\nvar polygonZkEvm = {\n id: 1101,\n name: \"Polygon zkEVM\",\n network: \"polygon-zkevm\",\n nativeCurrency: { name: \"Ether\", symbol: \"ETH\", decimals: 18 },\n rpcUrls: {\n default: {\n http: [\"https://zkevm-rpc.com\"]\n },\n public: {\n http: [\"https://zkevm-rpc.com\"]\n }\n },\n blockExplorers: {\n default: {\n name: \"PolygonScan\",\n url: \"https://zkevm.polygonscan.com\"\n }\n },\n contracts: {\n multicall3: {\n address: \"0xca11bde05977b3631167028862be2a173976ca11\",\n blockCreated: 57746\n }\n }\n};\n\n// src/pulsechain.ts\nvar pulsechain = {\n id: 369,\n network: \"pulsechain\",\n name: \"PulseChain\",\n nativeCurrency: { name: \"Pulse\", symbol: \"PLS\", decimals: 18 },\n testnet: false,\n rpcUrls: {\n default: {\n http: [\"https://rpc.pulsechain.com\"],\n webSocket: [\"wss://ws.pulsechain.com\"]\n },\n public: {\n http: [\"https://rpc.pulsechain.com\"],\n webSocket: [\"wss://ws.pulsechain.com\"]\n }\n },\n blockExplorers: {\n default: {\n name: \"PulseScan\",\n url: \"https://scan.pulsechain.com\"\n }\n },\n contracts: {\n ensRegistry: {\n address: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\"\n },\n multicall3: {\n address: \"0xca11bde05977b3631167028862be2a173976ca11\",\n blockCreated: 14353601\n }\n }\n};\n\n// src/pulsechainV4.ts\nvar pulsechainV4 = {\n id: 943,\n network: \"pulsechainV4\",\n name: \"PulseChain V4\",\n testnet: true,\n nativeCurrency: { name: \"V4 Pulse\", symbol: \"v4PLS\", decimals: 18 },\n rpcUrls: {\n default: {\n http: [\"https://rpc.v4.testnet.pulsechain.com\"],\n webSocket: [\"wss://ws.v4.testnet.pulsechain.com\"]\n },\n public: {\n http: [\"https://rpc.v4.testnet.pulsechain.com\"],\n webSocket: [\"wss://ws.v4.testnet.pulsechain.com\"]\n }\n },\n blockExplorers: {\n default: {\n name: \"PulseScan\",\n url: \"https://scan.v4.testnet.pulsechain.com\"\n }\n },\n contracts: {\n ensRegistry: {\n address: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\"\n },\n multicall3: {\n address: \"0xca11bde05977b3631167028862be2a173976ca11\",\n blockCreated: 14353601\n }\n }\n};\n\n// src/scrollTestnet.ts\nvar scrollTestnet = {\n id: 534353,\n name: \"Scroll Testnet\",\n network: \"scroll-testnet\",\n nativeCurrency: { name: \"Ether\", symbol: \"ETH\", decimals: 18 },\n rpcUrls: {\n default: {\n http: [\"https://alpha-rpc.scroll.io/l2\"],\n webSocket: [\"wss://alpha-rpc.scroll.io/l2/ws\"]\n },\n public: {\n http: [\"https://alpha-rpc.scroll.io/l2\"],\n webSocket: [\"wss://alpha-rpc.scroll.io/l2/ws\"]\n }\n },\n blockExplorers: {\n default: {\n name: \"Blockscout\",\n url: \"https://blockscout.scroll.io\"\n }\n },\n testnet: true\n};\n\n// src/sepolia.ts\nvar sepolia = {\n id: 11155111,\n network: \"sepolia\",\n name: \"Sepolia\",\n nativeCurrency: { name: \"Sepolia Ether\", symbol: \"SEP\", decimals: 18 },\n rpcUrls: {\n alchemy: {\n http: [\"https://eth-sepolia.g.alchemy.com/v2\"],\n webSocket: [\"wss://eth-sepolia.g.alchemy.com/v2\"]\n },\n infura: {\n http: [\"https://sepolia.infura.io/v3\"],\n webSocket: [\"wss://sepolia.infura.io/ws/v3\"]\n },\n default: {\n http: [\"https://rpc.sepolia.org\"]\n },\n public: {\n http: [\"https://rpc.sepolia.org\"]\n }\n },\n blockExplorers: {\n etherscan: {\n name: \"Etherscan\",\n url: \"https://sepolia.etherscan.io\"\n },\n default: {\n name: \"Etherscan\",\n url: \"https://sepolia.etherscan.io\"\n }\n },\n contracts: {\n multicall3: {\n address: \"0xca11bde05977b3631167028862be2a173976ca11\",\n blockCreated: 6507670\n }\n },\n testnet: true\n};\n\n// src/skale/brawl.ts\nvar skaleBlockBrawlers = {\n id: 391845894,\n name: \"SKALE | Block Brawlers\",\n network: \"skale-brawl\",\n nativeCurrency: { name: \"BRAWL\", symbol: \"BRAWL\", decimals: 18 },\n rpcUrls: {\n default: {\n http: [\"https://mainnet.skalenodes.com/v1/frayed-decent-antares\"]\n },\n public: {\n http: [\"https://mainnet.skalenodes.com/v1/frayed-decent-antares\"]\n }\n },\n blockExplorers: {\n etherscan: {\n name: \"SKALE Explorer\",\n url: \"https://frayed-decent-antares.explorer.mainnet.skalenodes.com\"\n },\n default: {\n name: \"SKALE Explorer\",\n url: \"https://frayed-decent-antares.explorer.mainnet.skalenodes.com\"\n }\n },\n contracts: {}\n};\n\n// src/skale/calypso.ts\nvar skaleCalypso = {\n id: 1564830818,\n name: \"SKALE | Calypso NFT Hub\",\n network: \"skale-calypso\",\n nativeCurrency: { name: \"sFUEL\", symbol: \"sFUEL\", decimals: 18 },\n rpcUrls: {\n default: {\n http: [\"https://mainnet.skalenodes.com/v1/honorable-steel-rasalhague\"]\n },\n public: {\n http: [\"https://mainnet.skalenodes.com/v1/honorable-steel-rasalhague\"]\n }\n },\n blockExplorers: {\n etherscan: {\n name: \"SKALE Explorer\",\n url: \"https://honorable-steel-rasalhague.explorer.mainnet.skalenodes.com\"\n },\n default: {\n name: \"SKALE Explorer\",\n url: \"https://honorable-steel-rasalhague.explorer.mainnet.skalenodes.com\"\n }\n },\n contracts: {}\n};\n\n// src/skale/calypsoTestnet.ts\nvar skaleCalypsoTestnet = {\n id: 344106930,\n name: \"SKALE | Calypso NFT Hub Testnet\",\n network: \"skale-calypso-testnet\",\n nativeCurrency: { name: \"sFUEL\", symbol: \"sFUEL\", decimals: 18 },\n rpcUrls: {\n default: {\n http: [\n \"https://staging-v3.skalenodes.com/v1/staging-utter-unripe-menkar\"\n ]\n },\n public: {\n http: [\n \"https://staging-v3.skalenodes.com/v1/staging-utter-unripe-menkar\"\n ]\n }\n },\n blockExplorers: {\n etherscan: {\n name: \"SKALE Explorer\",\n url: \"https://staging-utter-unripe-menkar.explorer.staging-v3.skalenodes.com\"\n },\n default: {\n name: \"SKALE Explorer\",\n url: \"https://staging-utter-unripe-menkar.explorer.staging-v3.skalenodes.com\"\n }\n },\n contracts: {},\n testnet: true\n};\n\n// src/skale/chaosTestnet.ts\nvar skaleChaosTestnet = {\n id: 1351057110,\n name: \"SKALE | Chaos Testnet\",\n network: \"skale-chaos-testnet\",\n nativeCurrency: { name: \"sFUEL\", symbol: \"sFUEL\", decimals: 18 },\n rpcUrls: {\n default: {\n http: [\n \"https://staging-v3.skalenodes.com/v1/staging-fast-active-bellatrix\"\n ]\n },\n public: {\n http: [\n \"https://staging-v3.skalenodes.com/v1/staging-fast-active-bellatrix\"\n ]\n }\n },\n blockExplorers: {\n etherscan: {\n name: \"SKALE Explorer\",\n url: \"https://staging-fast-active-bellatrix.explorer.staging-v3.skalenodes.com\"\n },\n default: {\n name: \"SKALE Explorer\",\n url: \"https://staging-fast-active-bellatrix.explorer.staging-v3.skalenodes.com\"\n }\n },\n contracts: {},\n testnet: true\n};\n\n// src/skale/cryptoBlades.ts\nvar skaleCryptoBlades = {\n id: 1026062157,\n name: \"SKALE | CryptoBlades\",\n network: \"skale-cryptoblades\",\n nativeCurrency: { name: \"sFUEL\", symbol: \"sFUEL\", decimals: 18 },\n rpcUrls: {\n default: {\n http: [\"https://mainnet.skalenodes.com/v1/affectionate-immediate-pollux\"]\n },\n public: {\n http: [\"https://mainnet.skalenodes.com/v1/affectionate-immediate-pollux\"]\n }\n },\n blockExplorers: {\n etherscan: {\n name: \"SKALE Explorer\",\n url: \"https://affectionate-immediate-pollux.explorer.mainnet.skalenodes.com\"\n },\n default: {\n name: \"SKALE Explorer\",\n url: \"https://affectionate-immediate-pollux.explorer.mainnet.skalenodes.com\"\n }\n },\n contracts: {}\n};\n\n// src/skale/cryptoColosseum.ts\nvar skaleCryptoColosseum = {\n id: 2046399126,\n name: \"SKALE | Crypto Colosseum\",\n network: \"skale-crypto-coloseeum\",\n nativeCurrency: { name: \"sFUEL\", symbol: \"sFUEL\", decimals: 18 },\n rpcUrls: {\n default: {\n http: [\"https://mainnet.skalenodes.com/v1/haunting-devoted-deneb\"]\n },\n public: {\n http: [\"https://mainnet.skalenodes.com/v1/haunting-devoted-deneb\"]\n }\n },\n blockExplorers: {\n etherscan: {\n name: \"SKALE Explorer\",\n url: \"https://haunting-devoted-deneb.explorer.mainnet.skalenodes.com\"\n },\n default: {\n name: \"SKALE Explorer\",\n url: \"https://haunting-devoted-deneb.explorer.mainnet.skalenodes.com\"\n }\n },\n contracts: {}\n};\n\n// src/skale/europa.ts\nvar skaleEuropa = {\n id: 2046399126,\n name: \"SKALE | Europa Liquidity Hub\",\n network: \"skale-europa\",\n nativeCurrency: { name: \"sFUEL\", symbol: \"sFUEL\", decimals: 18 },\n rpcUrls: {\n default: {\n http: [\"https://mainnet.skalenodes.com/v1/elated-tan-skat\"]\n },\n public: {\n http: [\"https://mainnet.skalenodes.com/v1/elated-tan-skat\"]\n }\n },\n blockExplorers: {\n etherscan: {\n name: \"SKALE Explorer\",\n url: \"https://elated-tan-skat.explorer.mainnet.skalenodes.com\"\n },\n default: {\n name: \"SKALE Explorer\",\n url: \"https://elated-tan-skat.explorer.mainnet.skalenodes.com\"\n }\n },\n contracts: {}\n};\n\n// src/skale/europaTestnet.ts\nvar skaleEuropaTestnet = {\n id: 476158412,\n name: \"SKALE | Europa Liquidity Hub Testnet\",\n network: \"skale-europa-testnet\",\n nativeCurrency: { name: \"sFUEL\", symbol: \"sFUEL\", decimals: 18 },\n rpcUrls: {\n default: {\n http: [\"https://staging-v3.skalenodes.com/v1/staging-legal-crazy-castor\"]\n },\n public: {\n http: [\"https://staging-v3.skalenodes.com/v1/staging-legal-crazy-castor\"]\n }\n },\n blockExplorers: {\n etherscan: {\n name: \"SKALE Explorer\",\n url: \"https://staging-legal-crazy-castor.explorer.staging-v3.skalenodes.com\"\n },\n default: {\n name: \"SKALE Explorer\",\n url: \"https://staging-legal-crazy-castor.explorer.staging-v3.skalenodes.com\"\n }\n },\n contracts: {},\n testnet: true\n};\n\n// src/skale/exorde.ts\nvar skaleExorde = {\n id: 2139927552,\n name: \"SKALE | Exorde\",\n network: \"skale-exorde\",\n nativeCurrency: { name: \"sFUEL\", symbol: \"sFUEL\", decimals: 18 },\n rpcUrls: {\n default: {\n http: [\"https://mainnet.skalenodes.com/v1/light-vast-diphda\"]\n },\n public: {\n http: [\"https://mainnet.skalenodes.com/v1/light-vast-diphda\"]\n }\n },\n blockExplorers: {\n etherscan: {\n name: \"SKALE Explorer\",\n url: \"https://light-vast-diphda.explorer.mainnet.skalenodes.com\"\n },\n default: {\n name: \"SKALE Explorer\",\n url: \"https://light-vast-diphda.explorer.mainnet.skalenodes.com\"\n }\n },\n contracts: {}\n};\n\n// src/skale/humanProtocol.ts\nvar skaleHumanProtocol = {\n id: 1273227453,\n name: \"SKALE | Human Protocol\",\n network: \"skale-human-protocol\",\n nativeCurrency: { name: \"sFUEL\", symbol: \"sFUEL\", decimals: 18 },\n rpcUrls: {\n default: {\n http: [\"https://mainnet.skalenodes.com/v1/wan-red-ain\"]\n },\n public: {\n http: [\"https://mainnet.skalenodes.com/v1/wan-red-ain\"]\n }\n },\n blockExplorers: {\n etherscan: {\n name: \"SKALE Explorer\",\n url: \"https://wan-red-ain.explorer.mainnet.skalenodes.com\"\n },\n default: {\n name: \"SKALE Explorer\",\n url: \"https://wan-red-ain.explorer.mainnet.skalenodes.com\"\n }\n },\n contracts: {}\n};\n\n// src/skale/nebula.ts\nvar skaleNebula = {\n id: 1482601649,\n name: \"SKALE | Nebula Gaming Hub\",\n network: \"skale-nebula\",\n nativeCurrency: { name: \"sFUEL\", symbol: \"sFUEL\", decimals: 18 },\n rpcUrls: {\n default: {\n http: [\"https://mainnet.skalenodes.com/v1/green-giddy-denebola\"]\n },\n public: {\n http: [\"https://mainnet.skalenodes.com/v1/green-giddy-denebola\"]\n }\n },\n blockExplorers: {\n etherscan: {\n name: \"SKALE Explorer\",\n url: \"https://green-giddy-denebola.explorer.mainnet.skalenodes.com\"\n },\n default: {\n name: \"SKALE Explorer\",\n url: \"https://green-giddy-denebola.explorer.mainnet.skalenodes.com\"\n }\n },\n contracts: {}\n};\n\n// src/skale/nebulaTestnet.ts\nvar skaleNebulaTestnet = {\n id: 503129905,\n name: \"SKALE | Nebula Gaming Hub Testnet\",\n network: \"skale-nebula-testnet\",\n nativeCurrency: { name: \"sFUEL\", symbol: \"sFUEL\", decimals: 18 },\n rpcUrls: {\n default: {\n http: [\"https://staging-v3.skalenodes.com/v1/staging-faint-slimy-achird\"]\n },\n public: {\n http: [\"https://staging-v3.skalenodes.com/v1/staging-faint-slimy-achird\"]\n }\n },\n blockExplorers: {\n etherscan: {\n name: \"SKALE Explorer\",\n url: \"https://staging-faint-slimy-achird.explorer.staging-v3.skalenodes.com\"\n },\n default: {\n name: \"SKALE Explorer\",\n url: \"https://staging-faint-slimy-achird.explorer.staging-v3.skalenodes.com\"\n }\n },\n contracts: {},\n testnet: true\n};\n\n// src/skale/razor.ts\nvar skaleRazor = {\n id: 278611351,\n name: \"SKALE | Razor Network\",\n network: \"skale-razor\",\n nativeCurrency: { name: \"sFUEL\", symbol: \"sFUEL\", decimals: 18 },\n rpcUrls: {\n default: {\n http: [\"https://mainnet.skalenodes.com/v1/turbulent-unique-scheat\"]\n },\n public: {\n http: [\"https://mainnet.skalenodes.com/v1/turbulent-unique-scheat\"]\n }\n },\n blockExplorers: {\n etherscan: {\n name: \"SKALE Explorer\",\n url: \"https://turbulent-unique-scheat.explorer.mainnet.skalenodes.com\"\n },\n default: {\n name: \"SKALE Explorer\",\n url: \"https://turbulent-unique-scheat.explorer.mainnet.skalenodes.com\"\n }\n },\n contracts: {}\n};\n\n// src/skale/titan.ts\nvar skaleTitan = {\n id: 1350216234,\n name: \"SKALE | Titan Community Hub\",\n network: \"skale-titan\",\n nativeCurrency: { name: \"sFUEL\", symbol: \"sFUEL\", decimals: 18 },\n rpcUrls: {\n default: {\n http: [\"https://mainnet.skalenodes.com/v1/parallel-stormy-spica\"]\n },\n public: {\n http: [\"https://mainnet.skalenodes.com/v1/parallel-stormy-spica\"]\n }\n },\n blockExplorers: {\n etherscan: {\n name: \"SKALE Explorer\",\n url: \"https://parallel-stormy-spica.explorer.mainnet.skalenodes.com\"\n },\n default: {\n name: \"SKALE Explorer\",\n url: \"https://parallel-stormy-spica.explorer.mainnet.skalenodes.com\"\n }\n },\n contracts: {}\n};\n\n// src/skale/titanTestnet.ts\nvar skaleTitanTestnet = {\n id: 1517929550,\n name: \"SKALE | Titan Community Hub Testnet\",\n network: \"skale-titan-testnet\",\n nativeCurrency: { name: \"sFUEL\", symbol: \"sFUEL\", decimals: 18 },\n rpcUrls: {\n default: {\n http: [\n \"https://staging-v3.skalenodes.com/v1/staging-aware-chief-gianfar\"\n ]\n },\n public: {\n http: [\n \"https://staging-v3.skalenodes.com/v1/staging-aware-chief-gianfar\"\n ]\n }\n },\n blockExplorers: {\n etherscan: {\n name: \"SKALE Explorer\",\n url: \"https://staging-aware-chief-gianfar.explorer.staging-v3.skalenodes.com\"\n },\n default: {\n name: \"SKALE Explorer\",\n url: \"https://staging-aware-chief-gianfar.explorer.staging-v3.skalenodes.com\"\n }\n },\n contracts: {},\n testnet: true\n};\n\n// src/songbird.ts\nvar songbird = {\n id: 19,\n name: \"Songbird Mainnet\",\n network: \"songbird-mainnet\",\n nativeCurrency: {\n decimals: 18,\n name: \"songbird\",\n symbol: \"SGB\"\n },\n rpcUrls: {\n default: { http: [\"https://songbird-api.flare.network/ext/C/rpc\"] },\n public: { http: [\"https://songbird-api.flare.network/ext/C/rpc\"] }\n },\n blockExplorers: {\n default: {\n name: \"Songbird Explorer\",\n url: \"https://songbird-explorer.flare.network\"\n }\n }\n};\n\n// src/songbirdTestnet.ts\nvar songbirdTestnet = {\n id: 16,\n name: \"Coston\",\n network: \"coston\",\n nativeCurrency: {\n decimals: 18,\n name: \"costonflare\",\n symbol: \"CFLR\"\n },\n rpcUrls: {\n default: { http: [\"https://coston-api.flare.network/ext/C/rpc\"] },\n public: { http: [\"https://coston-api.flare.network/ext/C/rpc\"] }\n },\n blockExplorers: {\n default: {\n name: \"Coston Explorer\",\n url: \"https://coston-explorer.flare.network\"\n }\n },\n testnet: true\n};\n\n// src/shardeumSphinx.ts\nvar shardeumSphinx = {\n id: 8082,\n name: \"Shardeum Sphinx\",\n network: \"shmSphinx\",\n nativeCurrency: { name: \"SHARDEUM\", symbol: \"SHM\", decimals: 18 },\n rpcUrls: {\n default: {\n http: [\"https://sphinx.shardeum.org\"]\n },\n public: {\n http: [\"https://sphinx.shardeum.org\"]\n }\n },\n blockExplorers: {\n default: {\n name: \"Shardeum Explorer\",\n url: \"https://explorer-sphinx.shardeum.org\"\n }\n },\n testnet: true\n};\n\n// src/syscoin.ts\nvar syscoin = {\n id: 57,\n name: \"Syscoin Mainnet\",\n network: \"syscoin\",\n nativeCurrency: {\n decimals: 8,\n name: \"Syscoin\",\n symbol: \"SYS\"\n },\n rpcUrls: {\n default: { http: [\"https://rpc.syscoin.org\"] },\n public: { http: [\"https://rpc.syscoin.org\"] }\n },\n blockExplorers: {\n default: { name: \"SyscoinExplorer\", url: \"https://explorer.syscoin.org\" }\n },\n contracts: {\n multicall3: {\n address: \"0x000562033783B1136159E10d976B519C929cdE8e\",\n blockCreated: 80637\n }\n }\n};\n\n// src/taraxa.ts\nvar taraxa = {\n id: 841,\n name: \"Taraxa Mainnet\",\n network: \"taraxa\",\n nativeCurrency: { name: \"Tara\", symbol: \"TARA\", decimals: 18 },\n rpcUrls: {\n default: {\n http: [\"https://rpc.mainnet.taraxa.io\"]\n },\n public: {\n http: [\"https://rpc.mainnet.taraxa.io\"]\n }\n },\n blockExplorers: {\n default: {\n name: \"Taraxa Explorer\",\n url: \"https://explorer.mainnet.taraxa.io\"\n }\n }\n};\n\n// src/taikoTestnetSepolia.ts\nvar taikoTestnetSepolia = {\n id: 167005,\n name: \"Taiko (Alpha-3 Testnet)\",\n network: \"taiko-sepolia\",\n nativeCurrency: { name: \"Ether\", symbol: \"ETH\", decimals: 18 },\n rpcUrls: {\n default: {\n http: [\"https://rpc.test.taiko.xyz\"]\n },\n public: {\n http: [\"https://rpc.test.taiko.xyz\"]\n }\n },\n blockExplorers: {\n default: {\n name: \"blockscout\",\n url: \"https://explorer.test.taiko.xyz\"\n }\n }\n};\n\n// src/taraxaTestnet.ts\nvar taraxaTestnet = {\n id: 842,\n name: \"Taraxa Testnet\",\n network: \"taraxa-testnet\",\n nativeCurrency: { name: \"Tara\", symbol: \"TARA\", decimals: 18 },\n rpcUrls: {\n default: {\n http: [\"https://rpc.testnet.taraxa.io\"]\n },\n public: {\n http: [\"https://rpc.testnet.taraxa.io\"]\n }\n },\n blockExplorers: {\n default: {\n name: \"Taraxa Explorer\",\n url: \"https://explorer.testnet.taraxa.io\"\n }\n },\n testnet: true\n};\n\n// src/telos.ts\nvar telos = {\n id: 40,\n name: \"Telos\",\n network: \"telos\",\n nativeCurrency: {\n decimals: 18,\n name: \"Telos\",\n symbol: \"TLOS\"\n },\n rpcUrls: {\n default: { http: [\"https://mainnet.telos.net/evm\"] },\n public: { http: [\"https://mainnet.telos.net/evm\"] }\n },\n blockExplorers: {\n default: {\n name: \"Teloscan\",\n url: \"https://www.teloscan.io/\"\n }\n },\n contracts: {\n multicall3: {\n address: \"0xcA11bde05977b3631167028862bE2a173976CA11\",\n blockCreated: 246530709\n }\n }\n};\n\n// src/telosTestnet.ts\nvar telosTestnet = {\n id: 41,\n name: \"Telos\",\n network: \"telosTestnet\",\n nativeCurrency: {\n decimals: 18,\n name: \"Telos\",\n symbol: \"TLOS\"\n },\n rpcUrls: {\n default: { http: [\"https://testnet.telos.net/evm\"] },\n public: { http: [\"https://testnet.telos.net/evm\"] }\n },\n blockExplorers: {\n default: {\n name: \"Teloscan (testnet)\",\n url: \"https://testnet.teloscan.io/\"\n }\n },\n testnet: true\n};\n\n// src/thunderTestnet.ts\nvar thunderTestnet = {\n id: 997,\n name: \"5ireChain Thunder Testnet\",\n network: \"5ireChain\",\n nativeCurrency: { name: \"5ire Token\", symbol: \"5IRE\", decimals: 18 },\n rpcUrls: {\n default: {\n http: [\"https://rpc-testnet.5ire.network\"]\n },\n public: {\n http: [\"https://rpc-testnet.5ire.network\"]\n }\n },\n blockExplorers: {\n default: {\n name: \"5ireChain Explorer\",\n url: \"https://explorer.5ire.network\"\n }\n },\n testnet: true\n};\n\n// src/wanchain.ts\nvar wanchain = {\n id: 888,\n name: \"Wanchain\",\n network: \"wanchain\",\n nativeCurrency: { name: \"WANCHAIN\", symbol: \"WAN\", decimals: 18 },\n rpcUrls: {\n default: {\n http: [\n \"https://gwan-ssl.wandevs.org:56891\",\n \"https://gwan2-ssl.wandevs.org\"\n ]\n },\n public: {\n http: [\n \"https://gwan-ssl.wandevs.org:56891\",\n \"https://gwan2-ssl.wandevs.org\"\n ]\n }\n },\n blockExplorers: {\n etherscan: {\n name: \"WanScan\",\n url: \"https://wanscan.org\"\n },\n default: {\n name: \"WanScan\",\n url: \"https://wanscan.org\"\n }\n },\n contracts: {\n multicall3: {\n address: \"0xcDF6A1566e78EB4594c86Fe73Fcdc82429e97fbB\",\n blockCreated: 25312390\n }\n }\n};\n\n// src/wanchainTestnet.ts\nvar wanchainTestnet = {\n id: 999,\n name: \"Wanchain Testnet\",\n network: \"wanchainTestnet\",\n nativeCurrency: { name: \"WANCHAIN\", symbol: \"WANt\", decimals: 18 },\n rpcUrls: {\n default: {\n http: [\"https://gwan-ssl.wandevs.org:46891\"]\n },\n public: {\n http: [\"https://gwan-ssl.wandevs.org:46891\"]\n }\n },\n blockExplorers: {\n etherscan: {\n name: \"WanScanTest\",\n url: \"https://wanscan.org\"\n },\n default: {\n name: \"WanScanTest\",\n url: \"https://wanscan.org\"\n }\n },\n contracts: {\n multicall3: {\n address: \"0x11c89bF4496c39FB80535Ffb4c92715839CC5324\",\n blockCreated: 24743448\n }\n },\n testnet: true\n};\n\n// src/xdc.ts\nvar xdc = {\n id: 50,\n name: \"XinFin Network\",\n network: \"xdc\",\n nativeCurrency: {\n decimals: 18,\n name: \"XDC\",\n symbol: \"XDC\"\n },\n rpcUrls: {\n default: { http: [\"https://rpc.xinfin.network\"] },\n public: { http: [\"https://rpc.xinfin.network\"] }\n },\n blockExplorers: {\n xinfin: { name: \"XinFin\", url: \"https://explorer.xinfin.network\" },\n default: { name: \"Blocksscan\", url: \"https://xdc.blocksscan.io\" }\n }\n};\n\n// src/xdcTestnet.ts\nvar xdcTestnet = {\n id: 51,\n name: \"Apothem Network\",\n network: \"xdc-testnet\",\n nativeCurrency: {\n decimals: 18,\n name: \"TXDC\",\n symbol: \"TXDC\"\n },\n rpcUrls: {\n default: { http: [\"https://erpc.apothem.network\"] },\n public: { http: [\"https://erpc.apothem.network\"] }\n },\n blockExplorers: {\n xinfin: { name: \"XinFin\", url: \"https://explorer.apothem.network\" },\n default: { name: \"Blocksscan\", url: \"https://apothem.blocksscan.io\" }\n }\n};\n\n// src/zhejiang.ts\nvar zhejiang = {\n id: 1337803,\n network: \"zhejiang\",\n name: \"Zhejiang\",\n nativeCurrency: { name: \"Zhejiang Ether\", symbol: \"ZhejETH\", decimals: 18 },\n rpcUrls: {\n default: {\n http: [\"https://rpc.zhejiang.ethpandaops.io\"]\n },\n public: {\n http: [\"https://rpc.zhejiang.ethpandaops.io\"]\n }\n },\n blockExplorers: {\n beaconchain: {\n name: \"Etherscan\",\n url: \"https://zhejiang.beaconcha.in\"\n },\n blockscout: {\n name: \"Blockscout\",\n url: \"https://blockscout.com/eth/zhejiang-testnet\"\n },\n default: {\n name: \"Beaconchain\",\n url: \"https://zhejiang.beaconcha.in\"\n }\n },\n testnet: true\n};\n\n// src/zkSync.ts\nvar zkSync = {\n id: 324,\n name: \"zkSync Era\",\n network: \"zksync-era\",\n nativeCurrency: {\n decimals: 18,\n name: \"Ether\",\n symbol: \"ETH\"\n },\n rpcUrls: {\n default: {\n http: [\"https://mainnet.era.zksync.io\"],\n webSocket: [\"wss://mainnet.era.zksync.io/ws\"]\n },\n public: {\n http: [\"https://mainnet.era.zksync.io\"],\n webSocket: [\"wss://mainnet.era.zksync.io/ws\"]\n }\n },\n blockExplorers: {\n default: {\n name: \"zkExplorer\",\n url: \"https://explorer.zksync.io\"\n }\n },\n contracts: {\n multicall3: {\n address: \"0xF9cda624FBC7e059355ce98a31693d299FACd963\"\n }\n }\n};\n\n// src/zkSyncTestnet.ts\nvar zkSyncTestnet = {\n id: 280,\n name: \"zkSync Era Testnet\",\n network: \"zksync-era-testnet\",\n nativeCurrency: { name: \"Ether\", symbol: \"ETH\", decimals: 18 },\n rpcUrls: {\n default: {\n http: [\"https://testnet.era.zksync.dev\"],\n webSocket: [\"wss://testnet.era.zksync.dev/ws\"]\n },\n public: {\n http: [\"https://testnet.era.zksync.dev\"],\n webSocket: [\"wss://testnet.era.zksync.dev/ws\"]\n }\n },\n blockExplorers: {\n default: {\n name: \"zkExplorer\",\n url: \"https://goerli.explorer.zksync.io\"\n }\n },\n contracts: {\n multicall3: {\n address: \"0xF9cda624FBC7e059355ce98a31693d299FACd963\"\n }\n },\n testnet: true\n};\n\n// src/zora.ts\nvar zora = {\n id: 7777777,\n name: \"Zora\",\n network: \"zora\",\n nativeCurrency: {\n decimals: 18,\n name: \"Ether\",\n symbol: \"ETH\"\n },\n rpcUrls: {\n default: {\n http: [\"https://rpc.zora.energy\"],\n webSocket: [\"wss://rpc.zora.energy\"]\n },\n public: {\n http: [\"https://rpc.zora.energy\"],\n webSocket: [\"wss://rpc.zora.energy\"]\n }\n },\n blockExplorers: {\n default: { name: \"Explorer\", url: \"https://explorer.zora.energy\" }\n },\n contracts: {\n multicall3: {\n address: \"0xcA11bde05977b3631167028862bE2a173976CA11\",\n blockCreated: 5882\n }\n }\n};\n\n// src/zoraTestnet.ts\nvar zoraTestnet = {\n id: 999,\n name: \"Zora Goerli Testnet\",\n network: \"zora-testnet\",\n nativeCurrency: {\n decimals: 18,\n name: \"Zora Goerli\",\n symbol: \"ETH\"\n },\n rpcUrls: {\n default: {\n http: [\"https://testnet.rpc.zora.energy\"],\n webSocket: [\"wss://testnet.rpc.zora.energy\"]\n },\n public: {\n http: [\"https://testnet.rpc.zora.energy\"],\n webSocket: [\"wss://testnet.rpc.zora.energy\"]\n }\n },\n blockExplorers: {\n default: { name: \"Explorer\", url: \"https://testnet.explorer.zora.energy\" }\n },\n contracts: {\n multicall3: {\n address: \"0xcA11bde05977b3631167028862bE2a173976CA11\",\n blockCreated: 189123\n }\n },\n testnet: true\n};\nexport {\n arbitrum,\n arbitrumGoerli,\n arbitrumNova,\n aurora,\n auroraTestnet,\n avalanche,\n avalancheFuji,\n baseGoerli,\n bearNetworkChainMainnet,\n bearNetworkChainTestnet,\n boba,\n bronos,\n bronosTestnet,\n bsc,\n bscTestnet,\n bxn,\n bxnTestnet,\n canto,\n celo,\n celoAlfajores,\n celoCannoli,\n confluxESpace,\n cronos,\n cronosTestnet,\n crossbell,\n dfk,\n dogechain,\n edgeware,\n edgewareTestnet,\n ekta,\n ektaTestnet,\n eos,\n eosTestnet,\n evmos,\n evmosTestnet,\n fantom,\n fantomTestnet,\n fibo,\n filecoin,\n filecoinCalibration,\n filecoinHyperspace,\n flare,\n flareTestnet,\n foundry,\n fuse,\n gnosis,\n gnosisChiado,\n goerli,\n haqqMainnet,\n haqqTestedge2,\n hardhat,\n harmonyOne,\n iotex,\n iotexTestnet,\n klaytn,\n lineaTestnet,\n localhost,\n mainnet,\n mantle,\n mantleTestnet,\n metis,\n metisGoerli,\n moonbaseAlpha,\n moonbeam,\n moonriver,\n neonDevnet,\n nexi,\n nexilix,\n oasys,\n okc,\n optimism,\n optimismGoerli,\n polygon,\n polygonMumbai,\n polygonZkEvm,\n polygonZkEvmTestnet,\n pulsechain,\n pulsechainV4,\n scrollTestnet,\n sepolia,\n shardeumSphinx,\n skaleBlockBrawlers,\n skaleCalypso,\n skaleCalypsoTestnet,\n skaleChaosTestnet,\n skaleCryptoBlades,\n skaleCryptoColosseum,\n skaleEuropa,\n skaleEuropaTestnet,\n skaleExorde,\n skaleHumanProtocol,\n skaleNebula,\n skaleNebulaTestnet,\n skaleRazor,\n skaleTitan,\n skaleTitanTestnet,\n songbird,\n songbirdTestnet,\n syscoin,\n taikoTestnetSepolia,\n taraxa,\n taraxaTestnet,\n telos,\n telosTestnet,\n thunderTestnet,\n wanchain,\n wanchainTestnet,\n xdc,\n xdcTestnet,\n zhejiang,\n zkSync,\n zkSyncTestnet,\n zora,\n zoraTestnet\n};\n","import {\n ChainNotConfiguredForConnectorError,\n ConnectorNotFoundError\n} from \"./chunk-ZCAPXGBX.js\";\nimport {\n normalizeChainId\n} from \"./chunk-OQILYQDO.js\";\nimport {\n Connector,\n __privateAdd,\n __privateGet,\n __privateSet,\n __publicField\n} from \"./chunk-QYMCVNHT.js\";\n\n// src/injected.ts\nimport {\n ResourceUnavailableRpcError,\n SwitchChainError,\n UserRejectedRequestError,\n createWalletClient,\n custom,\n getAddress,\n numberToHex\n} from \"viem\";\n\n// src/utils/getInjectedName.ts\nfunction getInjectedName(ethereum) {\n if (!ethereum)\n return \"Injected\";\n const getName = (provider) => {\n if (provider.isApexWallet)\n return \"Apex Wallet\";\n if (provider.isAvalanche)\n return \"Core Wallet\";\n if (provider.isBackpack)\n return \"Backpack\";\n if (provider.isBifrost)\n return \"Bifrost Wallet\";\n if (provider.isBitKeep)\n return \"BitKeep\";\n if (provider.isBitski)\n return \"Bitski\";\n if (provider.isBlockWallet)\n return \"BlockWallet\";\n if (provider.isBraveWallet)\n return \"Brave Wallet\";\n if (provider.isCoinbaseWallet)\n return \"Coinbase Wallet\";\n if (provider.isDawn)\n return \"Dawn Wallet\";\n if (provider.isDefiant)\n return \"Defiant\";\n if (provider.isEnkrypt)\n return \"Enkrypt\";\n if (provider.isExodus)\n return \"Exodus\";\n if (provider.isFrame)\n return \"Frame\";\n if (provider.isFrontier)\n return \"Frontier Wallet\";\n if (provider.isGamestop)\n return \"GameStop Wallet\";\n if (provider.isHaqqWallet)\n return \"HAQQ Wallet\";\n if (provider.isHyperPay)\n return \"HyperPay Wallet\";\n if (provider.isImToken)\n return \"ImToken\";\n if (provider.isHaloWallet)\n return \"Halo Wallet\";\n if (provider.isKuCoinWallet)\n return \"KuCoin Wallet\";\n if (provider.isMathWallet)\n return \"MathWallet\";\n if (provider.isNovaWallet)\n return \"Nova Wallet\";\n if (provider.isOkxWallet || provider.isOKExWallet)\n return \"OKX Wallet\";\n if (provider.isOneInchIOSWallet || provider.isOneInchAndroidWallet)\n return \"1inch Wallet\";\n if (provider.isOpera)\n return \"Opera\";\n if (provider.isPhantom)\n return \"Phantom\";\n if (provider.isPortal)\n return \"Ripio Portal\";\n if (provider.isRabby)\n return \"Rabby Wallet\";\n if (provider.isRainbow)\n return \"Rainbow\";\n if (provider.isStatus)\n return \"Status\";\n if (provider.isTalisman)\n return \"Talisman\";\n if (provider.isTally)\n return \"Taho\";\n if (provider.isTokenPocket)\n return \"TokenPocket\";\n if (provider.isTokenary)\n return \"Tokenary\";\n if (provider.isTrust || provider.isTrustWallet)\n return \"Trust Wallet\";\n if (provider.isTTWallet)\n return \"TTWallet\";\n if (provider.isXDEFI)\n return \"XDEFI Wallet\";\n if (provider.isZerion)\n return \"Zerion\";\n if (provider.isMetaMask)\n return \"MetaMask\";\n };\n if (ethereum.providers?.length) {\n const nameSet = /* @__PURE__ */ new Set();\n let unknownCount = 1;\n for (const provider of ethereum.providers) {\n let name = getName(provider);\n if (!name) {\n name = `Unknown Wallet #${unknownCount}`;\n unknownCount += 1;\n }\n nameSet.add(name);\n }\n const names = [...nameSet];\n if (names.length)\n return names;\n return names[0] ?? \"Injected\";\n }\n return getName(ethereum) ?? \"Injected\";\n}\n\n// src/injected.ts\nvar _provider;\nvar InjectedConnector = class extends Connector {\n constructor({\n chains,\n options: options_\n } = {}) {\n const options = {\n shimDisconnect: true,\n getProvider() {\n if (typeof window === \"undefined\")\n return;\n const ethereum = window.ethereum;\n if (ethereum?.providers)\n return ethereum.providers[0];\n return ethereum;\n },\n ...options_\n };\n super({ chains, options });\n __publicField(this, \"id\", \"injected\");\n __publicField(this, \"name\");\n __publicField(this, \"ready\");\n __privateAdd(this, _provider, void 0);\n __publicField(this, \"shimDisconnectKey\", `${this.id}.shimDisconnect`);\n __publicField(this, \"onAccountsChanged\", (accounts) => {\n if (accounts.length === 0)\n this.emit(\"disconnect\");\n else\n this.emit(\"change\", {\n account: getAddress(accounts[0])\n });\n });\n __publicField(this, \"onChainChanged\", (chainId) => {\n const id = normalizeChainId(chainId);\n const unsupported = this.isChainUnsupported(id);\n this.emit(\"change\", { chain: { id, unsupported } });\n });\n __publicField(this, \"onDisconnect\", async (error) => {\n if (error.code === 1013) {\n const provider = await this.getProvider();\n if (provider) {\n const isAuthorized = await this.getAccount();\n if (isAuthorized)\n return;\n }\n }\n this.emit(\"disconnect\");\n if (this.options.shimDisconnect)\n this.storage?.removeItem(this.shimDisconnectKey);\n });\n const provider = options.getProvider();\n if (typeof options.name === \"string\")\n this.name = options.name;\n else if (provider) {\n const detectedName = getInjectedName(provider);\n if (options.name)\n this.name = options.name(detectedName);\n else {\n if (typeof detectedName === \"string\")\n this.name = detectedName;\n else\n this.name = detectedName[0];\n }\n } else\n this.name = \"Injected\";\n this.ready = !!provider;\n }\n async connect({ chainId } = {}) {\n try {\n const provider = await this.getProvider();\n if (!provider)\n throw new ConnectorNotFoundError();\n if (provider.on) {\n provider.on(\"accountsChanged\", this.onAccountsChanged);\n provider.on(\"chainChanged\", this.onChainChanged);\n provider.on(\"disconnect\", this.onDisconnect);\n }\n this.emit(\"message\", { type: \"connecting\" });\n const accounts = await provider.request({\n method: \"eth_requestAccounts\"\n });\n const account = getAddress(accounts[0]);\n let id = await this.getChainId();\n let unsupported = this.isChainUnsupported(id);\n if (chainId && id !== chainId) {\n const chain = await this.switchChain(chainId);\n id = chain.id;\n unsupported = this.isChainUnsupported(id);\n }\n if (this.options.shimDisconnect)\n this.storage?.setItem(this.shimDisconnectKey, true);\n return { account, chain: { id, unsupported } };\n } catch (error) {\n if (this.isUserRejectedRequestError(error))\n throw new UserRejectedRequestError(error);\n if (error.code === -32002)\n throw new ResourceUnavailableRpcError(error);\n throw error;\n }\n }\n async disconnect() {\n const provider = await this.getProvider();\n if (!provider?.removeListener)\n return;\n provider.removeListener(\"accountsChanged\", this.onAccountsChanged);\n provider.removeListener(\"chainChanged\", this.onChainChanged);\n provider.removeListener(\"disconnect\", this.onDisconnect);\n if (this.options.shimDisconnect)\n this.storage?.removeItem(this.shimDisconnectKey);\n }\n async getAccount() {\n const provider = await this.getProvider();\n if (!provider)\n throw new ConnectorNotFoundError();\n const accounts = await provider.request({\n method: \"eth_accounts\"\n });\n return getAddress(accounts[0]);\n }\n async getChainId() {\n const provider = await this.getProvider();\n if (!provider)\n throw new ConnectorNotFoundError();\n return provider.request({ method: \"eth_chainId\" }).then(normalizeChainId);\n }\n async getProvider() {\n const provider = this.options.getProvider();\n if (provider)\n __privateSet(this, _provider, provider);\n return __privateGet(this, _provider);\n }\n async getWalletClient({\n chainId\n } = {}) {\n const [provider, account] = await Promise.all([\n this.getProvider(),\n this.getAccount()\n ]);\n const chain = this.chains.find((x) => x.id === chainId);\n if (!provider)\n throw new Error(\"provider is required.\");\n return createWalletClient({\n account,\n chain,\n transport: custom(provider)\n });\n }\n async isAuthorized() {\n try {\n if (this.options.shimDisconnect && !this.storage?.getItem(this.shimDisconnectKey))\n return false;\n const provider = await this.getProvider();\n if (!provider)\n throw new ConnectorNotFoundError();\n const account = await this.getAccount();\n return !!account;\n } catch {\n return false;\n }\n }\n async switchChain(chainId) {\n const provider = await this.getProvider();\n if (!provider)\n throw new ConnectorNotFoundError();\n const id = numberToHex(chainId);\n try {\n await Promise.all([\n provider.request({\n method: \"wallet_switchEthereumChain\",\n params: [{ chainId: id }]\n }),\n new Promise(\n (res) => this.on(\"change\", ({ chain }) => {\n if (chain?.id === chainId)\n res();\n })\n )\n ]);\n return this.chains.find((x) => x.id === chainId) ?? {\n id: chainId,\n name: `Chain ${id}`,\n network: `${id}`,\n nativeCurrency: { name: \"Ether\", decimals: 18, symbol: \"ETH\" },\n rpcUrls: { default: { http: [\"\"] }, public: { http: [\"\"] } }\n };\n } catch (error) {\n const chain = this.chains.find((x) => x.id === chainId);\n if (!chain)\n throw new ChainNotConfiguredForConnectorError({\n chainId,\n connectorId: this.id\n });\n if (error.code === 4902 || error?.data?.originalError?.code === 4902) {\n try {\n await provider.request({\n method: \"wallet_addEthereumChain\",\n params: [\n {\n chainId: id,\n chainName: chain.name,\n nativeCurrency: chain.nativeCurrency,\n rpcUrls: [chain.rpcUrls.public?.http[0] ?? \"\"],\n blockExplorerUrls: this.getBlockExplorerUrls(chain)\n }\n ]\n });\n const currentChainId = await this.getChainId();\n if (currentChainId !== chainId)\n throw new UserRejectedRequestError(\n new Error(\"User rejected switch after adding network.\")\n );\n return chain;\n } catch (error2) {\n throw new UserRejectedRequestError(error2);\n }\n }\n if (this.isUserRejectedRequestError(error))\n throw new UserRejectedRequestError(error);\n throw new SwitchChainError(error);\n }\n }\n async watchAsset({\n address,\n decimals = 18,\n image,\n symbol\n }) {\n const provider = await this.getProvider();\n if (!provider)\n throw new ConnectorNotFoundError();\n return provider.request({\n method: \"wallet_watchAsset\",\n params: {\n type: \"ERC20\",\n options: {\n address,\n decimals,\n image,\n symbol\n }\n }\n });\n }\n isUserRejectedRequestError(error) {\n return error.code === 4001;\n }\n};\n_provider = new WeakMap();\n\nexport {\n InjectedConnector\n};\n","// src/utils/normalizeChainId.ts\nfunction normalizeChainId(chainId) {\n if (typeof chainId === \"string\")\n return Number.parseInt(\n chainId,\n chainId.trim().substring(0, 2) === \"0x\" ? 16 : 10\n );\n if (typeof chainId === \"bigint\")\n return Number(chainId);\n return chainId;\n}\n\nexport {\n normalizeChainId\n};\n","import { defineChain } from '../../utils/chain/defineChain.js';\nexport const goerli = /*#__PURE__*/ defineChain({\n id: 5,\n name: 'Goerli',\n nativeCurrency: { name: 'Goerli Ether', symbol: 'ETH', decimals: 18 },\n rpcUrls: {\n default: {\n http: ['https://rpc.ankr.com/eth_goerli'],\n },\n },\n blockExplorers: {\n default: {\n name: 'Etherscan',\n url: 'https://goerli.etherscan.io',\n apiUrl: 'https://api-goerli.etherscan.io/api',\n },\n },\n contracts: {\n ensRegistry: {\n address: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e',\n },\n ensUniversalResolver: {\n address: '0xfc4AC75C46C914aF5892d6d3eFFcebD7917293F1',\n blockCreated: 10_339_206,\n },\n multicall3: {\n address: '0xca11bde05977b3631167028862be2a173976ca11',\n blockCreated: 6507670,\n },\n },\n testnet: true,\n});\n//# sourceMappingURL=goerli.js.map","var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nvar __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, \"access private method\");\n return method;\n};\n\n// src/base.ts\nimport { default as EventEmitter } from \"eventemitter3\";\nimport { goerli, mainnet } from \"viem/chains\";\nvar Connector = class extends EventEmitter {\n constructor({\n chains = [mainnet, goerli],\n options\n }) {\n super();\n __publicField(this, \"chains\");\n __publicField(this, \"options\");\n __publicField(this, \"storage\");\n this.chains = chains;\n this.options = options;\n }\n getBlockExplorerUrls(chain) {\n const { default: blockExplorer, ...blockExplorers } = chain.blockExplorers ?? {};\n if (blockExplorer)\n return [\n blockExplorer.url,\n ...Object.values(blockExplorers).map((x) => x.url)\n ];\n }\n isChainUnsupported(chainId) {\n return !this.chains.some((x) => x.id === chainId);\n }\n setStorage(storage) {\n this.storage = storage;\n }\n};\n\nexport {\n __publicField,\n __privateGet,\n __privateAdd,\n __privateSet,\n __privateMethod,\n Connector\n};\n","import {\n __publicField\n} from \"./chunk-QYMCVNHT.js\";\n\n// src/errors.ts\nvar ChainNotConfiguredForConnectorError = class extends Error {\n constructor({\n chainId,\n connectorId\n }) {\n super(`Chain \"${chainId}\" not configured for connector \"${connectorId}\".`);\n __publicField(this, \"name\", \"ChainNotConfiguredForConnectorError\");\n }\n};\nvar ConnectorNotFoundError = class extends Error {\n constructor() {\n super(...arguments);\n __publicField(this, \"name\", \"ConnectorNotFoundError\");\n __publicField(this, \"message\", \"Connector not found\");\n }\n};\n\nexport {\n ChainNotConfiguredForConnectorError,\n ConnectorNotFoundError\n};\n","import {\n InjectedConnector\n} from \"./chunk-QRUHVNWK.js\";\nimport {\n ConnectorNotFoundError\n} from \"./chunk-ZCAPXGBX.js\";\nimport \"./chunk-OQILYQDO.js\";\nimport {\n __privateAdd,\n __privateGet,\n __privateSet,\n __publicField\n} from \"./chunk-QYMCVNHT.js\";\n\n// src/metaMask.ts\nimport {\n ResourceUnavailableRpcError,\n UserRejectedRequestError,\n getAddress\n} from \"viem\";\nvar _UNSTABLE_shimOnConnectSelectAccount;\nvar MetaMaskConnector = class extends InjectedConnector {\n constructor({\n chains,\n options: options_\n } = {}) {\n const options = {\n name: \"MetaMask\",\n shimDisconnect: true,\n getProvider() {\n function getReady(ethereum2) {\n const isMetaMask = !!ethereum2?.isMetaMask;\n if (!isMetaMask)\n return;\n if (ethereum2.isBraveWallet && !ethereum2._events && !ethereum2._state)\n return;\n if (ethereum2.isApexWallet)\n return;\n if (ethereum2.isAvalanche)\n return;\n if (ethereum2.isBitKeep)\n return;\n if (ethereum2.isBlockWallet)\n return;\n if (ethereum2.isMathWallet)\n return;\n if (ethereum2.isOkxWallet || ethereum2.isOKExWallet)\n return;\n if (ethereum2.isOneInchIOSWallet || ethereum2.isOneInchAndroidWallet)\n return;\n if (ethereum2.isOpera)\n return;\n if (ethereum2.isPortal)\n return;\n if (ethereum2.isRabby)\n return;\n if (ethereum2.isDefiant)\n return;\n if (ethereum2.isTokenPocket)\n return;\n if (ethereum2.isTokenary)\n return;\n if (ethereum2.isZerion)\n return;\n return ethereum2;\n }\n if (typeof window === \"undefined\")\n return;\n const ethereum = window.ethereum;\n if (ethereum?.providers)\n return ethereum.providers.find(getReady);\n return getReady(ethereum);\n },\n ...options_\n };\n super({ chains, options });\n __publicField(this, \"id\", \"metaMask\");\n __publicField(this, \"shimDisconnectKey\", `${this.id}.shimDisconnect`);\n __privateAdd(this, _UNSTABLE_shimOnConnectSelectAccount, void 0);\n __privateSet(this, _UNSTABLE_shimOnConnectSelectAccount, options.UNSTABLE_shimOnConnectSelectAccount);\n }\n async connect({ chainId } = {}) {\n try {\n const provider = await this.getProvider();\n if (!provider)\n throw new ConnectorNotFoundError();\n if (provider.on) {\n provider.on(\"accountsChanged\", this.onAccountsChanged);\n provider.on(\"chainChanged\", this.onChainChanged);\n provider.on(\"disconnect\", this.onDisconnect);\n }\n this.emit(\"message\", { type: \"connecting\" });\n let account = null;\n if (__privateGet(this, _UNSTABLE_shimOnConnectSelectAccount) && this.options?.shimDisconnect && !this.storage?.getItem(this.shimDisconnectKey)) {\n account = await this.getAccount().catch(() => null);\n const isConnected = !!account;\n if (isConnected)\n try {\n await provider.request({\n method: \"wallet_requestPermissions\",\n params: [{ eth_accounts: {} }]\n });\n account = await this.getAccount();\n } catch (error) {\n if (this.isUserRejectedRequestError(error))\n throw new UserRejectedRequestError(error);\n if (error.code === new ResourceUnavailableRpcError(error).code)\n throw error;\n }\n }\n if (!account) {\n const accounts = await provider.request({\n method: \"eth_requestAccounts\"\n });\n account = getAddress(accounts[0]);\n }\n let id = await this.getChainId();\n let unsupported = this.isChainUnsupported(id);\n if (chainId && id !== chainId) {\n const chain = await this.switchChain(chainId);\n id = chain.id;\n unsupported = this.isChainUnsupported(id);\n }\n if (this.options?.shimDisconnect)\n this.storage?.setItem(this.shimDisconnectKey, true);\n return { account, chain: { id, unsupported }, provider };\n } catch (error) {\n if (this.isUserRejectedRequestError(error))\n throw new UserRejectedRequestError(error);\n if (error.code === -32002)\n throw new ResourceUnavailableRpcError(error);\n throw error;\n }\n }\n};\n_UNSTABLE_shimOnConnectSelectAccount = new WeakMap();\nexport {\n MetaMaskConnector\n};\n","import {\n Connector,\n __privateAdd,\n __privateGet,\n __privateMethod,\n __privateSet,\n __publicField\n} from \"./chunk-QYMCVNHT.js\";\n\n// src/walletConnect.ts\nimport { normalizeNamespaces } from \"@walletconnect/utils\";\nimport {\n SwitchChainError,\n UserRejectedRequestError,\n createWalletClient,\n custom,\n getAddress,\n numberToHex\n} from \"viem\";\nvar NAMESPACE = \"eip155\";\nvar STORE_KEY = \"store\";\nvar REQUESTED_CHAINS_KEY = \"requestedChains\";\nvar ADD_ETH_CHAIN_METHOD = \"wallet_addEthereumChain\";\nvar _provider, _initProviderPromise, _createProvider, createProvider_fn, _initProvider, initProvider_fn, _isChainsStale, isChainsStale_fn, _setupListeners, setupListeners_fn, _removeListeners, removeListeners_fn, _setRequestedChainsIds, setRequestedChainsIds_fn, _getRequestedChainsIds, getRequestedChainsIds_fn, _getNamespaceChainsIds, getNamespaceChainsIds_fn, _getNamespaceMethods, getNamespaceMethods_fn;\nvar WalletConnectConnector = class extends Connector {\n constructor(config) {\n super({\n ...config,\n options: { isNewChainsStale: true, ...config.options }\n });\n __privateAdd(this, _createProvider);\n __privateAdd(this, _initProvider);\n __privateAdd(this, _isChainsStale);\n __privateAdd(this, _setupListeners);\n __privateAdd(this, _removeListeners);\n __privateAdd(this, _setRequestedChainsIds);\n __privateAdd(this, _getRequestedChainsIds);\n __privateAdd(this, _getNamespaceChainsIds);\n __privateAdd(this, _getNamespaceMethods);\n __publicField(this, \"id\", \"walletConnect\");\n __publicField(this, \"name\", \"WalletConnect\");\n __publicField(this, \"ready\", true);\n __privateAdd(this, _provider, void 0);\n __privateAdd(this, _initProviderPromise, void 0);\n __publicField(this, \"onAccountsChanged\", (accounts) => {\n if (accounts.length === 0)\n this.emit(\"disconnect\");\n else\n this.emit(\"change\", { account: getAddress(accounts[0]) });\n });\n __publicField(this, \"onChainChanged\", (chainId) => {\n const id = Number(chainId);\n const unsupported = this.isChainUnsupported(id);\n this.emit(\"change\", { chain: { id, unsupported } });\n });\n __publicField(this, \"onDisconnect\", () => {\n __privateMethod(this, _setRequestedChainsIds, setRequestedChainsIds_fn).call(this, []);\n this.emit(\"disconnect\");\n });\n __publicField(this, \"onDisplayUri\", (uri) => {\n this.emit(\"message\", { type: \"display_uri\", data: uri });\n });\n __publicField(this, \"onConnect\", () => {\n this.emit(\"connect\", {});\n });\n __privateMethod(this, _createProvider, createProvider_fn).call(this);\n }\n async connect({ chainId, pairingTopic } = {}) {\n try {\n let targetChainId = chainId;\n if (!targetChainId) {\n const store = this.storage?.getItem(STORE_KEY);\n const lastUsedChainId = store?.state?.data?.chain?.id;\n if (lastUsedChainId && !this.isChainUnsupported(lastUsedChainId))\n targetChainId = lastUsedChainId;\n else\n targetChainId = this.chains[0]?.id;\n }\n if (!targetChainId)\n throw new Error(\"No chains found on connector.\");\n const provider = await this.getProvider();\n __privateMethod(this, _setupListeners, setupListeners_fn).call(this);\n const isChainsStale = __privateMethod(this, _isChainsStale, isChainsStale_fn).call(this);\n if (provider.session && isChainsStale)\n await provider.disconnect();\n if (!provider.session || isChainsStale) {\n const optionalChains = this.chains.filter((chain) => chain.id !== targetChainId).map((optionalChain) => optionalChain.id);\n this.emit(\"message\", { type: \"connecting\" });\n await provider.connect({\n pairingTopic,\n chains: [targetChainId],\n optionalChains: optionalChains.length ? optionalChains : void 0\n });\n __privateMethod(this, _setRequestedChainsIds, setRequestedChainsIds_fn).call(this, this.chains.map(({ id: id2 }) => id2));\n }\n const accounts = await provider.enable();\n const account = getAddress(accounts[0]);\n const id = await this.getChainId();\n const unsupported = this.isChainUnsupported(id);\n return {\n account,\n chain: { id, unsupported }\n };\n } catch (error) {\n if (/user rejected/i.test(error?.message)) {\n throw new UserRejectedRequestError(error);\n }\n throw error;\n }\n }\n async disconnect() {\n const provider = await this.getProvider();\n try {\n await provider.disconnect();\n } catch (error) {\n if (!/No matching key/i.test(error.message))\n throw error;\n } finally {\n __privateMethod(this, _removeListeners, removeListeners_fn).call(this);\n __privateMethod(this, _setRequestedChainsIds, setRequestedChainsIds_fn).call(this, []);\n }\n }\n async getAccount() {\n const { accounts } = await this.getProvider();\n return getAddress(accounts[0]);\n }\n async getChainId() {\n const { chainId } = await this.getProvider();\n return chainId;\n }\n async getProvider({ chainId } = {}) {\n if (!__privateGet(this, _provider))\n await __privateMethod(this, _createProvider, createProvider_fn).call(this);\n if (chainId)\n await this.switchChain(chainId);\n return __privateGet(this, _provider);\n }\n async getWalletClient({\n chainId\n } = {}) {\n const [provider, account] = await Promise.all([\n this.getProvider({ chainId }),\n this.getAccount()\n ]);\n const chain = this.chains.find((x) => x.id === chainId);\n if (!provider)\n throw new Error(\"provider is required.\");\n return createWalletClient({\n account,\n chain,\n transport: custom(provider)\n });\n }\n async isAuthorized() {\n try {\n const [account, provider] = await Promise.all([\n this.getAccount(),\n this.getProvider()\n ]);\n const isChainsStale = __privateMethod(this, _isChainsStale, isChainsStale_fn).call(this);\n if (!account)\n return false;\n if (isChainsStale && provider.session) {\n try {\n await provider.disconnect();\n } catch {\n }\n return false;\n }\n return true;\n } catch {\n return false;\n }\n }\n async switchChain(chainId) {\n const chain = this.chains.find((chain2) => chain2.id === chainId);\n if (!chain)\n throw new SwitchChainError(new Error(\"chain not found on connector.\"));\n try {\n const provider = await this.getProvider();\n const namespaceChains = __privateMethod(this, _getNamespaceChainsIds, getNamespaceChainsIds_fn).call(this);\n const namespaceMethods = __privateMethod(this, _getNamespaceMethods, getNamespaceMethods_fn).call(this);\n const isChainApproved = namespaceChains.includes(chainId);\n if (!isChainApproved && namespaceMethods.includes(ADD_ETH_CHAIN_METHOD)) {\n await provider.request({\n method: ADD_ETH_CHAIN_METHOD,\n params: [\n {\n chainId: numberToHex(chain.id),\n blockExplorerUrls: [chain.blockExplorers?.default?.url],\n chainName: chain.name,\n nativeCurrency: chain.nativeCurrency,\n rpcUrls: [...chain.rpcUrls.default.http]\n }\n ]\n });\n const requestedChains = __privateMethod(this, _getRequestedChainsIds, getRequestedChainsIds_fn).call(this);\n requestedChains.push(chainId);\n __privateMethod(this, _setRequestedChainsIds, setRequestedChainsIds_fn).call(this, requestedChains);\n }\n await provider.request({\n method: \"wallet_switchEthereumChain\",\n params: [{ chainId: numberToHex(chainId) }]\n });\n return chain;\n } catch (error) {\n const message = typeof error === \"string\" ? error : error?.message;\n if (/user rejected request/i.test(message)) {\n throw new UserRejectedRequestError(error);\n }\n throw new SwitchChainError(error);\n }\n }\n};\n_provider = new WeakMap();\n_initProviderPromise = new WeakMap();\n_createProvider = new WeakSet();\ncreateProvider_fn = async function() {\n if (!__privateGet(this, _initProviderPromise) && typeof window !== \"undefined\") {\n __privateSet(this, _initProviderPromise, __privateMethod(this, _initProvider, initProvider_fn).call(this));\n }\n return __privateGet(this, _initProviderPromise);\n};\n_initProvider = new WeakSet();\ninitProvider_fn = async function() {\n const { EthereumProvider, OPTIONAL_EVENTS, OPTIONAL_METHODS } = await import(\"@walletconnect/ethereum-provider\");\n const [defaultChain, ...optionalChains] = this.chains.map(({ id }) => id);\n if (defaultChain) {\n const {\n projectId,\n showQrModal = true,\n qrModalOptions,\n metadata,\n relayUrl\n } = this.options;\n __privateSet(this, _provider, await EthereumProvider.init({\n showQrModal,\n qrModalOptions,\n projectId,\n optionalMethods: OPTIONAL_METHODS,\n optionalEvents: OPTIONAL_EVENTS,\n chains: [defaultChain],\n optionalChains: optionalChains.length ? optionalChains : void 0,\n rpcMap: Object.fromEntries(\n this.chains.map((chain) => [\n chain.id,\n chain.rpcUrls.default.http[0]\n ])\n ),\n metadata,\n relayUrl\n }));\n }\n};\n_isChainsStale = new WeakSet();\nisChainsStale_fn = function() {\n const namespaceMethods = __privateMethod(this, _getNamespaceMethods, getNamespaceMethods_fn).call(this);\n if (namespaceMethods.includes(ADD_ETH_CHAIN_METHOD))\n return false;\n if (!this.options.isNewChainsStale)\n return false;\n const requestedChains = __privateMethod(this, _getRequestedChainsIds, getRequestedChainsIds_fn).call(this);\n const connectorChains = this.chains.map(({ id }) => id);\n const namespaceChains = __privateMethod(this, _getNamespaceChainsIds, getNamespaceChainsIds_fn).call(this);\n if (namespaceChains.length && !namespaceChains.some((id) => connectorChains.includes(id)))\n return false;\n return !connectorChains.every((id) => requestedChains.includes(id));\n};\n_setupListeners = new WeakSet();\nsetupListeners_fn = function() {\n if (!__privateGet(this, _provider))\n return;\n __privateMethod(this, _removeListeners, removeListeners_fn).call(this);\n __privateGet(this, _provider).on(\"accountsChanged\", this.onAccountsChanged);\n __privateGet(this, _provider).on(\"chainChanged\", this.onChainChanged);\n __privateGet(this, _provider).on(\"disconnect\", this.onDisconnect);\n __privateGet(this, _provider).on(\"session_delete\", this.onDisconnect);\n __privateGet(this, _provider).on(\"display_uri\", this.onDisplayUri);\n __privateGet(this, _provider).on(\"connect\", this.onConnect);\n};\n_removeListeners = new WeakSet();\nremoveListeners_fn = function() {\n if (!__privateGet(this, _provider))\n return;\n __privateGet(this, _provider).removeListener(\"accountsChanged\", this.onAccountsChanged);\n __privateGet(this, _provider).removeListener(\"chainChanged\", this.onChainChanged);\n __privateGet(this, _provider).removeListener(\"disconnect\", this.onDisconnect);\n __privateGet(this, _provider).removeListener(\"session_delete\", this.onDisconnect);\n __privateGet(this, _provider).removeListener(\"display_uri\", this.onDisplayUri);\n __privateGet(this, _provider).removeListener(\"connect\", this.onConnect);\n};\n_setRequestedChainsIds = new WeakSet();\nsetRequestedChainsIds_fn = function(chains) {\n this.storage?.setItem(REQUESTED_CHAINS_KEY, chains);\n};\n_getRequestedChainsIds = new WeakSet();\ngetRequestedChainsIds_fn = function() {\n return this.storage?.getItem(REQUESTED_CHAINS_KEY) ?? [];\n};\n_getNamespaceChainsIds = new WeakSet();\ngetNamespaceChainsIds_fn = function() {\n if (!__privateGet(this, _provider))\n return [];\n const namespaces = __privateGet(this, _provider).session?.namespaces;\n if (!namespaces)\n return [];\n const normalizedNamespaces = normalizeNamespaces(namespaces);\n const chainIds = normalizedNamespaces[NAMESPACE]?.chains?.map(\n (chain) => parseInt(chain.split(\":\")[1] || \"\")\n );\n return chainIds ?? [];\n};\n_getNamespaceMethods = new WeakSet();\ngetNamespaceMethods_fn = function() {\n if (!__privateGet(this, _provider))\n return [];\n const namespaces = __privateGet(this, _provider).session?.namespaces;\n if (!namespaces)\n return [];\n const normalizedNamespaces = normalizeNamespaces(namespaces);\n const methods = normalizedNamespaces[NAMESPACE]?.methods;\n return methods ?? [];\n};\nexport {\n WalletConnectConnector\n};\n","import {\n InjectedConnector\n} from \"./chunk-BVC4KGLQ.js\";\nimport {\n __privateAdd,\n __privateGet,\n __privateMethod,\n __privateSet\n} from \"./chunk-MQXBDTVK.js\";\n\n// src/utils/configureChains.ts\nimport { createPublicClient, fallback, http, webSocket } from \"viem\";\nfunction configureChains(defaultChains, providers, {\n batch = { multicall: { wait: 32 } },\n pollingInterval = 4e3,\n rank,\n retryCount,\n retryDelay,\n stallTimeout\n} = {}) {\n if (!defaultChains.length)\n throw new Error(\"must have at least one chain\");\n let chains = [];\n const httpUrls = {};\n const wsUrls = {};\n for (const chain of defaultChains) {\n let configExists = false;\n for (const provider of providers) {\n const apiConfig = provider(chain);\n if (!apiConfig)\n continue;\n configExists = true;\n if (!chains.some(({ id }) => id === chain.id)) {\n chains = [...chains, apiConfig.chain];\n }\n httpUrls[chain.id] = [\n ...httpUrls[chain.id] || [],\n ...apiConfig.rpcUrls.http\n ];\n if (apiConfig.rpcUrls.webSocket) {\n wsUrls[chain.id] = [\n ...wsUrls[chain.id] || [],\n ...apiConfig.rpcUrls.webSocket\n ];\n }\n }\n if (!configExists) {\n throw new Error(\n [\n `Could not find valid provider configuration for chain \"${chain.name}\".\n`,\n \"You may need to add `jsonRpcProvider` to `configureChains` with the chain's RPC URLs.\",\n \"Read more: https://wagmi.sh/core/providers/jsonRpc\"\n ].join(\"\\n\")\n );\n }\n }\n return {\n chains,\n publicClient: ({ chainId }) => {\n const activeChain = chains.find((x) => x.id === chainId) ?? defaultChains[0];\n const chainHttpUrls = httpUrls[activeChain.id];\n if (!chainHttpUrls || !chainHttpUrls[0])\n throw new Error(`No providers configured for chain \"${activeChain.id}\"`);\n const publicClient = createPublicClient({\n batch,\n chain: activeChain,\n transport: fallback(\n chainHttpUrls.map((url) => http(url, { timeout: stallTimeout })),\n { rank, retryCount, retryDelay }\n ),\n pollingInterval\n });\n return Object.assign(publicClient, {\n chains\n });\n },\n webSocketPublicClient: ({ chainId }) => {\n const activeChain = chains.find((x) => x.id === chainId) ?? defaultChains[0];\n const chainWsUrls = wsUrls[activeChain.id];\n if (!chainWsUrls || !chainWsUrls[0])\n return void 0;\n const publicClient = createPublicClient({\n batch,\n chain: activeChain,\n transport: fallback(\n chainWsUrls.map((url) => webSocket(url, { timeout: stallTimeout })),\n { rank, retryCount, retryDelay }\n ),\n pollingInterval\n });\n return Object.assign(publicClient, {\n chains\n });\n }\n };\n}\n\n// src/errors.ts\nimport { ConnectorNotFoundError } from \"@wagmi/connectors\";\nvar ChainMismatchError = class extends Error {\n constructor({\n activeChain,\n targetChain\n }) {\n super(\n `Chain mismatch: Expected \"${targetChain}\", received \"${activeChain}\".`\n );\n this.name = \"ChainMismatchError\";\n }\n};\nvar ChainNotConfiguredError = class extends Error {\n constructor({\n chainId,\n connectorId\n }) {\n super(\n `Chain \"${chainId}\" not configured${connectorId ? ` for connector \"${connectorId}\"` : \"\"}.`\n );\n this.name = \"ChainNotConfigured\";\n }\n};\nvar ConnectorAlreadyConnectedError = class extends Error {\n constructor() {\n super(...arguments);\n this.name = \"ConnectorAlreadyConnectedError\";\n this.message = \"Connector already connected\";\n }\n};\nvar ConfigChainsNotFound = class extends Error {\n constructor() {\n super(...arguments);\n this.name = \"ConfigChainsNotFound\";\n this.message = \"No chains were found on the wagmi config. Some functions that require a chain may not work.\";\n }\n};\nvar SwitchChainNotSupportedError = class extends Error {\n constructor({ connector }) {\n super(`\"${connector.name}\" does not support programmatic chain switching.`);\n this.name = \"SwitchChainNotSupportedError\";\n }\n};\n\n// src/utils/deepEqual.ts\nfunction deepEqual(a, b) {\n if (a === b)\n return true;\n if (a && b && typeof a === \"object\" && typeof b === \"object\") {\n if (a.constructor !== b.constructor)\n return false;\n let length;\n let i;\n if (Array.isArray(a) && Array.isArray(b)) {\n length = a.length;\n if (length != b.length)\n return false;\n for (i = length; i-- !== 0; )\n if (!deepEqual(a[i], b[i]))\n return false;\n return true;\n }\n if (a.valueOf !== Object.prototype.valueOf)\n return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString)\n return a.toString() === b.toString();\n const keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length)\n return false;\n for (i = length; i-- !== 0; )\n if (!Object.prototype.hasOwnProperty.call(b, keys[i]))\n return false;\n for (i = length; i-- !== 0; ) {\n const key = keys[i];\n if (key && !deepEqual(a[key], b[key]))\n return false;\n }\n return true;\n }\n return a !== a && b !== b;\n}\n\n// src/utils/deserialize.ts\nvar findAndReplace = (cacheRef, {\n find,\n replace\n}) => {\n if (cacheRef && find(cacheRef)) {\n return replace(cacheRef);\n }\n if (typeof cacheRef !== \"object\") {\n return cacheRef;\n }\n if (Array.isArray(cacheRef)) {\n return cacheRef.map((item) => findAndReplace(item, { find, replace }));\n }\n if (cacheRef instanceof Object) {\n return Object.entries(cacheRef).reduce(\n (curr, [key, value]) => ({\n ...curr,\n [key]: findAndReplace(value, { find, replace })\n }),\n {}\n );\n }\n return cacheRef;\n};\nfunction deserialize(cachedString) {\n const cache = JSON.parse(cachedString);\n const deserializedCacheWithBigInts = findAndReplace(cache, {\n find: (data) => typeof data === \"string\" && data.startsWith(\"#bigint.\"),\n replace: (data) => BigInt(data.replace(\"#bigint.\", \"\"))\n });\n return deserializedCacheWithBigInts;\n}\n\n// src/utils/getParameters.ts\nfunction getCallParameters(args) {\n return {\n accessList: args.accessList,\n account: args.account,\n blockNumber: args.blockNumber,\n blockTag: args.blockTag,\n data: args.data,\n gas: args.gas,\n gasPrice: args.gasPrice,\n maxFeePerGas: args.maxFeePerGas,\n maxPriorityFeePerGas: args.maxPriorityFeePerGas,\n nonce: args.nonce,\n to: args.to,\n value: args.value\n };\n}\nfunction getSendTransactionParameters(args) {\n return {\n accessList: args.accessList,\n account: args.account,\n data: args.data,\n gas: args.gas,\n gasPrice: args.gasPrice,\n maxFeePerGas: args.maxFeePerGas,\n maxPriorityFeePerGas: args.maxPriorityFeePerGas,\n nonce: args.nonce,\n to: args.to,\n value: args.value\n };\n}\n\n// src/utils/getUnit.ts\nimport { weiUnits } from \"viem\";\nfunction getUnit(unit) {\n if (typeof unit === \"number\")\n return unit;\n if (unit === \"wei\")\n return 0;\n return Math.abs(weiUnits[unit]);\n}\n\n// src/utils/serialize.ts\nfunction getReferenceKey(keys, cutoff) {\n return keys.slice(0, cutoff).join(\".\") || \".\";\n}\nfunction getCutoff(array, value) {\n const { length } = array;\n for (let index = 0; index < length; ++index) {\n if (array[index] === value) {\n return index + 1;\n }\n }\n return 0;\n}\nfunction createReplacer(replacer, circularReplacer) {\n const hasReplacer = typeof replacer === \"function\";\n const hasCircularReplacer = typeof circularReplacer === \"function\";\n const cache = [];\n const keys = [];\n return function replace(key, value) {\n if (typeof value === \"object\") {\n if (cache.length) {\n const thisCutoff = getCutoff(cache, this);\n if (thisCutoff === 0) {\n cache[cache.length] = this;\n } else {\n cache.splice(thisCutoff);\n keys.splice(thisCutoff);\n }\n keys[keys.length] = key;\n const valueCutoff = getCutoff(cache, value);\n if (valueCutoff !== 0) {\n return hasCircularReplacer ? circularReplacer.call(\n this,\n key,\n value,\n getReferenceKey(keys, valueCutoff)\n ) : `[ref=${getReferenceKey(keys, valueCutoff)}]`;\n }\n } else {\n cache[0] = value;\n keys[0] = key;\n }\n }\n return hasReplacer ? replacer.call(this, key, value) : value;\n };\n}\nfunction serialize(value, replacer, indent, circularReplacer) {\n return JSON.stringify(\n value,\n createReplacer((key, value_) => {\n const value2 = typeof value_ === \"bigint\" ? `#bigint.${value_.toString()}` : value_;\n return replacer?.(key, value2) || value2;\n }, circularReplacer),\n indent ?? void 0\n );\n}\n\n// src/config.ts\nimport { persist, subscribeWithSelector } from \"zustand/middleware\";\nimport { createStore } from \"zustand/vanilla\";\n\n// src/storage.ts\nvar noopStorage = {\n getItem: (_key) => \"\",\n setItem: (_key, _value) => null,\n removeItem: (_key) => null\n};\nfunction createStorage({\n deserialize: deserialize2 = deserialize,\n key: prefix = \"wagmi\",\n serialize: serialize2 = serialize,\n storage\n}) {\n return {\n ...storage,\n getItem: (key, defaultState = null) => {\n const value = storage.getItem(`${prefix}.${key}`);\n try {\n return value ? deserialize2(value) : defaultState;\n } catch (error) {\n console.warn(error);\n return defaultState;\n }\n },\n setItem: (key, value) => {\n if (value === null) {\n storage.removeItem(`${prefix}.${key}`);\n } else {\n try {\n storage.setItem(`${prefix}.${key}`, serialize2(value));\n } catch (err) {\n console.error(err);\n }\n }\n },\n removeItem: (key) => storage.removeItem(`${prefix}.${key}`)\n };\n}\n\n// src/config.ts\nvar storeKey = \"store\";\nvar _isAutoConnecting, _lastUsedConnector, _addEffects, addEffects_fn;\nvar Config = class {\n constructor({\n autoConnect = false,\n connectors = [new InjectedConnector()],\n publicClient,\n storage = createStorage({\n storage: typeof window !== \"undefined\" ? window.localStorage : noopStorage\n }),\n logger = {\n warn: console.warn\n },\n webSocketPublicClient\n }) {\n __privateAdd(this, _addEffects);\n this.publicClients = /* @__PURE__ */ new Map();\n this.webSocketPublicClients = /* @__PURE__ */ new Map();\n __privateAdd(this, _isAutoConnecting, void 0);\n __privateAdd(this, _lastUsedConnector, void 0);\n this.args = {\n autoConnect,\n connectors,\n logger,\n publicClient,\n storage,\n webSocketPublicClient\n };\n let status = \"disconnected\";\n let chainId;\n if (autoConnect) {\n try {\n const rawState = storage.getItem(storeKey);\n const data = rawState?.state?.data;\n status = data?.account ? \"reconnecting\" : \"connecting\";\n chainId = data?.chain?.id;\n } catch (_error) {\n }\n }\n const connectors_ = typeof connectors === \"function\" ? connectors() : connectors;\n connectors_.forEach((connector) => connector.setStorage(storage));\n this.store = createStore(\n subscribeWithSelector(\n persist(\n () => ({\n connectors: connectors_,\n publicClient: this.getPublicClient({ chainId }),\n status,\n webSocketPublicClient: this.getWebSocketPublicClient({ chainId })\n }),\n {\n name: storeKey,\n storage,\n partialize: (state) => ({\n ...autoConnect && {\n data: {\n account: state?.data?.account,\n chain: state?.data?.chain\n }\n },\n chains: state?.chains\n }),\n version: 2\n }\n )\n )\n );\n this.storage = storage;\n __privateSet(this, _lastUsedConnector, storage?.getItem(\"wallet\"));\n __privateMethod(this, _addEffects, addEffects_fn).call(this);\n if (autoConnect && typeof window !== \"undefined\")\n setTimeout(async () => await this.autoConnect(), 0);\n }\n get chains() {\n return this.store.getState().chains;\n }\n get connectors() {\n return this.store.getState().connectors;\n }\n get connector() {\n return this.store.getState().connector;\n }\n get data() {\n return this.store.getState().data;\n }\n get error() {\n return this.store.getState().error;\n }\n get lastUsedChainId() {\n return this.data?.chain?.id;\n }\n get publicClient() {\n return this.store.getState().publicClient;\n }\n get status() {\n return this.store.getState().status;\n }\n get subscribe() {\n return this.store.subscribe;\n }\n get webSocketPublicClient() {\n return this.store.getState().webSocketPublicClient;\n }\n setState(updater) {\n const newState = typeof updater === \"function\" ? updater(this.store.getState()) : updater;\n this.store.setState(newState, true);\n }\n clearState() {\n this.setState((x) => ({\n ...x,\n chains: void 0,\n connector: void 0,\n data: void 0,\n error: void 0,\n status: \"disconnected\"\n }));\n }\n async destroy() {\n if (this.connector)\n await this.connector.disconnect?.();\n __privateSet(this, _isAutoConnecting, false);\n this.clearState();\n this.store.destroy();\n }\n async autoConnect() {\n if (__privateGet(this, _isAutoConnecting))\n return;\n __privateSet(this, _isAutoConnecting, true);\n this.setState((x) => ({\n ...x,\n status: x.data?.account ? \"reconnecting\" : \"connecting\"\n }));\n const sorted = __privateGet(this, _lastUsedConnector) ? [...this.connectors].sort(\n (x) => x.id === __privateGet(this, _lastUsedConnector) ? -1 : 1\n ) : this.connectors;\n let connected = false;\n for (const connector of sorted) {\n if (!connector.ready || !connector.isAuthorized)\n continue;\n const isAuthorized = await connector.isAuthorized();\n if (!isAuthorized)\n continue;\n const data = await connector.connect();\n this.setState((x) => ({\n ...x,\n connector,\n chains: connector?.chains,\n data,\n status: \"connected\"\n }));\n connected = true;\n break;\n }\n if (!connected)\n this.setState((x) => ({\n ...x,\n data: void 0,\n status: \"disconnected\"\n }));\n __privateSet(this, _isAutoConnecting, false);\n return this.data;\n }\n setConnectors(connectors) {\n this.args = {\n ...this.args,\n connectors\n };\n const connectors_ = typeof connectors === \"function\" ? connectors() : connectors;\n connectors_.forEach((connector) => connector.setStorage(this.args.storage));\n this.setState((x) => ({\n ...x,\n connectors: connectors_\n }));\n }\n getPublicClient({ chainId } = {}) {\n let publicClient_ = this.publicClients.get(-1);\n if (publicClient_ && publicClient_?.chain.id === chainId)\n return publicClient_;\n publicClient_ = this.publicClients.get(chainId ?? -1);\n if (publicClient_)\n return publicClient_;\n const { publicClient } = this.args;\n publicClient_ = typeof publicClient === \"function\" ? publicClient({ chainId }) : publicClient;\n this.publicClients.set(chainId ?? -1, publicClient_);\n return publicClient_;\n }\n setPublicClient(publicClient) {\n const chainId = this.data?.chain?.id;\n this.args = {\n ...this.args,\n publicClient\n };\n this.publicClients.clear();\n this.setState((x) => ({\n ...x,\n publicClient: this.getPublicClient({ chainId })\n }));\n }\n getWebSocketPublicClient({ chainId } = {}) {\n let webSocketPublicClient_ = this.webSocketPublicClients.get(-1);\n if (webSocketPublicClient_ && webSocketPublicClient_?.chain.id === chainId)\n return webSocketPublicClient_;\n webSocketPublicClient_ = this.webSocketPublicClients.get(chainId ?? -1);\n if (webSocketPublicClient_)\n return webSocketPublicClient_;\n const { webSocketPublicClient } = this.args;\n webSocketPublicClient_ = typeof webSocketPublicClient === \"function\" ? webSocketPublicClient({ chainId }) : webSocketPublicClient;\n if (webSocketPublicClient_)\n this.webSocketPublicClients.set(chainId ?? -1, webSocketPublicClient_);\n return webSocketPublicClient_;\n }\n setWebSocketPublicClient(webSocketPublicClient) {\n const chainId = this.data?.chain?.id;\n this.args = {\n ...this.args,\n webSocketPublicClient\n };\n this.webSocketPublicClients.clear();\n this.setState((x) => ({\n ...x,\n webSocketPublicClient: this.getWebSocketPublicClient({\n chainId\n })\n }));\n }\n setLastUsedConnector(lastUsedConnector = null) {\n this.storage?.setItem(\"wallet\", lastUsedConnector);\n }\n};\n_isAutoConnecting = new WeakMap();\n_lastUsedConnector = new WeakMap();\n_addEffects = new WeakSet();\naddEffects_fn = function() {\n const onChange = (data) => {\n this.setState((x) => ({\n ...x,\n data: { ...x.data, ...data }\n }));\n };\n const onDisconnect = () => {\n this.clearState();\n };\n const onError = (error) => {\n this.setState((x) => ({ ...x, error }));\n };\n this.store.subscribe(\n ({ connector }) => connector,\n (connector, prevConnector) => {\n prevConnector?.off?.(\"change\", onChange);\n prevConnector?.off?.(\"disconnect\", onDisconnect);\n prevConnector?.off?.(\"error\", onError);\n if (!connector)\n return;\n connector.on?.(\"change\", onChange);\n connector.on?.(\"disconnect\", onDisconnect);\n connector.on?.(\"error\", onError);\n }\n );\n const { publicClient, webSocketPublicClient } = this.args;\n const subscribePublicClient = typeof publicClient === \"function\";\n const subscribeWebSocketPublicClient = typeof webSocketPublicClient === \"function\";\n if (subscribePublicClient || subscribeWebSocketPublicClient)\n this.store.subscribe(\n ({ data }) => data?.chain?.id,\n (chainId) => {\n this.setState((x) => ({\n ...x,\n publicClient: this.getPublicClient({ chainId }),\n webSocketPublicClient: this.getWebSocketPublicClient({\n chainId\n })\n }));\n }\n );\n};\nvar config;\nfunction createConfig(args) {\n const config_ = new Config(args);\n config = config_;\n return config_;\n}\nfunction getConfig() {\n if (!config) {\n throw new Error(\n \"No wagmi config found. Ensure you have set up a config: https://wagmi.sh/react/config\"\n );\n }\n return config;\n}\n\n// src/actions/accounts/connect.ts\nasync function connect({ chainId, connector }) {\n const config2 = getConfig();\n const activeConnector = config2.connector;\n if (activeConnector && connector.id === activeConnector.id)\n throw new ConnectorAlreadyConnectedError();\n try {\n config2.setState((x) => ({ ...x, status: \"connecting\" }));\n const data = await connector.connect({ chainId });\n config2.setLastUsedConnector(connector.id);\n config2.setState((x) => ({\n ...x,\n connector,\n chains: connector?.chains,\n data,\n status: \"connected\"\n }));\n config2.storage.setItem(\"connected\", true);\n return { ...data, connector };\n } catch (err) {\n config2.setState((x) => {\n return {\n ...x,\n status: x.connector ? \"connected\" : \"disconnected\"\n };\n });\n throw err;\n }\n}\n\n// src/actions/accounts/disconnect.ts\nasync function disconnect() {\n const config2 = getConfig();\n if (config2.connector)\n await config2.connector.disconnect();\n config2.clearState();\n config2.storage.removeItem(\"connected\");\n}\n\n// src/actions/accounts/fetchBalance.ts\nimport {\n ContractFunctionExecutionError as ContractFunctionExecutionError3,\n formatUnits as formatUnits2,\n hexToString as hexToString2,\n trim as trim2\n} from \"viem\";\n\n// src/constants/abis.ts\nvar erc20ABI = [\n {\n type: \"event\",\n name: \"Approval\",\n inputs: [\n {\n indexed: true,\n name: \"owner\",\n type: \"address\"\n },\n {\n indexed: true,\n name: \"spender\",\n type: \"address\"\n },\n {\n indexed: false,\n name: \"value\",\n type: \"uint256\"\n }\n ]\n },\n {\n type: \"event\",\n name: \"Transfer\",\n inputs: [\n {\n indexed: true,\n name: \"from\",\n type: \"address\"\n },\n {\n indexed: true,\n name: \"to\",\n type: \"address\"\n },\n {\n indexed: false,\n name: \"value\",\n type: \"uint256\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"allowance\",\n stateMutability: \"view\",\n inputs: [\n {\n name: \"owner\",\n type: \"address\"\n },\n {\n name: \"spender\",\n type: \"address\"\n }\n ],\n outputs: [\n {\n name: \"\",\n type: \"uint256\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"approve\",\n stateMutability: \"nonpayable\",\n inputs: [\n {\n name: \"spender\",\n type: \"address\"\n },\n {\n name: \"amount\",\n type: \"uint256\"\n }\n ],\n outputs: [\n {\n name: \"\",\n type: \"bool\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"balanceOf\",\n stateMutability: \"view\",\n inputs: [\n {\n name: \"account\",\n type: \"address\"\n }\n ],\n outputs: [\n {\n name: \"\",\n type: \"uint256\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"decimals\",\n stateMutability: \"view\",\n inputs: [],\n outputs: [\n {\n name: \"\",\n type: \"uint8\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"name\",\n stateMutability: \"view\",\n inputs: [],\n outputs: [\n {\n name: \"\",\n type: \"string\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"symbol\",\n stateMutability: \"view\",\n inputs: [],\n outputs: [\n {\n name: \"\",\n type: \"string\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"totalSupply\",\n stateMutability: \"view\",\n inputs: [],\n outputs: [\n {\n name: \"\",\n type: \"uint256\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"transfer\",\n stateMutability: \"nonpayable\",\n inputs: [\n {\n name: \"recipient\",\n type: \"address\"\n },\n {\n name: \"amount\",\n type: \"uint256\"\n }\n ],\n outputs: [\n {\n name: \"\",\n type: \"bool\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"transferFrom\",\n stateMutability: \"nonpayable\",\n inputs: [\n {\n name: \"sender\",\n type: \"address\"\n },\n {\n name: \"recipient\",\n type: \"address\"\n },\n {\n name: \"amount\",\n type: \"uint256\"\n }\n ],\n outputs: [\n {\n name: \"\",\n type: \"bool\"\n }\n ]\n }\n];\nvar erc20ABI_bytes32 = [\n {\n type: \"event\",\n name: \"Approval\",\n inputs: [\n {\n indexed: true,\n name: \"owner\",\n type: \"address\"\n },\n {\n indexed: true,\n name: \"spender\",\n type: \"address\"\n },\n {\n indexed: false,\n name: \"value\",\n type: \"uint256\"\n }\n ]\n },\n {\n type: \"event\",\n name: \"Transfer\",\n inputs: [\n {\n indexed: true,\n name: \"from\",\n type: \"address\"\n },\n {\n indexed: true,\n name: \"to\",\n type: \"address\"\n },\n {\n indexed: false,\n name: \"value\",\n type: \"uint256\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"allowance\",\n stateMutability: \"view\",\n inputs: [\n {\n name: \"owner\",\n type: \"address\"\n },\n {\n name: \"spender\",\n type: \"address\"\n }\n ],\n outputs: [\n {\n name: \"\",\n type: \"uint256\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"approve\",\n stateMutability: \"nonpayable\",\n inputs: [\n {\n name: \"spender\",\n type: \"address\"\n },\n {\n name: \"amount\",\n type: \"uint256\"\n }\n ],\n outputs: [\n {\n name: \"\",\n type: \"bool\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"balanceOf\",\n stateMutability: \"view\",\n inputs: [\n {\n name: \"account\",\n type: \"address\"\n }\n ],\n outputs: [\n {\n name: \"\",\n type: \"uint256\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"decimals\",\n stateMutability: \"view\",\n inputs: [],\n outputs: [\n {\n name: \"\",\n type: \"uint8\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"name\",\n stateMutability: \"view\",\n inputs: [],\n outputs: [\n {\n name: \"\",\n type: \"bytes32\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"symbol\",\n stateMutability: \"view\",\n inputs: [],\n outputs: [\n {\n name: \"\",\n type: \"bytes32\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"totalSupply\",\n stateMutability: \"view\",\n inputs: [],\n outputs: [\n {\n name: \"\",\n type: \"uint256\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"transfer\",\n stateMutability: \"nonpayable\",\n inputs: [\n {\n name: \"recipient\",\n type: \"address\"\n },\n {\n name: \"amount\",\n type: \"uint256\"\n }\n ],\n outputs: [\n {\n name: \"\",\n type: \"bool\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"transferFrom\",\n stateMutability: \"nonpayable\",\n inputs: [\n {\n name: \"sender\",\n type: \"address\"\n },\n {\n name: \"recipient\",\n type: \"address\"\n },\n {\n name: \"amount\",\n type: \"uint256\"\n }\n ],\n outputs: [\n {\n name: \"\",\n type: \"bool\"\n }\n ]\n }\n];\nvar erc721ABI = [\n {\n type: \"event\",\n name: \"Approval\",\n inputs: [\n {\n indexed: true,\n name: \"owner\",\n type: \"address\"\n },\n {\n indexed: true,\n name: \"spender\",\n type: \"address\"\n },\n {\n indexed: true,\n name: \"tokenId\",\n type: \"uint256\"\n }\n ]\n },\n {\n type: \"event\",\n name: \"ApprovalForAll\",\n inputs: [\n {\n indexed: true,\n name: \"owner\",\n type: \"address\"\n },\n {\n indexed: true,\n name: \"operator\",\n type: \"address\"\n },\n {\n indexed: false,\n name: \"approved\",\n type: \"bool\"\n }\n ]\n },\n {\n type: \"event\",\n name: \"Transfer\",\n inputs: [\n {\n indexed: true,\n name: \"from\",\n type: \"address\"\n },\n {\n indexed: true,\n name: \"to\",\n type: \"address\"\n },\n {\n indexed: true,\n name: \"tokenId\",\n type: \"uint256\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"approve\",\n stateMutability: \"payable\",\n inputs: [\n {\n name: \"spender\",\n type: \"address\"\n },\n {\n name: \"tokenId\",\n type: \"uint256\"\n }\n ],\n outputs: []\n },\n {\n type: \"function\",\n name: \"balanceOf\",\n stateMutability: \"view\",\n inputs: [\n {\n name: \"account\",\n type: \"address\"\n }\n ],\n outputs: [\n {\n name: \"\",\n type: \"uint256\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"getApproved\",\n stateMutability: \"view\",\n inputs: [\n {\n name: \"tokenId\",\n type: \"uint256\"\n }\n ],\n outputs: [\n {\n name: \"\",\n type: \"address\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"isApprovedForAll\",\n stateMutability: \"view\",\n inputs: [\n {\n name: \"owner\",\n type: \"address\"\n },\n {\n name: \"operator\",\n type: \"address\"\n }\n ],\n outputs: [\n {\n name: \"\",\n type: \"bool\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"name\",\n stateMutability: \"view\",\n inputs: [],\n outputs: [\n {\n name: \"\",\n type: \"string\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"ownerOf\",\n stateMutability: \"view\",\n inputs: [\n {\n name: \"tokenId\",\n type: \"uint256\"\n }\n ],\n outputs: [\n {\n name: \"owner\",\n type: \"address\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"safeTransferFrom\",\n stateMutability: \"payable\",\n inputs: [\n {\n name: \"from\",\n type: \"address\"\n },\n {\n name: \"to\",\n type: \"address\"\n },\n {\n name: \"tokenId\",\n type: \"uint256\"\n }\n ],\n outputs: []\n },\n {\n type: \"function\",\n name: \"safeTransferFrom\",\n stateMutability: \"nonpayable\",\n inputs: [\n {\n name: \"from\",\n type: \"address\"\n },\n {\n name: \"to\",\n type: \"address\"\n },\n {\n name: \"id\",\n type: \"uint256\"\n },\n {\n name: \"data\",\n type: \"bytes\"\n }\n ],\n outputs: []\n },\n {\n type: \"function\",\n name: \"setApprovalForAll\",\n stateMutability: \"nonpayable\",\n inputs: [\n {\n name: \"operator\",\n type: \"address\"\n },\n {\n name: \"approved\",\n type: \"bool\"\n }\n ],\n outputs: []\n },\n {\n type: \"function\",\n name: \"symbol\",\n stateMutability: \"view\",\n inputs: [],\n outputs: [\n {\n name: \"\",\n type: \"string\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"tokenByIndex\",\n stateMutability: \"view\",\n inputs: [\n {\n name: \"index\",\n type: \"uint256\"\n }\n ],\n outputs: [\n {\n name: \"\",\n type: \"uint256\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"tokenByIndex\",\n stateMutability: \"view\",\n inputs: [\n {\n name: \"owner\",\n type: \"address\"\n },\n {\n name: \"index\",\n type: \"uint256\"\n }\n ],\n outputs: [\n {\n name: \"tokenId\",\n type: \"uint256\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"tokenURI\",\n stateMutability: \"view\",\n inputs: [\n {\n name: \"tokenId\",\n type: \"uint256\"\n }\n ],\n outputs: [\n {\n name: \"\",\n type: \"string\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"totalSupply\",\n stateMutability: \"view\",\n inputs: [],\n outputs: [\n {\n name: \"\",\n type: \"uint256\"\n }\n ]\n },\n {\n type: \"function\",\n name: \"transferFrom\",\n stateMutability: \"payable\",\n inputs: [\n {\n name: \"sender\",\n type: \"address\"\n },\n {\n name: \"recipient\",\n type: \"address\"\n },\n {\n name: \"tokeId\",\n type: \"uint256\"\n }\n ],\n outputs: []\n }\n];\nvar erc4626ABI = [\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n name: \"owner\",\n type: \"address\"\n },\n {\n indexed: true,\n name: \"spender\",\n type: \"address\"\n },\n {\n indexed: false,\n name: \"value\",\n type: \"uint256\"\n }\n ],\n name: \"Approval\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n name: \"sender\",\n type: \"address\"\n },\n {\n indexed: true,\n name: \"receiver\",\n type: \"address\"\n },\n {\n indexed: false,\n name: \"assets\",\n type: \"uint256\"\n },\n {\n indexed: false,\n name: \"shares\",\n type: \"uint256\"\n }\n ],\n name: \"Deposit\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n name: \"from\",\n type: \"address\"\n },\n {\n indexed: true,\n name: \"to\",\n type: \"address\"\n },\n {\n indexed: false,\n name: \"value\",\n type: \"uint256\"\n }\n ],\n name: \"Transfer\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n name: \"sender\",\n type: \"address\"\n },\n {\n indexed: true,\n name: \"receiver\",\n type: \"address\"\n },\n {\n indexed: true,\n name: \"owner\",\n type: \"address\"\n },\n {\n indexed: false,\n name: \"assets\",\n type: \"uint256\"\n },\n {\n indexed: false,\n name: \"shares\",\n type: \"uint256\"\n }\n ],\n name: \"Withdraw\",\n type: \"event\"\n },\n {\n inputs: [\n {\n name: \"owner\",\n type: \"address\"\n },\n {\n name: \"spender\",\n type: \"address\"\n }\n ],\n name: \"allowance\",\n outputs: [\n {\n name: \"\",\n type: \"uint256\"\n }\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n name: \"spender\",\n type: \"address\"\n },\n {\n name: \"amount\",\n type: \"uint256\"\n }\n ],\n name: \"approve\",\n outputs: [\n {\n name: \"\",\n type: \"bool\"\n }\n ],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"asset\",\n outputs: [\n {\n name: \"assetTokenAddress\",\n type: \"address\"\n }\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n name: \"account\",\n type: \"address\"\n }\n ],\n name: \"balanceOf\",\n outputs: [\n {\n name: \"\",\n type: \"uint256\"\n }\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n name: \"shares\",\n type: \"uint256\"\n }\n ],\n name: \"convertToAssets\",\n outputs: [\n {\n name: \"assets\",\n type: \"uint256\"\n }\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n name: \"assets\",\n type: \"uint256\"\n }\n ],\n name: \"convertToShares\",\n outputs: [\n {\n name: \"shares\",\n type: \"uint256\"\n }\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n name: \"assets\",\n type: \"uint256\"\n },\n {\n name: \"receiver\",\n type: \"address\"\n }\n ],\n name: \"deposit\",\n outputs: [\n {\n name: \"shares\",\n type: \"uint256\"\n }\n ],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n name: \"caller\",\n type: \"address\"\n }\n ],\n name: \"maxDeposit\",\n outputs: [\n {\n name: \"maxAssets\",\n type: \"uint256\"\n }\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n name: \"caller\",\n type: \"address\"\n }\n ],\n name: \"maxMint\",\n outputs: [\n {\n name: \"maxShares\",\n type: \"uint256\"\n }\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n name: \"owner\",\n type: \"address\"\n }\n ],\n name: \"maxRedeem\",\n outputs: [\n {\n name: \"maxShares\",\n type: \"uint256\"\n }\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n name: \"owner\",\n type: \"address\"\n }\n ],\n name: \"maxWithdraw\",\n outputs: [\n {\n name: \"maxAssets\",\n type: \"uint256\"\n }\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n name: \"shares\",\n type: \"uint256\"\n },\n {\n name: \"receiver\",\n type: \"address\"\n }\n ],\n name: \"mint\",\n outputs: [\n {\n name: \"assets\",\n type: \"uint256\"\n }\n ],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n name: \"assets\",\n type: \"uint256\"\n }\n ],\n name: \"previewDeposit\",\n outputs: [\n {\n name: \"shares\",\n type: \"uint256\"\n }\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n name: \"shares\",\n type: \"uint256\"\n }\n ],\n name: \"previewMint\",\n outputs: [\n {\n name: \"assets\",\n type: \"uint256\"\n }\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n name: \"shares\",\n type: \"uint256\"\n }\n ],\n name: \"previewRedeem\",\n outputs: [\n {\n name: \"assets\",\n type: \"uint256\"\n }\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n name: \"assets\",\n type: \"uint256\"\n }\n ],\n name: \"previewWithdraw\",\n outputs: [\n {\n name: \"shares\",\n type: \"uint256\"\n }\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n name: \"shares\",\n type: \"uint256\"\n },\n {\n name: \"receiver\",\n type: \"address\"\n },\n {\n name: \"owner\",\n type: \"address\"\n }\n ],\n name: \"redeem\",\n outputs: [\n {\n name: \"assets\",\n type: \"uint256\"\n }\n ],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"totalAssets\",\n outputs: [\n {\n name: \"totalManagedAssets\",\n type: \"uint256\"\n }\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"totalSupply\",\n outputs: [\n {\n name: \"\",\n type: \"uint256\"\n }\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n name: \"to\",\n type: \"address\"\n },\n {\n name: \"amount\",\n type: \"uint256\"\n }\n ],\n name: \"transfer\",\n outputs: [\n {\n name: \"\",\n type: \"bool\"\n }\n ],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n name: \"from\",\n type: \"address\"\n },\n {\n name: \"to\",\n type: \"address\"\n },\n {\n name: \"amount\",\n type: \"uint256\"\n }\n ],\n name: \"transferFrom\",\n outputs: [\n {\n name: \"\",\n type: \"bool\"\n }\n ],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n name: \"assets\",\n type: \"uint256\"\n },\n {\n name: \"receiver\",\n type: \"address\"\n },\n {\n name: \"owner\",\n type: \"address\"\n }\n ],\n name: \"withdraw\",\n outputs: [\n {\n name: \"shares\",\n type: \"uint256\"\n }\n ],\n stateMutability: \"nonpayable\",\n type: \"function\"\n }\n];\n\n// src/actions/contracts/fetchToken.ts\nimport {\n ContractFunctionExecutionError,\n formatUnits,\n hexToString,\n trim\n} from \"viem\";\nasync function fetchToken({\n address,\n chainId,\n formatUnits: unit = 18\n}) {\n async function fetchToken_({ abi }) {\n const erc20Config = { address, abi, chainId };\n const [decimals, name, symbol, totalSupply] = await readContracts({\n allowFailure: false,\n contracts: [\n { ...erc20Config, functionName: \"decimals\" },\n { ...erc20Config, functionName: \"name\" },\n { ...erc20Config, functionName: \"symbol\" },\n { ...erc20Config, functionName: \"totalSupply\" }\n ]\n });\n return {\n address,\n decimals,\n name,\n symbol,\n totalSupply: {\n formatted: formatUnits(totalSupply, getUnit(unit)),\n value: totalSupply\n }\n };\n }\n try {\n return await fetchToken_({ abi: erc20ABI });\n } catch (err) {\n if (err instanceof ContractFunctionExecutionError) {\n const { name, symbol, ...rest } = await fetchToken_({\n abi: erc20ABI_bytes32\n });\n return {\n name: hexToString(trim(name, { dir: \"right\" })),\n symbol: hexToString(trim(symbol, { dir: \"right\" })),\n ...rest\n };\n }\n throw err;\n }\n}\n\n// src/actions/viem/getPublicClient.ts\nfunction getPublicClient({ chainId } = {}) {\n const config2 = getConfig();\n if (chainId)\n return config2.getPublicClient({ chainId }) || config2.publicClient;\n return config2.publicClient;\n}\n\n// src/actions/viem/getWalletClient.ts\nasync function getWalletClient({\n chainId\n} = {}) {\n const config2 = getConfig();\n const walletClient = await config2.connector?.getWalletClient?.({ chainId }) || null;\n return walletClient;\n}\n\n// src/actions/viem/getWebSocketPublicClient.ts\nfunction getWebSocketPublicClient({\n chainId\n} = {}) {\n const config2 = getConfig();\n if (chainId)\n return config2.getWebSocketPublicClient({ chainId }) || config2.webSocketPublicClient;\n return config2.webSocketPublicClient;\n}\n\n// src/actions/viem/watchPublicClient.ts\nfunction watchPublicClient(args, callback) {\n const config2 = getConfig();\n const handleChange = async () => callback(getPublicClient(args));\n const unsubscribe = config2.subscribe(\n ({ publicClient }) => publicClient,\n handleChange\n );\n return unsubscribe;\n}\n\n// src/actions/viem/watchWalletClient.ts\nimport { shallow } from \"zustand/shallow\";\nfunction watchWalletClient({ chainId }, callback) {\n const config2 = getConfig();\n const handleChange = async ({ chainId: chainId_ }) => {\n if (chainId && chainId_ && chainId !== chainId_)\n return;\n const walletClient = await getWalletClient({ chainId });\n if (!getConfig().connector)\n return callback(null);\n return callback(walletClient);\n };\n const unsubscribe = config2.subscribe(\n ({ data, connector }) => ({\n account: data?.account,\n chainId: data?.chain?.id,\n connector\n }),\n handleChange,\n {\n equalityFn: shallow\n }\n );\n return unsubscribe;\n}\n\n// src/actions/viem/watchWebSocketPublicClient.ts\nfunction watchWebSocketPublicClient(args, callback) {\n const config2 = getConfig();\n const handleChange = async () => callback(getWebSocketPublicClient(args));\n const unsubscribe = config2.subscribe(\n ({ webSocketPublicClient }) => webSocketPublicClient,\n handleChange\n );\n return unsubscribe;\n}\n\n// src/actions/contracts/prepareWriteContract.ts\nasync function prepareWriteContract({\n abi,\n address,\n args,\n chainId,\n functionName,\n walletClient: walletClient_,\n ...config2\n}) {\n const publicClient = getPublicClient({ chainId });\n const walletClient = walletClient_ ?? await getWalletClient({ chainId });\n if (!walletClient)\n throw new ConnectorNotFoundError();\n if (chainId)\n assertActiveChain({ chainId });\n const {\n account,\n accessList,\n blockNumber,\n blockTag,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n value\n } = getCallParameters(config2);\n const { result, request } = await publicClient.simulateContract({\n abi,\n address,\n functionName,\n args,\n account: account || walletClient.account,\n accessList,\n blockNumber,\n blockTag,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n value\n });\n const minimizedAbi = abi.filter(\n (abiItem) => \"name\" in abiItem && abiItem.name === functionName\n );\n return {\n mode: \"prepared\",\n request: {\n ...request,\n abi: minimizedAbi,\n chainId\n },\n result\n };\n}\n\n// src/actions/contracts/getContract.ts\nimport { getContract as getContract_ } from \"viem\";\nfunction getContract({\n address,\n abi,\n chainId,\n walletClient\n}) {\n const publicClient = getPublicClient({ chainId });\n return getContract_({\n address,\n abi,\n publicClient,\n walletClient\n });\n}\n\n// src/actions/contracts/multicall.ts\nasync function multicall({\n chainId,\n contracts,\n blockNumber,\n blockTag,\n ...args\n}) {\n const publicClient = getPublicClient({ chainId });\n if (!publicClient.chains)\n throw new ConfigChainsNotFound();\n if (chainId && publicClient.chain.id !== chainId)\n throw new ChainNotConfiguredError({ chainId });\n return publicClient.multicall({\n allowFailure: args.allowFailure ?? true,\n blockNumber,\n blockTag,\n contracts\n });\n}\n\n// src/actions/contracts/readContract.ts\nasync function readContract({\n address,\n account,\n chainId,\n abi,\n args,\n functionName,\n blockNumber,\n blockTag\n}) {\n const publicClient = getPublicClient({ chainId });\n return publicClient.readContract({\n abi,\n address,\n account,\n functionName,\n args,\n blockNumber,\n blockTag\n });\n}\n\n// src/actions/contracts/readContracts.ts\nimport { ContractFunctionExecutionError as ContractFunctionExecutionError2 } from \"viem\";\nasync function readContracts({\n contracts,\n blockNumber,\n blockTag,\n ...args\n}) {\n const { allowFailure = true } = args;\n try {\n const publicClient = getPublicClient();\n const contractsByChainId = contracts.reduce((contracts2, contract, index) => {\n const chainId = contract.chainId ?? publicClient.chain.id;\n return {\n ...contracts2,\n [chainId]: [...contracts2[chainId] || [], { contract, index }]\n };\n }, {});\n const promises = () => Object.entries(contractsByChainId).map(\n ([chainId, contracts2]) => multicall({\n allowFailure,\n chainId: parseInt(chainId),\n contracts: contracts2.map(\n ({ contract }) => contract\n ),\n blockNumber,\n blockTag\n })\n );\n const multicallResults = (await Promise.all(promises())).flat();\n const resultIndexes = Object.values(contractsByChainId).flatMap(\n (contracts2) => contracts2.map(({ index }) => index)\n );\n return multicallResults.reduce((results, result, index) => {\n if (results)\n results[resultIndexes[index]] = result;\n return results;\n }, []);\n } catch (err) {\n if (err instanceof ContractFunctionExecutionError2)\n throw err;\n const promises = () => contracts.map(\n (contract) => readContract({ ...contract, blockNumber, blockTag })\n );\n if (allowFailure)\n return (await Promise.allSettled(promises())).map((result) => {\n if (result.status === \"fulfilled\")\n return { result: result.value, status: \"success\" };\n return { error: result.reason, result: void 0, status: \"failure\" };\n });\n return await Promise.all(promises());\n }\n}\n\n// src/actions/contracts/watchContractEvent.ts\nimport { shallow as shallow2 } from \"zustand/shallow\";\nfunction watchContractEvent({\n address,\n abi,\n chainId,\n eventName\n}, callback) {\n let unwatch;\n const watchEvent = async () => {\n if (unwatch)\n unwatch();\n const publicClient = getWebSocketPublicClient({ chainId }) || getPublicClient({ chainId });\n unwatch = publicClient.watchContractEvent({\n address,\n abi,\n eventName,\n onLogs: callback\n });\n };\n watchEvent();\n const config2 = getConfig();\n const unsubscribe = config2.subscribe(\n ({ publicClient, webSocketPublicClient }) => ({\n publicClient,\n webSocketPublicClient\n }),\n watchEvent,\n { equalityFn: shallow2 }\n );\n return () => {\n unwatch?.();\n unsubscribe();\n };\n}\n\n// src/actions/network-status/watchBlockNumber.ts\nimport { shallow as shallow3 } from \"zustand/shallow\";\nfunction watchBlockNumber(args, callback) {\n let unwatch;\n const createListener = (publicClient) => {\n if (unwatch)\n unwatch();\n unwatch = publicClient.watchBlockNumber({\n onBlockNumber: callback,\n emitOnBegin: true,\n poll: true\n });\n };\n const publicClient_ = getWebSocketPublicClient({ chainId: args.chainId }) ?? getPublicClient({ chainId: args.chainId });\n if (args.listen)\n createListener(publicClient_);\n const config2 = getConfig();\n const unsubscribe = config2.subscribe(\n ({ publicClient, webSocketPublicClient }) => ({\n publicClient,\n webSocketPublicClient\n }),\n async ({ publicClient, webSocketPublicClient }) => {\n const publicClient_2 = webSocketPublicClient ?? publicClient;\n if (args.listen && !args.chainId && publicClient_2) {\n createListener(publicClient_2);\n }\n },\n {\n equalityFn: shallow3\n }\n );\n return () => {\n unsubscribe();\n unwatch?.();\n };\n}\n\n// src/actions/contracts/watchMulticall.ts\nfunction watchMulticall(args, callback) {\n const config2 = getConfig();\n const handleChange = async () => callback(await multicall(args));\n const unwatch = args.listenToBlock ? watchBlockNumber({ listen: true }, handleChange) : void 0;\n const unsubscribe = config2.subscribe(\n ({ publicClient }) => publicClient,\n handleChange\n );\n return () => {\n unsubscribe();\n unwatch?.();\n };\n}\n\n// src/actions/contracts/watchReadContract.ts\nfunction watchReadContract(args, callback) {\n const config2 = getConfig();\n const handleChange = async () => callback(await readContract(args));\n const unwatch = args.listenToBlock ? watchBlockNumber({ listen: true }, handleChange) : void 0;\n const unsubscribe = config2.subscribe(\n ({ publicClient }) => publicClient,\n handleChange\n );\n return () => {\n unsubscribe();\n unwatch?.();\n };\n}\n\n// src/actions/contracts/watchReadContracts.ts\nfunction watchReadContracts(args, callback) {\n const config2 = getConfig();\n const handleChange = async () => callback(await readContracts(args));\n const unwatch = args.listenToBlock ? watchBlockNumber({ listen: true }, handleChange) : void 0;\n const unsubscribe = config2.subscribe(\n ({ publicClient }) => publicClient,\n handleChange\n );\n return () => {\n unsubscribe();\n unwatch?.();\n };\n}\n\n// src/actions/contracts/writeContract.ts\nasync function writeContract(config2) {\n const walletClient = await getWalletClient({ chainId: config2.chainId });\n if (!walletClient)\n throw new ConnectorNotFoundError();\n if (config2.chainId)\n assertActiveChain({ chainId: config2.chainId });\n let request;\n if (config2.mode === \"prepared\") {\n request = config2.request;\n } else {\n const { chainId: _, mode: __, ...args } = config2;\n const res = await prepareWriteContract(args);\n request = res.request;\n }\n const hash = await walletClient.writeContract({\n ...request,\n chain: null\n });\n return { hash };\n}\n\n// src/actions/accounts/fetchBalance.ts\nasync function fetchBalance({\n address,\n chainId,\n formatUnits: unit,\n token\n}) {\n const config2 = getConfig();\n const publicClient = getPublicClient({ chainId });\n if (token) {\n const fetchContractBalance = async ({ abi }) => {\n const erc20Config = { abi, address: token, chainId };\n const [value2, decimals, symbol] = await readContracts({\n allowFailure: false,\n contracts: [\n {\n ...erc20Config,\n functionName: \"balanceOf\",\n args: [address]\n },\n { ...erc20Config, functionName: \"decimals\" },\n { ...erc20Config, functionName: \"symbol\" }\n ]\n });\n return {\n decimals,\n formatted: formatUnits2(value2 ?? \"0\", getUnit(unit ?? decimals)),\n symbol,\n value: value2\n };\n };\n try {\n return await fetchContractBalance({ abi: erc20ABI });\n } catch (err) {\n if (err instanceof ContractFunctionExecutionError3) {\n const { symbol, ...rest } = await fetchContractBalance({\n abi: erc20ABI_bytes32\n });\n return {\n symbol: hexToString2(trim2(symbol, { dir: \"right\" })),\n ...rest\n };\n }\n throw err;\n }\n }\n const chains = [\n ...config2.publicClient.chains || [],\n ...config2.chains ?? []\n ];\n const value = await publicClient.getBalance({ address });\n const chain = chains.find((x) => x.id === publicClient.chain.id);\n return {\n decimals: chain?.nativeCurrency.decimals ?? 18,\n formatted: formatUnits2(value ?? \"0\", getUnit(unit ?? 18)),\n symbol: chain?.nativeCurrency.symbol ?? \"ETH\",\n value\n };\n}\n\n// src/actions/accounts/getAccount.ts\nfunction getAccount() {\n const { data, connector, status } = getConfig();\n switch (status) {\n case \"connected\":\n return {\n address: data?.account,\n connector,\n isConnected: true,\n isConnecting: false,\n isDisconnected: false,\n isReconnecting: false,\n status\n };\n case \"reconnecting\":\n return {\n address: data?.account,\n connector,\n isConnected: !!data?.account,\n isConnecting: false,\n isDisconnected: false,\n isReconnecting: true,\n status\n };\n case \"connecting\":\n return {\n address: data?.account,\n connector,\n isConnected: false,\n isConnecting: true,\n isDisconnected: false,\n isReconnecting: false,\n status\n };\n case \"disconnected\":\n return {\n address: void 0,\n connector: void 0,\n isConnected: false,\n isConnecting: false,\n isDisconnected: true,\n isReconnecting: false,\n status\n };\n }\n}\n\n// src/actions/accounts/getNetwork.ts\nfunction getNetwork() {\n const config2 = getConfig();\n const chainId = config2.data?.chain?.id;\n const activeChains = config2.chains ?? [];\n const activeChain = [\n ...config2.publicClient?.chains || [],\n ...activeChains\n ].find((x) => x.id === chainId) ?? {\n id: chainId,\n name: `Chain ${chainId}`,\n network: `${chainId}`,\n nativeCurrency: { name: \"Ether\", decimals: 18, symbol: \"ETH\" },\n rpcUrls: {\n default: { http: [\"\"] },\n public: { http: [\"\"] }\n }\n };\n return {\n chain: chainId ? {\n ...activeChain,\n ...config2.data?.chain,\n id: chainId\n } : void 0,\n chains: activeChains\n };\n}\n\n// src/actions/accounts/signMessage.ts\nasync function signMessage(args) {\n const walletClient = await getWalletClient();\n if (!walletClient)\n throw new ConnectorNotFoundError();\n return await walletClient.signMessage({\n message: args.message\n });\n}\n\n// src/actions/accounts/signTypedData.ts\nasync function signTypedData({\n domain,\n message,\n primaryType,\n types\n}) {\n const walletClient = await getWalletClient();\n if (!walletClient)\n throw new ConnectorNotFoundError();\n const { chainId } = domain;\n if (chainId)\n assertActiveChain({ chainId });\n return walletClient.signTypedData({\n message,\n primaryType,\n types,\n domain\n });\n}\n\n// src/actions/accounts/switchNetwork.ts\nasync function switchNetwork({\n chainId\n}) {\n const { connector } = getConfig();\n if (!connector)\n throw new ConnectorNotFoundError();\n if (!connector.switchChain)\n throw new SwitchChainNotSupportedError({\n connector\n });\n return connector.switchChain(chainId);\n}\n\n// src/actions/accounts/watchAccount.ts\nimport { shallow as shallow4 } from \"zustand/shallow\";\nfunction watchAccount(callback, { selector = (x) => x } = {}) {\n const config2 = getConfig();\n const handleChange = () => callback(getAccount());\n const unsubscribe = config2.subscribe(\n ({ data, connector, status }) => selector({\n address: data?.account,\n connector,\n status\n }),\n handleChange,\n {\n equalityFn: shallow4\n }\n );\n return unsubscribe;\n}\n\n// src/actions/accounts/watchNetwork.ts\nimport { shallow as shallow5 } from \"zustand/shallow\";\nfunction watchNetwork(callback, { selector = (x) => x } = {}) {\n const config2 = getConfig();\n const handleChange = () => callback(getNetwork());\n const unsubscribe = config2.subscribe(\n ({ data, chains }) => selector({ chainId: data?.chain?.id, chains }),\n handleChange,\n {\n equalityFn: shallow5\n }\n );\n return unsubscribe;\n}\n\n// src/actions/ens/fetchEnsAddress.ts\nimport { getAddress } from \"viem\";\nimport { normalize } from \"viem/ens\";\nasync function fetchEnsAddress({\n chainId,\n name\n}) {\n const publicClient = getPublicClient({ chainId });\n const address = await publicClient.getEnsAddress({\n name: normalize(name)\n });\n try {\n if (address === \"0x0000000000000000000000000000000000000000\")\n return null;\n return address ? getAddress(address) : null;\n } catch (_error) {\n return null;\n }\n}\n\n// src/actions/ens/fetchEnsAvatar.ts\nimport { normalize as normalize2 } from \"viem/ens\";\nasync function fetchEnsAvatar({\n name,\n chainId\n}) {\n const publicClient = getPublicClient({ chainId });\n const avatar = await publicClient.getEnsAvatar({ name: normalize2(name) });\n return avatar;\n}\n\n// src/actions/ens/fetchEnsName.ts\nimport { getAddress as getAddress2 } from \"viem\";\nasync function fetchEnsName({\n address,\n chainId\n}) {\n const publicClient = getPublicClient({ chainId });\n return publicClient.getEnsName({\n address: getAddress2(address)\n });\n}\n\n// src/actions/ens/fetchEnsResolver.ts\nimport { normalize as normalize3 } from \"viem/ens\";\nasync function fetchEnsResolver({\n chainId,\n name\n}) {\n const publicClient = getPublicClient({ chainId });\n const resolver = await publicClient.getEnsResolver({ name: normalize3(name) });\n return resolver;\n}\n\n// src/actions/network-status/fetchBlockNumber.ts\nasync function fetchBlockNumber({\n chainId\n} = {}) {\n const publicClient = getPublicClient({ chainId });\n const blockNumber = await publicClient.getBlockNumber();\n return blockNumber;\n}\n\n// src/actions/network-status/fetchFeeData.ts\nimport { formatUnits as formatUnits3, parseGwei } from \"viem\";\nasync function fetchFeeData({\n chainId,\n formatUnits: units = \"gwei\"\n} = {}) {\n const publicClient = getPublicClient({ chainId });\n const block = await publicClient.getBlock();\n let gasPrice = null;\n try {\n gasPrice = await publicClient.getGasPrice();\n } catch {\n }\n let lastBaseFeePerGas = null;\n let maxFeePerGas = null;\n let maxPriorityFeePerGas = null;\n if (block?.baseFeePerGas) {\n lastBaseFeePerGas = block.baseFeePerGas;\n maxPriorityFeePerGas = parseGwei(\"1\");\n maxFeePerGas = block.baseFeePerGas * 2n + maxPriorityFeePerGas;\n }\n const unit = getUnit(units);\n const formatted = {\n gasPrice: gasPrice ? formatUnits3(gasPrice, unit) : null,\n maxFeePerGas: maxFeePerGas ? formatUnits3(maxFeePerGas, unit) : null,\n maxPriorityFeePerGas: maxPriorityFeePerGas ? formatUnits3(maxPriorityFeePerGas, unit) : null\n };\n return {\n lastBaseFeePerGas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n formatted\n };\n}\n\n// src/actions/transactions/fetchTransaction.ts\nasync function fetchTransaction({\n chainId,\n hash\n}) {\n const publicClient = getPublicClient({ chainId });\n return publicClient.getTransaction({ hash });\n}\n\n// src/actions/transactions/prepareSendTransaction.ts\nimport { isAddress } from \"viem\";\nasync function prepareSendTransaction({\n accessList,\n account,\n chainId,\n data,\n gas: gas_,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to: to_,\n value,\n walletClient: walletClient_\n}) {\n const publicClient = getPublicClient({ chainId });\n const walletClient = walletClient_ ?? await getWalletClient({ chainId });\n if (!walletClient)\n throw new ConnectorNotFoundError();\n if (chainId)\n assertActiveChain({ chainId });\n const to = (to_ && !isAddress(to_) ? await fetchEnsAddress({ name: to_ }) : to_) || void 0;\n if (to && !isAddress(to))\n throw new Error(\"Invalid address\");\n const gas = typeof gas_ === \"undefined\" ? await publicClient.estimateGas({\n accessList,\n account: walletClient.account,\n data,\n gas: gas_ ?? void 0,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value\n }) : gas_ || void 0;\n return {\n accessList,\n account,\n data,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n mode: \"prepared\",\n nonce,\n to,\n value,\n ...chainId ? { chainId } : {}\n };\n}\n\n// src/actions/transactions/sendTransaction.ts\nasync function sendTransaction({\n accessList,\n account,\n chainId,\n data,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n mode,\n nonce,\n to,\n value\n}) {\n const walletClient = await getWalletClient({ chainId });\n if (!walletClient)\n throw new ConnectorNotFoundError();\n if (chainId)\n assertActiveChain({ chainId });\n let args;\n if (mode === \"prepared\") {\n args = {\n account,\n accessList,\n chain: null,\n data,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value\n };\n } else {\n args = await prepareSendTransaction({\n accessList,\n account,\n chainId,\n data,\n gas: gas || null,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value\n });\n }\n const hash = await walletClient.sendTransaction({ ...args, chain: null });\n return { hash };\n}\n\n// src/actions/transactions/waitForTransaction.ts\nimport { hexToString as hexToString3 } from \"viem\";\nasync function waitForTransaction({\n chainId,\n confirmations = 1,\n hash,\n onReplaced,\n timeout = 0\n}) {\n const publicClient = getPublicClient({ chainId });\n const receipt = await publicClient.waitForTransactionReceipt({\n hash,\n confirmations,\n onReplaced,\n timeout\n });\n if (receipt.status === \"reverted\") {\n const txn = await publicClient.getTransaction({\n hash: receipt.transactionHash\n });\n const code = await publicClient.call({\n ...txn,\n gasPrice: txn.type !== \"eip1559\" ? txn.gasPrice : void 0,\n maxFeePerGas: txn.type === \"eip1559\" ? txn.maxFeePerGas : void 0,\n maxPriorityFeePerGas: txn.type === \"eip1559\" ? txn.maxPriorityFeePerGas : void 0\n });\n const reason = hexToString3(`0x${code.substring(138)}`);\n throw new Error(reason);\n }\n return receipt;\n}\n\n// src/actions/transactions/watchPendingTransactions.ts\nimport { shallow as shallow6 } from \"zustand/shallow\";\nfunction watchPendingTransactions(args, callback) {\n let unwatch;\n const createListener = (publicClient) => {\n if (unwatch)\n unwatch();\n unwatch = publicClient.watchPendingTransactions({\n onTransactions: callback,\n poll: true\n });\n };\n const publicClient_ = getWebSocketPublicClient({ chainId: args.chainId }) ?? getPublicClient({ chainId: args.chainId });\n createListener(publicClient_);\n const config2 = getConfig();\n const unsubscribe = config2.subscribe(\n ({ publicClient, webSocketPublicClient }) => ({\n publicClient,\n webSocketPublicClient\n }),\n async ({ publicClient, webSocketPublicClient }) => {\n const publicClient_2 = webSocketPublicClient ?? publicClient;\n if (!args.chainId && publicClient_2) {\n createListener(publicClient_2);\n }\n },\n {\n equalityFn: shallow6\n }\n );\n return () => {\n unsubscribe();\n unwatch?.();\n };\n}\n\n// src/utils/assertActiveChain.ts\nfunction assertActiveChain({ chainId }) {\n const { chain: activeChain, chains } = getNetwork();\n const activeChainId = activeChain?.id;\n if (activeChainId && chainId !== activeChainId) {\n throw new ChainMismatchError({\n activeChain: chains.find((x) => x.id === activeChainId)?.name ?? `Chain ${activeChainId}`,\n targetChain: chains.find((x) => x.id === chainId)?.name ?? `Chain ${chainId}`\n });\n }\n}\n\nexport {\n configureChains,\n ChainMismatchError,\n ChainNotConfiguredError,\n ConnectorAlreadyConnectedError,\n ConfigChainsNotFound,\n SwitchChainNotSupportedError,\n ConnectorNotFoundError,\n deepEqual,\n deserialize,\n getCallParameters,\n getSendTransactionParameters,\n getUnit,\n serialize,\n noopStorage,\n createStorage,\n Config,\n createConfig,\n getConfig,\n connect,\n disconnect,\n erc20ABI,\n erc721ABI,\n erc4626ABI,\n fetchToken,\n getPublicClient,\n getWalletClient,\n getWebSocketPublicClient,\n watchPublicClient,\n watchWalletClient,\n watchWebSocketPublicClient,\n prepareWriteContract,\n getContract,\n multicall,\n readContract,\n readContracts,\n watchContractEvent,\n watchBlockNumber,\n watchMulticall,\n watchReadContract,\n watchReadContracts,\n writeContract,\n fetchBalance,\n getAccount,\n getNetwork,\n signMessage,\n signTypedData,\n switchNetwork,\n watchAccount,\n watchNetwork,\n fetchEnsAddress,\n fetchEnsAvatar,\n fetchEnsName,\n fetchEnsResolver,\n fetchBlockNumber,\n fetchFeeData,\n fetchTransaction,\n prepareSendTransaction,\n sendTransaction,\n waitForTransaction,\n watchPendingTransactions\n};\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, \"access private method\");\n return method;\n};\n\nexport {\n __privateGet,\n __privateAdd,\n __privateSet,\n __privateMethod\n};\n","import { panicReasons } from '../../constants/solidity.js';\nimport { BaseError } from '../../errors/base.js';\nimport { ContractFunctionRevertedError } from '../../errors/contract.js';\n/*\n * @description Checks if error is a valid null result UniversalResolver error\n */\nexport function isNullUniversalResolverError(err, callType) {\n if (!(err instanceof BaseError))\n return false;\n const cause = err.walk((e) => e instanceof ContractFunctionRevertedError);\n if (!(cause instanceof ContractFunctionRevertedError))\n return false;\n if (cause.data?.errorName === 'ResolverNotFound')\n return true;\n if (cause.data?.errorName === 'ResolverWildcardNotSupported')\n return true;\n if (cause.data?.errorName === 'ResolverNotContract')\n return true;\n if (cause.data?.errorName === 'ResolverError')\n return true;\n if (cause.data?.errorName === 'HttpError')\n return true;\n // Backwards compatibility for older UniversalResolver contracts\n if (cause.reason?.includes('Wildcard on non-extended resolvers is not supported'))\n return true;\n // No primary name set for address.\n if (callType === 'reverse' && cause.reason === panicReasons[50])\n return true;\n return false;\n}\n//# sourceMappingURL=errors.js.map","import { isHex } from '../data/isHex.js';\nexport function encodedLabelToLabelhash(label) {\n if (label.length !== 66)\n return null;\n if (label.indexOf('[') !== 0)\n return null;\n if (label.indexOf(']') !== 65)\n return null;\n const hash = `0x${label.slice(1, 65)}`;\n if (!isHex(hash))\n return null;\n return hash;\n}\n//# sourceMappingURL=encodedLabelToLabelhash.js.map","import { concat } from '../data/concat.js';\nimport { stringToBytes, toBytes, } from '../encoding/toBytes.js';\nimport { bytesToHex } from '../encoding/toHex.js';\nimport { keccak256 } from '../hash/keccak256.js';\nimport { encodedLabelToLabelhash, } from './encodedLabelToLabelhash.js';\n/**\n * @description Hashes ENS name\n *\n * - Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `namehash`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize) function for this.\n *\n * @example\n * namehash('wevm.eth')\n * '0xf246651c1b9a6b141d19c2604e9a58f567973833990f830d882534a747801359'\n *\n * @link https://eips.ethereum.org/EIPS/eip-137\n */\nexport function namehash(name) {\n let result = new Uint8Array(32).fill(0);\n if (!name)\n return bytesToHex(result);\n const labels = name.split('.');\n // Iterate in reverse order building up hash\n for (let i = labels.length - 1; i >= 0; i -= 1) {\n const hashFromEncodedLabel = encodedLabelToLabelhash(labels[i]);\n const hashed = hashFromEncodedLabel\n ? toBytes(hashFromEncodedLabel)\n : keccak256(stringToBytes(labels[i]), 'bytes');\n result = keccak256(concat([result, hashed]), 'bytes');\n }\n return bytesToHex(result);\n}\n//# sourceMappingURL=namehash.js.map","import { stringToBytes, } from '../encoding/toBytes.js';\nimport { encodeLabelhash, } from './encodeLabelhash.js';\nimport { labelhash } from './labelhash.js';\n/*\n * @description Encodes a DNS packet into a ByteArray containing a UDP payload.\n *\n * @example\n * packetToBytes('awkweb.eth')\n * '0x0661776b7765620365746800'\n *\n * @see https://docs.ens.domains/resolution/names#dns\n *\n */\nexport function packetToBytes(packet) {\n // strip leading and trailing `.`\n const value = packet.replace(/^\\.|\\.$/gm, '');\n if (value.length === 0)\n return new Uint8Array(1);\n const bytes = new Uint8Array(stringToBytes(value).byteLength + 2);\n let offset = 0;\n const list = value.split('.');\n for (let i = 0; i < list.length; i++) {\n let encoded = stringToBytes(list[i]);\n // if the length is > 255, make the encoded label value a labelhash\n // this is compatible with the universal resolver\n if (encoded.byteLength > 255)\n encoded = stringToBytes(encodeLabelhash(labelhash(list[i])));\n bytes[offset] = encoded.length;\n bytes.set(encoded, offset + 1);\n offset += encoded.length + 1;\n }\n if (bytes.byteLength !== offset + 1)\n return bytes.slice(0, offset + 1);\n return bytes;\n}\n//# sourceMappingURL=packetToBytes.js.map","export function encodeLabelhash(hash) {\n return `[${hash.slice(2)}]`;\n}\n//# sourceMappingURL=encodeLabelhash.js.map","import { stringToBytes, } from '../encoding/toBytes.js';\nimport { bytesToHex } from '../encoding/toHex.js';\nimport { keccak256 } from '../hash/keccak256.js';\nimport { encodedLabelToLabelhash, } from './encodedLabelToLabelhash.js';\n/**\n * @description Hashes ENS label\n *\n * - Since ENS labels prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS labels](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `labelhash`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize) function for this.\n *\n * @example\n * labelhash('eth')\n * '0x4f5b812789fc606be1b3b16908db13fc7a9adf7ca72641f84d75b47069d3d7f0'\n */\nexport function labelhash(label) {\n const result = new Uint8Array(32).fill(0);\n if (!label)\n return bytesToHex(result);\n return encodedLabelToLabelhash(label) || keccak256(stringToBytes(label));\n}\n//# sourceMappingURL=labelhash.js.map","import { AbiDecodingZeroDataError } from '../../errors/abi.js';\nimport { BaseError } from '../../errors/base.js';\nimport { ContractFunctionExecutionError, ContractFunctionRevertedError, ContractFunctionZeroDataError, RawContractError, } from '../../errors/contract.js';\nimport { InternalRpcError } from '../../errors/rpc.js';\nconst EXECUTION_REVERTED_ERROR_CODE = 3;\nexport function getContractError(err, { abi, address, args, docsPath, functionName, sender, }) {\n const { code, data, message, shortMessage } = (err instanceof RawContractError\n ? err\n : err instanceof BaseError\n ? err.walk((err) => 'data' in err) || err.walk()\n : {});\n const cause = (() => {\n if (err instanceof AbiDecodingZeroDataError)\n return new ContractFunctionZeroDataError({ functionName });\n if ([EXECUTION_REVERTED_ERROR_CODE, InternalRpcError.code].includes(code) &&\n (data || message || shortMessage)) {\n return new ContractFunctionRevertedError({\n abi,\n data: typeof data === 'object' ? data.data : data,\n functionName,\n message: shortMessage ?? message,\n });\n }\n return err;\n })();\n return new ContractFunctionExecutionError(cause, {\n abi,\n args,\n contractAddress: address,\n docsPath,\n functionName,\n sender,\n });\n}\n//# sourceMappingURL=getContractError.js.map","import { decodeFunctionResult, } from '../../utils/abi/decodeFunctionResult.js';\nimport { encodeFunctionData, } from '../../utils/abi/encodeFunctionData.js';\nimport { getContractError, } from '../../utils/errors/getContractError.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { call } from './call.js';\n/**\n * Calls a read-only function on a contract, and returns the response.\n *\n * - Docs: https://viem.sh/docs/contract/readContract\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts/reading-contracts\n *\n * A \"read-only\" function (constant function) on a Solidity contract is denoted by a `view` or `pure` keyword. They can only read the state of the contract, and cannot make any changes to it. Since read-only methods do not change the state of the contract, they do not require any gas to be executed, and can be called by any user without the need to pay for gas.\n *\n * Internally, uses a [Public Client](https://viem.sh/docs/clients/public) to call the [`call` action](https://viem.sh/docs/actions/public/call) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\n *\n * @param client - Client to use\n * @param parameters - {@link ReadContractParameters}\n * @returns The response from the contract. Type is inferred. {@link ReadContractReturnType}\n *\n * @example\n * import { createPublicClient, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { readContract } from 'viem/contract'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const result = await readContract(client, {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: parseAbi(['function balanceOf(address) view returns (uint256)']),\n * functionName: 'balanceOf',\n * args: ['0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'],\n * })\n * // 424122n\n */\nexport async function readContract(client, parameters) {\n const { abi, address, args, functionName, ...rest } = parameters;\n const calldata = encodeFunctionData({\n abi,\n args,\n functionName,\n });\n try {\n const { data } = await getAction(client, call, 'call')({\n ...rest,\n data: calldata,\n to: address,\n });\n return decodeFunctionResult({\n abi,\n args,\n functionName,\n data: data || '0x',\n });\n }\n catch (error) {\n throw getContractError(error, {\n abi,\n address,\n args,\n docsPath: '/docs/contract/readContract',\n functionName,\n });\n }\n}\n//# sourceMappingURL=readContract.js.map","import { addressResolverAbi, universalResolverResolveAbi, } from '../../constants/abis.js';\nimport { decodeFunctionResult, } from '../../utils/abi/decodeFunctionResult.js';\nimport { encodeFunctionData, } from '../../utils/abi/encodeFunctionData.js';\nimport { getChainContractAddress, } from '../../utils/chain/getChainContractAddress.js';\nimport { trim } from '../../utils/data/trim.js';\nimport { toHex } from '../../utils/encoding/toHex.js';\nimport { isNullUniversalResolverError } from '../../utils/ens/errors.js';\nimport { namehash } from '../../utils/ens/namehash.js';\nimport { packetToBytes, } from '../../utils/ens/packetToBytes.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { readContract, } from '../public/readContract.js';\n/**\n * Gets address for ENS name.\n *\n * - Docs: https://viem.sh/docs/ens/actions/getEnsAddress\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/ens\n *\n * Calls `resolve(bytes, bytes)` on ENS Universal Resolver Contract.\n *\n * Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `getEnsAddress`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize) function for this.\n *\n * @param client - Client to use\n * @param parameters - {@link GetEnsAddressParameters}\n * @returns Address for ENS name or `null` if not found. {@link GetEnsAddressReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getEnsAddress, normalize } from 'viem/ens'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const ensAddress = await getEnsAddress(client, {\n * name: normalize('wevm.eth'),\n * })\n * // '0xd2135CfB216b74109775236E36d4b433F1DF507B'\n */\nexport async function getEnsAddress(client, { blockNumber, blockTag, coinType, name, gatewayUrls, strict, universalResolverAddress: universalResolverAddress_, }) {\n let universalResolverAddress = universalResolverAddress_;\n if (!universalResolverAddress) {\n if (!client.chain)\n throw new Error('client chain not configured. universalResolverAddress is required.');\n universalResolverAddress = getChainContractAddress({\n blockNumber,\n chain: client.chain,\n contract: 'ensUniversalResolver',\n });\n }\n try {\n const functionData = encodeFunctionData({\n abi: addressResolverAbi,\n functionName: 'addr',\n ...(coinType != null\n ? { args: [namehash(name), BigInt(coinType)] }\n : { args: [namehash(name)] }),\n });\n const readContractParameters = {\n address: universalResolverAddress,\n abi: universalResolverResolveAbi,\n functionName: 'resolve',\n args: [toHex(packetToBytes(name)), functionData],\n blockNumber,\n blockTag,\n };\n const readContractAction = getAction(client, readContract, 'readContract');\n const res = gatewayUrls\n ? await readContractAction({\n ...readContractParameters,\n args: [...readContractParameters.args, gatewayUrls],\n })\n : await readContractAction(readContractParameters);\n if (res[0] === '0x')\n return null;\n const address = decodeFunctionResult({\n abi: addressResolverAbi,\n args: coinType != null ? [namehash(name), BigInt(coinType)] : undefined,\n functionName: 'addr',\n data: res[0],\n });\n if (address === '0x')\n return null;\n if (trim(address) === '0x00')\n return null;\n return address;\n }\n catch (err) {\n if (strict)\n throw err;\n if (isNullUniversalResolverError(err, 'resolve'))\n return null;\n throw err;\n }\n}\n//# sourceMappingURL=getEnsAddress.js.map","import { BaseError } from './base.js';\nexport class EnsAvatarInvalidMetadataError extends BaseError {\n constructor({ data }) {\n super('Unable to extract image from metadata. The metadata may be malformed or invalid.', {\n metaMessages: [\n '- Metadata must be a JSON object with at least an `image`, `image_url` or `image_data` property.',\n '',\n `Provided data: ${JSON.stringify(data)}`,\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'EnsAvatarInvalidMetadataError'\n });\n }\n}\nexport class EnsAvatarInvalidNftUriError extends BaseError {\n constructor({ reason }) {\n super(`ENS NFT avatar URI is invalid. ${reason}`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'EnsAvatarInvalidNftUriError'\n });\n }\n}\nexport class EnsAvatarUriResolutionError extends BaseError {\n constructor({ uri }) {\n super(`Unable to resolve ENS avatar URI \"${uri}\". The URI may be malformed, invalid, or does not respond with a valid image.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'EnsAvatarUriResolutionError'\n });\n }\n}\nexport class EnsAvatarUnsupportedNamespaceError extends BaseError {\n constructor({ namespace }) {\n super(`ENS NFT avatar namespace \"${namespace}\" is not supported. Must be \"erc721\" or \"erc1155\".`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'EnsAvatarUnsupportedNamespaceError'\n });\n }\n}\n//# sourceMappingURL=ens.js.map","import { readContract, } from '../../../actions/public/readContract.js';\nimport { EnsAvatarInvalidMetadataError, EnsAvatarInvalidNftUriError, EnsAvatarUnsupportedNamespaceError, EnsAvatarUriResolutionError, } from '../../../errors/ens.js';\nconst networkRegex = /(?https?:\\/\\/[^\\/]*|ipfs:\\/|ipns:\\/|ar:\\/)?(?\\/)?(?ipfs\\/|ipns\\/)?(?[\\w\\-.]+)(?\\/.*)?/;\nconst ipfsHashRegex = /^(Qm[1-9A-HJ-NP-Za-km-z]{44,}|b[A-Za-z2-7]{58,}|B[A-Z2-7]{58,}|z[1-9A-HJ-NP-Za-km-z]{48,}|F[0-9A-F]{50,})(\\/(?[\\w\\-.]+))?(?\\/.*)?$/;\nconst base64Regex = /^data:([a-zA-Z\\-/+]*);base64,([^\"].*)/;\nconst dataURIRegex = /^data:([a-zA-Z\\-/+]*)?(;[a-zA-Z0-9].*?)?(,)/;\n/** @internal */\nexport async function isImageUri(uri) {\n try {\n const res = await fetch(uri, { method: 'HEAD' });\n // retrieve content type header to check if content is image\n if (res.status === 200) {\n const contentType = res.headers.get('content-type');\n return contentType?.startsWith('image/');\n }\n return false;\n }\n catch (error) {\n // if error is not cors related then fail\n if (typeof error === 'object' && typeof error.response !== 'undefined') {\n return false;\n }\n // fail in NodeJS, since the error is not cors but any other network issue\n // biome-ignore lint/suspicious/noPrototypeBuiltins:\n if (!globalThis.hasOwnProperty('Image'))\n return false;\n // in case of cors, use image api to validate if given url is an actual image\n return new Promise((resolve) => {\n const img = new Image();\n img.onload = () => {\n resolve(true);\n };\n img.onerror = () => {\n resolve(false);\n };\n img.src = uri;\n });\n }\n}\n/** @internal */\nexport function getGateway(custom, defaultGateway) {\n if (!custom)\n return defaultGateway;\n if (custom.endsWith('/'))\n return custom.slice(0, -1);\n return custom;\n}\nexport function resolveAvatarUri({ uri, gatewayUrls, }) {\n const isEncoded = base64Regex.test(uri);\n if (isEncoded)\n return { uri, isOnChain: true, isEncoded };\n const ipfsGateway = getGateway(gatewayUrls?.ipfs, 'https://ipfs.io');\n const arweaveGateway = getGateway(gatewayUrls?.arweave, 'https://arweave.net');\n const networkRegexMatch = uri.match(networkRegex);\n const { protocol, subpath, target, subtarget = '', } = networkRegexMatch?.groups || {};\n const isIPNS = protocol === 'ipns:/' || subpath === 'ipns/';\n const isIPFS = protocol === 'ipfs:/' || subpath === 'ipfs/' || ipfsHashRegex.test(uri);\n if (uri.startsWith('http') && !isIPNS && !isIPFS) {\n let replacedUri = uri;\n if (gatewayUrls?.arweave)\n replacedUri = uri.replace(/https:\\/\\/arweave.net/g, gatewayUrls?.arweave);\n return { uri: replacedUri, isOnChain: false, isEncoded: false };\n }\n if ((isIPNS || isIPFS) && target) {\n return {\n uri: `${ipfsGateway}/${isIPNS ? 'ipns' : 'ipfs'}/${target}${subtarget}`,\n isOnChain: false,\n isEncoded: false,\n };\n }\n if (protocol === 'ar:/' && target) {\n return {\n uri: `${arweaveGateway}/${target}${subtarget || ''}`,\n isOnChain: false,\n isEncoded: false,\n };\n }\n let parsedUri = uri.replace(dataURIRegex, '');\n if (parsedUri.startsWith(' res.json());\n const image = await parseAvatarUri({\n gatewayUrls,\n uri: getJsonImage(res),\n });\n return image;\n }\n catch {\n throw new EnsAvatarUriResolutionError({ uri });\n }\n}\nexport async function parseAvatarUri({ gatewayUrls, uri, }) {\n const { uri: resolvedURI, isOnChain } = resolveAvatarUri({ uri, gatewayUrls });\n if (isOnChain)\n return resolvedURI;\n // check if resolvedURI is an image, if it is return the url\n const isImage = await isImageUri(resolvedURI);\n if (isImage)\n return resolvedURI;\n throw new EnsAvatarUriResolutionError({ uri });\n}\nexport function parseNftUri(uri_) {\n let uri = uri_;\n // parse valid nft spec (CAIP-22/CAIP-29)\n // @see: https://github.com/ChainAgnostic/CAIPs/tree/master/CAIPs\n if (uri.startsWith('did:nft:')) {\n // convert DID to CAIP\n uri = uri.replace('did:nft:', '').replace(/_/g, '/');\n }\n const [reference, asset_namespace, tokenID] = uri.split('/');\n const [eip_namespace, chainID] = reference.split(':');\n const [erc_namespace, contractAddress] = asset_namespace.split(':');\n if (!eip_namespace || eip_namespace.toLowerCase() !== 'eip155')\n throw new EnsAvatarInvalidNftUriError({ reason: 'Only EIP-155 supported' });\n if (!chainID)\n throw new EnsAvatarInvalidNftUriError({ reason: 'Chain ID not found' });\n if (!contractAddress)\n throw new EnsAvatarInvalidNftUriError({\n reason: 'Contract address not found',\n });\n if (!tokenID)\n throw new EnsAvatarInvalidNftUriError({ reason: 'Token ID not found' });\n if (!erc_namespace)\n throw new EnsAvatarInvalidNftUriError({ reason: 'ERC namespace not found' });\n return {\n chainID: Number.parseInt(chainID),\n namespace: erc_namespace.toLowerCase(),\n contractAddress: contractAddress,\n tokenID,\n };\n}\nexport async function getNftTokenUri(client, { nft }) {\n if (nft.namespace === 'erc721') {\n return readContract(client, {\n address: nft.contractAddress,\n abi: [\n {\n name: 'tokenURI',\n type: 'function',\n stateMutability: 'view',\n inputs: [{ name: 'tokenId', type: 'uint256' }],\n outputs: [{ name: '', type: 'string' }],\n },\n ],\n functionName: 'tokenURI',\n args: [BigInt(nft.tokenID)],\n });\n }\n if (nft.namespace === 'erc1155') {\n return readContract(client, {\n address: nft.contractAddress,\n abi: [\n {\n name: 'uri',\n type: 'function',\n stateMutability: 'view',\n inputs: [{ name: '_id', type: 'uint256' }],\n outputs: [{ name: '', type: 'string' }],\n },\n ],\n functionName: 'uri',\n args: [BigInt(nft.tokenID)],\n });\n }\n throw new EnsAvatarUnsupportedNamespaceError({ namespace: nft.namespace });\n}\n//# sourceMappingURL=utils.js.map","import { getJsonImage, getMetadataAvatarUri, getNftTokenUri, parseAvatarUri, parseNftUri, resolveAvatarUri, } from './utils.js';\n/*\n * @description Parses an ENS avatar record.\n *\n * @example\n * parseAvatarRecord('eip155:1/erc1155:0xb32979486938aa9694bfc898f35dbed459f44424/10063')\n * 'https://ipfs.io/ipfs/QmSP4nq9fnN9dAiCj42ug9Wa79rqmQerZXZch82VqpiH7U/image.gif'\n *\n * @see https://docs.ens.domains/web/avatars\n *\n */\nexport async function parseAvatarRecord(client, { gatewayUrls, record, }) {\n if (/eip155:/i.test(record))\n return parseNftAvatarUri(client, { gatewayUrls, record });\n return parseAvatarUri({ uri: record, gatewayUrls });\n}\nasync function parseNftAvatarUri(client, { gatewayUrls, record, }) {\n // parse NFT URI into properties\n const nft = parseNftUri(record);\n // fetch tokenURI from the NFT contract\n const nftUri = await getNftTokenUri(client, { nft });\n // resolve the URI from the fetched tokenURI\n const { uri: resolvedNftUri, isOnChain, isEncoded, } = resolveAvatarUri({ uri: nftUri, gatewayUrls });\n // if the resolved URI is on chain, return the data\n if (isOnChain &&\n (resolvedNftUri.includes('data:application/json;base64,') ||\n resolvedNftUri.startsWith('{'))) {\n const encodedJson = isEncoded\n ? // if it is encoded, decode it\n atob(resolvedNftUri.replace('data:application/json;base64,', ''))\n : // if it isn't encoded assume it is a JSON string, but it could be anything (it will error if it is)\n resolvedNftUri;\n const decoded = JSON.parse(encodedJson);\n return parseAvatarUri({ uri: getJsonImage(decoded), gatewayUrls });\n }\n let uriTokenId = nft.tokenID;\n if (nft.namespace === 'erc1155')\n uriTokenId = uriTokenId.replace('0x', '').padStart(64, '0');\n return getMetadataAvatarUri({\n gatewayUrls,\n uri: resolvedNftUri.replace(/(?:0x)?{id}/, uriTokenId),\n });\n}\n//# sourceMappingURL=parseAvatarRecord.js.map","import { textResolverAbi, universalResolverResolveAbi, } from '../../constants/abis.js';\nimport { decodeFunctionResult, } from '../../utils/abi/decodeFunctionResult.js';\nimport { encodeFunctionData, } from '../../utils/abi/encodeFunctionData.js';\nimport { getChainContractAddress, } from '../../utils/chain/getChainContractAddress.js';\nimport { toHex } from '../../utils/encoding/toHex.js';\nimport { isNullUniversalResolverError } from '../../utils/ens/errors.js';\nimport { namehash } from '../../utils/ens/namehash.js';\nimport { packetToBytes, } from '../../utils/ens/packetToBytes.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { readContract, } from '../public/readContract.js';\n/**\n * Gets a text record for specified ENS name.\n *\n * - Docs: https://viem.sh/docs/ens/actions/getEnsResolver\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/ens\n *\n * Calls `resolve(bytes, bytes)` on ENS Universal Resolver Contract.\n *\n * Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `getEnsAddress`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize) function for this.\n *\n * @param client - Client to use\n * @param parameters - {@link GetEnsTextParameters}\n * @returns Address for ENS resolver. {@link GetEnsTextReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getEnsText, normalize } from 'viem/ens'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const twitterRecord = await getEnsText(client, {\n * name: normalize('wevm.eth'),\n * key: 'com.twitter',\n * })\n * // 'wevm_dev'\n */\nexport async function getEnsText(client, { blockNumber, blockTag, name, key, gatewayUrls, strict, universalResolverAddress: universalResolverAddress_, }) {\n let universalResolverAddress = universalResolverAddress_;\n if (!universalResolverAddress) {\n if (!client.chain)\n throw new Error('client chain not configured. universalResolverAddress is required.');\n universalResolverAddress = getChainContractAddress({\n blockNumber,\n chain: client.chain,\n contract: 'ensUniversalResolver',\n });\n }\n try {\n const readContractParameters = {\n address: universalResolverAddress,\n abi: universalResolverResolveAbi,\n functionName: 'resolve',\n args: [\n toHex(packetToBytes(name)),\n encodeFunctionData({\n abi: textResolverAbi,\n functionName: 'text',\n args: [namehash(name), key],\n }),\n ],\n blockNumber,\n blockTag,\n };\n const readContractAction = getAction(client, readContract, 'readContract');\n const res = gatewayUrls\n ? await readContractAction({\n ...readContractParameters,\n args: [...readContractParameters.args, gatewayUrls],\n })\n : await readContractAction(readContractParameters);\n if (res[0] === '0x')\n return null;\n const record = decodeFunctionResult({\n abi: textResolverAbi,\n functionName: 'text',\n data: res[0],\n });\n return record === '' ? null : record;\n }\n catch (err) {\n if (strict)\n throw err;\n if (isNullUniversalResolverError(err, 'resolve'))\n return null;\n throw err;\n }\n}\n//# sourceMappingURL=getEnsText.js.map","import { parseAvatarRecord, } from '../../utils/ens/avatar/parseAvatarRecord.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { getEnsText, } from './getEnsText.js';\n/**\n * Gets the avatar of an ENS name.\n *\n * - Docs: https://viem.sh/docs/ens/actions/getEnsAvatar\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/ens\n *\n * Calls [`getEnsText`](https://viem.sh/docs/ens/actions/getEnsText) with `key` set to `'avatar'`.\n *\n * Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `getEnsAddress`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize) function for this.\n *\n * @param client - Client to use\n * @param parameters - {@link GetEnsAvatarParameters}\n * @returns Avatar URI or `null` if not found. {@link GetEnsAvatarReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getEnsAvatar, normalize } from 'viem/ens'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const ensAvatar = await getEnsAvatar(client, {\n * name: normalize('wevm.eth'),\n * })\n * // 'https://ipfs.io/ipfs/Qma8mnp6xV3J2cRNf3mTth5C8nV11CAnceVinc3y8jSbio'\n */\nexport async function getEnsAvatar(client, { blockNumber, blockTag, assetGatewayUrls, name, gatewayUrls, strict, universalResolverAddress, }) {\n const record = await getAction(client, getEnsText, 'getEnsText')({\n blockNumber,\n blockTag,\n key: 'avatar',\n name,\n universalResolverAddress,\n gatewayUrls,\n strict,\n });\n if (!record)\n return null;\n try {\n return await parseAvatarRecord(client, {\n record,\n gatewayUrls: assetGatewayUrls,\n });\n }\n catch {\n return null;\n }\n}\n//# sourceMappingURL=getEnsAvatar.js.map","import { universalResolverReverseAbi } from '../../constants/abis.js';\nimport { getChainContractAddress, } from '../../utils/chain/getChainContractAddress.js';\nimport { toHex } from '../../utils/encoding/toHex.js';\nimport { isNullUniversalResolverError } from '../../utils/ens/errors.js';\nimport { packetToBytes, } from '../../utils/ens/packetToBytes.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { readContract, } from '../public/readContract.js';\n/**\n * Gets primary name for specified address.\n *\n * - Docs: https://viem.sh/docs/ens/actions/getEnsName\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/ens\n *\n * Calls `reverse(bytes)` on ENS Universal Resolver Contract to \"reverse resolve\" the address to the primary ENS name.\n *\n * @param client - Client to use\n * @param parameters - {@link GetEnsNameParameters}\n * @returns Name or `null` if not found. {@link GetEnsNameReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getEnsName } from 'viem/ens'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const ensName = await getEnsName(client, {\n * address: '0xd2135CfB216b74109775236E36d4b433F1DF507B',\n * })\n * // 'wevm.eth'\n */\nexport async function getEnsName(client, { address, blockNumber, blockTag, gatewayUrls, strict, universalResolverAddress: universalResolverAddress_, }) {\n let universalResolverAddress = universalResolverAddress_;\n if (!universalResolverAddress) {\n if (!client.chain)\n throw new Error('client chain not configured. universalResolverAddress is required.');\n universalResolverAddress = getChainContractAddress({\n blockNumber,\n chain: client.chain,\n contract: 'ensUniversalResolver',\n });\n }\n const reverseNode = `${address.toLowerCase().substring(2)}.addr.reverse`;\n try {\n const readContractParameters = {\n address: universalResolverAddress,\n abi: universalResolverReverseAbi,\n functionName: 'reverse',\n args: [toHex(packetToBytes(reverseNode))],\n blockNumber,\n blockTag,\n };\n const readContractAction = getAction(client, readContract, 'readContract');\n const [name, resolvedAddress] = gatewayUrls\n ? await readContractAction({\n ...readContractParameters,\n args: [...readContractParameters.args, gatewayUrls],\n })\n : await readContractAction(readContractParameters);\n if (address.toLowerCase() !== resolvedAddress.toLowerCase())\n return null;\n return name;\n }\n catch (err) {\n if (strict)\n throw err;\n if (isNullUniversalResolverError(err, 'reverse'))\n return null;\n throw err;\n }\n}\n//# sourceMappingURL=getEnsName.js.map","import { getChainContractAddress, } from '../../utils/chain/getChainContractAddress.js';\nimport { toHex } from '../../utils/encoding/toHex.js';\nimport { packetToBytes, } from '../../utils/ens/packetToBytes.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { readContract, } from '../public/readContract.js';\n/**\n * Gets resolver for ENS name.\n *\n * - Docs: https://viem.sh/docs/ens/actions/getEnsResolver\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/ens\n *\n * Calls `findResolver(bytes)` on ENS Universal Resolver Contract to retrieve the resolver of an ENS name.\n *\n * Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `getEnsAddress`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize) function for this.\n *\n * @param client - Client to use\n * @param parameters - {@link GetEnsResolverParameters}\n * @returns Address for ENS resolver. {@link GetEnsResolverReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getEnsResolver, normalize } from 'viem/ens'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const resolverAddress = await getEnsResolver(client, {\n * name: normalize('wevm.eth'),\n * })\n * // '0x4976fb03C32e5B8cfe2b6cCB31c09Ba78EBaBa41'\n */\nexport async function getEnsResolver(client, { blockNumber, blockTag, name, universalResolverAddress: universalResolverAddress_, }) {\n let universalResolverAddress = universalResolverAddress_;\n if (!universalResolverAddress) {\n if (!client.chain)\n throw new Error('client chain not configured. universalResolverAddress is required.');\n universalResolverAddress = getChainContractAddress({\n blockNumber,\n chain: client.chain,\n contract: 'ensUniversalResolver',\n });\n }\n const [resolverAddress] = await getAction(client, readContract, 'readContract')({\n address: universalResolverAddress,\n abi: [\n {\n inputs: [{ type: 'bytes' }],\n name: 'findResolver',\n outputs: [{ type: 'address' }, { type: 'bytes32' }],\n stateMutability: 'view',\n type: 'function',\n },\n ],\n functionName: 'findResolver',\n args: [toHex(packetToBytes(name))],\n blockNumber,\n blockTag,\n });\n return resolverAddress;\n}\n//# sourceMappingURL=getEnsResolver.js.map","/**\n * Scopes `request` to the filter ID. If the client is a fallback, it will\n * listen for responses and scope the child transport `request` function\n * to the successful filter ID.\n */\nexport function createFilterRequestScope(client, { method }) {\n const requestMap = {};\n if (client.transport.type === 'fallback')\n client.transport.onResponse?.(({ method: method_, response: id, status, transport, }) => {\n if (status === 'success' && method === method_)\n requestMap[id] = transport.request;\n });\n return ((id) => requestMap[id] || client.request);\n}\n//# sourceMappingURL=createFilterRequestScope.js.map","import { createFilterRequestScope } from '../../utils/filters/createFilterRequestScope.js';\n/**\n * Creates a [`Filter`](https://viem.sh/docs/glossary/types#filter) to listen for new block hashes that can be used with [`getFilterChanges`](https://viem.sh/docs/actions/public/getFilterChanges).\n *\n * - Docs: https://viem.sh/docs/actions/public/createBlockFilter\n * - JSON-RPC Methods: [`eth_newBlockFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newBlockFilter)\n *\n * @param client - Client to use\n * @returns [`Filter`](https://viem.sh/docs/glossary/types#filter). {@link CreateBlockFilterReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createBlockFilter } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const filter = await createBlockFilter(client)\n * // { id: \"0x345a6572337856574a76364e457a4366\", type: 'block' }\n */\nexport async function createBlockFilter(client) {\n const getRequest = createFilterRequestScope(client, {\n method: 'eth_newBlockFilter',\n });\n const id = await client.request({\n method: 'eth_newBlockFilter',\n });\n return { id, request: getRequest(id), type: 'block' };\n}\n//# sourceMappingURL=createBlockFilter.js.map","import { BaseError } from './base.js';\nexport class FilterTypeNotSupportedError extends BaseError {\n constructor(type) {\n super(`Filter type \"${type}\" is not supported.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'FilterTypeNotSupportedError'\n });\n }\n}\n//# sourceMappingURL=log.js.map","import { AbiEventNotFoundError, } from '../../errors/abi.js';\nimport { FilterTypeNotSupportedError, } from '../../errors/log.js';\nimport { toBytes } from '../encoding/toBytes.js';\nimport { keccak256 } from '../hash/keccak256.js';\nimport { toEventSelector, } from '../hash/toEventSelector.js';\nimport { encodeAbiParameters, } from './encodeAbiParameters.js';\nimport { formatAbiItem } from './formatAbiItem.js';\nimport { getAbiItem } from './getAbiItem.js';\nconst docsPath = '/docs/contract/encodeEventTopics';\nexport function encodeEventTopics(parameters) {\n const { abi, eventName, args } = parameters;\n let abiItem = abi[0];\n if (eventName) {\n const item = getAbiItem({ abi, name: eventName });\n if (!item)\n throw new AbiEventNotFoundError(eventName, { docsPath });\n abiItem = item;\n }\n if (abiItem.type !== 'event')\n throw new AbiEventNotFoundError(undefined, { docsPath });\n const definition = formatAbiItem(abiItem);\n const signature = toEventSelector(definition);\n let topics = [];\n if (args && 'inputs' in abiItem) {\n const indexedInputs = abiItem.inputs?.filter((param) => 'indexed' in param && param.indexed);\n const args_ = Array.isArray(args)\n ? args\n : Object.values(args).length > 0\n ? indexedInputs?.map((x) => args[x.name]) ?? []\n : [];\n if (args_.length > 0) {\n topics =\n indexedInputs?.map((param, i) => Array.isArray(args_[i])\n ? args_[i].map((_, j) => encodeArg({ param, value: args_[i][j] }))\n : args_[i]\n ? encodeArg({ param, value: args_[i] })\n : null) ?? [];\n }\n }\n return [signature, ...topics];\n}\nfunction encodeArg({ param, value, }) {\n if (param.type === 'string' || param.type === 'bytes')\n return keccak256(toBytes(value));\n if (param.type === 'tuple' || param.type.match(/^(.*)\\[(\\d+)?\\]$/))\n throw new FilterTypeNotSupportedError(param.type);\n return encodeAbiParameters([param], [value]);\n}\n//# sourceMappingURL=encodeEventTopics.js.map","import { encodeEventTopics, } from '../../utils/abi/encodeEventTopics.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { createFilterRequestScope } from '../../utils/filters/createFilterRequestScope.js';\n/**\n * Creates a Filter to retrieve event logs that can be used with [`getFilterChanges`](https://viem.sh/docs/actions/public/getFilterChanges) or [`getFilterLogs`](https://viem.sh/docs/actions/public/getFilterLogs).\n *\n * - Docs: https://viem.sh/docs/contract/createContractEventFilter\n *\n * @param client - Client to use\n * @param parameters - {@link CreateContractEventFilterParameters}\n * @returns [`Filter`](https://viem.sh/docs/glossary/types#filter). {@link CreateContractEventFilterReturnType}\n *\n * @example\n * import { createPublicClient, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createContractEventFilter } from 'viem/contract'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const filter = await createContractEventFilter(client, {\n * abi: parseAbi(['event Transfer(address indexed, address indexed, uint256)']),\n * })\n */\nexport async function createContractEventFilter(client, parameters) {\n const { address, abi, args, eventName, fromBlock, strict, toBlock } = parameters;\n const getRequest = createFilterRequestScope(client, {\n method: 'eth_newFilter',\n });\n const topics = eventName\n ? encodeEventTopics({\n abi,\n args,\n eventName,\n })\n : undefined;\n const id = await client.request({\n method: 'eth_newFilter',\n params: [\n {\n address,\n fromBlock: typeof fromBlock === 'bigint' ? numberToHex(fromBlock) : fromBlock,\n toBlock: typeof toBlock === 'bigint' ? numberToHex(toBlock) : toBlock,\n topics,\n },\n ],\n });\n return {\n abi,\n args,\n eventName,\n id,\n request: getRequest(id),\n strict: Boolean(strict),\n type: 'event',\n };\n}\n//# sourceMappingURL=createContractEventFilter.js.map","import { encodeEventTopics, } from '../../utils/abi/encodeEventTopics.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { createFilterRequestScope } from '../../utils/filters/createFilterRequestScope.js';\n/**\n * Creates a [`Filter`](https://viem.sh/docs/glossary/types#filter) to listen for new events that can be used with [`getFilterChanges`](https://viem.sh/docs/actions/public/getFilterChanges).\n *\n * - Docs: https://viem.sh/docs/actions/public/createEventFilter\n * - JSON-RPC Methods: [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter)\n *\n * @param client - Client to use\n * @param parameters - {@link CreateEventFilterParameters}\n * @returns [`Filter`](https://viem.sh/docs/glossary/types#filter). {@link CreateEventFilterReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createEventFilter } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const filter = await createEventFilter(client, {\n * address: '0xfba3912ca04dd458c843e2ee08967fc04f3579c2',\n * })\n */\nexport async function createEventFilter(client, { address, args, event, events: events_, fromBlock, strict, toBlock, } = {}) {\n const events = events_ ?? (event ? [event] : undefined);\n const getRequest = createFilterRequestScope(client, {\n method: 'eth_newFilter',\n });\n let topics = [];\n if (events) {\n topics = [\n events.flatMap((event) => encodeEventTopics({\n abi: [event],\n eventName: event.name,\n args,\n })),\n ];\n if (event)\n topics = topics[0];\n }\n const id = await client.request({\n method: 'eth_newFilter',\n params: [\n {\n address,\n fromBlock: typeof fromBlock === 'bigint' ? numberToHex(fromBlock) : fromBlock,\n toBlock: typeof toBlock === 'bigint' ? numberToHex(toBlock) : toBlock,\n ...(topics.length ? { topics } : {}),\n },\n ],\n });\n return {\n abi: events,\n args,\n eventName: event ? event.name : undefined,\n fromBlock,\n id,\n request: getRequest(id),\n strict: Boolean(strict),\n toBlock,\n type: 'event',\n };\n}\n//# sourceMappingURL=createEventFilter.js.map","import { createFilterRequestScope } from '../../utils/filters/createFilterRequestScope.js';\n/**\n * Creates a Filter to listen for new pending transaction hashes that can be used with [`getFilterChanges`](https://viem.sh/docs/actions/public/getFilterChanges).\n *\n * - Docs: https://viem.sh/docs/actions/public/createPendingTransactionFilter\n * - JSON-RPC Methods: [`eth_newPendingTransactionFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newpendingtransactionfilter)\n *\n * @param client - Client to use\n * @returns [`Filter`](https://viem.sh/docs/glossary/types#filter). {@link CreateBlockFilterReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createPendingTransactionFilter } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const filter = await createPendingTransactionFilter(client)\n * // { id: \"0x345a6572337856574a76364e457a4366\", type: 'transaction' }\n */\nexport async function createPendingTransactionFilter(client) {\n const getRequest = createFilterRequestScope(client, {\n method: 'eth_newPendingTransactionFilter',\n });\n const id = await client.request({\n method: 'eth_newPendingTransactionFilter',\n });\n return { id, request: getRequest(id), type: 'transaction' };\n}\n//# sourceMappingURL=createPendingTransactionFilter.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { encodeFunctionData, } from '../../utils/abi/encodeFunctionData.js';\nimport { getContractError, } from '../../utils/errors/getContractError.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { estimateGas, } from './estimateGas.js';\n/**\n * Estimates the gas required to successfully execute a contract write function call.\n *\n * - Docs: https://viem.sh/docs/contract/estimateContractGas\n *\n * Internally, uses a [Public Client](https://viem.sh/docs/clients/public) to call the [`estimateGas` action](https://viem.sh/docs/actions/public/estimateGas) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\n *\n * @param client - Client to use\n * @param parameters - {@link EstimateContractGasParameters}\n * @returns The gas estimate (in wei). {@link EstimateContractGasReturnType}\n *\n * @example\n * import { createPublicClient, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { estimateContractGas } from 'viem/contract'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const gas = await estimateContractGas(client, {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: parseAbi(['function mint() public']),\n * functionName: 'mint',\n * account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\n * })\n */\nexport async function estimateContractGas(client, parameters) {\n const { abi, address, args, functionName, ...request } = parameters;\n const data = encodeFunctionData({\n abi,\n args,\n functionName,\n });\n try {\n const gas = await getAction(client, estimateGas, 'estimateGas')({\n data,\n to: address,\n ...request,\n });\n return gas;\n }\n catch (error) {\n const account = request.account ? parseAccount(request.account) : undefined;\n throw getContractError(error, {\n abi,\n address,\n args,\n docsPath: '/docs/contract/estimateContractGas',\n functionName,\n sender: account?.address,\n });\n }\n}\n//# sourceMappingURL=estimateContractGas.js.map","import { numberToHex, } from '../../utils/encoding/toHex.js';\n/**\n * Returns the balance of an address in wei.\n *\n * - Docs: https://viem.sh/docs/actions/public/getBalance\n * - JSON-RPC Methods: [`eth_getBalance`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getbalance)\n *\n * You can convert the balance to ether units with [`formatEther`](https://viem.sh/docs/utilities/formatEther).\n *\n * ```ts\n * const balance = await getBalance(client, {\n * address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * blockTag: 'safe'\n * })\n * const balanceAsEther = formatEther(balance)\n * // \"6.942\"\n * ```\n *\n * @param client - Client to use\n * @param parameters - {@link GetBalanceParameters}\n * @returns The balance of the address in wei. {@link GetBalanceReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getBalance } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const balance = await getBalance(client, {\n * address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * })\n * // 10000000000000000000000n (wei)\n */\nexport async function getBalance(client, { address, blockNumber, blockTag = 'latest' }) {\n const blockNumberHex = blockNumber ? numberToHex(blockNumber) : undefined;\n const balance = await client.request({\n method: 'eth_getBalance',\n params: [address, blockNumberHex || blockTag],\n });\n return BigInt(balance);\n}\n//# sourceMappingURL=getBalance.js.map","/**\n * Returns the base fee per blob gas in wei.\n *\n * - Docs: https://viem.sh/docs/actions/public/getBlobBaseFee\n * - JSON-RPC Methods: [`eth_blobBaseFee`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blobBaseFee)\n *\n * @param client - Client to use\n * @returns The blob base fee (in wei). {@link GetBlobBaseFeeReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getBlobBaseFee } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const blobBaseFee = await getBlobBaseFee(client)\n */\nexport async function getBlobBaseFee(client) {\n const baseFee = await client.request({\n method: 'eth_blobBaseFee',\n });\n return BigInt(baseFee);\n}\n//# sourceMappingURL=getBlobBaseFee.js.map","/** @internal */\nexport const promiseCache = /*#__PURE__*/ new Map();\n/** @internal */\nexport const responseCache = /*#__PURE__*/ new Map();\nexport function getCache(cacheKey) {\n const buildCache = (cacheKey, cache) => ({\n clear: () => cache.delete(cacheKey),\n get: () => cache.get(cacheKey),\n set: (data) => cache.set(cacheKey, data),\n });\n const promise = buildCache(cacheKey, promiseCache);\n const response = buildCache(cacheKey, responseCache);\n return {\n clear: () => {\n promise.clear();\n response.clear();\n },\n promise,\n response,\n };\n}\n/**\n * @description Returns the result of a given promise, and caches the result for\n * subsequent invocations against a provided cache key.\n */\nexport async function withCache(fn, { cacheKey, cacheTime = Number.POSITIVE_INFINITY }) {\n const cache = getCache(cacheKey);\n // If a response exists in the cache, and it's not expired, return it\n // and do not invoke the promise.\n // If the max age is 0, the cache is disabled.\n const response = cache.response.get();\n if (response && cacheTime > 0) {\n const age = new Date().getTime() - response.created.getTime();\n if (age < cacheTime)\n return response.data;\n }\n let promise = cache.promise.get();\n if (!promise) {\n promise = fn();\n // Store the promise in the cache so that subsequent invocations\n // will wait for the same promise to resolve (deduping).\n cache.promise.set(promise);\n }\n try {\n const data = await promise;\n // Store the response in the cache so that subsequent invocations\n // will return the same response.\n cache.response.set({ created: new Date(), data });\n return data;\n }\n finally {\n // Clear the promise cache so that subsequent invocations will\n // invoke the promise again.\n cache.promise.clear();\n }\n}\n//# sourceMappingURL=withCache.js.map","import { getCache, withCache, } from '../../utils/promise/withCache.js';\nconst cacheKey = (id) => `blockNumber.${id}`;\n/** @internal */\nexport function getBlockNumberCache(id) {\n return getCache(cacheKey(id));\n}\n/**\n * Returns the number of the most recent block seen.\n *\n * - Docs: https://viem.sh/docs/actions/public/getBlockNumber\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks/fetching-blocks\n * - JSON-RPC Methods: [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber)\n *\n * @param client - Client to use\n * @param parameters - {@link GetBlockNumberParameters}\n * @returns The number of the block. {@link GetBlockNumberReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getBlockNumber } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const blockNumber = await getBlockNumber(client)\n * // 69420n\n */\nexport async function getBlockNumber(client, { cacheTime = client.cacheTime } = {}) {\n const blockNumberHex = await withCache(() => client.request({\n method: 'eth_blockNumber',\n }), { cacheKey: cacheKey(client.uid), cacheTime });\n return BigInt(blockNumberHex);\n}\n//# sourceMappingURL=getBlockNumber.js.map","import { hexToNumber, } from '../../utils/encoding/fromHex.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\n/**\n * Returns the number of Transactions at a block number, hash, or tag.\n *\n * - Docs: https://viem.sh/docs/actions/public/getBlockTransactionCount\n * - JSON-RPC Methods:\n * - Calls [`eth_getBlockTransactionCountByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblocktransactioncountbynumber) for `blockNumber` & `blockTag`.\n * - Calls [`eth_getBlockTransactionCountByHash`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblocktransactioncountbyhash) for `blockHash`.\n *\n * @param client - Client to use\n * @param parameters - {@link GetBlockTransactionCountParameters}\n * @returns The block transaction count. {@link GetBlockTransactionCountReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getBlockTransactionCount } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const count = await getBlockTransactionCount(client)\n */\nexport async function getBlockTransactionCount(client, { blockHash, blockNumber, blockTag = 'latest', } = {}) {\n const blockNumberHex = blockNumber !== undefined ? numberToHex(blockNumber) : undefined;\n let count;\n if (blockHash) {\n count = await client.request({\n method: 'eth_getBlockTransactionCountByHash',\n params: [blockHash],\n }, { dedupe: true });\n }\n else {\n count = await client.request({\n method: 'eth_getBlockTransactionCountByNumber',\n params: [blockNumberHex || blockTag],\n }, { dedupe: Boolean(blockNumberHex) });\n }\n return hexToNumber(count);\n}\n//# sourceMappingURL=getBlockTransactionCount.js.map","import { numberToHex, } from '../../utils/encoding/toHex.js';\n/**\n * Retrieves the bytecode at an address.\n *\n * - Docs: https://viem.sh/docs/contract/getCode\n * - JSON-RPC Methods: [`eth_getCode`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getcode)\n *\n * @param client - Client to use\n * @param parameters - {@link GetCodeParameters}\n * @returns The contract's bytecode. {@link GetCodeReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getCode } from 'viem/contract'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const code = await getCode(client, {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * })\n */\nexport async function getCode(client, { address, blockNumber, blockTag = 'latest' }) {\n const blockNumberHex = blockNumber !== undefined ? numberToHex(blockNumber) : undefined;\n const hex = await client.request({\n method: 'eth_getCode',\n params: [address, blockNumberHex || blockTag],\n }, { dedupe: Boolean(blockNumberHex) });\n if (hex === '0x')\n return undefined;\n return hex;\n}\n//# sourceMappingURL=getCode.js.map","import { AbiDecodingDataSizeTooSmallError, AbiEventSignatureEmptyTopicsError, AbiEventSignatureNotFoundError, DecodeLogDataMismatch, DecodeLogTopicsMismatch, } from '../../errors/abi.js';\nimport { size } from '../data/size.js';\nimport { toEventSelector, } from '../hash/toEventSelector.js';\nimport { PositionOutOfBoundsError } from '../../errors/cursor.js';\nimport { decodeAbiParameters, } from './decodeAbiParameters.js';\nimport { formatAbiItem } from './formatAbiItem.js';\nconst docsPath = '/docs/contract/decodeEventLog';\nexport function decodeEventLog(parameters) {\n const { abi, data, strict: strict_, topics, } = parameters;\n const strict = strict_ ?? true;\n const [signature, ...argTopics] = topics;\n if (!signature)\n throw new AbiEventSignatureEmptyTopicsError({ docsPath });\n const abiItem = abi.find((x) => x.type === 'event' &&\n signature === toEventSelector(formatAbiItem(x)));\n if (!(abiItem && 'name' in abiItem) || abiItem.type !== 'event')\n throw new AbiEventSignatureNotFoundError(signature, { docsPath });\n const { name, inputs } = abiItem;\n const isUnnamed = inputs?.some((x) => !('name' in x && x.name));\n let args = isUnnamed ? [] : {};\n // Decode topics (indexed args).\n const indexedInputs = inputs.filter((x) => 'indexed' in x && x.indexed);\n for (let i = 0; i < indexedInputs.length; i++) {\n const param = indexedInputs[i];\n const topic = argTopics[i];\n if (!topic)\n throw new DecodeLogTopicsMismatch({\n abiItem,\n param: param,\n });\n args[isUnnamed ? i : param.name || i] = decodeTopic({ param, value: topic });\n }\n // Decode data (non-indexed args).\n const nonIndexedInputs = inputs.filter((x) => !('indexed' in x && x.indexed));\n if (nonIndexedInputs.length > 0) {\n if (data && data !== '0x') {\n try {\n const decodedData = decodeAbiParameters(nonIndexedInputs, data);\n if (decodedData) {\n if (isUnnamed)\n args = [...args, ...decodedData];\n else {\n for (let i = 0; i < nonIndexedInputs.length; i++) {\n args[nonIndexedInputs[i].name] = decodedData[i];\n }\n }\n }\n }\n catch (err) {\n if (strict) {\n if (err instanceof AbiDecodingDataSizeTooSmallError ||\n err instanceof PositionOutOfBoundsError)\n throw new DecodeLogDataMismatch({\n abiItem,\n data: data,\n params: nonIndexedInputs,\n size: size(data),\n });\n throw err;\n }\n }\n }\n else if (strict) {\n throw new DecodeLogDataMismatch({\n abiItem,\n data: '0x',\n params: nonIndexedInputs,\n size: 0,\n });\n }\n }\n return {\n eventName: name,\n args: Object.values(args).length > 0 ? args : undefined,\n };\n}\nfunction decodeTopic({ param, value }) {\n if (param.type === 'string' ||\n param.type === 'bytes' ||\n param.type === 'tuple' ||\n param.type.match(/^(.*)\\[(\\d+)?\\]$/))\n return value;\n const decodedArg = decodeAbiParameters([param], value) || [];\n return decodedArg[0];\n}\n//# sourceMappingURL=decodeEventLog.js.map","// TODO(v3): checksum address.\nimport { AbiEventSignatureNotFoundError, DecodeLogDataMismatch, DecodeLogTopicsMismatch, } from '../../errors/abi.js';\nimport { decodeEventLog, } from './decodeEventLog.js';\n/**\n * Extracts & decodes logs matching the provided signature(s) (`abi` + optional `eventName`)\n * from a set of opaque logs.\n *\n * @param parameters - {@link ParseEventLogsParameters}\n * @returns The logs. {@link ParseEventLogsReturnType}\n *\n * @example\n * import { createClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { parseEventLogs } from 'viem/op-stack'\n *\n * const client = createClient({\n * chain: mainnet,\n * transport: http(),\n * })\n *\n * const receipt = await getTransactionReceipt(client, {\n * hash: '0xec23b2ba4bc59ba61554507c1b1bc91649e6586eb2dd00c728e8ed0db8bb37ea',\n * })\n *\n * const logs = parseEventLogs({ logs: receipt.logs })\n * // [{ args: { ... }, eventName: 'TransactionDeposited', ... }, ...]\n */\nexport function parseEventLogs({ abi, eventName, logs, strict = true, }) {\n return logs\n .map((log) => {\n try {\n const event = decodeEventLog({\n ...log,\n abi,\n strict,\n });\n if (eventName && !eventName.includes(event.eventName))\n return null;\n return { ...event, ...log };\n }\n catch (err) {\n let eventName;\n let isUnnamed;\n if (err instanceof AbiEventSignatureNotFoundError)\n return null;\n if (err instanceof DecodeLogDataMismatch ||\n err instanceof DecodeLogTopicsMismatch) {\n // If strict mode is on, and log data/topics do not match event definition, skip.\n if (strict)\n return null;\n eventName = err.abiItem.name;\n isUnnamed = err.abiItem.inputs?.some((x) => !('name' in x && x.name));\n }\n // Set args to empty if there is an error decoding (e.g. indexed/non-indexed params mismatch).\n return { ...log, args: isUnnamed ? [] : {}, eventName };\n }\n })\n .filter(Boolean);\n}\n//# sourceMappingURL=parseEventLogs.js.map","export function formatLog(log, { args, eventName, } = {}) {\n return {\n ...log,\n blockHash: log.blockHash ? log.blockHash : null,\n blockNumber: log.blockNumber ? BigInt(log.blockNumber) : null,\n logIndex: log.logIndex ? Number(log.logIndex) : null,\n transactionHash: log.transactionHash ? log.transactionHash : null,\n transactionIndex: log.transactionIndex\n ? Number(log.transactionIndex)\n : null,\n ...(eventName ? { args, eventName } : {}),\n };\n}\n//# sourceMappingURL=log.js.map","import { encodeEventTopics, } from '../../utils/abi/encodeEventTopics.js';\nimport { parseEventLogs } from '../../utils/abi/parseEventLogs.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { formatLog, } from '../../utils/formatters/log.js';\n/**\n * Returns a list of event logs matching the provided parameters.\n *\n * - Docs: https://viem.sh/docs/actions/public/getLogs\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/filters-and-logs/event-logs\n * - JSON-RPC Methods: [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs)\n *\n * @param client - Client to use\n * @param parameters - {@link GetLogsParameters}\n * @returns A list of event logs. {@link GetLogsReturnType}\n *\n * @example\n * import { createPublicClient, http, parseAbiItem } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getLogs } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const logs = await getLogs(client)\n */\nexport async function getLogs(client, { address, blockHash, fromBlock, toBlock, event, events: events_, args, strict: strict_, } = {}) {\n const strict = strict_ ?? false;\n const events = events_ ?? (event ? [event] : undefined);\n let topics = [];\n if (events) {\n topics = [\n events.flatMap((event) => encodeEventTopics({\n abi: [event],\n eventName: event.name,\n args,\n })),\n ];\n if (event)\n topics = topics[0];\n }\n let logs;\n if (blockHash) {\n logs = await client.request({\n method: 'eth_getLogs',\n params: [{ address, topics, blockHash }],\n });\n }\n else {\n logs = await client.request({\n method: 'eth_getLogs',\n params: [\n {\n address,\n topics,\n fromBlock: typeof fromBlock === 'bigint' ? numberToHex(fromBlock) : fromBlock,\n toBlock: typeof toBlock === 'bigint' ? numberToHex(toBlock) : toBlock,\n },\n ],\n });\n }\n const formattedLogs = logs.map((log) => formatLog(log));\n if (!events)\n return formattedLogs;\n return parseEventLogs({\n abi: events,\n logs: formattedLogs,\n strict,\n });\n}\n//# sourceMappingURL=getLogs.js.map","import { getAbiItem, } from '../../utils/abi/getAbiItem.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { getLogs, } from './getLogs.js';\n/**\n * Returns a list of event logs emitted by a contract.\n *\n * - Docs: https://viem.sh/docs/actions/public/getContractEvents\n * - JSON-RPC Methods: [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs)\n *\n * @param client - Client to use\n * @param parameters - {@link GetContractEventsParameters}\n * @returns A list of event logs. {@link GetContractEventsReturnType}\n *\n * @example\n * import { createClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getContractEvents } from 'viem/public'\n * import { wagmiAbi } from './abi'\n *\n * const client = createClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const logs = await getContractEvents(client, {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: wagmiAbi,\n * eventName: 'Transfer'\n * })\n */\nexport async function getContractEvents(client, parameters) {\n const { abi, address, args, blockHash, eventName, fromBlock, toBlock, strict, } = parameters;\n const event = eventName\n ? getAbiItem({ abi, name: eventName })\n : undefined;\n const events = !event\n ? abi.filter((x) => x.type === 'event')\n : undefined;\n return getAction(client, getLogs, 'getLogs')({\n address,\n args,\n blockHash,\n event,\n events,\n fromBlock,\n toBlock,\n strict,\n });\n}\n//# sourceMappingURL=getContractEvents.js.map","import { BaseError } from './base.js';\nexport class Eip712DomainNotFoundError extends BaseError {\n constructor({ address }) {\n super(`No EIP-712 domain found on contract \"${address}\".`, {\n metaMessages: [\n 'Ensure that:',\n `- The contract is deployed at the address \"${address}\".`,\n '- `eip712Domain()` function exists on the contract.',\n '- `eip712Domain()` function matches signature to ERC-5267 specification.',\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Eip712DomainNotFoundError'\n });\n }\n}\n//# sourceMappingURL=eip712.js.map","import { Eip712DomainNotFoundError, } from '../../errors/eip712.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { readContract, } from './readContract.js';\n/**\n * Reads the EIP-712 domain from a contract, based on the ERC-5267 specification.\n *\n * @param client - A {@link Client} instance.\n * @param parameters - The parameters of the action. {@link GetEip712DomainParameters}\n * @returns The EIP-712 domain, fields, and extensions. {@link GetEip712DomainReturnType}\n *\n * @example\n * ```ts\n * import { createPublicClient, http, getEip712Domain } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n *\n * const domain = await getEip712Domain(client, {\n * address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',\n * })\n * // {\n * // domain: {\n * // name: 'ExampleContract',\n * // version: '1',\n * // chainId: 1,\n * // verifyingContract: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',\n * // },\n * // fields: '0x0f',\n * // extensions: [],\n * // }\n * ```\n */\nexport async function getEip712Domain(client, parameters) {\n const { address, factory, factoryData } = parameters;\n try {\n const [fields, name, version, chainId, verifyingContract, salt, extensions,] = await getAction(client, readContract, 'readContract')({\n abi,\n address,\n functionName: 'eip712Domain',\n factory,\n factoryData,\n });\n return {\n domain: {\n name,\n version,\n chainId: Number(chainId),\n verifyingContract,\n salt,\n },\n extensions,\n fields,\n };\n }\n catch (e) {\n const error = e;\n if (error.name === 'ContractFunctionExecutionError' &&\n error.cause.name === 'ContractFunctionZeroDataError') {\n throw new Eip712DomainNotFoundError({ address });\n }\n throw error;\n }\n}\nconst abi = [\n {\n inputs: [],\n name: 'eip712Domain',\n outputs: [\n { name: 'fields', type: 'bytes1' },\n { name: 'name', type: 'string' },\n { name: 'version', type: 'string' },\n { name: 'chainId', type: 'uint256' },\n { name: 'verifyingContract', type: 'address' },\n { name: 'salt', type: 'bytes32' },\n { name: 'extensions', type: 'uint256[]' },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n];\n//# sourceMappingURL=getEip712Domain.js.map","import { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { formatFeeHistory, } from '../../utils/formatters/feeHistory.js';\n/**\n * Returns a collection of historical gas information.\n *\n * - Docs: https://viem.sh/docs/actions/public/getFeeHistory\n * - JSON-RPC Methods: [`eth_feeHistory`](https://docs.alchemy.com/reference/eth-feehistory)\n *\n * @param client - Client to use\n * @param parameters - {@link GetFeeHistoryParameters}\n * @returns The gas estimate (in wei). {@link GetFeeHistoryReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getFeeHistory } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const feeHistory = await getFeeHistory(client, {\n * blockCount: 4,\n * rewardPercentiles: [25, 75],\n * })\n */\nexport async function getFeeHistory(client, { blockCount, blockNumber, blockTag = 'latest', rewardPercentiles, }) {\n const blockNumberHex = blockNumber ? numberToHex(blockNumber) : undefined;\n const feeHistory = await client.request({\n method: 'eth_feeHistory',\n params: [\n numberToHex(blockCount),\n blockNumberHex || blockTag,\n rewardPercentiles,\n ],\n }, { dedupe: Boolean(blockNumberHex) });\n return formatFeeHistory(feeHistory);\n}\n//# sourceMappingURL=getFeeHistory.js.map","export function formatFeeHistory(feeHistory) {\n return {\n baseFeePerGas: feeHistory.baseFeePerGas.map((value) => BigInt(value)),\n gasUsedRatio: feeHistory.gasUsedRatio,\n oldestBlock: BigInt(feeHistory.oldestBlock),\n reward: feeHistory.reward?.map((reward) => reward.map((value) => BigInt(value))),\n };\n}\n//# sourceMappingURL=feeHistory.js.map","import { parseEventLogs } from '../../utils/abi/parseEventLogs.js';\nimport { formatLog, } from '../../utils/formatters/log.js';\n/**\n * Returns a list of logs or hashes based on a [Filter](/docs/glossary/terms#filter) since the last time it was called.\n *\n * - Docs: https://viem.sh/docs/actions/public/getFilterChanges\n * - JSON-RPC Methods: [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges)\n *\n * A Filter can be created from the following actions:\n *\n * - [`createBlockFilter`](https://viem.sh/docs/actions/public/createBlockFilter)\n * - [`createContractEventFilter`](https://viem.sh/docs/contract/createContractEventFilter)\n * - [`createEventFilter`](https://viem.sh/docs/actions/public/createEventFilter)\n * - [`createPendingTransactionFilter`](https://viem.sh/docs/actions/public/createPendingTransactionFilter)\n *\n * Depending on the type of filter, the return value will be different:\n *\n * - If the filter was created with `createContractEventFilter` or `createEventFilter`, it returns a list of logs.\n * - If the filter was created with `createPendingTransactionFilter`, it returns a list of transaction hashes.\n * - If the filter was created with `createBlockFilter`, it returns a list of block hashes.\n *\n * @param client - Client to use\n * @param parameters - {@link GetFilterChangesParameters}\n * @returns Logs or hashes. {@link GetFilterChangesReturnType}\n *\n * @example\n * // Blocks\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createBlockFilter, getFilterChanges } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const filter = await createBlockFilter(client)\n * const hashes = await getFilterChanges(client, { filter })\n *\n * @example\n * // Contract Events\n * import { createPublicClient, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createContractEventFilter, getFilterChanges } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const filter = await createContractEventFilter(client, {\n * address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\n * abi: parseAbi(['event Transfer(address indexed, address indexed, uint256)']),\n * eventName: 'Transfer',\n * })\n * const logs = await getFilterChanges(client, { filter })\n *\n * @example\n * // Raw Events\n * import { createPublicClient, http, parseAbiItem } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createEventFilter, getFilterChanges } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const filter = await createEventFilter(client, {\n * address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\n * event: parseAbiItem('event Transfer(address indexed, address indexed, uint256)'),\n * })\n * const logs = await getFilterChanges(client, { filter })\n *\n * @example\n * // Transactions\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createPendingTransactionFilter, getFilterChanges } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const filter = await createPendingTransactionFilter(client)\n * const hashes = await getFilterChanges(client, { filter })\n */\nexport async function getFilterChanges(_client, { filter, }) {\n const strict = 'strict' in filter && filter.strict;\n const logs = await filter.request({\n method: 'eth_getFilterChanges',\n params: [filter.id],\n });\n if (typeof logs[0] === 'string')\n return logs;\n const formattedLogs = logs.map((log) => formatLog(log));\n if (!('abi' in filter) || !filter.abi)\n return formattedLogs;\n return parseEventLogs({\n abi: filter.abi,\n logs: formattedLogs,\n strict,\n });\n}\n//# sourceMappingURL=getFilterChanges.js.map","import { parseEventLogs } from '../../utils/abi/parseEventLogs.js';\nimport { formatLog, } from '../../utils/formatters/log.js';\n/**\n * Returns a list of event logs since the filter was created.\n *\n * - Docs: https://viem.sh/docs/actions/public/getFilterLogs\n * - JSON-RPC Methods: [`eth_getFilterLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterlogs)\n *\n * `getFilterLogs` is only compatible with **event filters**.\n *\n * @param client - Client to use\n * @param parameters - {@link GetFilterLogsParameters}\n * @returns A list of event logs. {@link GetFilterLogsReturnType}\n *\n * @example\n * import { createPublicClient, http, parseAbiItem } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createEventFilter, getFilterLogs } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const filter = await createEventFilter(client, {\n * address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\n * event: parseAbiItem('event Transfer(address indexed, address indexed, uint256)'),\n * })\n * const logs = await getFilterLogs(client, { filter })\n */\nexport async function getFilterLogs(_client, { filter, }) {\n const strict = filter.strict ?? false;\n const logs = await filter.request({\n method: 'eth_getFilterLogs',\n params: [filter.id],\n });\n const formattedLogs = logs.map((log) => formatLog(log));\n if (!filter.abi)\n return formattedLogs;\n return parseEventLogs({\n abi: filter.abi,\n logs: formattedLogs,\n strict,\n });\n}\n//# sourceMappingURL=getFilterLogs.js.map","import { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { formatProof, } from '../../utils/formatters/proof.js';\n/**\n * Returns the account and storage values of the specified account including the Merkle-proof.\n *\n * - Docs: https://viem.sh/docs/actions/public/getProof\n * - JSON-RPC Methods:\n * - Calls [`eth_getProof`](https://eips.ethereum.org/EIPS/eip-1186)\n *\n * @param client - Client to use\n * @param parameters - {@link GetProofParameters}\n * @returns Proof data. {@link GetProofReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getProof } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const block = await getProof(client, {\n * address: '0x...',\n * storageKeys: ['0x...'],\n * })\n */\nexport async function getProof(client, { address, blockNumber, blockTag: blockTag_, storageKeys, }) {\n const blockTag = blockTag_ ?? 'latest';\n const blockNumberHex = blockNumber !== undefined ? numberToHex(blockNumber) : undefined;\n const proof = await client.request({\n method: 'eth_getProof',\n params: [address, storageKeys, blockNumberHex || blockTag],\n });\n return formatProof(proof);\n}\n//# sourceMappingURL=getProof.js.map","import { hexToNumber } from '../index.js';\nfunction formatStorageProof(storageProof) {\n return storageProof.map((proof) => ({\n ...proof,\n value: BigInt(proof.value),\n }));\n}\nexport function formatProof(proof) {\n return {\n ...proof,\n balance: proof.balance ? BigInt(proof.balance) : undefined,\n nonce: proof.nonce ? hexToNumber(proof.nonce) : undefined,\n storageProof: proof.storageProof\n ? formatStorageProof(proof.storageProof)\n : undefined,\n };\n}\n//# sourceMappingURL=proof.js.map","import { numberToHex, } from '../../utils/encoding/toHex.js';\n/**\n * Returns the value from a storage slot at a given address.\n *\n * - Docs: https://viem.sh/docs/contract/getStorageAt\n * - JSON-RPC Methods: [`eth_getStorageAt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getstorageat)\n *\n * @param client - Client to use\n * @param parameters - {@link GetStorageAtParameters}\n * @returns The value of the storage slot. {@link GetStorageAtReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getStorageAt } from 'viem/contract'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const code = await getStorageAt(client, {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * slot: toHex(0),\n * })\n */\nexport async function getStorageAt(client, { address, blockNumber, blockTag = 'latest', slot }) {\n const blockNumberHex = blockNumber !== undefined ? numberToHex(blockNumber) : undefined;\n const data = await client.request({\n method: 'eth_getStorageAt',\n params: [address, slot, blockNumberHex || blockTag],\n });\n return data;\n}\n//# sourceMappingURL=getStorageAt.js.map","import { TransactionNotFoundError } from '../../errors/transaction.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { formatTransaction, } from '../../utils/formatters/transaction.js';\n/**\n * Returns information about a [Transaction](https://viem.sh/docs/glossary/terms#transaction) given a hash or block identifier.\n *\n * - Docs: https://viem.sh/docs/actions/public/getTransaction\n * - Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions/fetching-transactions\n * - JSON-RPC Methods: [`eth_getTransactionByHash`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionByHash)\n *\n * @param client - Client to use\n * @param parameters - {@link GetTransactionParameters}\n * @returns The transaction information. {@link GetTransactionReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getTransaction } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const transaction = await getTransaction(client, {\n * hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\n * })\n */\nexport async function getTransaction(client, { blockHash, blockNumber, blockTag: blockTag_, hash, index, }) {\n const blockTag = blockTag_ || 'latest';\n const blockNumberHex = blockNumber !== undefined ? numberToHex(blockNumber) : undefined;\n let transaction = null;\n if (hash) {\n transaction = await client.request({\n method: 'eth_getTransactionByHash',\n params: [hash],\n }, { dedupe: true });\n }\n else if (blockHash) {\n transaction = await client.request({\n method: 'eth_getTransactionByBlockHashAndIndex',\n params: [blockHash, numberToHex(index)],\n }, { dedupe: true });\n }\n else if (blockNumberHex || blockTag) {\n transaction = await client.request({\n method: 'eth_getTransactionByBlockNumberAndIndex',\n params: [blockNumberHex || blockTag, numberToHex(index)],\n }, { dedupe: Boolean(blockNumberHex) });\n }\n if (!transaction)\n throw new TransactionNotFoundError({\n blockHash,\n blockNumber,\n blockTag,\n hash,\n index,\n });\n const format = client.chain?.formatters?.transaction?.format || formatTransaction;\n return format(transaction);\n}\n//# sourceMappingURL=getTransaction.js.map","import { getAction } from '../../utils/getAction.js';\nimport { getBlockNumber, } from './getBlockNumber.js';\nimport { getTransaction, } from './getTransaction.js';\n/**\n * Returns the number of blocks passed (confirmations) since the transaction was processed on a block.\n *\n * - Docs: https://viem.sh/docs/actions/public/getTransactionConfirmations\n * - Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions/fetching-transactions\n * - JSON-RPC Methods: [`eth_getTransactionConfirmations`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionConfirmations)\n *\n * @param client - Client to use\n * @param parameters - {@link GetTransactionConfirmationsParameters}\n * @returns The number of blocks passed since the transaction was processed. If confirmations is 0, then the Transaction has not been confirmed & processed yet. {@link GetTransactionConfirmationsReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getTransactionConfirmations } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const confirmations = await getTransactionConfirmations(client, {\n * hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\n * })\n */\nexport async function getTransactionConfirmations(client, { hash, transactionReceipt }) {\n const [blockNumber, transaction] = await Promise.all([\n getAction(client, getBlockNumber, 'getBlockNumber')({}),\n hash\n ? getAction(client, getTransaction, 'getTransaction')({ hash })\n : undefined,\n ]);\n const transactionBlockNumber = transactionReceipt?.blockNumber || transaction?.blockNumber;\n if (!transactionBlockNumber)\n return 0n;\n return blockNumber - transactionBlockNumber + 1n;\n}\n//# sourceMappingURL=getTransactionConfirmations.js.map","import { hexToNumber } from '../encoding/fromHex.js';\nimport { defineFormatter } from './formatter.js';\nimport { formatLog } from './log.js';\nimport { transactionType } from './transaction.js';\nexport const receiptStatuses = {\n '0x0': 'reverted',\n '0x1': 'success',\n};\nexport function formatTransactionReceipt(transactionReceipt) {\n const receipt = {\n ...transactionReceipt,\n blockNumber: transactionReceipt.blockNumber\n ? BigInt(transactionReceipt.blockNumber)\n : null,\n contractAddress: transactionReceipt.contractAddress\n ? transactionReceipt.contractAddress\n : null,\n cumulativeGasUsed: transactionReceipt.cumulativeGasUsed\n ? BigInt(transactionReceipt.cumulativeGasUsed)\n : null,\n effectiveGasPrice: transactionReceipt.effectiveGasPrice\n ? BigInt(transactionReceipt.effectiveGasPrice)\n : null,\n gasUsed: transactionReceipt.gasUsed\n ? BigInt(transactionReceipt.gasUsed)\n : null,\n logs: transactionReceipt.logs\n ? transactionReceipt.logs.map((log) => formatLog(log))\n : null,\n to: transactionReceipt.to ? transactionReceipt.to : null,\n transactionIndex: transactionReceipt.transactionIndex\n ? hexToNumber(transactionReceipt.transactionIndex)\n : null,\n status: transactionReceipt.status\n ? receiptStatuses[transactionReceipt.status]\n : null,\n type: transactionReceipt.type\n ? transactionType[transactionReceipt.type] || transactionReceipt.type\n : null,\n };\n if (transactionReceipt.blobGasPrice)\n receipt.blobGasPrice = BigInt(transactionReceipt.blobGasPrice);\n if (transactionReceipt.blobGasUsed)\n receipt.blobGasUsed = BigInt(transactionReceipt.blobGasUsed);\n return receipt;\n}\nexport const defineTransactionReceipt = /*#__PURE__*/ defineFormatter('transactionReceipt', formatTransactionReceipt);\n//# sourceMappingURL=transactionReceipt.js.map","import { TransactionReceiptNotFoundError, } from '../../errors/transaction.js';\nimport { formatTransactionReceipt, } from '../../utils/formatters/transactionReceipt.js';\n/**\n * Returns the [Transaction Receipt](https://viem.sh/docs/glossary/terms#transaction-receipt) given a [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash.\n *\n * - Docs: https://viem.sh/docs/actions/public/getTransactionReceipt\n * - Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions/fetching-transactions\n * - JSON-RPC Methods: [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_gettransactionreceipt)\n *\n * @param client - Client to use\n * @param parameters - {@link GetTransactionReceiptParameters}\n * @returns The transaction receipt. {@link GetTransactionReceiptReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getTransactionReceipt } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const transactionReceipt = await getTransactionReceipt(client, {\n * hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\n * })\n */\nexport async function getTransactionReceipt(client, { hash }) {\n const receipt = await client.request({\n method: 'eth_getTransactionReceipt',\n params: [hash],\n }, { dedupe: true });\n if (!receipt)\n throw new TransactionReceiptNotFoundError({ hash });\n const format = client.chain?.formatters?.transactionReceipt?.format ||\n formatTransactionReceipt;\n return format(receipt);\n}\n//# sourceMappingURL=getTransactionReceipt.js.map","import { multicall3Abi } from '../../constants/abis.js';\nimport { AbiDecodingZeroDataError } from '../../errors/abi.js';\nimport { BaseError } from '../../errors/base.js';\nimport { RawContractError } from '../../errors/contract.js';\nimport { decodeFunctionResult, } from '../../utils/abi/decodeFunctionResult.js';\nimport { encodeFunctionData, } from '../../utils/abi/encodeFunctionData.js';\nimport { getChainContractAddress, } from '../../utils/chain/getChainContractAddress.js';\nimport { getContractError, } from '../../utils/errors/getContractError.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { readContract } from './readContract.js';\n/**\n * Similar to [`readContract`](https://viem.sh/docs/contract/readContract), but batches up multiple functions on a contract in a single RPC call via the [`multicall3` contract](https://github.com/mds1/multicall).\n *\n * - Docs: https://viem.sh/docs/contract/multicall\n *\n * @param client - Client to use\n * @param parameters - {@link MulticallParameters}\n * @returns An array of results with accompanying status. {@link MulticallReturnType}\n *\n * @example\n * import { createPublicClient, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { multicall } from 'viem/contract'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const abi = parseAbi([\n * 'function balanceOf(address) view returns (uint256)',\n * 'function totalSupply() view returns (uint256)',\n * ])\n * const results = await multicall(client, {\n * contracts: [\n * {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi,\n * functionName: 'balanceOf',\n * args: ['0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'],\n * },\n * {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi,\n * functionName: 'totalSupply',\n * },\n * ],\n * })\n * // [{ result: 424122n, status: 'success' }, { result: 1000000n, status: 'success' }]\n */\nexport async function multicall(client, parameters) {\n const { allowFailure = true, batchSize: batchSize_, blockNumber, blockTag, multicallAddress: multicallAddress_, stateOverride, } = parameters;\n const contracts = parameters.contracts;\n const batchSize = batchSize_ ??\n ((typeof client.batch?.multicall === 'object' &&\n client.batch.multicall.batchSize) ||\n 1_024);\n let multicallAddress = multicallAddress_;\n if (!multicallAddress) {\n if (!client.chain)\n throw new Error('client chain not configured. multicallAddress is required.');\n multicallAddress = getChainContractAddress({\n blockNumber,\n chain: client.chain,\n contract: 'multicall3',\n });\n }\n const chunkedCalls = [[]];\n let currentChunk = 0;\n let currentChunkSize = 0;\n for (let i = 0; i < contracts.length; i++) {\n const { abi, address, args, functionName } = contracts[i];\n try {\n const callData = encodeFunctionData({ abi, args, functionName });\n currentChunkSize += (callData.length - 2) / 2;\n // Check to see if we need to create a new chunk.\n if (\n // Check if batching is enabled.\n batchSize > 0 &&\n // Check if the current size of the batch exceeds the size limit.\n currentChunkSize > batchSize &&\n // Check if the current chunk is not already empty.\n chunkedCalls[currentChunk].length > 0) {\n currentChunk++;\n currentChunkSize = (callData.length - 2) / 2;\n chunkedCalls[currentChunk] = [];\n }\n chunkedCalls[currentChunk] = [\n ...chunkedCalls[currentChunk],\n {\n allowFailure: true,\n callData,\n target: address,\n },\n ];\n }\n catch (err) {\n const error = getContractError(err, {\n abi,\n address,\n args,\n docsPath: '/docs/contract/multicall',\n functionName,\n });\n if (!allowFailure)\n throw error;\n chunkedCalls[currentChunk] = [\n ...chunkedCalls[currentChunk],\n {\n allowFailure: true,\n callData: '0x',\n target: address,\n },\n ];\n }\n }\n const aggregate3Results = await Promise.allSettled(chunkedCalls.map((calls) => getAction(client, readContract, 'readContract')({\n abi: multicall3Abi,\n address: multicallAddress,\n args: [calls],\n blockNumber,\n blockTag,\n functionName: 'aggregate3',\n stateOverride,\n })));\n const results = [];\n for (let i = 0; i < aggregate3Results.length; i++) {\n const result = aggregate3Results[i];\n // If an error occurred in a `readContract` invocation (ie. network error),\n // then append the failure reason to each contract result.\n if (result.status === 'rejected') {\n if (!allowFailure)\n throw result.reason;\n for (let j = 0; j < chunkedCalls[i].length; j++) {\n results.push({\n status: 'failure',\n error: result.reason,\n result: undefined,\n });\n }\n continue;\n }\n // If the `readContract` call was successful, then decode the results.\n const aggregate3Result = result.value;\n for (let j = 0; j < aggregate3Result.length; j++) {\n // Extract the response from `readContract`\n const { returnData, success } = aggregate3Result[j];\n // Extract the request call data from the original call.\n const { callData } = chunkedCalls[i][j];\n // Extract the contract config for this call from the `contracts` argument\n // for decoding.\n const { abi, address, functionName, args } = contracts[results.length];\n try {\n if (callData === '0x')\n throw new AbiDecodingZeroDataError();\n if (!success)\n throw new RawContractError({ data: returnData });\n const result = decodeFunctionResult({\n abi,\n args,\n data: returnData,\n functionName,\n });\n results.push(allowFailure ? { result, status: 'success' } : result);\n }\n catch (err) {\n const error = getContractError(err, {\n abi,\n address,\n args,\n docsPath: '/docs/contract/multicall',\n functionName,\n });\n if (!allowFailure)\n throw error;\n results.push({ error, result: undefined, status: 'failure' });\n }\n }\n }\n if (results.length !== contracts.length)\n throw new BaseError('multicall results mismatch');\n return results;\n}\n//# sourceMappingURL=multicall.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { decodeFunctionResult, } from '../../utils/abi/decodeFunctionResult.js';\nimport { encodeFunctionData, } from '../../utils/abi/encodeFunctionData.js';\nimport { getContractError, } from '../../utils/errors/getContractError.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { call } from './call.js';\n/**\n * Simulates/validates a contract interaction. This is useful for retrieving **return data** and **revert reasons** of contract write functions.\n *\n * - Docs: https://viem.sh/docs/contract/simulateContract\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts/writing-to-contracts\n *\n * This function does not require gas to execute and _**does not**_ change the state of the blockchain. It is almost identical to [`readContract`](https://viem.sh/docs/contract/readContract), but also supports contract write functions.\n *\n * Internally, uses a [Public Client](https://viem.sh/docs/clients/public) to call the [`call` action](https://viem.sh/docs/actions/public/call) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\n *\n * @param client - Client to use\n * @param parameters - {@link SimulateContractParameters}\n * @returns The simulation result and write request. {@link SimulateContractReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { simulateContract } from 'viem/contract'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const result = await simulateContract(client, {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: parseAbi(['function mint(uint32) view returns (uint32)']),\n * functionName: 'mint',\n * args: ['69420'],\n * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * })\n */\nexport async function simulateContract(client, parameters) {\n const { abi, address, args, dataSuffix, functionName, ...callRequest } = parameters;\n const account = callRequest.account\n ? parseAccount(callRequest.account)\n : client.account;\n const calldata = encodeFunctionData({ abi, args, functionName });\n try {\n const { data } = await getAction(client, call, 'call')({\n batch: false,\n data: `${calldata}${dataSuffix ? dataSuffix.replace('0x', '') : ''}`,\n to: address,\n ...callRequest,\n account,\n });\n const result = decodeFunctionResult({\n abi,\n args,\n functionName,\n data: data || '0x',\n });\n const minimizedAbi = abi.filter((abiItem) => 'name' in abiItem && abiItem.name === parameters.functionName);\n return {\n result,\n request: {\n abi: minimizedAbi,\n address,\n args,\n dataSuffix,\n functionName,\n ...callRequest,\n account,\n },\n };\n }\n catch (error) {\n throw getContractError(error, {\n abi,\n address,\n args,\n docsPath: '/docs/contract/simulateContract',\n functionName,\n sender: account?.address,\n });\n }\n}\n//# sourceMappingURL=simulateContract.js.map","/**\n * Destroys a [`Filter`](https://viem.sh/docs/glossary/types#filter).\n *\n * - Docs: https://viem.sh/docs/actions/public/uninstallFilter\n * - JSON-RPC Methods: [`eth_uninstallFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_uninstallFilter)\n *\n * Destroys a Filter that was created from one of the following Actions:\n * - [`createBlockFilter`](https://viem.sh/docs/actions/public/createBlockFilter)\n * - [`createEventFilter`](https://viem.sh/docs/actions/public/createEventFilter)\n * - [`createPendingTransactionFilter`](https://viem.sh/docs/actions/public/createPendingTransactionFilter)\n *\n * @param client - Client to use\n * @param parameters - {@link UninstallFilterParameters}\n * @returns A boolean indicating if the Filter was successfully uninstalled. {@link UninstallFilterReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createPendingTransactionFilter, uninstallFilter } from 'viem/public'\n *\n * const filter = await createPendingTransactionFilter(client)\n * const uninstalled = await uninstallFilter(client, { filter })\n * // true\n */\nexport async function uninstallFilter(_client, { filter }) {\n return filter.request({\n method: 'eth_uninstallFilter',\n params: [filter.id],\n });\n}\n//# sourceMappingURL=uninstallFilter.js.map","import { presignMessagePrefix } from '../../constants/strings.js';\nimport { concat } from '../data/concat.js';\nimport { stringToBytes, toBytes, } from '../encoding/toBytes.js';\nimport { keccak256 } from '../hash/keccak256.js';\nexport function hashMessage(message, to_) {\n const messageBytes = (() => {\n if (typeof message === 'string')\n return stringToBytes(message);\n if (message.raw instanceof Uint8Array)\n return message.raw;\n return toBytes(message.raw);\n })();\n const prefixBytes = stringToBytes(`${presignMessagePrefix}${messageBytes.length}`);\n return keccak256(concat([prefixBytes, messageBytes]), to_);\n}\n//# sourceMappingURL=hashMessage.js.map","/*! 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 = BigInt(0);\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst u8a = (a) => a instanceof Uint8Array;\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes) {\n if (!u8a(bytes))\n throw new Error('Uint8Array expected');\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}\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 // Big Endian\n return BigInt(hex === '' ? '0' : `0x${hex}`);\n}\n/**\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 const len = hex.length;\n if (len % 2)\n throw new Error('padded hex string expected, got unpadded hex of length ' + len);\n const array = new Uint8Array(len / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n const hexByte = hex.slice(j, j + 2);\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte) || byte < 0)\n throw new Error('Invalid byte sequence');\n array[i] = byte;\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 if (!u8a(bytes))\n throw new Error('Uint8Array expected');\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 valid hex string, got \"${hex}\". Cause: ${e}`);\n }\n }\n else if (u8a(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} expected ${expectedLength} bytes, got ${len}`);\n return res;\n}\n/**\n * Copies several Uint8Arrays into one.\n */\nexport function concatBytes(...arrays) {\n const r = new Uint8Array(arrays.reduce((sum, a) => sum + a.length, 0));\n let pad = 0; // walk through each item, ensure they have proper type\n arrays.forEach((a) => {\n if (!u8a(a))\n throw new Error('Uint8Array expected');\n r.set(a, pad);\n pad += a.length;\n });\n return r;\n}\nexport function equalBytes(b1, b2) {\n // We don't care about timing attacks here\n if (b1.length !== b2.length)\n return false;\n for (let i = 0; i < b1.length; i++)\n if (b1[i] !== b2[i])\n return false;\n return true;\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(`utf8ToBytes expected string, got ${typeof str}`);\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n// Bit operations\n/**\n * Calculates amount of bits in a bigint.\n * Same as `n.toString(2).length`\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 const 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) => (_2n << BigInt(n - 1)) - _1n;\n// DRBG\nconst u8n = (data) => new Uint8Array(data); // 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(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()) => {\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' || val instanceof Uint8Array,\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 = { [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 \"${type}\", expected function`);\n const val = object[fieldName];\n if (isOptional && val === undefined)\n return;\n if (!checkVal(val, object)) {\n throw new Error(`Invalid param ${String(fieldName)}=${val} (${typeof val}), expected ${type}`);\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//# sourceMappingURL=utils.js.map","function number(n) {\n if (!Number.isSafeInteger(n) || n < 0)\n throw new Error(`Wrong positive integer: ${n}`);\n}\nfunction bool(b) {\n if (typeof b !== 'boolean')\n throw new Error(`Expected boolean, not ${b}`);\n}\nfunction bytes(b, ...lengths) {\n if (!(b instanceof Uint8Array))\n throw new Error('Expected Uint8Array');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new Error(`Expected Uint8Array of length ${lengths}, not of length=${b.length}`);\n}\nfunction hash(hash) {\n if (typeof hash !== 'function' || typeof hash.create !== 'function')\n throw new Error('Hash should be wrapped by utils.wrapConstructor');\n number(hash.outputLen);\n number(hash.blockLen);\n}\nfunction exists(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}\nfunction output(out, instance) {\n bytes(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}\nexport { number, bool, bytes, hash, exists, output };\nconst assert = { number, bool, bytes, hash, exists, output };\nexport default assert;\n//# sourceMappingURL=_assert.js.map","export const crypto = typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined;\n//# sourceMappingURL=crypto.js.map","/*! 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, we can just drop the import.\nimport { crypto } from '@noble/hashes/crypto';\nconst u8a = (a) => a instanceof Uint8Array;\n// Cast array to different type\nexport const u8 = (arr) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\nexport const u32 = (arr) => new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n// Cast array to view\nexport const createView = (arr) => new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n// The rotate right (circular right shift) operation for uint32\nexport const rotr = (word, shift) => (word << (32 - shift)) | (word >>> shift);\n// big-endian hardware is rare. Just in case someone still decides to run hashes:\n// early-throw an error because we don't support BE yet.\nexport const isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\nif (!isLE)\n throw new Error('Non little-endian hardware is not supported');\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes) {\n if (!u8a(bytes))\n throw new Error('Uint8Array expected');\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/**\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 const len = hex.length;\n if (len % 2)\n throw new Error('padded hex string expected, got unpadded hex of length ' + len);\n const array = new Uint8Array(len / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n const hexByte = hex.slice(j, j + 2);\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte) || byte < 0)\n throw new Error('Invalid byte sequence');\n array[i] = byte;\n }\n return array;\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.\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 * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nexport function utf8ToBytes(str) {\n if (typeof str !== 'string')\n throw new Error(`utf8ToBytes expected string, got ${typeof str}`);\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n/**\n * Normalizes (non-hex) string or Uint8Array to Uint8Array.\n * Warning: when Uint8Array is passed, it would NOT get copied.\n * Keep in mind for future mutable operations.\n */\nexport function toBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n if (!u8a(data))\n throw new Error(`expected Uint8Array, got ${typeof data}`);\n return data;\n}\n/**\n * Copies several Uint8Arrays into one.\n */\nexport function concatBytes(...arrays) {\n const r = new Uint8Array(arrays.reduce((sum, a) => sum + a.length, 0));\n let pad = 0; // walk through each item, ensure they have proper type\n arrays.forEach((a) => {\n if (!u8a(a))\n throw new Error('Uint8Array expected');\n r.set(a, pad);\n pad += a.length;\n });\n return r;\n}\n// For runtime check if class implements interface\nexport class Hash {\n // Safe version that clones internal state\n clone() {\n return this._cloneInto();\n }\n}\nconst toStr = {}.toString;\nexport function checkOpts(defaults, opts) {\n if (opts !== undefined && toStr.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}\nexport function wrapConstructor(hashCons) {\n const hashC = (msg) => hashCons().update(toBytes(msg)).digest();\n const tmp = hashCons();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashCons();\n return hashC;\n}\nexport function wrapConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\nexport function wrapXOFConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\n/**\n * Secure PRNG. Uses `crypto.getRandomValues`, which defers to OS.\n */\nexport function randomBytes(bytesLength = 32) {\n if (crypto && typeof crypto.getRandomValues === 'function') {\n return crypto.getRandomValues(new Uint8Array(bytesLength));\n }\n throw new Error('crypto.getRandomValues must be defined');\n}\n//# sourceMappingURL=utils.js.map","import { exists, output } from './_assert.js';\nimport { Hash, createView, toBytes } from './utils.js';\n// Polyfill for Safari 14\nfunction 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// Base SHA2 class (RFC 6234)\nexport class SHA2 extends Hash {\n constructor(blockLen, outputLen, padOffset, isLE) {\n super();\n this.blockLen = blockLen;\n this.outputLen = outputLen;\n this.padOffset = padOffset;\n this.isLE = isLE;\n this.finished = false;\n this.length = 0;\n this.pos = 0;\n this.destroyed = false;\n this.buffer = new Uint8Array(blockLen);\n this.view = createView(this.buffer);\n }\n update(data) {\n exists(this);\n const { view, buffer, blockLen } = this;\n data = toBytes(data);\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // 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 exists(this);\n output(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 this.buffer.subarray(pos).fill(0);\n // we have less than padOffset left in buffer, so we cannot put length in 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.length = length;\n to.pos = pos;\n to.finished = finished;\n to.destroyed = destroyed;\n if (length % blockLen)\n to.buffer.set(buffer);\n return to;\n }\n}\n//# sourceMappingURL=_sha2.js.map","import { SHA2 } from './_sha2.js';\nimport { rotr, wrapConstructor } from './utils.js';\n// SHA2-256 need to try 2^128 hashes to execute birthday attack.\n// BTC network is doing 2^67 hashes/sec as per early 2023.\n// Choice: a ? b : c\nconst Chi = (a, b, c) => (a & b) ^ (~a & c);\n// Majority function, true if any two inpust is true\nconst Maj = (a, b, c) => (a & b) ^ (a & c) ^ (b & c);\n// Round constants:\n// first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311)\n// prettier-ignore\nconst SHA256_K = /* @__PURE__ */ new Uint32Array([\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// Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n// prettier-ignore\nconst IV = /* @__PURE__ */ new Uint32Array([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n]);\n// Temporary buffer, not used to store anything between runs\n// Named this way because it matches specification.\nconst SHA256_W = /* @__PURE__ */ new Uint32Array(64);\nclass SHA256 extends SHA2 {\n constructor() {\n super(64, 32, 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 = IV[0] | 0;\n this.B = IV[1] | 0;\n this.C = IV[2] | 0;\n this.D = IV[3] | 0;\n this.E = IV[4] | 0;\n this.F = IV[5] | 0;\n this.G = IV[6] | 0;\n this.H = 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 SHA256_W.fill(0);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n this.buffer.fill(0);\n }\n}\n// Constants from https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf\nclass SHA224 extends SHA256 {\n constructor() {\n super();\n this.A = 0xc1059ed8 | 0;\n this.B = 0x367cd507 | 0;\n this.C = 0x3070dd17 | 0;\n this.D = 0xf70e5939 | 0;\n this.E = 0xffc00b31 | 0;\n this.F = 0x68581511 | 0;\n this.G = 0x64f98fa7 | 0;\n this.H = 0xbefa4fa4 | 0;\n this.outputLen = 28;\n }\n}\n/**\n * SHA2-256 hash function\n * @param message - data that would be hashed\n */\nexport const sha256 = /* @__PURE__ */ wrapConstructor(() => new SHA256());\nexport const sha224 = /* @__PURE__ */ wrapConstructor(() => new SHA224());\n//# sourceMappingURL=sha256.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Utilities for modular arithmetics and finite fields\nimport { bitMask, numberToBytesBE, numberToBytesLE, bytesToNumberBE, bytesToNumberLE, ensureBytes, validateObject, } from './utils.js';\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = BigInt(2), _3n = BigInt(3);\n// prettier-ignore\nconst _4n = BigInt(4), _5n = BigInt(5), _8n = BigInt(8);\n// prettier-ignore\nconst _9n = BigInt(9), _16n = BigInt(16);\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 * @example\n * pow(2n, 6n, 11n) // 64n % 11n == 9n\n */\n// TODO: use field version && remove\nexport function pow(num, power, modulo) {\n if (modulo <= _0n || power < _0n)\n throw new Error('Expected power/modulo > 0');\n if (modulo === _1n)\n return _0n;\n let res = _1n;\n while (power > _0n) {\n if (power & _1n)\n res = (res * num) % modulo;\n num = (num * num) % modulo;\n power >>= _1n;\n }\n return res;\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// Inverses number over modulo\nexport function invert(number, modulo) {\n if (number === _0n || modulo <= _0n) {\n throw new Error(`invert: expected positive integers, got n=${number} mod=${modulo}`);\n }\n // Euclidean GCD https://brilliant.org/wiki/extended-euclidean-algorithm/\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/**\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 * Will start an infinite loop if field order P is not prime.\n * @param P field order\n * @returns function that takes field Fp (created from P) and number n\n */\nexport function tonelliShanks(P) {\n // Legendre constant: used to calculate Legendre symbol (a | p),\n // which denotes the value of a^((p-1)/2) (mod p).\n // (a | p) ≡ 1 if a is a square (mod p)\n // (a | p) ≡ -1 if a is not a square (mod p)\n // (a | p) ≡ 0 if a ≡ 0 (mod p)\n const legendreC = (P - _1n) / _2n;\n let Q, S, Z;\n // Step 1: By factoring out powers of 2 from p - 1,\n // find q and s such that p - 1 = q*(2^s) with q odd\n for (Q = P - _1n, S = 0; Q % _2n === _0n; Q /= _2n, S++)\n ;\n // Step 2: Select a non-square z such that (z | p) ≡ -1 and set c ≡ zq\n for (Z = _2n; Z < P && pow(Z, legendreC, P) !== P - _1n; Z++)\n ;\n // Fast-path\n if (S === 1) {\n const p1div4 = (P + _1n) / _4n;\n return function tonelliFast(Fp, n) {\n const root = Fp.pow(n, p1div4);\n if (!Fp.eql(Fp.sqr(root), n))\n throw new Error('Cannot find square root');\n return root;\n };\n }\n // Slow-path\n const Q1div2 = (Q + _1n) / _2n;\n return function tonelliSlow(Fp, n) {\n // Step 0: Check that n is indeed a square: (n | p) should not be ≡ -1\n if (Fp.pow(n, legendreC) === Fp.neg(Fp.ONE))\n throw new Error('Cannot find square root');\n let r = S;\n // TODO: will fail at Fp2/etc\n let g = Fp.pow(Fp.mul(Fp.ONE, Z), Q); // will update both x and b\n let x = Fp.pow(n, Q1div2); // first guess at the square root\n let b = Fp.pow(n, Q); // first guess at the fudge factor\n while (!Fp.eql(b, Fp.ONE)) {\n if (Fp.eql(b, Fp.ZERO))\n return Fp.ZERO; // https://en.wikipedia.org/wiki/Tonelli%E2%80%93Shanks_algorithm (4. If t = 0, return r = 0)\n // Find m such b^(2^m)==1\n let m = 1;\n for (let t2 = Fp.sqr(b); m < r; m++) {\n if (Fp.eql(t2, Fp.ONE))\n break;\n t2 = Fp.sqr(t2); // t2 *= t2\n }\n // NOTE: r-m-1 can be bigger than 32, need to convert to bigint before shift, otherwise there will be overflow\n const ge = Fp.pow(g, _1n << BigInt(r - m - 1)); // ge = 2^(r-m-1)\n g = Fp.sqr(ge); // g = ge * ge\n x = Fp.mul(x, ge); // x *= ge\n b = Fp.mul(b, g); // b *= g\n r = m;\n }\n return x;\n };\n}\nexport function FpSqrt(P) {\n // NOTE: 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 // P ≡ 3 (mod 4)\n // √n = n^((P+1)/4)\n if (P % _4n === _3n) {\n // Not all roots possible!\n // const ORDER =\n // 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaabn;\n // const NUM = 72057594037927816n;\n const p1div4 = (P + _1n) / _4n;\n return function sqrt3mod4(Fp, n) {\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 };\n }\n // Atkin algorithm for q ≡ 5 (mod 8), https://eprint.iacr.org/2012/685.pdf (page 10)\n if (P % _8n === _5n) {\n const c1 = (P - _5n) / _8n;\n return function sqrt5mod8(Fp, n) {\n const n2 = Fp.mul(n, _2n);\n const v = Fp.pow(n2, c1);\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 }\n // P ≡ 9 (mod 16)\n if (P % _16n === _9n) {\n // NOTE: tonelli is too slow for bls-Fp2 calculations even on start\n // Means we cannot use sqrt for constants at all!\n //\n // const c1 = Fp.sqrt(Fp.negate(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.negate(c1)); // 3. c3 = sqrt(-c1) in F, i.e., (c3^2) == -c1 in F\n // const c4 = (P + _7n) / _16n; // 4. c4 = (q + 7) / 16 # Integer arithmetic\n // sqrt = (x) => {\n // let tv1 = Fp.pow(x, 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.equals(Fp.square(tv2), x); // 5. e1 = (tv2^2) == x\n // const e2 = Fp.equals(Fp.square(tv3), x); // 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.equals(Fp.square(tv2), x); // 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 // Other cases: 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(f, num, power) {\n // Should have same speed as pow for bigints\n // TODO: benchmark!\n if (power < _0n)\n throw new Error('Expected power > 0');\n if (power === _0n)\n return f.ONE;\n if (power === _1n)\n return num;\n let p = f.ONE;\n let d = num;\n while (power > _0n) {\n if (power & _1n)\n p = f.mul(p, d);\n d = f.sqr(d);\n power >>= _1n;\n }\n return p;\n}\n/**\n * Efficiently invert an array of Field elements.\n * `inv(0)` will return `undefined` here: make sure to throw an error.\n */\nexport function FpInvertBatch(f, nums) {\n const tmp = new Array(nums.length);\n // Walk from first to last, multiply them by each other MOD p\n const lastMultiplied = nums.reduce((acc, num, i) => {\n if (f.is0(num))\n return acc;\n tmp[i] = acc;\n return f.mul(acc, num);\n }, f.ONE);\n // Invert last element\n const inverted = f.inv(lastMultiplied);\n // Walk from last to first, multiply them by inverted each other MOD p\n nums.reduceRight((acc, num, i) => {\n if (f.is0(num))\n return acc;\n tmp[i] = f.mul(acc, tmp[i]);\n return f.mul(acc, num);\n }, inverted);\n return tmp;\n}\nexport function FpDiv(f, lhs, rhs) {\n return f.mul(lhs, typeof rhs === 'bigint' ? invert(rhs, f.ORDER) : f.inv(rhs));\n}\n// This function returns True whenever the value x is a square in the field F.\nexport function FpIsSquare(f) {\n const legendreConst = (f.ORDER - _1n) / _2n; // Integer arithmetic\n return (x) => {\n const p = f.pow(x, legendreConst);\n return f.eql(p, f.ZERO) || f.eql(p, f.ONE);\n };\n}\n// CURVE.n lengths\nexport function nLength(n, nBitLength) {\n // Bit size, byte size of CURVE.n\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. **Non-primes are not supported.**\n * Do not init in loop: slow. Very fragile: always run a benchmark on a change.\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 * @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(`Expected Field ORDER > 0, got ${ORDER}`);\n const { nBitLength: BITS, nByteLength: BYTES } = nLength(ORDER, bitLen);\n if (BYTES > 2048)\n throw new Error('Field lengths over 2048 bytes are not supported');\n const sqrtP = FpSqrt(ORDER);\n const f = Object.freeze({\n ORDER,\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) => sqrtP(f, n)),\n invertBatch: (lst) => FpInvertBatch(f, lst),\n // TODO: do we really need constant cmov?\n // We don't have const-time bigints anyway, so probably will be not very useful\n cmov: (a, b, c) => (c ? b : a),\n toBytes: (num) => (isLE ? numberToBytesLE(num, BYTES) : numberToBytesBE(num, BYTES)),\n fromBytes: (bytes) => {\n if (bytes.length !== BYTES)\n throw new Error(`Fp.fromBytes: expected ${BYTES}, got ${bytes.length}`);\n return isLE ? bytesToNumberLE(bytes) : bytesToNumberBE(bytes);\n },\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 ? bytesToNumberBE(key) : bytesToNumberLE(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","import { hash as assertHash, bytes as assertBytes, exists as assertExists } from './_assert.js';\nimport { Hash, toBytes } from './utils.js';\n// HMAC (RFC 2104)\nexport class HMAC extends Hash {\n constructor(hash, _key) {\n super();\n this.finished = false;\n this.destroyed = false;\n assertHash(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 pad.fill(0);\n }\n update(buf) {\n assertExists(this);\n this.iHash.update(buf);\n return this;\n }\n digestInto(out) {\n assertExists(this);\n assertBytes(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 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 */\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","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Abelian group utilities\nimport { validateField, nLength } from './modular.js';\nimport { validateObject } from './utils.js';\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\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// TODO: Research returning 2d JS array of windows, instead of a single window. This would allow\n// windows to be in different memory locations\nexport function wNAF(c, bits) {\n const constTimeNegate = (condition, item) => {\n const neg = item.negate();\n return condition ? neg : item;\n };\n const opts = (W) => {\n const windows = Math.ceil(bits / W) + 1; // +1, because\n const windowSize = 2 ** (W - 1); // -1 because we skip zero\n return { windows, windowSize };\n };\n return {\n constTimeNegate,\n // non-const time multiplication ladder\n unsafeLadder(elm, n) {\n let 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 * @returns precomputed point tables flattened to a single array\n */\n precomputeWindow(elm, W) {\n const { windows, windowSize } = opts(W);\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 // =1, because we skip zero\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 // TODO: maybe check that scalar is less than group order? wNAF behavious is undefined otherwise\n // But need to carefully remove other checks before wNAF. ORDER == bits here\n const { windows, windowSize } = opts(W);\n let p = c.ZERO;\n let f = c.BASE;\n const mask = BigInt(2 ** W - 1); // Create mask with W ones: 0b1111 for W=4 etc.\n const maxNumber = 2 ** W;\n const shiftBy = BigInt(W);\n for (let window = 0; window < windows; window++) {\n const offset = window * windowSize;\n // Extract W bits.\n let wbits = Number(n & mask);\n // Shift number by W bits.\n n >>= shiftBy;\n // If the bits are bigger than max size, we'll split those.\n // +224 => 256 - 32\n if (wbits > windowSize) {\n wbits -= maxNumber;\n n += _1n;\n }\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 // Check if we're onto Zero point.\n // Add random point inside current window to f.\n const offset1 = offset;\n const offset2 = offset + Math.abs(wbits) - 1; // -1 because we skip zero\n const cond1 = window % 2 !== 0;\n const cond2 = wbits < 0;\n if (wbits === 0) {\n // The most important part for const-time getPublicKey\n f = f.add(constTimeNegate(cond1, precomputes[offset1]));\n }\n else {\n p = p.add(constTimeNegate(cond2, precomputes[offset2]));\n }\n }\n // JIT-compiler should not eliminate f here, since it will later be used in normalizeZ()\n // Even if the variable is still unused, there are some checks which will\n // throw an exception, so compiler needs to prove they won't happen, which is hard.\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 wNAFCached(P, precomputesMap, n, transform) {\n // @ts-ignore\n const W = P._WINDOW_SIZE || 1;\n // Calculate precomputes on a first run, reuse them after\n let comp = precomputesMap.get(P);\n if (!comp) {\n comp = this.precomputeWindow(P, W);\n if (W !== 1) {\n precomputesMap.set(P, transform(comp));\n }\n }\n return this.wNAF(W, comp, n);\n },\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","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Short Weierstrass curve. The formula is: y² = x³ + ax + b\nimport * as mod from './modular.js';\nimport * as ut from './utils.js';\nimport { ensureBytes } from './utils.js';\nimport { wNAF, validateBasic } from './curve.js';\nfunction validatePointOpts(curve) {\n const opts = validateBasic(curve);\n ut.validateObject(opts, {\n a: 'field',\n b: 'field',\n }, {\n allowedPrivateKeyLengths: 'array',\n wrapPrivateKey: 'boolean',\n isTorsionFree: 'function',\n clearCofactor: 'function',\n allowInfinityPoint: 'boolean',\n fromBytes: 'function',\n toBytes: 'function',\n });\n const { endo, Fp, a } = opts;\n if (endo) {\n if (!Fp.eql(a, Fp.ZERO)) {\n throw new Error('Endomorphism can only be defined for Koblitz curves that have a=0');\n }\n if (typeof endo !== 'object' ||\n typeof endo.beta !== 'bigint' ||\n typeof endo.splitScalar !== 'function') {\n throw new Error('Expected endomorphism with beta: bigint and splitScalar: function');\n }\n }\n return Object.freeze({ ...opts });\n}\n// ASN.1 DER encoding utilities\nconst { bytesToNumberBE: b2n, hexToBytes: h2b } = ut;\nexport const DER = {\n // asn.1 DER encoding utils\n Err: class DERErr extends Error {\n constructor(m = '') {\n super(m);\n }\n },\n _parseInt(data) {\n const { Err: E } = DER;\n if (data.length < 2 || data[0] !== 0x02)\n throw new E('Invalid signature integer tag');\n const len = data[1];\n const res = data.subarray(2, len + 2);\n if (!len || res.length !== len)\n throw new E('Invalid signature integer: wrong length');\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 if (res[0] & 0b10000000)\n throw new E('Invalid signature integer: negative');\n if (res[0] === 0x00 && !(res[1] & 0b10000000))\n throw new E('Invalid signature integer: unnecessary leading zero');\n return { d: b2n(res), l: data.subarray(len + 2) }; // d is data, l is left\n },\n toSig(hex) {\n // parse DER signature\n const { Err: E } = DER;\n const data = typeof hex === 'string' ? h2b(hex) : hex;\n if (!(data instanceof Uint8Array))\n throw new Error('ui8a expected');\n let l = data.length;\n if (l < 2 || data[0] != 0x30)\n throw new E('Invalid signature tag');\n if (data[1] !== l - 2)\n throw new E('Invalid signature: incorrect length');\n const { d: r, l: sBytes } = DER._parseInt(data.subarray(2));\n const { d: s, l: rBytesLeft } = DER._parseInt(sBytes);\n if (rBytesLeft.length)\n throw new E('Invalid signature: left bytes after parsing');\n return { r, s };\n },\n hexFromSig(sig) {\n // Add leading zero if first byte has negative bit enabled. More details in '_parseInt'\n const slice = (s) => (Number.parseInt(s[0], 16) & 0b1000 ? '00' + s : s);\n const h = (num) => {\n const hex = num.toString(16);\n return hex.length & 1 ? `0${hex}` : hex;\n };\n const s = slice(h(sig.s));\n const r = slice(h(sig.r));\n const shl = s.length / 2;\n const rhl = r.length / 2;\n const sl = h(shl);\n const rl = h(rhl);\n return `30${h(rhl + shl + 4)}02${rl}${r}02${sl}${s}`;\n },\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 toBytes = CURVE.toBytes ||\n ((_c, point, _isCompressed) => {\n const a = point.toAffine();\n return ut.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\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); // x2 * x\n return Fp.add(Fp.add(x3, Fp.mul(x, a)), b); // x3 + a * x + b\n }\n // Validate whether the passed curve params are valid.\n // We check if curve equation works for generator point.\n // `assertValidity()` won't work: `isTorsionFree()` is not available at this point in bls12-381.\n // ProjectivePoint class has not been initialized yet.\n if (!Fp.eql(Fp.sqr(CURVE.Gy), weierstrassEquation(CURVE.Gx)))\n throw new Error('bad generator point: equation left != right');\n // Valid group elements reside in range 1..n-1\n function isWithinCurveOrder(num) {\n return typeof num === 'bigint' && _0n < num && num < CURVE.n;\n }\n function assertGE(num) {\n if (!isWithinCurveOrder(num))\n throw new Error('Expected valid bigint: 0 < bigint < 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 } = CURVE;\n if (lengths && typeof key !== 'bigint') {\n if (key instanceof Uint8Array)\n key = ut.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 key');\n key = key.padStart(nByteLength * 2, '0');\n }\n let num;\n try {\n num =\n typeof key === 'bigint'\n ? key\n : ut.bytesToNumberBE(ensureBytes('private key', key, nByteLength));\n }\n catch (error) {\n throw new Error(`private key must be ${nByteLength} bytes, hex or bigint, not ${typeof key}`);\n }\n if (wrapPrivateKey)\n num = mod.mod(num, n); // disabled by default, enabled for BLS\n assertGE(num); // num in range [1..N-1]\n return num;\n }\n const pointPrecomputes = new Map();\n function assertPrjPoint(other) {\n if (!(other instanceof Point))\n throw new Error('ProjectivePoint expected');\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 this.px = px;\n this.py = py;\n this.pz = pz;\n if (px == null || !Fp.isValid(px))\n throw new Error('x required');\n if (py == null || !Fp.isValid(py))\n throw new Error('y required');\n if (pz == null || !Fp.isValid(pz))\n throw new Error('z required');\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 = Fp.invertBatch(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 // \"Private method\", don't use it directly\n _setWindowSize(windowSize) {\n this._WINDOW_SIZE = windowSize;\n pointPrecomputes.delete(this);\n }\n // A point on curve is valid if it conforms to equation.\n assertValidity() {\n if (this.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 wrong representation of ZERO and is always invalid.\n if (CURVE.allowInfinityPoint && !Fp.is0(this.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 } = this.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 const left = Fp.sqr(y); // y²\n const right = weierstrassEquation(x); // x³ + ax + b\n if (!Fp.eql(left, right))\n throw new Error('bad point: equation left != right');\n if (!this.isTorsionFree())\n throw new Error('bad point: not in prime-order subgroup');\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 assertPrjPoint(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 assertPrjPoint(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, pointPrecomputes, n, (comp) => {\n const toInv = Fp.invertBatch(comp.map((p) => p.pz));\n return comp.map((p, i) => p.toAffine(toInv[i])).map(Point.fromAffine);\n });\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(n) {\n const I = Point.ZERO;\n if (n === _0n)\n return I;\n assertGE(n); // Will throw on 0\n if (n === _1n)\n return this;\n const { endo } = CURVE;\n if (!endo)\n return wnaf.unsafeLadder(this, n);\n // Apply endomorphism\n let { k1neg, k1, k2neg, k2 } = endo.splitScalar(n);\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 assertGE(scalar);\n let n = scalar;\n let point, fake; // Fake point is used to const-time mult\n const { endo } = CURVE;\n if (endo) {\n const { k1neg, k1, k2neg, k2 } = endo.splitScalar(n);\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(n);\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 const { px: x, py: y, pz: z } = this;\n const is0 = this.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 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 this.assertValidity();\n return toBytes(Point, this, isCompressed);\n }\n toHex(isCompressed = true) {\n return ut.bytesToHex(this.toRawBytes(isCompressed));\n }\n }\n Point.BASE = new Point(CURVE.Gx, CURVE.Gy, Fp.ONE);\n Point.ZERO = new Point(Fp.ZERO, Fp.ONE, Fp.ZERO);\n const _bits = CURVE.nBitLength;\n const wnaf = wNAF(Point, CURVE.endo ? Math.ceil(_bits / 2) : _bits);\n // Validate if generator point is on curve\n return {\n CURVE,\n ProjectivePoint: Point,\n normPrivateKeyToScalar,\n weierstrassEquation,\n isWithinCurveOrder,\n };\n}\nfunction validateOpts(curve) {\n const opts = validateBasic(curve);\n ut.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}\nexport function weierstrass(curveDef) {\n const CURVE = validateOpts(curveDef);\n const { Fp, n: CURVE_ORDER } = 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 isValidFieldElement(num) {\n return _0n < num && num < Fp.ORDER; // 0 is banned since it's not invertible FE\n }\n function modN(a) {\n return mod.mod(a, CURVE_ORDER);\n }\n function invN(a) {\n return mod.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 = ut.concatBytes;\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 = ut.bytesToNumberBE(tail);\n if (!isValidFieldElement(x))\n throw new Error('Point is not on curve');\n const y2 = weierstrassEquation(x); // y² = x³ + ax + b\n let y = Fp.sqrt(y2); // y = y² ^ (p+1)/4\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 throw new Error(`Point of length ${len} was invalid. Expected ${compressedLen} compressed bytes or ${uncompressedLen} uncompressed bytes`);\n }\n },\n });\n const numToNByteStr = (num) => ut.bytesToHex(ut.numberToBytesBE(num, CURVE.nByteLength));\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) => ut.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 this.r = r;\n this.s = s;\n this.recovery = recovery;\n this.assertValidity();\n }\n // pair (bytes of r, bytes of s)\n static fromCompact(hex) {\n const l = CURVE.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 assertValidity() {\n // can use assertGE here\n if (!isWithinCurveOrder(this.r))\n throw new Error('r must be 0 < r < CURVE.n');\n if (!isWithinCurveOrder(this.s))\n throw new Error('s must be 0 < s < CURVE.n');\n }\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 + numToNByteStr(radj));\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 ut.hexToBytes(this.toDERHex());\n }\n toDERHex() {\n return DER.hexFromSig({ r: this.r, s: this.s });\n }\n // padded bytes of r, then padded bytes of s\n toCompactRawBytes() {\n return ut.hexToBytes(this.toCompactHex());\n }\n toCompactHex() {\n return numToNByteStr(this.r) + numToNByteStr(this.s);\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 = mod.getMinHashLength(CURVE.n);\n return mod.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 const arr = item instanceof Uint8Array;\n const str = typeof item === 'string';\n const len = (arr || str) && item.length;\n if (arr)\n return len === compressedLen || len === uncompressedLen;\n if (str)\n return len === 2 * compressedLen || len === 2 * uncompressedLen;\n if (item instanceof Point)\n return true;\n return false;\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))\n throw new Error('first arg must be private key');\n if (!isProbPub(publicB))\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 // 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 = ut.bytesToNumberBE(bytes); // check for == u8 done here\n const delta = bytes.length * 8 - CURVE.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 = ut.bitMask(CURVE.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 if (typeof num !== 'bigint')\n throw new Error('bigint expected');\n if (!(_0n <= num && num < ORDER_MASK))\n throw new Error(`bigint expected < 2^${CURVE.nBitLength}`);\n // works with order, can have different size than numToField!\n return ut.numberToBytesBE(num, CURVE.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, this will be wrong at least for P521.\n // 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 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) {\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 = ut.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 = ut.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 if ('strict' in opts)\n throw new Error('options.strict was renamed to lowS');\n const { lowS, prehash } = opts;\n let _sig = undefined;\n let P;\n try {\n if (typeof sg === 'string' || sg instanceof Uint8Array) {\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 _sig = Signature.fromDER(sg);\n }\n catch (derError) {\n if (!(derError instanceof DER.Err))\n throw derError;\n _sig = Signature.fromCompact(sg);\n }\n }\n else if (typeof sg === 'object' && typeof sg.r === 'bigint' && typeof sg.s === 'bigint') {\n const { r, s } = sg;\n _sig = new Signature(r, s);\n }\n else {\n throw new Error('PARSE');\n }\n P = Point.fromHex(publicKey);\n }\n catch (error) {\n if (error.message === 'PARSE')\n throw new Error(`signature must be Signature instance, Uint8Array or hex string`);\n return false;\n }\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 mod.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 x = Fp.div(x, tv4); // 25. x = x / tv4\n return { x, y };\n };\n}\n//# sourceMappingURL=weierstrass.js.map","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { sha256 } from '@noble/hashes/sha256';\nimport { randomBytes } from '@noble/hashes/utils';\nimport { Field, mod, pow2 } from './abstract/modular.js';\nimport { mapToCurveSimpleSWU } from './abstract/weierstrass.js';\nimport { bytesToNumberBE, concatBytes, ensureBytes, numberToBytesBE } from './abstract/utils.js';\nimport { createHasher, isogenyMap } from './abstract/hash-to-curve.js';\nimport { createCurve } from './_shortw_utils.js';\nconst secp256k1P = BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f');\nconst secp256k1N = BigInt('0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141');\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 (!Fp.eql(Fp.sqr(root), y))\n throw new Error('Cannot find square root');\n return root;\n}\nconst Fp = Field(secp256k1P, undefined, undefined, { sqrt: sqrtMod });\nexport const secp256k1 = createCurve({\n a: BigInt(0),\n b: BigInt(7),\n Fp,\n n: secp256k1N,\n // Base point (x, y) aka generator point\n Gx: BigInt('55066263022277343669578718895168534326250603453777594175500187360389116729240'),\n Gy: BigInt('32670510020758816978083085130507043184471273380659243275938904335757337482424'),\n h: BigInt(1),\n lowS: true,\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 * Explanation: https://gist.github.com/paulmillr/eb670806793e84df628a7c434a873066\n */\n endo: {\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\nconst _0n = BigInt(0);\nconst fe = (x) => typeof x === 'bigint' && _0n < x && x < secp256k1P;\nconst ge = (x) => typeof x === 'bigint' && _0n < x && x < secp256k1N;\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 = 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 if (!fe(x))\n throw new Error('bad x: need 0 < x < p'); // 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}\n/**\n * Create tagged hash, convert it to bigint, reduce modulo-n.\n */\nfunction challenge(...args) {\n return modN(bytesToNumberBE(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 ^ bytesToNumberBE(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(bytesToNumberBE(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(bytesToNumberBE(pub)); // P = lift_x(int(pk)); fail if that fails\n const r = bytesToNumberBE(sig.subarray(0, 32)); // Let r = int(sig[0:32]); fail if r ≥ p.\n if (!fe(r))\n return false;\n const s = bytesToNumberBE(sig.subarray(32, 64)); // Let s = int(sig[32:64]); fail if s ≥ n.\n if (!ge(s))\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}\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(Fp, [\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(Fp, {\n A: BigInt('0x3f8731abdd661adca08a5558f0f5d272e953d363cb6f0e5d405447c01a444533'),\n B: BigInt('1771'),\n Z: Fp.create(BigInt('-11')),\n}))();\nconst htf = /* @__PURE__ */ (() => createHasher(secp256k1.ProjectivePoint, (scalars) => {\n const { x, y } = mapSWU(Fp.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: Fp.ORDER,\n m: 1,\n k: 128,\n expand: 'xmd',\n hash: sha256,\n}))();\nexport const hashToCurve = /* @__PURE__ */ (() => htf.hashToCurve)();\nexport const encodeToCurve = /* @__PURE__ */ (() => htf.encodeToCurve)();\n//# sourceMappingURL=secp256k1.js.map","/*! 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 Object.freeze({ ...create(defHash), create });\n}\n//# sourceMappingURL=_shortw_utils.js.map","import { universalSignatureValidatorAbi } from '../../constants/abis.js';\nimport { universalSignatureValidatorByteCode } from '../../constants/contracts.js';\nimport { CallExecutionError } from '../../errors/contract.js';\nimport { encodeDeployData, } from '../../utils/abi/encodeDeployData.js';\nimport { isBytesEqual, } from '../../utils/data/isBytesEqual.js';\nimport { isHex } from '../../utils/data/isHex.js';\nimport { bytesToHex } from '../../utils/encoding/toHex.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { serializeSignature } from '../../utils/signature/serializeSignature.js';\nimport { call } from './call.js';\n/**\n * Verifies a message hash onchain using ERC-6492.\n *\n * @param client - Client to use.\n * @param parameters - {@link VerifyHashParameters}\n * @returns Whether or not the signature is valid. {@link VerifyHashReturnType}\n */\nexport async function verifyHash(client, { address, hash, signature, ...callRequest }) {\n const signatureHex = (() => {\n if (isHex(signature))\n return signature;\n if (typeof signature === 'object' && 'r' in signature && 's' in signature)\n return serializeSignature(signature);\n return bytesToHex(signature);\n })();\n try {\n const { data } = await getAction(client, call, 'call')({\n data: encodeDeployData({\n abi: universalSignatureValidatorAbi,\n args: [address, hash, signatureHex],\n bytecode: universalSignatureValidatorByteCode,\n }),\n ...callRequest,\n });\n return isBytesEqual(data ?? '0x0', '0x1');\n }\n catch (error) {\n if (error instanceof CallExecutionError) {\n // if the execution fails, the signature was not valid and an internal method inside of the validator reverted\n // this can happen for many reasons, for example if signer can not be recovered from the signature\n // or if the signature has no valid format\n return false;\n }\n throw error;\n }\n}\n//# sourceMappingURL=verifyHash.js.map","import { secp256k1 } from '@noble/curves/secp256k1';\nimport { hexToBigInt } from '../encoding/fromHex.js';\n/**\n * @description Converts a signature into hex format.\n *\n * @param signature The signature to convert.\n * @returns The signature in hex format.\n *\n * @example\n * serializeSignature({\n * r: '0x6e100a352ec6ad1b70802290e18aeed190704973570f3b8ed42cb9808e2ea6bf',\n * s: '0x4a90a229a244495b41890987806fcbd2d5d23fc0dbe5f5256c2613c039d76db8',\n * yParity: 1\n * })\n * // \"0x6e100a352ec6ad1b70802290e18aeed190704973570f3b8ed42cb9808e2ea6bf4a90a229a244495b41890987806fcbd2d5d23fc0dbe5f5256c2613c039d76db81c\"\n */\nexport function serializeSignature({ r, s, v, yParity }) {\n const yParity_ = (() => {\n if (yParity === 0 || yParity === 1)\n return yParity;\n if (v && (v === 27n || v === 28n || v >= 35n))\n return v % 2n === 0n ? 1 : 0;\n throw new Error('Invalid `v` or `yParity` value');\n })();\n return `0x${new secp256k1.Signature(hexToBigInt(r), hexToBigInt(s)).toCompactHex()}${yParity_ === 0 ? '1b' : '1c'}`;\n}\n//# sourceMappingURL=serializeSignature.js.map","import { equalBytes } from '@noble/curves/abstract/utils';\nimport { toBytes } from '../encoding/toBytes.js';\nimport { isHex } from './isHex.js';\nexport function isBytesEqual(a_, b_) {\n const a = isHex(a_) ? toBytes(a_) : a_;\n const b = isHex(b_) ? toBytes(b_) : b_;\n return equalBytes(a, b);\n}\n//# sourceMappingURL=isBytesEqual.js.map","import { hashMessage } from '../../utils/signature/hashMessage.js';\nimport { verifyHash, } from './verifyHash.js';\n/**\n * Verify that a message was signed by the provided address.\n *\n * Compatible with Smart Contract Accounts & Externally Owned Accounts via [ERC-6492](https://eips.ethereum.org/EIPS/eip-6492).\n *\n * - Docs {@link https://viem.sh/docs/actions/public/verifyMessage}\n *\n * @param client - Client to use.\n * @param parameters - {@link VerifyMessageParameters}\n * @returns Whether or not the signature is valid. {@link VerifyMessageReturnType}\n */\nexport async function verifyMessage(client, { address, message, signature, ...callRequest }) {\n const hash = hashMessage(message);\n return verifyHash(client, {\n address,\n hash,\n signature,\n ...callRequest,\n });\n}\n//# sourceMappingURL=verifyMessage.js.map","// Implementation forked and adapted from https://github.com/MetaMask/eth-sig-util/blob/main/src/sign-typed-data.ts\nimport { encodeAbiParameters, } from '../abi/encodeAbiParameters.js';\nimport { concat } from '../data/concat.js';\nimport { toHex } from '../encoding/toHex.js';\nimport { keccak256 } from '../hash/keccak256.js';\nimport { getTypesForEIP712Domain, validateTypedData, } from '../typedData.js';\nexport function hashTypedData(parameters) {\n const { domain = {}, message, primaryType, } = parameters;\n const types = {\n EIP712Domain: getTypesForEIP712Domain({ domain }),\n ...parameters.types,\n };\n // Need to do a runtime validation check on addresses, byte ranges, integer ranges, etc\n // as we can't statically check this with TypeScript.\n validateTypedData({\n domain,\n message,\n primaryType,\n types,\n });\n const parts = ['0x1901'];\n if (domain)\n parts.push(hashDomain({\n domain,\n types: types,\n }));\n if (primaryType !== 'EIP712Domain')\n parts.push(hashStruct({\n data: message,\n primaryType,\n types: types,\n }));\n return keccak256(concat(parts));\n}\nexport function hashDomain({ domain, types, }) {\n return hashStruct({\n data: domain,\n primaryType: 'EIP712Domain',\n types,\n });\n}\nfunction hashStruct({ data, primaryType, types, }) {\n const encoded = encodeData({\n data,\n primaryType,\n types,\n });\n return keccak256(encoded);\n}\nfunction encodeData({ data, primaryType, types, }) {\n const encodedTypes = [{ type: 'bytes32' }];\n const encodedValues = [hashType({ primaryType, types })];\n for (const field of types[primaryType]) {\n const [type, value] = encodeField({\n types,\n name: field.name,\n type: field.type,\n value: data[field.name],\n });\n encodedTypes.push(type);\n encodedValues.push(value);\n }\n return encodeAbiParameters(encodedTypes, encodedValues);\n}\nfunction hashType({ primaryType, types, }) {\n const encodedHashType = toHex(encodeType({ primaryType, types }));\n return keccak256(encodedHashType);\n}\nfunction encodeType({ primaryType, types, }) {\n let result = '';\n const unsortedDeps = findTypeDependencies({ primaryType, types });\n unsortedDeps.delete(primaryType);\n const deps = [primaryType, ...Array.from(unsortedDeps).sort()];\n for (const type of deps) {\n result += `${type}(${types[type]\n .map(({ name, type: t }) => `${t} ${name}`)\n .join(',')})`;\n }\n return result;\n}\nfunction findTypeDependencies({ primaryType: primaryType_, types, }, results = new Set()) {\n const match = primaryType_.match(/^\\w*/u);\n const primaryType = match?.[0];\n if (results.has(primaryType) || types[primaryType] === undefined) {\n return results;\n }\n results.add(primaryType);\n for (const field of types[primaryType]) {\n findTypeDependencies({ primaryType: field.type, types }, results);\n }\n return results;\n}\nfunction encodeField({ types, name, type, value, }) {\n if (types[type] !== undefined) {\n return [\n { type: 'bytes32' },\n keccak256(encodeData({ data: value, primaryType: type, types })),\n ];\n }\n if (type === 'bytes') {\n const prepend = value.length % 2 ? '0' : '';\n value = `0x${prepend + value.slice(2)}`;\n return [{ type: 'bytes32' }, keccak256(value)];\n }\n if (type === 'string')\n return [{ type: 'bytes32' }, keccak256(toHex(value))];\n if (type.lastIndexOf(']') === type.length - 1) {\n const parsedType = type.slice(0, type.lastIndexOf('['));\n const typeValuePairs = value.map((item) => encodeField({\n name,\n type: parsedType,\n types,\n value: item,\n }));\n return [\n { type: 'bytes32' },\n keccak256(encodeAbiParameters(typeValuePairs.map(([t]) => t), typeValuePairs.map(([, v]) => v))),\n ];\n }\n return [{ type }, value];\n}\n//# sourceMappingURL=hashTypedData.js.map","import { hashTypedData, } from '../../utils/signature/hashTypedData.js';\nimport { verifyHash, } from './verifyHash.js';\n/**\n * Verify that typed data was signed by the provided address.\n *\n * - Docs {@link https://viem.sh/docs/actions/public/verifyTypedData}\n *\n * @param client - Client to use.\n * @param parameters - {@link VerifyTypedDataParameters}\n * @returns Whether or not the signature is valid. {@link VerifyTypedDataReturnType}\n */\nexport async function verifyTypedData(client, parameters) {\n const { address, signature, message, primaryType, types, domain, ...callRequest } = parameters;\n const hash = hashTypedData({ message, primaryType, types, domain });\n return verifyHash(client, {\n address,\n hash,\n signature,\n ...callRequest,\n });\n}\n//# sourceMappingURL=verifyTypedData.js.map","/** @internal */\nexport const listenersCache = /*#__PURE__*/ new Map();\n/** @internal */\nexport const cleanupCache = /*#__PURE__*/ new Map();\nlet callbackCount = 0;\n/**\n * @description Sets up an observer for a given function. If another function\n * is set up under the same observer id, the function will only be called once\n * for both instances of the observer.\n */\nexport function observe(observerId, callbacks, fn) {\n const callbackId = ++callbackCount;\n const getListeners = () => listenersCache.get(observerId) || [];\n const unsubscribe = () => {\n const listeners = getListeners();\n listenersCache.set(observerId, listeners.filter((cb) => cb.id !== callbackId));\n };\n const unwatch = () => {\n const cleanup = cleanupCache.get(observerId);\n if (getListeners().length === 1 && cleanup)\n cleanup();\n unsubscribe();\n };\n const listeners = getListeners();\n listenersCache.set(observerId, [\n ...listeners,\n { id: callbackId, fns: callbacks },\n ]);\n if (listeners && listeners.length > 0)\n return unwatch;\n const emit = {};\n for (const key in callbacks) {\n emit[key] = ((...args) => {\n const listeners = getListeners();\n if (listeners.length === 0)\n return;\n for (const listener of listeners)\n listener.fns[key]?.(...args);\n });\n }\n const cleanup = fn(emit);\n if (typeof cleanup === 'function')\n cleanupCache.set(observerId, cleanup);\n return unwatch;\n}\n//# sourceMappingURL=observe.js.map","import { wait } from './wait.js';\n/**\n * @description Polls a function at a specified interval.\n */\nexport function poll(fn, { emitOnBegin, initialWaitTime, interval }) {\n let active = true;\n const unwatch = () => (active = false);\n const watch = async () => {\n let data = undefined;\n if (emitOnBegin)\n data = await fn({ unpoll: unwatch });\n const initialWait = (await initialWaitTime?.(data)) ?? interval;\n await wait(initialWait);\n const poll = async () => {\n if (!active)\n return;\n await fn({ unpoll: unwatch });\n await wait(interval);\n poll();\n };\n poll();\n };\n watch();\n return unwatch;\n}\n//# sourceMappingURL=poll.js.map","import { hexToBigInt } from '../../utils/encoding/fromHex.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { observe } from '../../utils/observe.js';\nimport { poll } from '../../utils/poll.js';\nimport { stringify } from '../../utils/stringify.js';\nimport { getBlockNumber, } from './getBlockNumber.js';\n/**\n * Watches and returns incoming block numbers.\n *\n * - Docs: https://viem.sh/docs/actions/public/watchBlockNumber\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks/watching-blocks\n * - JSON-RPC Methods:\n * - When `poll: true`, calls [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber) on a polling interval.\n * - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\"newHeads\"` event.\n *\n * @param client - Client to use\n * @param parameters - {@link WatchBlockNumberParameters}\n * @returns A function that can be invoked to stop watching for new block numbers. {@link WatchBlockNumberReturnType}\n *\n * @example\n * import { createPublicClient, watchBlockNumber, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const unwatch = watchBlockNumber(client, {\n * onBlockNumber: (blockNumber) => console.log(blockNumber),\n * })\n */\nexport function watchBlockNumber(client, { emitOnBegin = false, emitMissed = false, onBlockNumber, onError, poll: poll_, pollingInterval = client.pollingInterval, }) {\n const enablePolling = (() => {\n if (typeof poll_ !== 'undefined')\n return poll_;\n if (client.transport.type === 'webSocket')\n return false;\n if (client.transport.type === 'fallback' &&\n client.transport.transports[0].config.type === 'webSocket')\n return false;\n return true;\n })();\n let prevBlockNumber;\n const pollBlockNumber = () => {\n const observerId = stringify([\n 'watchBlockNumber',\n client.uid,\n emitOnBegin,\n emitMissed,\n pollingInterval,\n ]);\n return observe(observerId, { onBlockNumber, onError }, (emit) => poll(async () => {\n try {\n const blockNumber = await getAction(client, getBlockNumber, 'getBlockNumber')({ cacheTime: 0 });\n if (prevBlockNumber) {\n // If the current block number is the same as the previous,\n // we can skip.\n if (blockNumber === prevBlockNumber)\n return;\n // If we have missed out on some previous blocks, and the\n // `emitMissed` flag is truthy, let's emit those blocks.\n if (blockNumber - prevBlockNumber > 1 && emitMissed) {\n for (let i = prevBlockNumber + 1n; i < blockNumber; i++) {\n emit.onBlockNumber(i, prevBlockNumber);\n prevBlockNumber = i;\n }\n }\n }\n // If the next block number is greater than the previous,\n // it is not in the past, and we can emit the new block number.\n if (!prevBlockNumber || blockNumber > prevBlockNumber) {\n emit.onBlockNumber(blockNumber, prevBlockNumber);\n prevBlockNumber = blockNumber;\n }\n }\n catch (err) {\n emit.onError?.(err);\n }\n }, {\n emitOnBegin,\n interval: pollingInterval,\n }));\n };\n const subscribeBlockNumber = () => {\n const observerId = stringify([\n 'watchBlockNumber',\n client.uid,\n emitOnBegin,\n emitMissed,\n ]);\n return observe(observerId, { onBlockNumber, onError }, (emit) => {\n let active = true;\n let unsubscribe = () => (active = false);\n (async () => {\n try {\n const transport = (() => {\n if (client.transport.type === 'fallback') {\n const transport = client.transport.transports.find((transport) => transport.config.type === 'webSocket');\n if (!transport)\n return client.transport;\n return transport.value;\n }\n return client.transport;\n })();\n const { unsubscribe: unsubscribe_ } = await transport.subscribe({\n params: ['newHeads'],\n onData(data) {\n if (!active)\n return;\n const blockNumber = hexToBigInt(data.result?.number);\n emit.onBlockNumber(blockNumber, prevBlockNumber);\n prevBlockNumber = blockNumber;\n },\n onError(error) {\n emit.onError?.(error);\n },\n });\n unsubscribe = unsubscribe_;\n if (!active)\n unsubscribe();\n }\n catch (err) {\n onError?.(err);\n }\n })();\n return () => unsubscribe();\n });\n };\n return enablePolling ? pollBlockNumber() : subscribeBlockNumber();\n}\n//# sourceMappingURL=watchBlockNumber.js.map","import { BlockNotFoundError } from '../../errors/block.js';\nimport { TransactionNotFoundError, TransactionReceiptNotFoundError, WaitForTransactionReceiptTimeoutError, } from '../../errors/transaction.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { observe } from '../../utils/observe.js';\nimport { withRetry, } from '../../utils/promise/withRetry.js';\nimport { stringify } from '../../utils/stringify.js';\nimport { getBlock } from './getBlock.js';\nimport { getTransaction, } from './getTransaction.js';\nimport { getTransactionReceipt, } from './getTransactionReceipt.js';\nimport { watchBlockNumber, } from './watchBlockNumber.js';\n/**\n * Waits for the [Transaction](https://viem.sh/docs/glossary/terms#transaction) to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the [Transaction Receipt](https://viem.sh/docs/glossary/terms#transaction-receipt).\n *\n * - Docs: https://viem.sh/docs/actions/public/waitForTransactionReceipt\n * - Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions/sending-transactions\n * - JSON-RPC Methods:\n * - Polls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt) on each block until it has been processed.\n * - If a Transaction has been replaced:\n * - Calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbynumber) and extracts the transactions\n * - Checks if one of the Transactions is a replacement\n * - If so, calls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt).\n *\n * The `waitForTransactionReceipt` action additionally supports Replacement detection (e.g. sped up Transactions).\n *\n * Transactions can be replaced when a user modifies their transaction in their wallet (to speed up or cancel). Transactions are replaced when they are sent from the same nonce.\n *\n * There are 3 types of Transaction Replacement reasons:\n *\n * - `repriced`: The gas price has been modified (e.g. different `maxFeePerGas`)\n * - `cancelled`: The Transaction has been cancelled (e.g. `value === 0n`)\n * - `replaced`: The Transaction has been replaced (e.g. different `value` or `data`)\n *\n * @param client - Client to use\n * @param parameters - {@link WaitForTransactionReceiptParameters}\n * @returns The transaction receipt. {@link WaitForTransactionReceiptReturnType}\n *\n * @example\n * import { createPublicClient, waitForTransactionReceipt, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const transactionReceipt = await waitForTransactionReceipt(client, {\n * hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\n * })\n */\nexport async function waitForTransactionReceipt(client, { confirmations = 1, hash, onReplaced, pollingInterval = client.pollingInterval, retryCount = 6, retryDelay = ({ count }) => ~~(1 << count) * 200, // exponential backoff\ntimeout, }) {\n const observerId = stringify(['waitForTransactionReceipt', client.uid, hash]);\n let count = 0;\n let transaction;\n let replacedTransaction;\n let receipt;\n let retrying = false;\n return new Promise((resolve, reject) => {\n if (timeout)\n setTimeout(() => reject(new WaitForTransactionReceiptTimeoutError({ hash })), timeout);\n const _unobserve = observe(observerId, { onReplaced, resolve, reject }, (emit) => {\n const _unwatch = getAction(client, watchBlockNumber, 'watchBlockNumber')({\n emitMissed: true,\n emitOnBegin: true,\n poll: true,\n pollingInterval,\n async onBlockNumber(blockNumber_) {\n const done = (fn) => {\n _unwatch();\n fn();\n _unobserve();\n };\n let blockNumber = blockNumber_;\n if (retrying)\n return;\n if (count > retryCount)\n done(() => emit.reject(new WaitForTransactionReceiptTimeoutError({ hash })));\n try {\n // If we already have a valid receipt, let's check if we have enough\n // confirmations. If we do, then we can resolve.\n if (receipt) {\n if (confirmations > 1 &&\n (!receipt.blockNumber ||\n blockNumber - receipt.blockNumber + 1n < confirmations))\n return;\n done(() => emit.resolve(receipt));\n return;\n }\n // Get the transaction to check if it's been replaced.\n // We need to retry as some RPC Providers may be slow to sync\n // up mined transactions.\n if (!transaction) {\n retrying = true;\n await withRetry(async () => {\n transaction = (await getAction(client, getTransaction, 'getTransaction')({ hash }));\n if (transaction.blockNumber)\n blockNumber = transaction.blockNumber;\n }, {\n delay: retryDelay,\n retryCount,\n });\n retrying = false;\n }\n // Get the receipt to check if it's been processed.\n receipt = await getAction(client, getTransactionReceipt, 'getTransactionReceipt')({ hash });\n // Check if we have enough confirmations. If not, continue polling.\n if (confirmations > 1 &&\n (!receipt.blockNumber ||\n blockNumber - receipt.blockNumber + 1n < confirmations))\n return;\n done(() => emit.resolve(receipt));\n }\n catch (err) {\n // If the receipt is not found, the transaction will be pending.\n // We need to check if it has potentially been replaced.\n if (err instanceof TransactionNotFoundError ||\n err instanceof TransactionReceiptNotFoundError) {\n if (!transaction) {\n retrying = false;\n return;\n }\n try {\n replacedTransaction = transaction;\n // Let's retrieve the transactions from the current block.\n // We need to retry as some RPC Providers may be slow to sync\n // up mined blocks.\n retrying = true;\n const block = await withRetry(() => getAction(client, getBlock, 'getBlock')({\n blockNumber,\n includeTransactions: true,\n }), {\n delay: retryDelay,\n retryCount,\n shouldRetry: ({ error }) => error instanceof BlockNotFoundError,\n });\n retrying = false;\n const replacementTransaction = block.transactions.find(({ from, nonce }) => from === replacedTransaction.from &&\n nonce === replacedTransaction.nonce);\n // If we couldn't find a replacement transaction, continue polling.\n if (!replacementTransaction)\n return;\n // If we found a replacement transaction, return it's receipt.\n receipt = await getAction(client, getTransactionReceipt, 'getTransactionReceipt')({\n hash: replacementTransaction.hash,\n });\n // Check if we have enough confirmations. If not, continue polling.\n if (confirmations > 1 &&\n (!receipt.blockNumber ||\n blockNumber - receipt.blockNumber + 1n < confirmations))\n return;\n let reason = 'replaced';\n if (replacementTransaction.to === replacedTransaction.to &&\n replacementTransaction.value === replacedTransaction.value) {\n reason = 'repriced';\n }\n else if (replacementTransaction.from === replacementTransaction.to &&\n replacementTransaction.value === 0n) {\n reason = 'cancelled';\n }\n done(() => {\n emit.onReplaced?.({\n reason,\n replacedTransaction: replacedTransaction,\n transaction: replacementTransaction,\n transactionReceipt: receipt,\n });\n emit.resolve(receipt);\n });\n }\n catch (err_) {\n done(() => emit.reject(err_));\n }\n }\n else {\n done(() => emit.reject(err));\n }\n }\n finally {\n count++;\n }\n },\n });\n });\n });\n}\n//# sourceMappingURL=waitForTransactionReceipt.js.map","/**\n * @description Parses EIP-4361 formatted message into message fields object.\n *\n * @see https://eips.ethereum.org/EIPS/eip-4361\n *\n * @returns EIP-4361 fields object\n */\nexport function parseSiweMessage(message) {\n const { scheme, statement, ...prefix } = (message.match(prefixRegex)\n ?.groups ?? {});\n const { chainId, expirationTime, issuedAt, notBefore, requestId, ...suffix } = (message.match(suffixRegex)?.groups ?? {});\n const resources = message.split('Resources:')[1]?.split('\\n- ').slice(1);\n return {\n ...prefix,\n ...suffix,\n ...(chainId ? { chainId: Number(chainId) } : {}),\n ...(expirationTime ? { expirationTime: new Date(expirationTime) } : {}),\n ...(issuedAt ? { issuedAt: new Date(issuedAt) } : {}),\n ...(notBefore ? { notBefore: new Date(notBefore) } : {}),\n ...(requestId ? { requestId } : {}),\n ...(resources ? { resources } : {}),\n ...(scheme ? { scheme } : {}),\n ...(statement ? { statement } : {}),\n };\n}\n// https://regexr.com/80gdj\nconst prefixRegex = /^(?:(?[a-zA-Z][a-zA-Z0-9+-.]*):\\/\\/)?(?[a-zA-Z0-9+-.]*(?::[0-9]{1,5})?) (?:wants you to sign in with your Ethereum account:\\n)(?
0x[a-fA-F0-9]{40})\\n\\n(?:(?.*)\\n\\n)?/;\n// https://regexr.com/80gf9\nconst suffixRegex = /(?:URI: (?.+))\\n(?:Version: (?.+))\\n(?:Chain ID: (?\\d+))\\n(?:Nonce: (?[a-zA-Z0-9]+))\\n(?:Issued At: (?.+))(?:\\nExpiration Time: (?.+))?(?:\\nNot Before: (?.+))?(?:\\nRequest ID: (?.+))?/;\n//# sourceMappingURL=parseSiweMessage.js.map","import { hashMessage } from '../../utils/signature/hashMessage.js';\nimport { parseSiweMessage } from '../../utils/siwe/parseSiweMessage.js';\nimport { validateSiweMessage, } from '../../utils/siwe/validateSiweMessage.js';\nimport { verifyHash, } from '../public/verifyHash.js';\n/**\n * Verifies [EIP-4361](https://eips.ethereum.org/EIPS/eip-4361) formatted message was signed.\n *\n * Compatible with Smart Contract Accounts & Externally Owned Accounts via [ERC-6492](https://eips.ethereum.org/EIPS/eip-6492).\n *\n * - Docs {@link https://viem.sh/docs/siwe/actions/verifySiweMessage}\n *\n * @param client - Client to use.\n * @param parameters - {@link VerifySiweMessageParameters}\n * @returns Whether or not the signature is valid. {@link VerifySiweMessageReturnType}\n */\nexport async function verifySiweMessage(client, parameters) {\n const { address, domain, message, nonce, scheme, signature, time = new Date(), ...callRequest } = parameters;\n const parsed = parseSiweMessage(message);\n if (!parsed.address)\n return false;\n const isValid = validateSiweMessage({\n address,\n domain,\n message: parsed,\n nonce,\n scheme,\n time,\n });\n if (!isValid)\n return false;\n const hash = hashMessage(message);\n return verifyHash(client, {\n address: parsed.address,\n hash,\n signature,\n ...callRequest,\n });\n}\n//# sourceMappingURL=verifySiweMessage.js.map","import { isAddressEqual } from '../address/isAddressEqual.js';\n/**\n * @description Validates EIP-4361 message.\n *\n * @see https://eips.ethereum.org/EIPS/eip-4361\n */\nexport function validateSiweMessage(parameters) {\n const { address, domain, message, nonce, scheme, time = new Date(), } = parameters;\n if (domain && message.domain !== domain)\n return false;\n if (nonce && message.nonce !== nonce)\n return false;\n if (scheme && message.scheme !== scheme)\n return false;\n if (message.expirationTime && time >= message.expirationTime)\n return false;\n if (message.notBefore && time < message.notBefore)\n return false;\n try {\n if (!message.address)\n return false;\n if (address && !isAddressEqual(message.address, address))\n return false;\n }\n catch {\n return false;\n }\n return true;\n}\n//# sourceMappingURL=validateSiweMessage.js.map","import { getEnsAddress, } from '../../actions/ens/getEnsAddress.js';\nimport { getEnsAvatar, } from '../../actions/ens/getEnsAvatar.js';\nimport { getEnsName, } from '../../actions/ens/getEnsName.js';\nimport { getEnsResolver, } from '../../actions/ens/getEnsResolver.js';\nimport { getEnsText, } from '../../actions/ens/getEnsText.js';\nimport { call, } from '../../actions/public/call.js';\nimport { createBlockFilter, } from '../../actions/public/createBlockFilter.js';\nimport { createContractEventFilter, } from '../../actions/public/createContractEventFilter.js';\nimport { createEventFilter, } from '../../actions/public/createEventFilter.js';\nimport { createPendingTransactionFilter, } from '../../actions/public/createPendingTransactionFilter.js';\nimport { estimateContractGas, } from '../../actions/public/estimateContractGas.js';\nimport { estimateFeesPerGas, } from '../../actions/public/estimateFeesPerGas.js';\nimport { estimateGas, } from '../../actions/public/estimateGas.js';\nimport { estimateMaxPriorityFeePerGas, } from '../../actions/public/estimateMaxPriorityFeePerGas.js';\nimport { getBalance, } from '../../actions/public/getBalance.js';\nimport { getBlobBaseFee, } from '../../actions/public/getBlobBaseFee.js';\nimport { getBlock, } from '../../actions/public/getBlock.js';\nimport { getBlockNumber, } from '../../actions/public/getBlockNumber.js';\nimport { getBlockTransactionCount, } from '../../actions/public/getBlockTransactionCount.js';\nimport { getChainId, } from '../../actions/public/getChainId.js';\nimport { getCode, } from '../../actions/public/getCode.js';\nimport { getContractEvents, } from '../../actions/public/getContractEvents.js';\nimport { getEip712Domain, } from '../../actions/public/getEip712Domain.js';\nimport { getFeeHistory, } from '../../actions/public/getFeeHistory.js';\nimport { getFilterChanges, } from '../../actions/public/getFilterChanges.js';\nimport { getFilterLogs, } from '../../actions/public/getFilterLogs.js';\nimport { getGasPrice, } from '../../actions/public/getGasPrice.js';\nimport { getLogs, } from '../../actions/public/getLogs.js';\nimport { getProof, } from '../../actions/public/getProof.js';\nimport { getStorageAt, } from '../../actions/public/getStorageAt.js';\nimport { getTransaction, } from '../../actions/public/getTransaction.js';\nimport { getTransactionConfirmations, } from '../../actions/public/getTransactionConfirmations.js';\nimport { getTransactionCount, } from '../../actions/public/getTransactionCount.js';\nimport { getTransactionReceipt, } from '../../actions/public/getTransactionReceipt.js';\nimport { multicall, } from '../../actions/public/multicall.js';\nimport { readContract, } from '../../actions/public/readContract.js';\nimport { simulateContract, } from '../../actions/public/simulateContract.js';\nimport { uninstallFilter, } from '../../actions/public/uninstallFilter.js';\nimport { verifyMessage, } from '../../actions/public/verifyMessage.js';\nimport { verifyTypedData, } from '../../actions/public/verifyTypedData.js';\nimport { waitForTransactionReceipt, } from '../../actions/public/waitForTransactionReceipt.js';\nimport { watchBlockNumber, } from '../../actions/public/watchBlockNumber.js';\nimport { watchBlocks, } from '../../actions/public/watchBlocks.js';\nimport { watchContractEvent, } from '../../actions/public/watchContractEvent.js';\nimport { watchEvent, } from '../../actions/public/watchEvent.js';\nimport { watchPendingTransactions, } from '../../actions/public/watchPendingTransactions.js';\nimport { verifySiweMessage, } from '../../actions/siwe/verifySiweMessage.js';\nimport { prepareTransactionRequest, } from '../../actions/wallet/prepareTransactionRequest.js';\nimport { sendRawTransaction, } from '../../actions/wallet/sendRawTransaction.js';\nexport function publicActions(client) {\n return {\n call: (args) => call(client, args),\n createBlockFilter: () => createBlockFilter(client),\n createContractEventFilter: (args) => createContractEventFilter(client, args),\n createEventFilter: (args) => createEventFilter(client, args),\n createPendingTransactionFilter: () => createPendingTransactionFilter(client),\n estimateContractGas: (args) => estimateContractGas(client, args),\n estimateGas: (args) => estimateGas(client, args),\n getBalance: (args) => getBalance(client, args),\n getBlobBaseFee: () => getBlobBaseFee(client),\n getBlock: (args) => getBlock(client, args),\n getBlockNumber: (args) => getBlockNumber(client, args),\n getBlockTransactionCount: (args) => getBlockTransactionCount(client, args),\n getBytecode: (args) => getCode(client, args),\n getChainId: () => getChainId(client),\n getCode: (args) => getCode(client, args),\n getContractEvents: (args) => getContractEvents(client, args),\n getEip712Domain: (args) => getEip712Domain(client, args),\n getEnsAddress: (args) => getEnsAddress(client, args),\n getEnsAvatar: (args) => getEnsAvatar(client, args),\n getEnsName: (args) => getEnsName(client, args),\n getEnsResolver: (args) => getEnsResolver(client, args),\n getEnsText: (args) => getEnsText(client, args),\n getFeeHistory: (args) => getFeeHistory(client, args),\n estimateFeesPerGas: (args) => estimateFeesPerGas(client, args),\n getFilterChanges: (args) => getFilterChanges(client, args),\n getFilterLogs: (args) => getFilterLogs(client, args),\n getGasPrice: () => getGasPrice(client),\n getLogs: (args) => getLogs(client, args),\n getProof: (args) => getProof(client, args),\n estimateMaxPriorityFeePerGas: (args) => estimateMaxPriorityFeePerGas(client, args),\n getStorageAt: (args) => getStorageAt(client, args),\n getTransaction: (args) => getTransaction(client, args),\n getTransactionConfirmations: (args) => getTransactionConfirmations(client, args),\n getTransactionCount: (args) => getTransactionCount(client, args),\n getTransactionReceipt: (args) => getTransactionReceipt(client, args),\n multicall: (args) => multicall(client, args),\n prepareTransactionRequest: (args) => prepareTransactionRequest(client, args),\n readContract: (args) => readContract(client, args),\n sendRawTransaction: (args) => sendRawTransaction(client, args),\n simulateContract: (args) => simulateContract(client, args),\n verifyMessage: (args) => verifyMessage(client, args),\n verifySiweMessage: (args) => verifySiweMessage(client, args),\n verifyTypedData: (args) => verifyTypedData(client, args),\n uninstallFilter: (args) => uninstallFilter(client, args),\n waitForTransactionReceipt: (args) => waitForTransactionReceipt(client, args),\n watchBlocks: (args) => watchBlocks(client, args),\n watchBlockNumber: (args) => watchBlockNumber(client, args),\n watchContractEvent: (args) => watchContractEvent(client, args),\n watchEvent: (args) => watchEvent(client, args),\n watchPendingTransactions: (args) => watchPendingTransactions(client, args),\n };\n}\n//# sourceMappingURL=public.js.map","import { formatBlock } from '../../utils/formatters/block.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { observe } from '../../utils/observe.js';\nimport { poll } from '../../utils/poll.js';\nimport { stringify } from '../../utils/stringify.js';\nimport { getBlock } from './getBlock.js';\n/**\n * Watches and returns information for incoming blocks.\n *\n * - Docs: https://viem.sh/docs/actions/public/watchBlocks\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks/watching-blocks\n * - JSON-RPC Methods:\n * - When `poll: true`, calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getBlockByNumber) on a polling interval.\n * - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\"newHeads\"` event.\n *\n * @param client - Client to use\n * @param parameters - {@link WatchBlocksParameters}\n * @returns A function that can be invoked to stop watching for new block numbers. {@link WatchBlocksReturnType}\n *\n * @example\n * import { createPublicClient, watchBlocks, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const unwatch = watchBlocks(client, {\n * onBlock: (block) => console.log(block),\n * })\n */\nexport function watchBlocks(client, { blockTag = 'latest', emitMissed = false, emitOnBegin = false, onBlock, onError, includeTransactions: includeTransactions_, poll: poll_, pollingInterval = client.pollingInterval, }) {\n const enablePolling = (() => {\n if (typeof poll_ !== 'undefined')\n return poll_;\n if (client.transport.type === 'webSocket')\n return false;\n if (client.transport.type === 'fallback' &&\n client.transport.transports[0].config.type === 'webSocket')\n return false;\n return true;\n })();\n const includeTransactions = includeTransactions_ ?? false;\n let prevBlock;\n const pollBlocks = () => {\n const observerId = stringify([\n 'watchBlocks',\n client.uid,\n blockTag,\n emitMissed,\n emitOnBegin,\n includeTransactions,\n pollingInterval,\n ]);\n return observe(observerId, { onBlock, onError }, (emit) => poll(async () => {\n try {\n const block = await getAction(client, getBlock, 'getBlock')({\n blockTag,\n includeTransactions,\n });\n if (block.number && prevBlock?.number) {\n // If the current block number is the same as the previous,\n // we can skip.\n if (block.number === prevBlock.number)\n return;\n // If we have missed out on some previous blocks, and the\n // `emitMissed` flag is truthy, let's emit those blocks.\n if (block.number - prevBlock.number > 1 && emitMissed) {\n for (let i = prevBlock?.number + 1n; i < block.number; i++) {\n const block = (await getAction(client, getBlock, 'getBlock')({\n blockNumber: i,\n includeTransactions,\n }));\n emit.onBlock(block, prevBlock);\n prevBlock = block;\n }\n }\n }\n if (\n // If no previous block exists, emit.\n !prevBlock?.number ||\n // If the block tag is \"pending\" with no block number, emit.\n (blockTag === 'pending' && !block?.number) ||\n // If the next block number is greater than the previous block number, emit.\n // We don't want to emit blocks in the past.\n (block.number && block.number > prevBlock.number)) {\n emit.onBlock(block, prevBlock);\n prevBlock = block;\n }\n }\n catch (err) {\n emit.onError?.(err);\n }\n }, {\n emitOnBegin,\n interval: pollingInterval,\n }));\n };\n const subscribeBlocks = () => {\n let active = true;\n let unsubscribe = () => (active = false);\n (async () => {\n try {\n const transport = (() => {\n if (client.transport.type === 'fallback') {\n const transport = client.transport.transports.find((transport) => transport.config.type === 'webSocket');\n if (!transport)\n return client.transport;\n return transport.value;\n }\n return client.transport;\n })();\n const { unsubscribe: unsubscribe_ } = await transport.subscribe({\n params: ['newHeads'],\n onData(data) {\n if (!active)\n return;\n const format = client.chain?.formatters?.block?.format || formatBlock;\n const block = format(data.result);\n onBlock(block, prevBlock);\n prevBlock = block;\n },\n onError(error) {\n onError?.(error);\n },\n });\n unsubscribe = unsubscribe_;\n if (!active)\n unsubscribe();\n }\n catch (err) {\n onError?.(err);\n }\n })();\n return () => unsubscribe();\n };\n return enablePolling ? pollBlocks() : subscribeBlocks();\n}\n//# sourceMappingURL=watchBlocks.js.map","import { DecodeLogDataMismatch, DecodeLogTopicsMismatch, } from '../../errors/abi.js';\nimport { InvalidInputRpcError } from '../../errors/rpc.js';\nimport { decodeEventLog } from '../../utils/abi/decodeEventLog.js';\nimport { encodeEventTopics, } from '../../utils/abi/encodeEventTopics.js';\nimport { formatLog } from '../../utils/formatters/log.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { observe } from '../../utils/observe.js';\nimport { poll } from '../../utils/poll.js';\nimport { stringify } from '../../utils/stringify.js';\nimport { createContractEventFilter } from './createContractEventFilter.js';\nimport { getBlockNumber } from './getBlockNumber.js';\nimport { getContractEvents, } from './getContractEvents.js';\nimport { getFilterChanges } from './getFilterChanges.js';\nimport { uninstallFilter } from './uninstallFilter.js';\n/**\n * Watches and returns emitted contract event logs.\n *\n * - Docs: https://viem.sh/docs/contract/watchContractEvent\n *\n * This Action will batch up all the event logs found within the [`pollingInterval`](https://viem.sh/docs/contract/watchContractEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/contract/watchContractEvent#onLogs).\n *\n * `watchContractEvent` will attempt to create an [Event Filter](https://viem.sh/docs/contract/createContractEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchContractEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\n *\n * @param client - Client to use\n * @param parameters - {@link WatchContractEventParameters}\n * @returns A function that can be invoked to stop watching for new event logs. {@link WatchContractEventReturnType}\n *\n * @example\n * import { createPublicClient, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { watchContractEvent } from 'viem/contract'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const unwatch = watchContractEvent(client, {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: parseAbi(['event Transfer(address indexed from, address indexed to, uint256 value)']),\n * eventName: 'Transfer',\n * args: { from: '0xc961145a54C96E3aE9bAA048c4F4D6b04C13916b' },\n * onLogs: (logs) => console.log(logs),\n * })\n */\nexport function watchContractEvent(client, parameters) {\n const { abi, address, args, batch = true, eventName, fromBlock, onError, onLogs, poll: poll_, pollingInterval = client.pollingInterval, strict: strict_, } = parameters;\n const enablePolling = (() => {\n if (typeof poll_ !== 'undefined')\n return poll_;\n if (typeof fromBlock === 'bigint')\n return true;\n if (client.transport.type === 'webSocket')\n return false;\n if (client.transport.type === 'fallback' &&\n client.transport.transports[0].config.type === 'webSocket')\n return false;\n return true;\n })();\n const pollContractEvent = () => {\n const strict = strict_ ?? false;\n const observerId = stringify([\n 'watchContractEvent',\n address,\n args,\n batch,\n client.uid,\n eventName,\n pollingInterval,\n strict,\n fromBlock,\n ]);\n return observe(observerId, { onLogs, onError }, (emit) => {\n let previousBlockNumber;\n if (fromBlock !== undefined)\n previousBlockNumber = fromBlock - 1n;\n let filter;\n let initialized = false;\n const unwatch = poll(async () => {\n if (!initialized) {\n try {\n filter = (await getAction(client, createContractEventFilter, 'createContractEventFilter')({\n abi,\n address,\n args: args,\n eventName: eventName,\n strict: strict,\n fromBlock,\n }));\n }\n catch { }\n initialized = true;\n return;\n }\n try {\n let logs;\n if (filter) {\n logs = await getAction(client, getFilterChanges, 'getFilterChanges')({ filter });\n }\n else {\n // If the filter doesn't exist, we will fall back to use `getLogs`.\n // The fall back exists because some RPC Providers do not support filters.\n // Fetch the block number to use for `getLogs`.\n const blockNumber = await getAction(client, getBlockNumber, 'getBlockNumber')({});\n // If the block number has changed, we will need to fetch the logs.\n // If the block number doesn't exist, we are yet to reach the first poll interval,\n // so do not emit any logs.\n if (previousBlockNumber && previousBlockNumber !== blockNumber) {\n logs = await getAction(client, getContractEvents, 'getContractEvents')({\n abi,\n address,\n args,\n eventName,\n fromBlock: previousBlockNumber + 1n,\n toBlock: blockNumber,\n strict,\n });\n }\n else {\n logs = [];\n }\n previousBlockNumber = blockNumber;\n }\n if (logs.length === 0)\n return;\n if (batch)\n emit.onLogs(logs);\n else\n for (const log of logs)\n emit.onLogs([log]);\n }\n catch (err) {\n // If a filter has been set and gets uninstalled, providers will throw an InvalidInput error.\n // Reinitalize the filter when this occurs\n if (filter && err instanceof InvalidInputRpcError)\n initialized = false;\n emit.onError?.(err);\n }\n }, {\n emitOnBegin: true,\n interval: pollingInterval,\n });\n return async () => {\n if (filter)\n await getAction(client, uninstallFilter, 'uninstallFilter')({ filter });\n unwatch();\n };\n });\n };\n const subscribeContractEvent = () => {\n const strict = strict_ ?? false;\n const observerId = stringify([\n 'watchContractEvent',\n address,\n args,\n batch,\n client.uid,\n eventName,\n pollingInterval,\n strict,\n ]);\n let active = true;\n let unsubscribe = () => (active = false);\n return observe(observerId, { onLogs, onError }, (emit) => {\n ;\n (async () => {\n try {\n const transport = (() => {\n if (client.transport.type === 'fallback') {\n const transport = client.transport.transports.find((transport) => transport.config.type === 'webSocket');\n if (!transport)\n return client.transport;\n return transport.value;\n }\n return client.transport;\n })();\n const topics = eventName\n ? encodeEventTopics({\n abi: abi,\n eventName: eventName,\n args,\n })\n : [];\n const { unsubscribe: unsubscribe_ } = await transport.subscribe({\n params: ['logs', { address, topics }],\n onData(data) {\n if (!active)\n return;\n const log = data.result;\n try {\n const { eventName, args } = decodeEventLog({\n abi: abi,\n data: log.data,\n topics: log.topics,\n strict: strict_,\n });\n const formatted = formatLog(log, {\n args,\n eventName: eventName,\n });\n emit.onLogs([formatted]);\n }\n catch (err) {\n let eventName;\n let isUnnamed;\n if (err instanceof DecodeLogDataMismatch ||\n err instanceof DecodeLogTopicsMismatch) {\n // If strict mode is on, and log data/topics do not match event definition, skip.\n if (strict_)\n return;\n eventName = err.abiItem.name;\n isUnnamed = err.abiItem.inputs?.some((x) => !('name' in x && x.name));\n }\n // Set args to empty if there is an error decoding (e.g. indexed/non-indexed params mismatch).\n const formatted = formatLog(log, {\n args: isUnnamed ? [] : {},\n eventName,\n });\n emit.onLogs([formatted]);\n }\n },\n onError(error) {\n emit.onError?.(error);\n },\n });\n unsubscribe = unsubscribe_;\n if (!active)\n unsubscribe();\n }\n catch (err) {\n onError?.(err);\n }\n })();\n return () => unsubscribe();\n });\n };\n return enablePolling ? pollContractEvent() : subscribeContractEvent();\n}\n//# sourceMappingURL=watchContractEvent.js.map","import { encodeEventTopics, } from '../../utils/abi/encodeEventTopics.js';\nimport { observe } from '../../utils/observe.js';\nimport { poll } from '../../utils/poll.js';\nimport { stringify } from '../../utils/stringify.js';\nimport { DecodeLogDataMismatch, DecodeLogTopicsMismatch, } from '../../errors/abi.js';\nimport { InvalidInputRpcError } from '../../errors/rpc.js';\nimport { decodeEventLog } from '../../utils/abi/decodeEventLog.js';\nimport { formatLog } from '../../utils/formatters/log.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { createEventFilter, } from './createEventFilter.js';\nimport { getBlockNumber } from './getBlockNumber.js';\nimport { getFilterChanges } from './getFilterChanges.js';\nimport { getLogs } from './getLogs.js';\nimport { uninstallFilter } from './uninstallFilter.js';\n/**\n * Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\n *\n * - Docs: https://viem.sh/docs/actions/public/watchEvent\n * - JSON-RPC Methods:\n * - **RPC Provider supports `eth_newFilter`:**\n * - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\n * - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\n * - **RPC Provider does not support `eth_newFilter`:**\n * - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\n *\n * This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\n *\n * `watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\n *\n * @param client - Client to use\n * @param parameters - {@link WatchEventParameters}\n * @returns A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { watchEvent } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const unwatch = watchEvent(client, {\n * onLogs: (logs) => console.log(logs),\n * })\n */\nexport function watchEvent(client, { address, args, batch = true, event, events, fromBlock, onError, onLogs, poll: poll_, pollingInterval = client.pollingInterval, strict: strict_, }) {\n const enablePolling = (() => {\n if (typeof poll_ !== 'undefined')\n return poll_;\n if (typeof fromBlock === 'bigint')\n return true;\n if (client.transport.type === 'webSocket')\n return false;\n if (client.transport.type === 'fallback' &&\n client.transport.transports[0].config.type === 'webSocket')\n return false;\n return true;\n })();\n const strict = strict_ ?? false;\n const pollEvent = () => {\n const observerId = stringify([\n 'watchEvent',\n address,\n args,\n batch,\n client.uid,\n event,\n pollingInterval,\n fromBlock,\n ]);\n return observe(observerId, { onLogs, onError }, (emit) => {\n let previousBlockNumber;\n if (fromBlock !== undefined)\n previousBlockNumber = fromBlock - 1n;\n let filter;\n let initialized = false;\n const unwatch = poll(async () => {\n if (!initialized) {\n try {\n filter = (await getAction(client, createEventFilter, 'createEventFilter')({\n address,\n args,\n event: event,\n events,\n strict,\n fromBlock,\n }));\n }\n catch { }\n initialized = true;\n return;\n }\n try {\n let logs;\n if (filter) {\n logs = await getAction(client, getFilterChanges, 'getFilterChanges')({ filter });\n }\n else {\n // If the filter doesn't exist, we will fall back to use `getLogs`.\n // The fall back exists because some RPC Providers do not support filters.\n // Fetch the block number to use for `getLogs`.\n const blockNumber = await getAction(client, getBlockNumber, 'getBlockNumber')({});\n // If the block number has changed, we will need to fetch the logs.\n // If the block number doesn't exist, we are yet to reach the first poll interval,\n // so do not emit any logs.\n if (previousBlockNumber && previousBlockNumber !== blockNumber) {\n logs = await getAction(client, getLogs, 'getLogs')({\n address,\n args,\n event: event,\n events,\n fromBlock: previousBlockNumber + 1n,\n toBlock: blockNumber,\n });\n }\n else {\n logs = [];\n }\n previousBlockNumber = blockNumber;\n }\n if (logs.length === 0)\n return;\n if (batch)\n emit.onLogs(logs);\n else\n for (const log of logs)\n emit.onLogs([log]);\n }\n catch (err) {\n // If a filter has been set and gets uninstalled, providers will throw an InvalidInput error.\n // Reinitalize the filter when this occurs\n if (filter && err instanceof InvalidInputRpcError)\n initialized = false;\n emit.onError?.(err);\n }\n }, {\n emitOnBegin: true,\n interval: pollingInterval,\n });\n return async () => {\n if (filter)\n await getAction(client, uninstallFilter, 'uninstallFilter')({ filter });\n unwatch();\n };\n });\n };\n const subscribeEvent = () => {\n let active = true;\n let unsubscribe = () => (active = false);\n (async () => {\n try {\n const transport = (() => {\n if (client.transport.type === 'fallback') {\n const transport = client.transport.transports.find((transport) => transport.config.type === 'webSocket');\n if (!transport)\n return client.transport;\n return transport.value;\n }\n return client.transport;\n })();\n const events_ = events ?? (event ? [event] : undefined);\n let topics = [];\n if (events_) {\n topics = [\n events_.flatMap((event) => encodeEventTopics({\n abi: [event],\n eventName: event.name,\n args,\n })),\n ];\n if (event)\n topics = topics[0];\n }\n const { unsubscribe: unsubscribe_ } = await transport.subscribe({\n params: ['logs', { address, topics }],\n onData(data) {\n if (!active)\n return;\n const log = data.result;\n try {\n const { eventName, args } = decodeEventLog({\n abi: events_ ?? [],\n data: log.data,\n topics: log.topics,\n strict,\n });\n const formatted = formatLog(log, { args, eventName });\n onLogs([formatted]);\n }\n catch (err) {\n let eventName;\n let isUnnamed;\n if (err instanceof DecodeLogDataMismatch ||\n err instanceof DecodeLogTopicsMismatch) {\n // If strict mode is on, and log data/topics do not match event definition, skip.\n if (strict_)\n return;\n eventName = err.abiItem.name;\n isUnnamed = err.abiItem.inputs?.some((x) => !('name' in x && x.name));\n }\n // Set args to empty if there is an error decoding (e.g. indexed/non-indexed params mismatch).\n const formatted = formatLog(log, {\n args: isUnnamed ? [] : {},\n eventName,\n });\n onLogs([formatted]);\n }\n },\n onError(error) {\n onError?.(error);\n },\n });\n unsubscribe = unsubscribe_;\n if (!active)\n unsubscribe();\n }\n catch (err) {\n onError?.(err);\n }\n })();\n return () => unsubscribe();\n };\n return enablePolling ? pollEvent() : subscribeEvent();\n}\n//# sourceMappingURL=watchEvent.js.map","import { getAction } from '../../utils/getAction.js';\nimport { observe } from '../../utils/observe.js';\nimport { poll } from '../../utils/poll.js';\nimport { stringify } from '../../utils/stringify.js';\nimport { createPendingTransactionFilter } from './createPendingTransactionFilter.js';\nimport { getFilterChanges } from './getFilterChanges.js';\nimport { uninstallFilter } from './uninstallFilter.js';\n/**\n * Watches and returns pending transaction hashes.\n *\n * - Docs: https://viem.sh/docs/actions/public/watchPendingTransactions\n * - JSON-RPC Methods:\n * - When `poll: true`\n * - Calls [`eth_newPendingTransactionFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newpendingtransactionfilter) to initialize the filter.\n * - Calls [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getFilterChanges) on a polling interval.\n * - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\"newPendingTransactions\"` event.\n *\n * This Action will batch up all the pending transactions found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchPendingTransactions#pollinginterval-optional), and invoke them via [`onTransactions`](https://viem.sh/docs/actions/public/watchPendingTransactions#ontransactions).\n *\n * @param client - Client to use\n * @param parameters - {@link WatchPendingTransactionsParameters}\n * @returns A function that can be invoked to stop watching for new pending transaction hashes. {@link WatchPendingTransactionsReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { watchPendingTransactions } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const unwatch = await watchPendingTransactions(client, {\n * onTransactions: (hashes) => console.log(hashes),\n * })\n */\nexport function watchPendingTransactions(client, { batch = true, onError, onTransactions, poll: poll_, pollingInterval = client.pollingInterval, }) {\n const enablePolling = typeof poll_ !== 'undefined' ? poll_ : client.transport.type !== 'webSocket';\n const pollPendingTransactions = () => {\n const observerId = stringify([\n 'watchPendingTransactions',\n client.uid,\n batch,\n pollingInterval,\n ]);\n return observe(observerId, { onTransactions, onError }, (emit) => {\n let filter;\n const unwatch = poll(async () => {\n try {\n if (!filter) {\n try {\n filter = await getAction(client, createPendingTransactionFilter, 'createPendingTransactionFilter')({});\n return;\n }\n catch (err) {\n unwatch();\n throw err;\n }\n }\n const hashes = await getAction(client, getFilterChanges, 'getFilterChanges')({ filter });\n if (hashes.length === 0)\n return;\n if (batch)\n emit.onTransactions(hashes);\n else\n for (const hash of hashes)\n emit.onTransactions([hash]);\n }\n catch (err) {\n emit.onError?.(err);\n }\n }, {\n emitOnBegin: true,\n interval: pollingInterval,\n });\n return async () => {\n if (filter)\n await getAction(client, uninstallFilter, 'uninstallFilter')({ filter });\n unwatch();\n };\n });\n };\n const subscribePendingTransactions = () => {\n let active = true;\n let unsubscribe = () => (active = false);\n (async () => {\n try {\n const { unsubscribe: unsubscribe_ } = await client.transport.subscribe({\n params: ['newPendingTransactions'],\n onData(data) {\n if (!active)\n return;\n const transaction = data.result;\n onTransactions([transaction]);\n },\n onError(error) {\n onError?.(error);\n },\n });\n unsubscribe = unsubscribe_;\n if (!active)\n unsubscribe();\n }\n catch (err) {\n onError?.(err);\n }\n })();\n return () => unsubscribe();\n };\n return enablePolling\n ? pollPendingTransactions()\n : subscribePendingTransactions();\n}\n//# sourceMappingURL=watchPendingTransactions.js.map","import { createClient, } from './createClient.js';\nimport { publicActions } from './decorators/public.js';\n/**\n * Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\n *\n * - Docs: https://viem.sh/docs/clients/public\n *\n * A Public Client is an interface to \"public\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\n *\n * @param config - {@link PublicClientConfig}\n * @returns A Public Client. {@link PublicClient}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n */\nexport function createPublicClient(parameters) {\n const { key = 'public', name = 'Public Client' } = parameters;\n const client = createClient({\n ...parameters,\n key,\n name,\n type: 'publicClient',\n });\n return client.extend(publicActions);\n}\n//# sourceMappingURL=createPublicClient.js.map","import { TransactionRejectedRpcError, UserRejectedRequestError, } from '../../errors/rpc.js';\nimport { wait } from '../../utils/wait.js';\nimport { createTransport, } from './createTransport.js';\nexport function fallback(transports_, config = {}) {\n const { key = 'fallback', name = 'Fallback', rank = false, retryCount, retryDelay, } = config;\n return (({ chain, pollingInterval = 4_000, timeout, ...rest }) => {\n let transports = transports_;\n let onResponse = () => { };\n const transport = createTransport({\n key,\n name,\n async request({ method, params }) {\n const fetch = async (i = 0) => {\n const transport = transports[i]({\n ...rest,\n chain,\n retryCount: 0,\n timeout,\n });\n try {\n const response = await transport.request({\n method,\n params,\n });\n onResponse({\n method,\n params: params,\n response,\n transport,\n status: 'success',\n });\n return response;\n }\n catch (err) {\n onResponse({\n error: err,\n method,\n params: params,\n transport,\n status: 'error',\n });\n if (shouldThrow(err))\n throw err;\n // If we've reached the end of the fallbacks, throw the error.\n if (i === transports.length - 1)\n throw err;\n // Otherwise, try the next fallback.\n return fetch(i + 1);\n }\n };\n return fetch();\n },\n retryCount,\n retryDelay,\n type: 'fallback',\n }, {\n onResponse: (fn) => (onResponse = fn),\n transports: transports.map((fn) => fn({ chain, retryCount: 0 })),\n });\n if (rank) {\n const rankOptions = (typeof rank === 'object' ? rank : {});\n rankTransports({\n chain,\n interval: rankOptions.interval ?? pollingInterval,\n onTransports: (transports_) => (transports = transports_),\n sampleCount: rankOptions.sampleCount,\n timeout: rankOptions.timeout,\n transports,\n weights: rankOptions.weights,\n });\n }\n return transport;\n });\n}\nfunction shouldThrow(error) {\n if ('code' in error && typeof error.code === 'number') {\n if (error.code === TransactionRejectedRpcError.code ||\n error.code === UserRejectedRequestError.code ||\n error.code === 5000 // CAIP UserRejectedRequestError\n )\n return true;\n }\n return false;\n}\n/** @internal */\nexport function rankTransports({ chain, interval = 4_000, onTransports, sampleCount = 10, timeout = 1_000, transports, weights = {}, }) {\n const { stability: stabilityWeight = 0.7, latency: latencyWeight = 0.3 } = weights;\n const samples = [];\n const rankTransports_ = async () => {\n // 1. Take a sample from each Transport.\n const sample = await Promise.all(transports.map(async (transport) => {\n const transport_ = transport({ chain, retryCount: 0, timeout });\n const start = Date.now();\n let end;\n let success;\n try {\n await transport_.request({ method: 'net_listening' });\n success = 1;\n }\n catch {\n success = 0;\n }\n finally {\n end = Date.now();\n }\n const latency = end - start;\n return { latency, success };\n }));\n // 2. Store the sample. If we have more than `sampleCount` samples, remove\n // the oldest sample.\n samples.push(sample);\n if (samples.length > sampleCount)\n samples.shift();\n // 3. Calculate the max latency from samples.\n const maxLatency = Math.max(...samples.map((sample) => Math.max(...sample.map(({ latency }) => latency))));\n // 4. Calculate the score for each Transport.\n const scores = transports\n .map((_, i) => {\n const latencies = samples.map((sample) => sample[i].latency);\n const meanLatency = latencies.reduce((acc, latency) => acc + latency, 0) /\n latencies.length;\n const latencyScore = 1 - meanLatency / maxLatency;\n const successes = samples.map((sample) => sample[i].success);\n const stabilityScore = successes.reduce((acc, success) => acc + success, 0) /\n successes.length;\n if (stabilityScore === 0)\n return [0, i];\n return [\n latencyWeight * latencyScore + stabilityWeight * stabilityScore,\n i,\n ];\n })\n .sort((a, b) => b[0] - a[0]);\n // 5. Sort the Transports by score.\n onTransports(scores.map(([, i]) => transports[i]));\n // 6. Wait, and then rank again.\n await wait(interval);\n rankTransports_();\n };\n rankTransports_();\n}\n//# sourceMappingURL=fallback.js.map","import { BaseError } from './base.js';\nexport class UrlRequiredError extends BaseError {\n constructor() {\n super('No URL was provided to the Transport. Please provide a valid RPC URL to the Transport.', {\n docsPath: '/docs/clients/intro',\n });\n }\n}\n//# sourceMappingURL=transport.js.map","export function withTimeout(fn, { errorInstance = new Error('timed out'), timeout, signal, }) {\n return new Promise((resolve, reject) => {\n ;\n (async () => {\n let timeoutId;\n try {\n const controller = new AbortController();\n if (timeout > 0) {\n timeoutId = setTimeout(() => {\n if (signal) {\n controller.abort();\n }\n else {\n reject(errorInstance);\n }\n }, timeout); // need to cast because bun globals.d.ts overrides @types/node\n }\n resolve(await fn({ signal: controller?.signal || null }));\n }\n catch (err) {\n if (err?.name === 'AbortError')\n reject(errorInstance);\n reject(err);\n }\n finally {\n clearTimeout(timeoutId);\n }\n })();\n });\n}\n//# sourceMappingURL=withTimeout.js.map","function createIdStore() {\n return {\n current: 0,\n take() {\n return this.current++;\n },\n reset() {\n this.current = 0;\n },\n };\n}\nexport const idCache = /*#__PURE__*/ createIdStore();\n//# sourceMappingURL=id.js.map","import { TimeoutError } from '../../errors/request.js';\nimport { createBatchScheduler, } from '../promise/createBatchScheduler.js';\nimport { withTimeout } from '../promise/withTimeout.js';\nimport { idCache } from './id.js';\nexport const socketClientCache = /*#__PURE__*/ new Map();\nexport async function getSocketRpcClient(params) {\n const { getSocket, key = 'socket', reconnect = true, url } = params;\n const { attempts = 5, delay = 2_000 } = typeof reconnect === 'object' ? reconnect : {};\n let socketClient = socketClientCache.get(`${key}:${url}`);\n // If the socket already exists, return it.\n if (socketClient)\n return socketClient;\n let reconnectCount = 0;\n const { schedule } = createBatchScheduler({\n id: `${key}:${url}`,\n fn: async () => {\n // Set up a cache for incoming \"synchronous\" requests.\n const requests = new Map();\n // Set up a cache for subscriptions (eth_subscribe).\n const subscriptions = new Map();\n let error;\n let socket;\n // Set up socket implementation.\n async function setup() {\n return getSocket({\n onError(error_) {\n error = error_;\n // Notify all requests and subscriptions of the error.\n for (const request of requests.values())\n request.onError?.(error);\n for (const subscription of subscriptions.values())\n subscription.onError?.(error);\n // Clear all requests and subscriptions.\n requests.clear();\n subscriptions.clear();\n // Attempt to reconnect.\n if (reconnect && reconnectCount < attempts)\n setTimeout(async () => {\n reconnectCount++;\n socket = await setup().catch(console.error);\n }, delay);\n },\n onOpen() {\n error = undefined;\n reconnectCount = 0;\n },\n onResponse(data) {\n const isSubscription = data.method === 'eth_subscription';\n const id = isSubscription ? data.params.subscription : data.id;\n const cache = isSubscription ? subscriptions : requests;\n const callback = cache.get(id);\n if (callback)\n callback.onResponse(data);\n if (!isSubscription)\n cache.delete(id);\n },\n });\n }\n socket = await setup();\n error = undefined;\n // Create a new socket instance.\n socketClient = {\n close() {\n socket.close();\n socketClientCache.delete(`${key}:${url}`);\n },\n socket,\n request({ body, onError, onResponse }) {\n if (error && onError)\n onError(error);\n const id = body.id ?? idCache.take();\n const callback = (response) => {\n if (typeof response.id === 'number' && id !== response.id)\n return;\n // If we are subscribing to a topic, we want to set up a listener for incoming\n // messages.\n if (body.method === 'eth_subscribe' &&\n typeof response.result === 'string')\n subscriptions.set(response.result, {\n onResponse: callback,\n onError,\n });\n // If we are unsubscribing from a topic, we want to remove the listener.\n if (body.method === 'eth_unsubscribe')\n subscriptions.delete(body.params?.[0]);\n onResponse(response);\n };\n requests.set(id, { onResponse: callback, onError });\n try {\n socket.request({\n body: {\n jsonrpc: '2.0',\n id,\n ...body,\n },\n });\n }\n catch (error) {\n onError?.(error);\n }\n },\n requestAsync({ body, timeout = 10_000 }) {\n return withTimeout(() => new Promise((onResponse, onError) => this.request({\n body,\n onError,\n onResponse,\n })), {\n errorInstance: new TimeoutError({ body, url }),\n timeout,\n });\n },\n requests,\n subscriptions,\n url,\n };\n socketClientCache.set(`${key}:${url}`, socketClient);\n return [socketClient];\n },\n });\n const [_, [socketClient_]] = await schedule();\n return socketClient_;\n}\n//# sourceMappingURL=socket.js.map","import { WebSocketRequestError } from '../../errors/request.js';\nimport { getSocketRpcClient, } from './socket.js';\nexport async function getWebSocketRpcClient(url, options = {}) {\n const { reconnect } = options;\n return getSocketRpcClient({\n async getSocket({ onError, onOpen, onResponse }) {\n const WebSocket = await import('isows').then((module) => module.WebSocket);\n const socket = new WebSocket(url);\n function onClose() {\n socket.removeEventListener('close', onClose);\n socket.removeEventListener('message', onMessage);\n socket.removeEventListener('error', onError);\n socket.removeEventListener('open', onOpen);\n }\n function onMessage({ data }) {\n onResponse(JSON.parse(data));\n }\n // Setup event listeners for RPC & subscription responses.\n socket.addEventListener('close', onClose);\n socket.addEventListener('message', onMessage);\n socket.addEventListener('error', onError);\n socket.addEventListener('open', onOpen);\n // Wait for the socket to open.\n if (socket.readyState === WebSocket.CONNECTING) {\n await new Promise((resolve, reject) => {\n if (!socket)\n return;\n socket.onopen = resolve;\n socket.onerror = reject;\n });\n }\n const { close: close_ } = socket;\n return Object.assign(socket, {\n close() {\n close_.bind(socket)();\n onClose();\n },\n request({ body }) {\n if (socket.readyState === socket.CLOSED ||\n socket.readyState === socket.CLOSING)\n throw new WebSocketRequestError({\n body,\n url: socket.url,\n details: 'Socket is closed.',\n });\n return socket.send(JSON.stringify(body));\n },\n });\n },\n reconnect,\n url,\n });\n}\n//# sourceMappingURL=webSocket.js.map","// TODO(v3): This file is here for backwards compatibility, and to prevent breaking changes.\n// These APIs will be removed in v3.\nimport { getHttpRpcClient } from './http.js';\nimport { getWebSocketRpcClient } from './webSocket.js';\nfunction webSocket(socketClient, { body, onError, onResponse }) {\n socketClient.request({\n body,\n onError,\n onResponse,\n });\n return socketClient;\n}\nasync function webSocketAsync(socketClient, { body, timeout = 10_000 }) {\n return socketClient.requestAsync({\n body,\n timeout,\n });\n}\n/**\n * @deprecated use `getSocketClient` instead.\n *\n * ```diff\n * -import { getSocket } from 'viem/utils'\n * +import { getSocketClient } from 'viem/utils'\n *\n * -const socket = await getSocket(url)\n * +const socketClient = await getSocketClient(url)\n * +const socket = socketClient.socket\n * ```\n */\nexport async function getSocket(url) {\n const client = await getWebSocketRpcClient(url);\n return Object.assign(client.socket, {\n requests: client.requests,\n subscriptions: client.subscriptions,\n });\n}\nexport const rpc = {\n /**\n * @deprecated use `getHttpRpcClient` instead.\n *\n * ```diff\n * -import { rpc } from 'viem/utils'\n * +import { getHttpRpcClient } from 'viem/utils'\n *\n * -rpc.http(url, params)\n * +const httpClient = getHttpRpcClient(url)\n * +httpClient.request(params)\n * ```\n */\n http(url, params) {\n return getHttpRpcClient(url).request(params);\n },\n /**\n * @deprecated use `getWebSocketRpcClient` instead.\n *\n * ```diff\n * -import { rpc } from 'viem/utils'\n * +import { getWebSocketRpcClient } from 'viem/utils'\n *\n * -rpc.webSocket(url, params)\n * +const webSocketClient = getWebSocketRpcClient(url)\n * +webSocketClient.request(params)\n * ```\n */\n webSocket,\n /**\n * @deprecated use `getWebSocketRpcClient` instead.\n *\n * ```diff\n * -import { rpc } from 'viem/utils'\n * +import { getWebSocketRpcClient } from 'viem/utils'\n *\n * -const response = await rpc.webSocketAsync(url, params)\n * +const webSocketClient = getWebSocketRpcClient(url)\n * +const response = await webSocketClient.requestAsync(params)\n * ```\n */\n webSocketAsync,\n};\n/* c8 ignore end */\n//# sourceMappingURL=compat.js.map","const reduxImpl = (reducer, initial) => (set, _get, api) => {\n api.dispatch = (action) => {\n set((state) => reducer(state, action), false, action);\n return action;\n };\n api.dispatchFromDevtools = true;\n return { dispatch: (...a) => api.dispatch(...a), ...initial };\n};\nconst redux = reduxImpl;\n\nconst trackedConnections = /* @__PURE__ */ new Map();\nconst getTrackedConnectionState = (name) => {\n const api = trackedConnections.get(name);\n if (!api)\n return {};\n return Object.fromEntries(\n Object.entries(api.stores).map(([key, api2]) => [key, api2.getState()])\n );\n};\nconst extractConnectionInformation = (store, extensionConnector, options) => {\n if (store === void 0) {\n return {\n type: \"untracked\",\n connection: extensionConnector.connect(options)\n };\n }\n const existingConnection = trackedConnections.get(options.name);\n if (existingConnection) {\n return { type: \"tracked\", store, ...existingConnection };\n }\n const newConnection = {\n connection: extensionConnector.connect(options),\n stores: {}\n };\n trackedConnections.set(options.name, newConnection);\n return { type: \"tracked\", store, ...newConnection };\n};\nconst devtoolsImpl = (fn, devtoolsOptions = {}) => (set, get, api) => {\n const { enabled, anonymousActionType, store, ...options } = devtoolsOptions;\n let extensionConnector;\n try {\n extensionConnector = (enabled != null ? enabled : (import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") && window.__REDUX_DEVTOOLS_EXTENSION__;\n } catch (e) {\n }\n if (!extensionConnector) {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && enabled) {\n console.warn(\n \"[zustand devtools middleware] Please install/enable Redux devtools extension\"\n );\n }\n return fn(set, get, api);\n }\n const { connection, ...connectionInformation } = extractConnectionInformation(store, extensionConnector, options);\n let isRecording = true;\n api.setState = (state, replace, nameOrAction) => {\n const r = set(state, replace);\n if (!isRecording)\n return r;\n const action = nameOrAction === void 0 ? { type: anonymousActionType || \"anonymous\" } : typeof nameOrAction === \"string\" ? { type: nameOrAction } : nameOrAction;\n if (store === void 0) {\n connection == null ? void 0 : connection.send(action, get());\n return r;\n }\n connection == null ? void 0 : connection.send(\n {\n ...action,\n type: `${store}/${action.type}`\n },\n {\n ...getTrackedConnectionState(options.name),\n [store]: api.getState()\n }\n );\n return r;\n };\n const setStateFromDevtools = (...a) => {\n const originalIsRecording = isRecording;\n isRecording = false;\n set(...a);\n isRecording = originalIsRecording;\n };\n const initialState = fn(api.setState, get, api);\n if (connectionInformation.type === \"untracked\") {\n connection == null ? void 0 : connection.init(initialState);\n } else {\n connectionInformation.stores[connectionInformation.store] = api;\n connection == null ? void 0 : connection.init(\n Object.fromEntries(\n Object.entries(connectionInformation.stores).map(([key, store2]) => [\n key,\n key === connectionInformation.store ? initialState : store2.getState()\n ])\n )\n );\n }\n if (api.dispatchFromDevtools && typeof api.dispatch === \"function\") {\n let didWarnAboutReservedActionType = false;\n const originalDispatch = api.dispatch;\n api.dispatch = (...a) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && a[0].type === \"__setState\" && !didWarnAboutReservedActionType) {\n console.warn(\n '[zustand devtools middleware] \"__setState\" action type is reserved to set state from the devtools. Avoid using it.'\n );\n didWarnAboutReservedActionType = true;\n }\n originalDispatch(...a);\n };\n }\n connection.subscribe((message) => {\n var _a;\n switch (message.type) {\n case \"ACTION\":\n if (typeof message.payload !== \"string\") {\n console.error(\n \"[zustand devtools middleware] Unsupported action format\"\n );\n return;\n }\n return parseJsonThen(\n message.payload,\n (action) => {\n if (action.type === \"__setState\") {\n if (store === void 0) {\n setStateFromDevtools(action.state);\n return;\n }\n if (Object.keys(action.state).length !== 1) {\n console.error(\n `\n [zustand devtools middleware] Unsupported __setState action format. \n When using 'store' option in devtools(), the 'state' should have only one key, which is a value of 'store' that was passed in devtools(),\n and value of this only key should be a state object. Example: { \"type\": \"__setState\", \"state\": { \"abc123Store\": { \"foo\": \"bar\" } } }\n `\n );\n }\n const stateFromDevtools = action.state[store];\n if (stateFromDevtools === void 0 || stateFromDevtools === null) {\n return;\n }\n if (JSON.stringify(api.getState()) !== JSON.stringify(stateFromDevtools)) {\n setStateFromDevtools(stateFromDevtools);\n }\n return;\n }\n if (!api.dispatchFromDevtools)\n return;\n if (typeof api.dispatch !== \"function\")\n return;\n api.dispatch(action);\n }\n );\n case \"DISPATCH\":\n switch (message.payload.type) {\n case \"RESET\":\n setStateFromDevtools(initialState);\n if (store === void 0) {\n return connection == null ? void 0 : connection.init(api.getState());\n }\n return connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n case \"COMMIT\":\n if (store === void 0) {\n connection == null ? void 0 : connection.init(api.getState());\n return;\n }\n return connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n case \"ROLLBACK\":\n return parseJsonThen(message.state, (state) => {\n if (store === void 0) {\n setStateFromDevtools(state);\n connection == null ? void 0 : connection.init(api.getState());\n return;\n }\n setStateFromDevtools(state[store]);\n connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n });\n case \"JUMP_TO_STATE\":\n case \"JUMP_TO_ACTION\":\n return parseJsonThen(message.state, (state) => {\n if (store === void 0) {\n setStateFromDevtools(state);\n return;\n }\n if (JSON.stringify(api.getState()) !== JSON.stringify(state[store])) {\n setStateFromDevtools(state[store]);\n }\n });\n case \"IMPORT_STATE\": {\n const { nextLiftedState } = message.payload;\n const lastComputedState = (_a = nextLiftedState.computedStates.slice(-1)[0]) == null ? void 0 : _a.state;\n if (!lastComputedState)\n return;\n if (store === void 0) {\n setStateFromDevtools(lastComputedState);\n } else {\n setStateFromDevtools(lastComputedState[store]);\n }\n connection == null ? void 0 : connection.send(\n null,\n // FIXME no-any\n nextLiftedState\n );\n return;\n }\n case \"PAUSE_RECORDING\":\n return isRecording = !isRecording;\n }\n return;\n }\n });\n return initialState;\n};\nconst devtools = devtoolsImpl;\nconst parseJsonThen = (stringified, f) => {\n let parsed;\n try {\n parsed = JSON.parse(stringified);\n } catch (e) {\n console.error(\n \"[zustand devtools middleware] Could not parse the received json\",\n e\n );\n }\n if (parsed !== void 0)\n f(parsed);\n};\n\nconst subscribeWithSelectorImpl = (fn) => (set, get, api) => {\n const origSubscribe = api.subscribe;\n api.subscribe = (selector, optListener, options) => {\n let listener = selector;\n if (optListener) {\n const equalityFn = (options == null ? void 0 : options.equalityFn) || Object.is;\n let currentSlice = selector(api.getState());\n listener = (state) => {\n const nextSlice = selector(state);\n if (!equalityFn(currentSlice, nextSlice)) {\n const previousSlice = currentSlice;\n optListener(currentSlice = nextSlice, previousSlice);\n }\n };\n if (options == null ? void 0 : options.fireImmediately) {\n optListener(currentSlice, currentSlice);\n }\n }\n return origSubscribe(listener);\n };\n const initialState = fn(set, get, api);\n return initialState;\n};\nconst subscribeWithSelector = subscribeWithSelectorImpl;\n\nconst combine = (initialState, create) => (...a) => Object.assign({}, initialState, create(...a));\n\nfunction createJSONStorage(getStorage, options) {\n let storage;\n try {\n storage = getStorage();\n } catch (e) {\n return;\n }\n const persistStorage = {\n getItem: (name) => {\n var _a;\n const parse = (str2) => {\n if (str2 === null) {\n return null;\n }\n return JSON.parse(str2, options == null ? void 0 : options.reviver);\n };\n const str = (_a = storage.getItem(name)) != null ? _a : null;\n if (str instanceof Promise) {\n return str.then(parse);\n }\n return parse(str);\n },\n setItem: (name, newValue) => storage.setItem(\n name,\n JSON.stringify(newValue, options == null ? void 0 : options.replacer)\n ),\n removeItem: (name) => storage.removeItem(name)\n };\n return persistStorage;\n}\nconst toThenable = (fn) => (input) => {\n try {\n const result = fn(input);\n if (result instanceof Promise) {\n return result;\n }\n return {\n then(onFulfilled) {\n return toThenable(onFulfilled)(result);\n },\n catch(_onRejected) {\n return this;\n }\n };\n } catch (e) {\n return {\n then(_onFulfilled) {\n return this;\n },\n catch(onRejected) {\n return toThenable(onRejected)(e);\n }\n };\n }\n};\nconst oldImpl = (config, baseOptions) => (set, get, api) => {\n let options = {\n getStorage: () => localStorage,\n serialize: JSON.stringify,\n deserialize: JSON.parse,\n partialize: (state) => state,\n version: 0,\n merge: (persistedState, currentState) => ({\n ...currentState,\n ...persistedState\n }),\n ...baseOptions\n };\n let hasHydrated = false;\n const hydrationListeners = /* @__PURE__ */ new Set();\n const finishHydrationListeners = /* @__PURE__ */ new Set();\n let storage;\n try {\n storage = options.getStorage();\n } catch (e) {\n }\n if (!storage) {\n return config(\n (...args) => {\n console.warn(\n `[zustand persist middleware] Unable to update item '${options.name}', the given storage is currently unavailable.`\n );\n set(...args);\n },\n get,\n api\n );\n }\n const thenableSerialize = toThenable(options.serialize);\n const setItem = () => {\n const state = options.partialize({ ...get() });\n let errorInSync;\n const thenable = thenableSerialize({ state, version: options.version }).then(\n (serializedValue) => storage.setItem(options.name, serializedValue)\n ).catch((e) => {\n errorInSync = e;\n });\n if (errorInSync) {\n throw errorInSync;\n }\n return thenable;\n };\n const savedSetState = api.setState;\n api.setState = (state, replace) => {\n savedSetState(state, replace);\n void setItem();\n };\n const configResult = config(\n (...args) => {\n set(...args);\n void setItem();\n },\n get,\n api\n );\n let stateFromStorage;\n const hydrate = () => {\n var _a;\n if (!storage)\n return;\n hasHydrated = false;\n hydrationListeners.forEach((cb) => cb(get()));\n const postRehydrationCallback = ((_a = options.onRehydrateStorage) == null ? void 0 : _a.call(options, get())) || void 0;\n return toThenable(storage.getItem.bind(storage))(options.name).then((storageValue) => {\n if (storageValue) {\n return options.deserialize(storageValue);\n }\n }).then((deserializedStorageValue) => {\n if (deserializedStorageValue) {\n if (typeof deserializedStorageValue.version === \"number\" && deserializedStorageValue.version !== options.version) {\n if (options.migrate) {\n return options.migrate(\n deserializedStorageValue.state,\n deserializedStorageValue.version\n );\n }\n console.error(\n `State loaded from storage couldn't be migrated since no migrate function was provided`\n );\n } else {\n return deserializedStorageValue.state;\n }\n }\n }).then((migratedState) => {\n var _a2;\n stateFromStorage = options.merge(\n migratedState,\n (_a2 = get()) != null ? _a2 : configResult\n );\n set(stateFromStorage, true);\n return setItem();\n }).then(() => {\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(stateFromStorage, void 0);\n hasHydrated = true;\n finishHydrationListeners.forEach((cb) => cb(stateFromStorage));\n }).catch((e) => {\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(void 0, e);\n });\n };\n api.persist = {\n setOptions: (newOptions) => {\n options = {\n ...options,\n ...newOptions\n };\n if (newOptions.getStorage) {\n storage = newOptions.getStorage();\n }\n },\n clearStorage: () => {\n storage == null ? void 0 : storage.removeItem(options.name);\n },\n getOptions: () => options,\n rehydrate: () => hydrate(),\n hasHydrated: () => hasHydrated,\n onHydrate: (cb) => {\n hydrationListeners.add(cb);\n return () => {\n hydrationListeners.delete(cb);\n };\n },\n onFinishHydration: (cb) => {\n finishHydrationListeners.add(cb);\n return () => {\n finishHydrationListeners.delete(cb);\n };\n }\n };\n hydrate();\n return stateFromStorage || configResult;\n};\nconst newImpl = (config, baseOptions) => (set, get, api) => {\n let options = {\n storage: createJSONStorage(() => localStorage),\n partialize: (state) => state,\n version: 0,\n merge: (persistedState, currentState) => ({\n ...currentState,\n ...persistedState\n }),\n ...baseOptions\n };\n let hasHydrated = false;\n const hydrationListeners = /* @__PURE__ */ new Set();\n const finishHydrationListeners = /* @__PURE__ */ new Set();\n let storage = options.storage;\n if (!storage) {\n return config(\n (...args) => {\n console.warn(\n `[zustand persist middleware] Unable to update item '${options.name}', the given storage is currently unavailable.`\n );\n set(...args);\n },\n get,\n api\n );\n }\n const setItem = () => {\n const state = options.partialize({ ...get() });\n return storage.setItem(options.name, {\n state,\n version: options.version\n });\n };\n const savedSetState = api.setState;\n api.setState = (state, replace) => {\n savedSetState(state, replace);\n void setItem();\n };\n const configResult = config(\n (...args) => {\n set(...args);\n void setItem();\n },\n get,\n api\n );\n let stateFromStorage;\n const hydrate = () => {\n var _a, _b;\n if (!storage)\n return;\n hasHydrated = false;\n hydrationListeners.forEach((cb) => {\n var _a2;\n return cb((_a2 = get()) != null ? _a2 : configResult);\n });\n const postRehydrationCallback = ((_b = options.onRehydrateStorage) == null ? void 0 : _b.call(options, (_a = get()) != null ? _a : configResult)) || void 0;\n return toThenable(storage.getItem.bind(storage))(options.name).then((deserializedStorageValue) => {\n if (deserializedStorageValue) {\n if (typeof deserializedStorageValue.version === \"number\" && deserializedStorageValue.version !== options.version) {\n if (options.migrate) {\n return options.migrate(\n deserializedStorageValue.state,\n deserializedStorageValue.version\n );\n }\n console.error(\n `State loaded from storage couldn't be migrated since no migrate function was provided`\n );\n } else {\n return deserializedStorageValue.state;\n }\n }\n }).then((migratedState) => {\n var _a2;\n stateFromStorage = options.merge(\n migratedState,\n (_a2 = get()) != null ? _a2 : configResult\n );\n set(stateFromStorage, true);\n return setItem();\n }).then(() => {\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(stateFromStorage, void 0);\n stateFromStorage = get();\n hasHydrated = true;\n finishHydrationListeners.forEach((cb) => cb(stateFromStorage));\n }).catch((e) => {\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(void 0, e);\n });\n };\n api.persist = {\n setOptions: (newOptions) => {\n options = {\n ...options,\n ...newOptions\n };\n if (newOptions.storage) {\n storage = newOptions.storage;\n }\n },\n clearStorage: () => {\n storage == null ? void 0 : storage.removeItem(options.name);\n },\n getOptions: () => options,\n rehydrate: () => hydrate(),\n hasHydrated: () => hasHydrated,\n onHydrate: (cb) => {\n hydrationListeners.add(cb);\n return () => {\n hydrationListeners.delete(cb);\n };\n },\n onFinishHydration: (cb) => {\n finishHydrationListeners.add(cb);\n return () => {\n finishHydrationListeners.delete(cb);\n };\n }\n };\n if (!options.skipHydration) {\n hydrate();\n }\n return stateFromStorage || configResult;\n};\nconst persistImpl = (config, baseOptions) => {\n if (\"getStorage\" in baseOptions || \"serialize\" in baseOptions || \"deserialize\" in baseOptions) {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\n \"[DEPRECATED] `getStorage`, `serialize` and `deserialize` options are deprecated. Use `storage` option instead.\"\n );\n }\n return oldImpl(config, baseOptions);\n }\n return newImpl(config, baseOptions);\n};\nconst persist = persistImpl;\n\nexport { combine, createJSONStorage, devtools, persist, redux, subscribeWithSelector };\n","const createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\") ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const destroy = () => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\n \"[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected.\"\n );\n }\n listeners.clear();\n };\n const api = { setState, getState, subscribe, destroy };\n state = createState(setState, getState, api);\n return api;\n};\nconst createStore = (createState) => createState ? createStoreImpl(createState) : createStoreImpl;\nvar vanilla = (createState) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\n \"[DEPRECATED] Default export is deprecated. Instead use import { createStore } from 'zustand/vanilla'.\"\n );\n }\n return createStore(createState);\n};\n\nexport { createStore, vanilla as default };\n","function shallow(objA, objB) {\n if (Object.is(objA, objB)) {\n return true;\n }\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) {\n return false;\n }\n if (objA instanceof Map && objB instanceof Map) {\n if (objA.size !== objB.size)\n return false;\n for (const [key, value] of objA) {\n if (!Object.is(value, objB.get(key))) {\n return false;\n }\n }\n return true;\n }\n if (objA instanceof Set && objB instanceof Set) {\n if (objA.size !== objB.size)\n return false;\n for (const value of objA) {\n if (!objB.has(value)) {\n return false;\n }\n }\n return true;\n }\n const keysA = Object.keys(objA);\n if (keysA.length !== Object.keys(objB).length) {\n return false;\n }\n for (let i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !Object.is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n return true;\n}\nvar shallow$1 = (objA, objB) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\n \"[DEPRECATED] Default export is deprecated. Instead use `import { shallow } from 'zustand/shallow'`.\"\n );\n }\n return shallow(objA, objB);\n};\n\nexport { shallow$1 as default, shallow };\n","import { RpcRequestError } from '../../errors/request.js';\nimport { UrlRequiredError, } from '../../errors/transport.js';\nimport { createBatchScheduler } from '../../utils/promise/createBatchScheduler.js';\nimport { getHttpRpcClient, } from '../../utils/rpc/http.js';\nimport { createTransport, } from './createTransport.js';\n/**\n * @description Creates a HTTP transport that connects to a JSON-RPC API.\n */\nexport function http(\n/** URL of the JSON-RPC API. Defaults to the chain's public RPC URL. */\nurl, config = {}) {\n const { batch, fetchOptions, key = 'http', name = 'HTTP JSON-RPC', onFetchRequest, onFetchResponse, retryDelay, } = config;\n return ({ chain, retryCount: retryCount_, timeout: timeout_ }) => {\n const { batchSize = 1000, wait = 0 } = typeof batch === 'object' ? batch : {};\n const retryCount = config.retryCount ?? retryCount_;\n const timeout = timeout_ ?? config.timeout ?? 10_000;\n const url_ = url || chain?.rpcUrls.default.http[0];\n if (!url_)\n throw new UrlRequiredError();\n const rpcClient = getHttpRpcClient(url_, {\n fetchOptions,\n onRequest: onFetchRequest,\n onResponse: onFetchResponse,\n timeout,\n });\n return createTransport({\n key,\n name,\n async request({ method, params }) {\n const body = { method, params };\n const { schedule } = createBatchScheduler({\n id: url_,\n wait,\n shouldSplitBatch(requests) {\n return requests.length > batchSize;\n },\n fn: (body) => rpcClient.request({\n body,\n }),\n sort: (a, b) => a.id - b.id,\n });\n const fn = async (body) => batch\n ? schedule(body)\n : [\n await rpcClient.request({\n body,\n }),\n ];\n const [{ error, result }] = await fn(body);\n if (error)\n throw new RpcRequestError({\n body,\n error,\n url: url_,\n });\n return result;\n },\n retryCount,\n retryDelay,\n timeout,\n type: 'http',\n }, {\n fetchOptions,\n url: url_,\n });\n };\n}\n//# sourceMappingURL=http.js.map","import { HttpRequestError, TimeoutError, } from '../../errors/request.js';\nimport { withTimeout, } from '../promise/withTimeout.js';\nimport { stringify } from '../stringify.js';\nimport { idCache } from './id.js';\nexport function getHttpRpcClient(url, options = {}) {\n return {\n async request(params) {\n const { body, onRequest = options.onRequest, onResponse = options.onResponse, timeout = options.timeout ?? 10_000, } = params;\n const fetchOptions = {\n ...(options.fetchOptions ?? {}),\n ...(params.fetchOptions ?? {}),\n };\n const { headers, method, signal: signal_ } = fetchOptions;\n try {\n const response = await withTimeout(async ({ signal }) => {\n const init = {\n ...fetchOptions,\n body: Array.isArray(body)\n ? stringify(body.map((body) => ({\n jsonrpc: '2.0',\n id: body.id ?? idCache.take(),\n ...body,\n })))\n : stringify({\n jsonrpc: '2.0',\n id: body.id ?? idCache.take(),\n ...body,\n }),\n headers: {\n ...headers,\n 'Content-Type': 'application/json',\n },\n method: method || 'POST',\n signal: signal_ || (timeout > 0 ? signal : null),\n };\n const request = new Request(url, init);\n if (onRequest)\n await onRequest(request);\n const response = await fetch(url, init);\n return response;\n }, {\n errorInstance: new TimeoutError({ body, url }),\n timeout,\n signal: true,\n });\n if (onResponse)\n await onResponse(response);\n let data;\n if (response.headers.get('Content-Type')?.startsWith('application/json'))\n data = await response.json();\n else {\n data = await response.text();\n data = JSON.parse(data || '{}');\n }\n if (!response.ok) {\n throw new HttpRequestError({\n body,\n details: stringify(data.error) || response.statusText,\n headers: response.headers,\n status: response.status,\n url,\n });\n }\n return data;\n }\n catch (err) {\n if (err instanceof HttpRequestError)\n throw err;\n if (err instanceof TimeoutError)\n throw err;\n throw new HttpRequestError({\n body,\n details: err.message,\n url,\n });\n }\n },\n };\n}\n//# sourceMappingURL=http.js.map","import { RpcRequestError } from '../../errors/request.js';\nimport { UrlRequiredError, } from '../../errors/transport.js';\nimport { getSocket } from '../../utils/rpc/compat.js';\nimport { getWebSocketRpcClient, } from '../../utils/rpc/webSocket.js';\nimport { createTransport, } from './createTransport.js';\n/**\n * @description Creates a WebSocket transport that connects to a JSON-RPC API.\n */\nexport function webSocket(\n/** URL of the JSON-RPC API. Defaults to the chain's public RPC URL. */\nurl, config = {}) {\n const { key = 'webSocket', name = 'WebSocket JSON-RPC', reconnect, retryDelay, } = config;\n return ({ chain, retryCount: retryCount_, timeout: timeout_ }) => {\n const retryCount = config.retryCount ?? retryCount_;\n const timeout = timeout_ ?? config.timeout ?? 10_000;\n const url_ = url || chain?.rpcUrls.default.webSocket?.[0];\n if (!url_)\n throw new UrlRequiredError();\n return createTransport({\n key,\n name,\n async request({ method, params }) {\n const body = { method, params };\n const rpcClient = await getWebSocketRpcClient(url_, { reconnect });\n const { error, result } = await rpcClient.requestAsync({\n body,\n timeout,\n });\n if (error)\n throw new RpcRequestError({\n body,\n error,\n url: url_,\n });\n return result;\n },\n retryCount,\n retryDelay,\n timeout,\n type: 'webSocket',\n }, {\n getSocket() {\n return getSocket(url_);\n },\n getRpcClient() {\n return getWebSocketRpcClient(url_);\n },\n async subscribe({ params, onData, onError }) {\n const rpcClient = await getWebSocketRpcClient(url_);\n const { result: subscriptionId } = await new Promise((resolve, reject) => rpcClient.request({\n body: {\n method: 'eth_subscribe',\n params,\n },\n onResponse(response) {\n if (response.error) {\n reject(response.error);\n onError?.(response.error);\n return;\n }\n if (typeof response.id === 'number') {\n resolve(response);\n return;\n }\n if (response.method !== 'eth_subscription')\n return;\n onData(response.params);\n },\n }));\n return {\n subscriptionId,\n async unsubscribe() {\n return new Promise((resolve) => rpcClient.request({\n body: {\n method: 'eth_unsubscribe',\n params: [subscriptionId],\n },\n onResponse: resolve,\n }));\n },\n };\n },\n });\n };\n}\n//# sourceMappingURL=webSocket.js.map","import \"../chunk-MQXBDTVK.js\";\n\n// src/providers/public.ts\nfunction publicProvider() {\n return function(chain) {\n if (!chain.rpcUrls.public.http[0])\n return null;\n return {\n chain,\n rpcUrls: chain.rpcUrls.public\n };\n };\n}\nexport {\n publicProvider\n};\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}","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}","export function asUint8Array(buf) {\n if (globalThis.Buffer != null) {\n return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength);\n }\n return buf;\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});","var encode_1 = encode;\nvar MSB = 128, REST = 127, MSBALL = ~REST, INT = Math.pow(2, 31);\nfunction encode(num, out, offset) {\n out = out || [];\n offset = offset || 0;\n var oldOffset = offset;\n while (num >= INT) {\n out[offset++] = num & 255 | MSB;\n num /= 128;\n }\n while (num & MSBALL) {\n out[offset++] = num & 255 | MSB;\n num >>>= 7;\n }\n out[offset] = num | 0;\n encode.bytes = offset - oldOffset + 1;\n return out;\n}\nvar decode = read;\nvar MSB$1 = 128, REST$1 = 127;\nfunction read(buf, offset) {\n var res = 0, offset = offset || 0, shift = 0, counter = offset, b, l = buf.length;\n do {\n if (counter >= l) {\n read.bytes = 0;\n throw new RangeError('Could not decode varint');\n }\n b = buf[counter++];\n res += shift < 28 ? (b & REST$1) << shift : (b & REST$1) * Math.pow(2, shift);\n shift += 7;\n } while (b >= MSB$1);\n read.bytes = counter - offset;\n return res;\n}\nvar N1 = Math.pow(2, 7);\nvar N2 = Math.pow(2, 14);\nvar N3 = Math.pow(2, 21);\nvar N4 = Math.pow(2, 28);\nvar N5 = Math.pow(2, 35);\nvar N6 = Math.pow(2, 42);\nvar N7 = Math.pow(2, 49);\nvar N8 = Math.pow(2, 56);\nvar N9 = Math.pow(2, 63);\nvar length = function (value) {\n return value < N1 ? 1 : value < N2 ? 2 : value < N3 ? 3 : value < N4 ? 4 : value < N5 ? 5 : value < N6 ? 6 : value < N7 ? 7 : value < N8 ? 8 : value < N9 ? 9 : 10;\n};\nvar varint = {\n encode: encode_1,\n decode: decode,\n encodingLength: length\n};\nvar _brrp_varint = varint;\nexport default _brrp_varint;","import varint from '../vendor/varint.js';\nexport const decode = (data, offset = 0) => {\n const code = varint.decode(data, offset);\n return [\n code,\n varint.decode.bytes\n ];\n};\nexport const encodeTo = (int, target, offset = 0) => {\n varint.encode(int, target, offset);\n return target;\n};\nexport const encodingLength = int => {\n return varint.encodingLength(int);\n};","import {\n coerce,\n equals as equalBytes\n} from '../bytes.js';\nimport * as varint from '../varint.js';\nexport const create = (code, digest) => {\n const size = digest.byteLength;\n const sizeOffset = varint.encodingLength(code);\n const digestOffset = sizeOffset + varint.encodingLength(size);\n const bytes = new Uint8Array(digestOffset + size);\n varint.encodeTo(code, bytes, 0);\n varint.encodeTo(size, bytes, sizeOffset);\n bytes.set(digest, digestOffset);\n return new Digest(code, size, digest, bytes);\n};\nexport const decode = multihash => {\n const bytes = coerce(multihash);\n const [code, sizeOffset] = varint.decode(bytes);\n const [size, digestOffset] = varint.decode(bytes.subarray(sizeOffset));\n const digest = bytes.subarray(sizeOffset + digestOffset);\n if (digest.byteLength !== size) {\n throw new Error('Incorrect length');\n }\n return new Digest(code, size, digest, bytes);\n};\nexport const equals = (a, b) => {\n if (a === b) {\n return true;\n } else {\n return a.code === b.code && a.size === b.size && equalBytes(a.bytes, b.bytes);\n }\n};\nexport class Digest {\n constructor(code, size, digest, bytes) {\n this.code = code;\n this.size = size;\n this.digest = digest;\n this.bytes = bytes;\n }\n}","import * as Digest from './digest.js';\nexport const from = ({name, code, encode}) => new Hasher(name, code, encode);\nexport class Hasher {\n constructor(name, code, encode) {\n this.name = name;\n this.code = code;\n this.encode = encode;\n }\n digest(input) {\n if (input instanceof Uint8Array) {\n const result = this.encode(input);\n return result instanceof Uint8Array ? Digest.create(this.code, result) : result.then(digest => Digest.create(this.code, digest));\n } else {\n throw Error('Unknown type, must be binary type');\n }\n }\n}","import { from } from './hasher.js';\nconst sha = name => async data => new Uint8Array(await crypto.subtle.digest(name, data));\nexport const sha256 = from({\n name: 'sha2-256',\n code: 18,\n encode: sha('SHA-256')\n});\nexport const sha512 = from({\n name: 'sha2-512',\n code: 19,\n encode: sha('SHA-512')\n});","import { coerce } from '../bytes.js';\nimport * as Digest from './digest.js';\nconst code = 0;\nconst name = 'identity';\nconst encode = coerce;\nconst digest = input => Digest.create(code, encode(input));\nexport const identity = {\n code,\n name,\n encode,\n digest\n};","import { coerce } from '../bytes.js';\nexport const name = 'raw';\nexport const code = 85;\nexport const encode = node => coerce(node);\nexport const decode = data => coerce(data);","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 varint from './varint.js';\nimport * as Digest from './hashes/digest.js';\nimport { base58btc } from './bases/base58.js';\nimport { base32 } from './bases/base32.js';\nimport { coerce } from './bytes.js';\nexport class CID {\n constructor(version, code, multihash, bytes) {\n this.code = code;\n this.version = version;\n this.multihash = multihash;\n this.bytes = bytes;\n this.byteOffset = bytes.byteOffset;\n this.byteLength = bytes.byteLength;\n this.asCID = this;\n this._baseCache = new Map();\n Object.defineProperties(this, {\n byteOffset: hidden,\n byteLength: hidden,\n code: readonly,\n version: readonly,\n multihash: readonly,\n bytes: readonly,\n _baseCache: hidden,\n asCID: hidden\n });\n }\n toV0() {\n switch (this.version) {\n case 0: {\n return this;\n }\n default: {\n const {code, multihash} = this;\n if (code !== DAG_PB_CODE) {\n throw new Error('Cannot convert a non dag-pb CID to CIDv0');\n }\n if (multihash.code !== SHA_256_CODE) {\n throw new Error('Cannot convert non sha2-256 multihash CID to CIDv0');\n }\n return CID.createV0(multihash);\n }\n }\n }\n toV1() {\n switch (this.version) {\n case 0: {\n const {code, digest} = this.multihash;\n const multihash = Digest.create(code, digest);\n return CID.createV1(this.code, multihash);\n }\n case 1: {\n return this;\n }\n default: {\n throw Error(`Can not convert CID version ${ this.version } to version 0. This is a bug please report`);\n }\n }\n }\n equals(other) {\n return other && this.code === other.code && this.version === other.version && Digest.equals(this.multihash, other.multihash);\n }\n toString(base) {\n const {bytes, version, _baseCache} = this;\n switch (version) {\n case 0:\n return toStringV0(bytes, _baseCache, base || base58btc.encoder);\n default:\n return toStringV1(bytes, _baseCache, base || base32.encoder);\n }\n }\n toJSON() {\n return {\n code: this.code,\n version: this.version,\n hash: this.multihash.bytes\n };\n }\n get [Symbol.toStringTag]() {\n return 'CID';\n }\n [Symbol.for('nodejs.util.inspect.custom')]() {\n return 'CID(' + this.toString() + ')';\n }\n static isCID(value) {\n deprecate(/^0\\.0/, IS_CID_DEPRECATION);\n return !!(value && (value[cidSymbol] || value.asCID === value));\n }\n get toBaseEncodedString() {\n throw new Error('Deprecated, use .toString()');\n }\n get codec() {\n throw new Error('\"codec\" property is deprecated, use integer \"code\" property instead');\n }\n get buffer() {\n throw new Error('Deprecated .buffer property, use .bytes to get Uint8Array instead');\n }\n get multibaseName() {\n throw new Error('\"multibaseName\" property is deprecated');\n }\n get prefix() {\n throw new Error('\"prefix\" property is deprecated');\n }\n static asCID(value) {\n if (value instanceof CID) {\n return value;\n } else if (value != null && value.asCID === value) {\n const {version, code, multihash, bytes} = value;\n return new CID(version, code, multihash, bytes || encodeCID(version, code, multihash.bytes));\n } else if (value != null && value[cidSymbol] === true) {\n const {version, multihash, code} = value;\n const digest = Digest.decode(multihash);\n return CID.create(version, code, digest);\n } else {\n return null;\n }\n }\n static create(version, code, digest) {\n if (typeof code !== 'number') {\n throw new Error('String codecs are no longer supported');\n }\n switch (version) {\n case 0: {\n if (code !== DAG_PB_CODE) {\n throw new Error(`Version 0 CID must use dag-pb (code: ${ DAG_PB_CODE }) block encoding`);\n } else {\n return new CID(version, code, digest, digest.bytes);\n }\n }\n case 1: {\n const bytes = encodeCID(version, code, digest.bytes);\n return new CID(version, code, digest, bytes);\n }\n default: {\n throw new Error('Invalid version');\n }\n }\n }\n static createV0(digest) {\n return CID.create(0, DAG_PB_CODE, digest);\n }\n static createV1(code, digest) {\n return CID.create(1, code, digest);\n }\n static decode(bytes) {\n const [cid, remainder] = CID.decodeFirst(bytes);\n if (remainder.length) {\n throw new Error('Incorrect length');\n }\n return cid;\n }\n static decodeFirst(bytes) {\n const specs = CID.inspectBytes(bytes);\n const prefixSize = specs.size - specs.multihashSize;\n const multihashBytes = coerce(bytes.subarray(prefixSize, prefixSize + specs.multihashSize));\n if (multihashBytes.byteLength !== specs.multihashSize) {\n throw new Error('Incorrect length');\n }\n const digestBytes = multihashBytes.subarray(specs.multihashSize - specs.digestSize);\n const digest = new Digest.Digest(specs.multihashCode, specs.digestSize, digestBytes, multihashBytes);\n const cid = specs.version === 0 ? CID.createV0(digest) : CID.createV1(specs.codec, digest);\n return [\n cid,\n bytes.subarray(specs.size)\n ];\n }\n static inspectBytes(initialBytes) {\n let offset = 0;\n const next = () => {\n const [i, length] = varint.decode(initialBytes.subarray(offset));\n offset += length;\n return i;\n };\n let version = next();\n let codec = DAG_PB_CODE;\n if (version === 18) {\n version = 0;\n offset = 0;\n } else if (version === 1) {\n codec = next();\n }\n if (version !== 0 && version !== 1) {\n throw new RangeError(`Invalid CID version ${ version }`);\n }\n const prefixSize = offset;\n const multihashCode = next();\n const digestSize = next();\n const size = offset + digestSize;\n const multihashSize = size - prefixSize;\n return {\n version,\n codec,\n multihashCode,\n digestSize,\n multihashSize,\n size\n };\n }\n static parse(source, base) {\n const [prefix, bytes] = parseCIDtoBytes(source, base);\n const cid = CID.decode(bytes);\n cid._baseCache.set(prefix, source);\n return cid;\n }\n}\nconst parseCIDtoBytes = (source, base) => {\n switch (source[0]) {\n case 'Q': {\n const decoder = base || base58btc;\n return [\n base58btc.prefix,\n decoder.decode(`${ base58btc.prefix }${ source }`)\n ];\n }\n case base58btc.prefix: {\n const decoder = base || base58btc;\n return [\n base58btc.prefix,\n decoder.decode(source)\n ];\n }\n case base32.prefix: {\n const decoder = base || base32;\n return [\n base32.prefix,\n decoder.decode(source)\n ];\n }\n default: {\n if (base == null) {\n throw Error('To parse non base32 or base58btc encoded CID multibase decoder must be provided');\n }\n return [\n source[0],\n base.decode(source)\n ];\n }\n }\n};\nconst toStringV0 = (bytes, cache, base) => {\n const {prefix} = base;\n if (prefix !== base58btc.prefix) {\n throw Error(`Cannot string encode V0 in ${ base.name } encoding`);\n }\n const cid = cache.get(prefix);\n if (cid == null) {\n const cid = base.encode(bytes).slice(1);\n cache.set(prefix, cid);\n return cid;\n } else {\n return cid;\n }\n};\nconst toStringV1 = (bytes, cache, base) => {\n const {prefix} = base;\n const cid = cache.get(prefix);\n if (cid == null) {\n const cid = base.encode(bytes);\n cache.set(prefix, cid);\n return cid;\n } else {\n return cid;\n }\n};\nconst DAG_PB_CODE = 112;\nconst SHA_256_CODE = 18;\nconst encodeCID = (version, code, multihash) => {\n const codeOffset = varint.encodingLength(version);\n const hashOffset = codeOffset + varint.encodingLength(code);\n const bytes = new Uint8Array(hashOffset + multihash.byteLength);\n varint.encodeTo(version, bytes, 0);\n varint.encodeTo(code, bytes, codeOffset);\n bytes.set(multihash, hashOffset);\n return bytes;\n};\nconst cidSymbol = Symbol.for('@ipld/js-cid/CID');\nconst readonly = {\n writable: false,\n configurable: false,\n enumerable: true\n};\nconst hidden = {\n writable: false,\n enumerable: false,\n configurable: false\n};\nconst version = '0.0.0-dev';\nconst deprecate = (range, message) => {\n if (range.test(version)) {\n console.warn(message);\n } else {\n throw new Error(message);\n }\n};\nconst IS_CID_DEPRECATION = `CID.isCID(v) is deprecated and will be removed in the next major release.\nFollowing code pattern:\n\nif (CID.isCID(value)) {\n doSomethingWithCID(value)\n}\n\nIs replaced with:\n\nconst cid = CID.asCID(value)\nif (cid) {\n // Make sure to use cid instead of value\n doSomethingWithCID(cid)\n}\n`;","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;","export function parseAccount(account) {\n if (typeof account === 'string')\n return { address: account, type: 'json-rpc' };\n return account;\n}\n//# sourceMappingURL=parseAccount.js.map","import { execTyped } from '../../regex.js';\n// https://regexr.com/7gmok\nconst errorSignatureRegex = /^error (?[a-zA-Z$_][a-zA-Z0-9$_]*)\\((?.*?)\\)$/;\nexport function isErrorSignature(signature) {\n return errorSignatureRegex.test(signature);\n}\nexport function execErrorSignature(signature) {\n return execTyped(errorSignatureRegex, signature);\n}\n// https://regexr.com/7gmoq\nconst eventSignatureRegex = /^event (?[a-zA-Z$_][a-zA-Z0-9$_]*)\\((?.*?)\\)$/;\nexport function isEventSignature(signature) {\n return eventSignatureRegex.test(signature);\n}\nexport function execEventSignature(signature) {\n return execTyped(eventSignatureRegex, signature);\n}\n// https://regexr.com/7gmot\nconst functionSignatureRegex = /^function (?[a-zA-Z$_][a-zA-Z0-9$_]*)\\((?.*?)\\)(?: (?external|public{1}))?(?: (?pure|view|nonpayable|payable{1}))?(?: returns\\s?\\((?.*?)\\))?$/;\nexport function isFunctionSignature(signature) {\n return functionSignatureRegex.test(signature);\n}\nexport function execFunctionSignature(signature) {\n return execTyped(functionSignatureRegex, signature);\n}\n// https://regexr.com/7gmp3\nconst structSignatureRegex = /^struct (?[a-zA-Z$_][a-zA-Z0-9$_]*) \\{(?.*?)\\}$/;\nexport function isStructSignature(signature) {\n return structSignatureRegex.test(signature);\n}\nexport function execStructSignature(signature) {\n return execTyped(structSignatureRegex, signature);\n}\n// https://regexr.com/78u01\nconst constructorSignatureRegex = /^constructor\\((?.*?)\\)(?:\\s(?payable{1}))?$/;\nexport function isConstructorSignature(signature) {\n return constructorSignatureRegex.test(signature);\n}\nexport function execConstructorSignature(signature) {\n return execTyped(constructorSignatureRegex, signature);\n}\n// https://regexr.com/78u18\nconst fallbackSignatureRegex = /^fallback\\(\\)$/;\nexport function isFallbackSignature(signature) {\n return fallbackSignatureRegex.test(signature);\n}\n// https://regexr.com/78u1k\nconst receiveSignatureRegex = /^receive\\(\\) external payable$/;\nexport function isReceiveSignature(signature) {\n return receiveSignatureRegex.test(signature);\n}\nexport const modifiers = new Set([\n 'memory',\n 'indexed',\n 'storage',\n 'calldata',\n]);\nexport const eventModifiers = new Set(['indexed']);\nexport const functionModifiers = new Set([\n 'calldata',\n 'memory',\n 'storage',\n]);\n//# sourceMappingURL=signatures.js.map","import { version } from './version.js';\nexport class BaseError extends Error {\n constructor(shortMessage, args = {}) {\n const details = args.cause instanceof BaseError\n ? args.cause.details\n : args.cause?.message\n ? args.cause.message\n : args.details;\n const docsPath = args.cause instanceof BaseError\n ? args.cause.docsPath || args.docsPath\n : args.docsPath;\n const message = [\n shortMessage || 'An error occurred.',\n '',\n ...(args.metaMessages ? [...args.metaMessages, ''] : []),\n ...(docsPath ? [`Docs: https://abitype.dev${docsPath}`] : []),\n ...(details ? [`Details: ${details}`] : []),\n `Version: abitype@${version}`,\n ].join('\\n');\n super(message);\n Object.defineProperty(this, \"details\", {\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, \"metaMessages\", {\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, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiTypeError'\n });\n if (args.cause)\n this.cause = args.cause;\n this.details = details;\n this.docsPath = docsPath;\n this.metaMessages = args.metaMessages;\n this.shortMessage = shortMessage;\n }\n}\n//# sourceMappingURL=errors.js.map","import { BaseError } from '../../errors.js';\nexport class InvalidAbiItemError extends BaseError {\n constructor({ signature }) {\n super('Failed to parse ABI item.', {\n details: `parseAbiItem(${JSON.stringify(signature, null, 2)})`,\n docsPath: '/api/human#parseabiitem-1',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidAbiItemError'\n });\n }\n}\nexport class UnknownTypeError extends BaseError {\n constructor({ type }) {\n super('Unknown type.', {\n metaMessages: [\n `Type \"${type}\" is not a valid ABI type. Perhaps you forgot to include a struct signature?`,\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'UnknownTypeError'\n });\n }\n}\nexport class UnknownSolidityTypeError extends BaseError {\n constructor({ type }) {\n super('Unknown type.', {\n metaMessages: [`Type \"${type}\" is not a valid ABI type.`],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'UnknownSolidityTypeError'\n });\n }\n}\n//# sourceMappingURL=abiItem.js.map","import { BaseError } from '../../errors.js';\nexport class InvalidAbiParameterError extends BaseError {\n constructor({ param }) {\n super('Failed to parse ABI parameter.', {\n details: `parseAbiParameter(${JSON.stringify(param, null, 2)})`,\n docsPath: '/api/human#parseabiparameter-1',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidAbiParameterError'\n });\n }\n}\nexport class InvalidAbiParametersError extends BaseError {\n constructor({ params }) {\n super('Failed to parse ABI parameters.', {\n details: `parseAbiParameters(${JSON.stringify(params, null, 2)})`,\n docsPath: '/api/human#parseabiparameters-1',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidAbiParametersError'\n });\n }\n}\nexport class InvalidParameterError extends BaseError {\n constructor({ param }) {\n super('Invalid ABI parameter.', {\n details: param,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidParameterError'\n });\n }\n}\nexport class SolidityProtectedKeywordError extends BaseError {\n constructor({ param, name }) {\n super('Invalid ABI parameter.', {\n details: param,\n metaMessages: [\n `\"${name}\" is a protected Solidity keyword. More info: https://docs.soliditylang.org/en/latest/cheatsheet.html`,\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'SolidityProtectedKeywordError'\n });\n }\n}\nexport class InvalidModifierError extends BaseError {\n constructor({ param, type, modifier, }) {\n super('Invalid ABI parameter.', {\n details: param,\n metaMessages: [\n `Modifier \"${modifier}\" not allowed${type ? ` in \"${type}\" type` : ''}.`,\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidModifierError'\n });\n }\n}\nexport class InvalidFunctionModifierError extends BaseError {\n constructor({ param, type, modifier, }) {\n super('Invalid ABI parameter.', {\n details: param,\n metaMessages: [\n `Modifier \"${modifier}\" not allowed${type ? ` in \"${type}\" type` : ''}.`,\n `Data location can only be specified for array, struct, or mapping types, but \"${modifier}\" was given.`,\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidFunctionModifierError'\n });\n }\n}\nexport class InvalidAbiTypeParameterError extends BaseError {\n constructor({ abiParameter, }) {\n super('Invalid ABI parameter.', {\n details: JSON.stringify(abiParameter, null, 2),\n metaMessages: ['ABI parameter type is invalid.'],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidAbiTypeParameterError'\n });\n }\n}\n//# sourceMappingURL=abiParameter.js.map","import { BaseError } from '../../errors.js';\nexport class InvalidSignatureError extends BaseError {\n constructor({ signature, type, }) {\n super(`Invalid ${type} signature.`, {\n details: signature,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidSignatureError'\n });\n }\n}\nexport class UnknownSignatureError extends BaseError {\n constructor({ signature }) {\n super('Unknown signature.', {\n details: signature,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'UnknownSignatureError'\n });\n }\n}\nexport class InvalidStructSignatureError extends BaseError {\n constructor({ signature }) {\n super('Invalid struct signature.', {\n details: signature,\n metaMessages: ['No properties exist.'],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidStructSignatureError'\n });\n }\n}\n//# sourceMappingURL=signature.js.map","import { BaseError } from '../../errors.js';\nexport class CircularReferenceError extends BaseError {\n constructor({ type }) {\n super('Circular reference detected.', {\n metaMessages: [`Struct \"${type}\" is a circular reference.`],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'CircularReferenceError'\n });\n }\n}\n//# sourceMappingURL=struct.js.map","import { BaseError } from '../../errors.js';\nexport class InvalidParenthesisError extends BaseError {\n constructor({ current, depth }) {\n super('Unbalanced parentheses.', {\n metaMessages: [\n `\"${current.trim()}\" has too many ${depth > 0 ? 'opening' : 'closing'} parentheses.`,\n ],\n details: `Depth \"${depth}\"`,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidParenthesisError'\n });\n }\n}\n//# sourceMappingURL=splitParameters.js.map","/**\n * Gets {@link parameterCache} cache key namespaced by {@link type}. This prevents parameters from being accessible to types that don't allow them (e.g. `string indexed foo` not allowed outside of `type: 'event'`).\n * @param param ABI parameter string\n * @param type ABI parameter type\n * @returns Cache key for {@link parameterCache}\n */\nexport function getParameterCacheKey(param, type) {\n if (type)\n return `${type}:${param}`;\n return param;\n}\n/**\n * Basic cache seeded with common ABI parameter strings.\n *\n * **Note: When seeding more parameters, make sure you benchmark performance. The current number is the ideal balance between performance and having an already existing cache.**\n */\nexport const parameterCache = new Map([\n // Unnamed\n ['address', { type: 'address' }],\n ['bool', { type: 'bool' }],\n ['bytes', { type: 'bytes' }],\n ['bytes32', { type: 'bytes32' }],\n ['int', { type: 'int256' }],\n ['int256', { type: 'int256' }],\n ['string', { type: 'string' }],\n ['uint', { type: 'uint256' }],\n ['uint8', { type: 'uint8' }],\n ['uint16', { type: 'uint16' }],\n ['uint24', { type: 'uint24' }],\n ['uint32', { type: 'uint32' }],\n ['uint64', { type: 'uint64' }],\n ['uint96', { type: 'uint96' }],\n ['uint112', { type: 'uint112' }],\n ['uint160', { type: 'uint160' }],\n ['uint192', { type: 'uint192' }],\n ['uint256', { type: 'uint256' }],\n // Named\n ['address owner', { type: 'address', name: 'owner' }],\n ['address to', { type: 'address', name: 'to' }],\n ['bool approved', { type: 'bool', name: 'approved' }],\n ['bytes _data', { type: 'bytes', name: '_data' }],\n ['bytes data', { type: 'bytes', name: 'data' }],\n ['bytes signature', { type: 'bytes', name: 'signature' }],\n ['bytes32 hash', { type: 'bytes32', name: 'hash' }],\n ['bytes32 r', { type: 'bytes32', name: 'r' }],\n ['bytes32 root', { type: 'bytes32', name: 'root' }],\n ['bytes32 s', { type: 'bytes32', name: 's' }],\n ['string name', { type: 'string', name: 'name' }],\n ['string symbol', { type: 'string', name: 'symbol' }],\n ['string tokenURI', { type: 'string', name: 'tokenURI' }],\n ['uint tokenId', { type: 'uint256', name: 'tokenId' }],\n ['uint8 v', { type: 'uint8', name: 'v' }],\n ['uint256 balance', { type: 'uint256', name: 'balance' }],\n ['uint256 tokenId', { type: 'uint256', name: 'tokenId' }],\n ['uint256 value', { type: 'uint256', name: 'value' }],\n // Indexed\n [\n 'event:address indexed from',\n { type: 'address', name: 'from', indexed: true },\n ],\n ['event:address indexed to', { type: 'address', name: 'to', indexed: true }],\n [\n 'event:uint indexed tokenId',\n { type: 'uint256', name: 'tokenId', indexed: true },\n ],\n [\n 'event:uint256 indexed tokenId',\n { type: 'uint256', name: 'tokenId', indexed: true },\n ],\n]);\n//# sourceMappingURL=cache.js.map","import { bytesRegex, execTyped, integerRegex, isTupleRegex, } from '../../regex.js';\nimport { UnknownSolidityTypeError } from '../errors/abiItem.js';\nimport { InvalidFunctionModifierError, InvalidModifierError, InvalidParameterError, SolidityProtectedKeywordError, } from '../errors/abiParameter.js';\nimport { InvalidSignatureError, UnknownSignatureError, } from '../errors/signature.js';\nimport { InvalidParenthesisError } from '../errors/splitParameters.js';\nimport { getParameterCacheKey, parameterCache } from './cache.js';\nimport { eventModifiers, execConstructorSignature, execErrorSignature, execEventSignature, execFunctionSignature, functionModifiers, isConstructorSignature, isErrorSignature, isEventSignature, isFallbackSignature, isFunctionSignature, isReceiveSignature, } from './signatures.js';\nexport function parseSignature(signature, structs = {}) {\n if (isFunctionSignature(signature)) {\n const match = execFunctionSignature(signature);\n if (!match)\n throw new InvalidSignatureError({ signature, type: 'function' });\n const inputParams = splitParameters(match.parameters);\n const inputs = [];\n const inputLength = inputParams.length;\n for (let i = 0; i < inputLength; i++) {\n inputs.push(parseAbiParameter(inputParams[i], {\n modifiers: functionModifiers,\n structs,\n type: 'function',\n }));\n }\n const outputs = [];\n if (match.returns) {\n const outputParams = splitParameters(match.returns);\n const outputLength = outputParams.length;\n for (let i = 0; i < outputLength; i++) {\n outputs.push(parseAbiParameter(outputParams[i], {\n modifiers: functionModifiers,\n structs,\n type: 'function',\n }));\n }\n }\n return {\n name: match.name,\n type: 'function',\n stateMutability: match.stateMutability ?? 'nonpayable',\n inputs,\n outputs,\n };\n }\n if (isEventSignature(signature)) {\n const match = execEventSignature(signature);\n if (!match)\n throw new InvalidSignatureError({ signature, type: 'event' });\n const params = splitParameters(match.parameters);\n const abiParameters = [];\n const length = params.length;\n for (let i = 0; i < length; i++) {\n abiParameters.push(parseAbiParameter(params[i], {\n modifiers: eventModifiers,\n structs,\n type: 'event',\n }));\n }\n return { name: match.name, type: 'event', inputs: abiParameters };\n }\n if (isErrorSignature(signature)) {\n const match = execErrorSignature(signature);\n if (!match)\n throw new InvalidSignatureError({ signature, type: 'error' });\n const params = splitParameters(match.parameters);\n const abiParameters = [];\n const length = params.length;\n for (let i = 0; i < length; i++) {\n abiParameters.push(parseAbiParameter(params[i], { structs, type: 'error' }));\n }\n return { name: match.name, type: 'error', inputs: abiParameters };\n }\n if (isConstructorSignature(signature)) {\n const match = execConstructorSignature(signature);\n if (!match)\n throw new InvalidSignatureError({ signature, type: 'constructor' });\n const params = splitParameters(match.parameters);\n const abiParameters = [];\n const length = params.length;\n for (let i = 0; i < length; i++) {\n abiParameters.push(parseAbiParameter(params[i], { structs, type: 'constructor' }));\n }\n return {\n type: 'constructor',\n stateMutability: match.stateMutability ?? 'nonpayable',\n inputs: abiParameters,\n };\n }\n if (isFallbackSignature(signature))\n return { type: 'fallback' };\n if (isReceiveSignature(signature))\n return {\n type: 'receive',\n stateMutability: 'payable',\n };\n throw new UnknownSignatureError({ signature });\n}\nconst abiParameterWithoutTupleRegex = /^(?[a-zA-Z$_][a-zA-Z0-9$_]*)(?(?:\\[\\d*?\\])+?)?(?:\\s(?calldata|indexed|memory|storage{1}))?(?:\\s(?[a-zA-Z$_][a-zA-Z0-9$_]*))?$/;\nconst abiParameterWithTupleRegex = /^\\((?.+?)\\)(?(?:\\[\\d*?\\])+?)?(?:\\s(?calldata|indexed|memory|storage{1}))?(?:\\s(?[a-zA-Z$_][a-zA-Z0-9$_]*))?$/;\nconst dynamicIntegerRegex = /^u?int$/;\nexport function parseAbiParameter(param, options) {\n // optional namespace cache by `type`\n const parameterCacheKey = getParameterCacheKey(param, options?.type);\n if (parameterCache.has(parameterCacheKey))\n return parameterCache.get(parameterCacheKey);\n const isTuple = isTupleRegex.test(param);\n const match = execTyped(isTuple ? abiParameterWithTupleRegex : abiParameterWithoutTupleRegex, param);\n if (!match)\n throw new InvalidParameterError({ param });\n if (match.name && isSolidityKeyword(match.name))\n throw new SolidityProtectedKeywordError({ param, name: match.name });\n const name = match.name ? { name: match.name } : {};\n const indexed = match.modifier === 'indexed' ? { indexed: true } : {};\n const structs = options?.structs ?? {};\n let type;\n let components = {};\n if (isTuple) {\n type = 'tuple';\n const params = splitParameters(match.type);\n const components_ = [];\n const length = params.length;\n for (let i = 0; i < length; i++) {\n // remove `modifiers` from `options` to prevent from being added to tuple components\n components_.push(parseAbiParameter(params[i], { structs }));\n }\n components = { components: components_ };\n }\n else if (match.type in structs) {\n type = 'tuple';\n components = { components: structs[match.type] };\n }\n else if (dynamicIntegerRegex.test(match.type)) {\n type = `${match.type}256`;\n }\n else {\n type = match.type;\n if (!(options?.type === 'struct') && !isSolidityType(type))\n throw new UnknownSolidityTypeError({ type });\n }\n if (match.modifier) {\n // Check if modifier exists, but is not allowed (e.g. `indexed` in `functionModifiers`)\n if (!options?.modifiers?.has?.(match.modifier))\n throw new InvalidModifierError({\n param,\n type: options?.type,\n modifier: match.modifier,\n });\n // Check if resolved `type` is valid if there is a function modifier\n if (functionModifiers.has(match.modifier) &&\n !isValidDataLocation(type, !!match.array))\n throw new InvalidFunctionModifierError({\n param,\n type: options?.type,\n modifier: match.modifier,\n });\n }\n const abiParameter = {\n type: `${type}${match.array ?? ''}`,\n ...name,\n ...indexed,\n ...components,\n };\n parameterCache.set(parameterCacheKey, abiParameter);\n return abiParameter;\n}\n// s/o latika for this\nexport function splitParameters(params, result = [], current = '', depth = 0) {\n const length = params.trim().length;\n // biome-ignore lint/correctness/noUnreachable: recursive\n for (let i = 0; i < length; i++) {\n const char = params[i];\n const tail = params.slice(i + 1);\n switch (char) {\n case ',':\n return depth === 0\n ? splitParameters(tail, [...result, current.trim()])\n : splitParameters(tail, result, `${current}${char}`, depth);\n case '(':\n return splitParameters(tail, result, `${current}${char}`, depth + 1);\n case ')':\n return splitParameters(tail, result, `${current}${char}`, depth - 1);\n default:\n return splitParameters(tail, result, `${current}${char}`, depth);\n }\n }\n if (current === '')\n return result;\n if (depth !== 0)\n throw new InvalidParenthesisError({ current, depth });\n result.push(current.trim());\n return result;\n}\nexport function isSolidityType(type) {\n return (type === 'address' ||\n type === 'bool' ||\n type === 'function' ||\n type === 'string' ||\n bytesRegex.test(type) ||\n integerRegex.test(type));\n}\nconst protectedKeywordsRegex = /^(?:after|alias|anonymous|apply|auto|byte|calldata|case|catch|constant|copyof|default|defined|error|event|external|false|final|function|immutable|implements|in|indexed|inline|internal|let|mapping|match|memory|mutable|null|of|override|partial|private|promise|public|pure|reference|relocatable|return|returns|sizeof|static|storage|struct|super|supports|switch|this|true|try|typedef|typeof|var|view|virtual)$/;\n/** @internal */\nexport function isSolidityKeyword(name) {\n return (name === 'address' ||\n name === 'bool' ||\n name === 'function' ||\n name === 'string' ||\n name === 'tuple' ||\n bytesRegex.test(name) ||\n integerRegex.test(name) ||\n protectedKeywordsRegex.test(name));\n}\n/** @internal */\nexport function isValidDataLocation(type, isArray) {\n return isArray || type === 'bytes' || type === 'string' || type === 'tuple';\n}\n//# sourceMappingURL=utils.js.map","import { execTyped, isTupleRegex } from '../../regex.js';\nimport { UnknownTypeError } from '../errors/abiItem.js';\nimport { InvalidAbiTypeParameterError } from '../errors/abiParameter.js';\nimport { InvalidSignatureError, InvalidStructSignatureError, } from '../errors/signature.js';\nimport { CircularReferenceError } from '../errors/struct.js';\nimport { execStructSignature, isStructSignature } from './signatures.js';\nimport { isSolidityType, parseAbiParameter } from './utils.js';\nexport function parseStructs(signatures) {\n // Create \"shallow\" version of each struct (and filter out non-structs or invalid structs)\n const shallowStructs = {};\n const signaturesLength = signatures.length;\n for (let i = 0; i < signaturesLength; i++) {\n const signature = signatures[i];\n if (!isStructSignature(signature))\n continue;\n const match = execStructSignature(signature);\n if (!match)\n throw new InvalidSignatureError({ signature, type: 'struct' });\n const properties = match.properties.split(';');\n const components = [];\n const propertiesLength = properties.length;\n for (let k = 0; k < propertiesLength; k++) {\n const property = properties[k];\n const trimmed = property.trim();\n if (!trimmed)\n continue;\n const abiParameter = parseAbiParameter(trimmed, {\n type: 'struct',\n });\n components.push(abiParameter);\n }\n if (!components.length)\n throw new InvalidStructSignatureError({ signature });\n shallowStructs[match.name] = components;\n }\n // Resolve nested structs inside each parameter\n const resolvedStructs = {};\n const entries = Object.entries(shallowStructs);\n const entriesLength = entries.length;\n for (let i = 0; i < entriesLength; i++) {\n const [name, parameters] = entries[i];\n resolvedStructs[name] = resolveStructs(parameters, shallowStructs);\n }\n return resolvedStructs;\n}\nconst typeWithoutTupleRegex = /^(?[a-zA-Z$_][a-zA-Z0-9$_]*)(?(?:\\[\\d*?\\])+?)?$/;\nfunction resolveStructs(abiParameters, structs, ancestors = new Set()) {\n const components = [];\n const length = abiParameters.length;\n for (let i = 0; i < length; i++) {\n const abiParameter = abiParameters[i];\n const isTuple = isTupleRegex.test(abiParameter.type);\n if (isTuple)\n components.push(abiParameter);\n else {\n const match = execTyped(typeWithoutTupleRegex, abiParameter.type);\n if (!match?.type)\n throw new InvalidAbiTypeParameterError({ abiParameter });\n const { array, type } = match;\n if (type in structs) {\n if (ancestors.has(type))\n throw new CircularReferenceError({ type });\n components.push({\n ...abiParameter,\n type: `tuple${array ?? ''}`,\n components: resolveStructs(structs[type] ?? [], structs, new Set([...ancestors, type])),\n });\n }\n else {\n if (isSolidityType(type))\n components.push(abiParameter);\n else\n throw new UnknownTypeError({ type });\n }\n }\n }\n return components;\n}\n//# sourceMappingURL=structs.js.map","import { isStructSignature } from './runtime/signatures.js';\nimport { parseStructs } from './runtime/structs.js';\nimport { parseSignature } from './runtime/utils.js';\n/**\n * Parses human-readable ABI into JSON {@link Abi}\n *\n * @param signatures - Human-Readable ABI\n * @returns Parsed {@link Abi}\n *\n * @example\n * const abi = parseAbi([\n * // ^? const abi: readonly [{ name: \"balanceOf\"; type: \"function\"; stateMutability:...\n * 'function balanceOf(address owner) view returns (uint256)',\n * 'event Transfer(address indexed from, address indexed to, uint256 amount)',\n * ])\n */\nexport function parseAbi(signatures) {\n const structs = parseStructs(signatures);\n const abi = [];\n const length = signatures.length;\n for (let i = 0; i < length; i++) {\n const signature = signatures[i];\n if (isStructSignature(signature))\n continue;\n abi.push(parseSignature(signature, structs));\n }\n return abi;\n}\n//# sourceMappingURL=parseAbi.js.map","import { parseAbi } from 'abitype';\nimport { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { multicall3Abi } from '../../constants/abis.js';\nimport { aggregate3Signature } from '../../constants/contract.js';\nimport { deploylessCallViaBytecodeBytecode, deploylessCallViaFactoryBytecode, } from '../../constants/contracts.js';\nimport { BaseError } from '../../errors/base.js';\nimport { ChainDoesNotSupportContract, ClientChainNotConfiguredError, } from '../../errors/chain.js';\nimport { CounterfactualDeploymentFailedError, RawContractError, } from '../../errors/contract.js';\nimport { decodeFunctionResult, } from '../../utils/abi/decodeFunctionResult.js';\nimport { encodeDeployData, } from '../../utils/abi/encodeDeployData.js';\nimport { encodeFunctionData, } from '../../utils/abi/encodeFunctionData.js';\nimport { getChainContractAddress, } from '../../utils/chain/getChainContractAddress.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { getCallError, } from '../../utils/errors/getCallError.js';\nimport { extract } from '../../utils/formatters/extract.js';\nimport { formatTransactionRequest, } from '../../utils/formatters/transactionRequest.js';\nimport { createBatchScheduler, } from '../../utils/promise/createBatchScheduler.js';\nimport { serializeStateOverride, } from '../../utils/stateOverride.js';\nimport { assertRequest } from '../../utils/transaction/assertRequest.js';\n/**\n * Executes a new message call immediately without submitting a transaction to the network.\n *\n * - Docs: https://viem.sh/docs/actions/public/call\n * - JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\n *\n * @param client - Client to use\n * @param parameters - {@link CallParameters}\n * @returns The call data. {@link CallReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { call } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const data = await call(client, {\n * account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\n * data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * })\n */\nexport async function call(client, args) {\n const { account: account_ = client.account, batch = Boolean(client.batch?.multicall), blockNumber, blockTag = 'latest', accessList, blobs, code, data: data_, factory, factoryData, gas, gasPrice, maxFeePerBlobGas, maxFeePerGas, maxPriorityFeePerGas, nonce, to, value, stateOverride, ...rest } = args;\n const account = account_ ? parseAccount(account_) : undefined;\n if (code && (factory || factoryData))\n throw new BaseError('Cannot provide both `code` & `factory`/`factoryData` as parameters.');\n if (code && to)\n throw new BaseError('Cannot provide both `code` & `to` as parameters.');\n // Check if the call is deployless via bytecode.\n const deploylessCallViaBytecode = code && data_;\n // Check if the call is deployless via a factory.\n const deploylessCallViaFactory = factory && factoryData && to && data_;\n const deploylessCall = deploylessCallViaBytecode || deploylessCallViaFactory;\n const data = (() => {\n if (deploylessCallViaBytecode)\n return toDeploylessCallViaBytecodeData({\n code,\n data: data_,\n });\n if (deploylessCallViaFactory)\n return toDeploylessCallViaFactoryData({\n data: data_,\n factory,\n factoryData,\n to,\n });\n return data_;\n })();\n try {\n assertRequest(args);\n const blockNumberHex = blockNumber ? numberToHex(blockNumber) : undefined;\n const block = blockNumberHex || blockTag;\n const rpcStateOverride = serializeStateOverride(stateOverride);\n const chainFormat = client.chain?.formatters?.transactionRequest?.format;\n const format = chainFormat || formatTransactionRequest;\n const request = format({\n // Pick out extra data that might exist on the chain's transaction request type.\n ...extract(rest, { format: chainFormat }),\n from: account?.address,\n accessList,\n blobs,\n data,\n gas,\n gasPrice,\n maxFeePerBlobGas,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to: deploylessCall ? undefined : to,\n value,\n });\n if (batch && shouldPerformMulticall({ request }) && !rpcStateOverride) {\n try {\n return await scheduleMulticall(client, {\n ...request,\n blockNumber,\n blockTag,\n });\n }\n catch (err) {\n if (!(err instanceof ClientChainNotConfiguredError) &&\n !(err instanceof ChainDoesNotSupportContract))\n throw err;\n }\n }\n const response = await client.request({\n method: 'eth_call',\n params: rpcStateOverride\n ? [\n request,\n block,\n rpcStateOverride,\n ]\n : [request, block],\n });\n if (response === '0x')\n return { data: undefined };\n return { data: response };\n }\n catch (err) {\n const data = getRevertErrorData(err);\n // Check for CCIP-Read offchain lookup signature.\n const { offchainLookup, offchainLookupSignature } = await import('../../utils/ccip.js');\n if (client.ccipRead !== false &&\n data?.slice(0, 10) === offchainLookupSignature &&\n to)\n return { data: await offchainLookup(client, { data, to }) };\n // Check for counterfactual deployment error.\n if (deploylessCall && data?.slice(0, 10) === '0x101bb98d')\n throw new CounterfactualDeploymentFailedError({ factory });\n throw getCallError(err, {\n ...args,\n account,\n chain: client.chain,\n });\n }\n}\n// We only want to perform a scheduled multicall if:\n// - The request has calldata,\n// - The request has a target address,\n// - The target address is not already the aggregate3 signature,\n// - The request has no other properties (`nonce`, `gas`, etc cannot be sent with a multicall).\nfunction shouldPerformMulticall({ request }) {\n const { data, to, ...request_ } = request;\n if (!data)\n return false;\n if (data.startsWith(aggregate3Signature))\n return false;\n if (!to)\n return false;\n if (Object.values(request_).filter((x) => typeof x !== 'undefined').length > 0)\n return false;\n return true;\n}\nasync function scheduleMulticall(client, args) {\n const { batchSize = 1024, wait = 0 } = typeof client.batch?.multicall === 'object' ? client.batch.multicall : {};\n const { blockNumber, blockTag = 'latest', data, multicallAddress: multicallAddress_, to, } = args;\n let multicallAddress = multicallAddress_;\n if (!multicallAddress) {\n if (!client.chain)\n throw new ClientChainNotConfiguredError();\n multicallAddress = getChainContractAddress({\n blockNumber,\n chain: client.chain,\n contract: 'multicall3',\n });\n }\n const blockNumberHex = blockNumber ? numberToHex(blockNumber) : undefined;\n const block = blockNumberHex || blockTag;\n const { schedule } = createBatchScheduler({\n id: `${client.uid}.${block}`,\n wait,\n shouldSplitBatch(args) {\n const size = args.reduce((size, { data }) => size + (data.length - 2), 0);\n return size > batchSize * 2;\n },\n fn: async (requests) => {\n const calls = requests.map((request) => ({\n allowFailure: true,\n callData: request.data,\n target: request.to,\n }));\n const calldata = encodeFunctionData({\n abi: multicall3Abi,\n args: [calls],\n functionName: 'aggregate3',\n });\n const data = await client.request({\n method: 'eth_call',\n params: [\n {\n data: calldata,\n to: multicallAddress,\n },\n block,\n ],\n });\n return decodeFunctionResult({\n abi: multicall3Abi,\n args: [calls],\n functionName: 'aggregate3',\n data: data || '0x',\n });\n },\n });\n const [{ returnData, success }] = await schedule({ data, to });\n if (!success)\n throw new RawContractError({ data: returnData });\n if (returnData === '0x')\n return { data: undefined };\n return { data: returnData };\n}\nfunction toDeploylessCallViaBytecodeData(parameters) {\n const { code, data } = parameters;\n return encodeDeployData({\n abi: parseAbi(['constructor(bytes, bytes)']),\n bytecode: deploylessCallViaBytecodeBytecode,\n args: [code, data],\n });\n}\nfunction toDeploylessCallViaFactoryData(parameters) {\n const { data, factory, factoryData, to } = parameters;\n return encodeDeployData({\n abi: parseAbi(['constructor(address, bytes, address, bytes)']),\n bytecode: deploylessCallViaFactoryBytecode,\n args: [to, data, factory, factoryData],\n });\n}\n/** @internal */\nexport function getRevertErrorData(err) {\n if (!(err instanceof BaseError))\n return undefined;\n const error = err.walk();\n return typeof error?.data === 'object' ? error.data?.data : error.data;\n}\n//# sourceMappingURL=call.js.map","export const aggregate3Signature = '0x82ad56cb';\n//# sourceMappingURL=contract.js.map","import { CallExecutionError, } from '../../errors/contract.js';\nimport { UnknownNodeError } from '../../errors/node.js';\nimport { getNodeError, } from './getNodeError.js';\nexport function getCallError(err, { docsPath, ...args }) {\n const cause = (() => {\n const cause = getNodeError(err, args);\n if (cause instanceof UnknownNodeError)\n return err;\n return cause;\n })();\n return new CallExecutionError(cause, {\n docsPath,\n ...args,\n });\n}\n//# sourceMappingURL=getCallError.js.map","import { BaseFeeScalarError, Eip1559FeesNotSupportedError, } from '../../errors/fee.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { internal_estimateMaxPriorityFeePerGas, } from './estimateMaxPriorityFeePerGas.js';\nimport { getBlock } from './getBlock.js';\nimport { getGasPrice } from './getGasPrice.js';\n/**\n * Returns an estimate for the fees per gas (in wei) for a\n * transaction to be likely included in the next block.\n * Defaults to [`chain.fees.estimateFeesPerGas`](/docs/clients/chains#fees-estimatefeespergas) if set.\n *\n * - Docs: https://viem.sh/docs/actions/public/estimateFeesPerGas\n *\n * @param client - Client to use\n * @param parameters - {@link EstimateFeesPerGasParameters}\n * @returns An estimate (in wei) for the fees per gas. {@link EstimateFeesPerGasReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { estimateFeesPerGas } from 'viem/actions'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const maxPriorityFeePerGas = await estimateFeesPerGas(client)\n * // { maxFeePerGas: ..., maxPriorityFeePerGas: ... }\n */\nexport async function estimateFeesPerGas(client, args) {\n return internal_estimateFeesPerGas(client, args);\n}\nexport async function internal_estimateFeesPerGas(client, args) {\n const { block: block_, chain = client.chain, request, type = 'eip1559', } = args || {};\n const baseFeeMultiplier = await (async () => {\n if (typeof chain?.fees?.baseFeeMultiplier === 'function')\n return chain.fees.baseFeeMultiplier({\n block: block_,\n client,\n request,\n });\n return chain?.fees?.baseFeeMultiplier ?? 1.2;\n })();\n if (baseFeeMultiplier < 1)\n throw new BaseFeeScalarError();\n const decimals = baseFeeMultiplier.toString().split('.')[1]?.length ?? 0;\n const denominator = 10 ** decimals;\n const multiply = (base) => (base * BigInt(Math.ceil(baseFeeMultiplier * denominator))) /\n BigInt(denominator);\n const block = block_\n ? block_\n : await getAction(client, getBlock, 'getBlock')({});\n if (typeof chain?.fees?.estimateFeesPerGas === 'function') {\n const fees = (await chain.fees.estimateFeesPerGas({\n block: block_,\n client,\n multiply,\n request,\n type,\n }));\n if (fees !== null)\n return fees;\n }\n if (type === 'eip1559') {\n if (typeof block.baseFeePerGas !== 'bigint')\n throw new Eip1559FeesNotSupportedError();\n const maxPriorityFeePerGas = typeof request?.maxPriorityFeePerGas === 'bigint'\n ? request.maxPriorityFeePerGas\n : await internal_estimateMaxPriorityFeePerGas(client, {\n block: block,\n chain,\n request,\n });\n const baseFeePerGas = multiply(block.baseFeePerGas);\n const maxFeePerGas = request?.maxFeePerGas ?? baseFeePerGas + maxPriorityFeePerGas;\n return {\n maxFeePerGas,\n maxPriorityFeePerGas,\n };\n }\n const gasPrice = request?.gasPrice ??\n multiply(await getAction(client, getGasPrice, 'getGasPrice')({}));\n return {\n gasPrice,\n };\n}\n//# sourceMappingURL=estimateFeesPerGas.js.map","import { formatEther } from '../utils/unit/formatEther.js';\nimport { formatGwei } from '../utils/unit/formatGwei.js';\nimport { BaseError } from './base.js';\nimport { prettyPrint } from './transaction.js';\nexport class EstimateGasExecutionError extends BaseError {\n constructor(cause, { account, docsPath, chain, data, gas, gasPrice, maxFeePerGas, maxPriorityFeePerGas, nonce, to, value, }) {\n const prettyArgs = prettyPrint({\n from: account?.address,\n to,\n value: typeof value !== 'undefined' &&\n `${formatEther(value)} ${chain?.nativeCurrency?.symbol || 'ETH'}`,\n data,\n gas,\n gasPrice: typeof gasPrice !== 'undefined' && `${formatGwei(gasPrice)} gwei`,\n maxFeePerGas: typeof maxFeePerGas !== 'undefined' &&\n `${formatGwei(maxFeePerGas)} gwei`,\n maxPriorityFeePerGas: typeof maxPriorityFeePerGas !== 'undefined' &&\n `${formatGwei(maxPriorityFeePerGas)} gwei`,\n nonce,\n });\n super(cause.shortMessage, {\n cause,\n docsPath,\n metaMessages: [\n ...(cause.metaMessages ? [...cause.metaMessages, ' '] : []),\n 'Estimate Gas Arguments:',\n prettyArgs,\n ].filter(Boolean),\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: 'EstimateGasExecutionError'\n });\n this.cause = cause;\n }\n}\n//# sourceMappingURL=estimateGas.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { getEstimateGasError, } from '../../utils/errors/getEstimateGasError.js';\nimport { extract } from '../../utils/formatters/extract.js';\nimport { formatTransactionRequest, } from '../../utils/formatters/transactionRequest.js';\nimport { serializeStateOverride } from '../../utils/stateOverride.js';\nimport { assertRequest, } from '../../utils/transaction/assertRequest.js';\nimport { prepareTransactionRequest, } from '../wallet/prepareTransactionRequest.js';\n/**\n * Estimates the gas necessary to complete a transaction without submitting it to the network.\n *\n * - Docs: https://viem.sh/docs/actions/public/estimateGas\n * - JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\n *\n * @param client - Client to use\n * @param parameters - {@link EstimateGasParameters}\n * @returns The gas estimate (in wei). {@link EstimateGasReturnType}\n *\n * @example\n * import { createPublicClient, http, parseEther } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { estimateGas } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const gasEstimate = await estimateGas(client, {\n * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * value: parseEther('1'),\n * })\n */\nexport async function estimateGas(client, args) {\n const account_ = args.account ?? client.account;\n const account = account_ ? parseAccount(account_) : undefined;\n try {\n const { accessList, blobs, blobVersionedHashes, blockNumber, blockTag, data, gas, gasPrice, maxFeePerBlobGas, maxFeePerGas, maxPriorityFeePerGas, nonce, to, value, stateOverride, ...rest } = (await prepareTransactionRequest(client, {\n ...args,\n parameters: \n // Some RPC Providers do not compute versioned hashes from blobs. We will need\n // to compute them.\n account?.type === 'local' ? undefined : ['blobVersionedHashes'],\n }));\n const blockNumberHex = blockNumber ? numberToHex(blockNumber) : undefined;\n const block = blockNumberHex || blockTag;\n const rpcStateOverride = serializeStateOverride(stateOverride);\n assertRequest(args);\n const chainFormat = client.chain?.formatters?.transactionRequest?.format;\n const format = chainFormat || formatTransactionRequest;\n const request = format({\n // Pick out extra data that might exist on the chain's transaction request type.\n ...extract(rest, { format: chainFormat }),\n from: account?.address,\n accessList,\n blobs,\n blobVersionedHashes,\n data,\n gas,\n gasPrice,\n maxFeePerBlobGas,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value,\n });\n const balance = await client.request({\n method: 'eth_estimateGas',\n params: rpcStateOverride\n ? [request, block ?? 'latest', rpcStateOverride]\n : block\n ? [request, block]\n : [request],\n });\n return BigInt(balance);\n }\n catch (err) {\n throw getEstimateGasError(err, {\n ...args,\n account,\n chain: client.chain,\n });\n }\n}\n//# sourceMappingURL=estimateGas.js.map","import { EstimateGasExecutionError, } from '../../errors/estimateGas.js';\nimport { UnknownNodeError } from '../../errors/node.js';\nimport { getNodeError, } from './getNodeError.js';\nexport function getEstimateGasError(err, { docsPath, ...args }) {\n const cause = (() => {\n const cause = getNodeError(err, args);\n if (cause instanceof UnknownNodeError)\n return err;\n return cause;\n })();\n return new EstimateGasExecutionError(cause, {\n docsPath,\n ...args,\n });\n}\n//# sourceMappingURL=getEstimateGasError.js.map","import { Eip1559FeesNotSupportedError, } from '../../errors/fee.js';\nimport { hexToBigInt, } from '../../utils/encoding/fromHex.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { getBlock } from './getBlock.js';\nimport { getGasPrice } from './getGasPrice.js';\n/**\n * Returns an estimate for the max priority fee per gas (in wei) for a\n * transaction to be likely included in the next block.\n * Defaults to [`chain.fees.defaultPriorityFee`](/docs/clients/chains#fees-defaultpriorityfee) if set.\n *\n * - Docs: https://viem.sh/docs/actions/public/estimateMaxPriorityFeePerGas\n *\n * @param client - Client to use\n * @returns An estimate (in wei) for the max priority fee per gas. {@link EstimateMaxPriorityFeePerGasReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { estimateMaxPriorityFeePerGas } from 'viem/actions'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const maxPriorityFeePerGas = await estimateMaxPriorityFeePerGas(client)\n * // 10000000n\n */\nexport async function estimateMaxPriorityFeePerGas(client, args) {\n return internal_estimateMaxPriorityFeePerGas(client, args);\n}\nexport async function internal_estimateMaxPriorityFeePerGas(client, args) {\n const { block: block_, chain = client.chain, request } = args || {};\n if (typeof chain?.fees?.defaultPriorityFee === 'function') {\n const block = block_ || (await getAction(client, getBlock, 'getBlock')({}));\n return chain.fees.defaultPriorityFee({\n block,\n client,\n request,\n });\n }\n if (typeof chain?.fees?.defaultPriorityFee !== 'undefined')\n return chain?.fees?.defaultPriorityFee;\n try {\n const maxPriorityFeePerGasHex = await client.request({\n method: 'eth_maxPriorityFeePerGas',\n });\n return hexToBigInt(maxPriorityFeePerGasHex);\n }\n catch {\n // If the RPC Provider does not support `eth_maxPriorityFeePerGas`\n // fall back to calculating it manually via `gasPrice - baseFeePerGas`.\n // See: https://github.com/ethereum/pm/issues/328#:~:text=eth_maxPriorityFeePerGas%20after%20London%20will%20effectively%20return%20eth_gasPrice%20%2D%20baseFee\n const [block, gasPrice] = await Promise.all([\n block_\n ? Promise.resolve(block_)\n : getAction(client, getBlock, 'getBlock')({}),\n getAction(client, getGasPrice, 'getGasPrice')({}),\n ]);\n if (typeof block.baseFeePerGas !== 'bigint')\n throw new Eip1559FeesNotSupportedError();\n const maxPriorityFeePerGas = gasPrice - block.baseFeePerGas;\n if (maxPriorityFeePerGas < 0n)\n return 0n;\n return maxPriorityFeePerGas;\n }\n}\n//# sourceMappingURL=estimateMaxPriorityFeePerGas.js.map","import { BlockNotFoundError, } from '../../errors/block.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { formatBlock, } from '../../utils/formatters/block.js';\n/**\n * Returns information about a block at a block number, hash, or tag.\n *\n * - Docs: https://viem.sh/docs/actions/public/getBlock\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks/fetching-blocks\n * - JSON-RPC Methods:\n * - Calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbynumber) for `blockNumber` & `blockTag`.\n * - Calls [`eth_getBlockByHash`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbyhash) for `blockHash`.\n *\n * @param client - Client to use\n * @param parameters - {@link GetBlockParameters}\n * @returns Information about the block. {@link GetBlockReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getBlock } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const block = await getBlock(client)\n */\nexport async function getBlock(client, { blockHash, blockNumber, blockTag: blockTag_, includeTransactions: includeTransactions_, } = {}) {\n const blockTag = blockTag_ ?? 'latest';\n const includeTransactions = includeTransactions_ ?? false;\n const blockNumberHex = blockNumber !== undefined ? numberToHex(blockNumber) : undefined;\n let block = null;\n if (blockHash) {\n block = await client.request({\n method: 'eth_getBlockByHash',\n params: [blockHash, includeTransactions],\n }, { dedupe: true });\n }\n else {\n block = await client.request({\n method: 'eth_getBlockByNumber',\n params: [blockNumberHex || blockTag, includeTransactions],\n }, { dedupe: Boolean(blockNumberHex) });\n }\n if (!block)\n throw new BlockNotFoundError({ blockHash, blockNumber });\n const format = client.chain?.formatters?.block?.format || formatBlock;\n return format(block);\n}\n//# sourceMappingURL=getBlock.js.map","import { hexToNumber, } from '../../utils/encoding/fromHex.js';\n/**\n * Returns the chain ID associated with the current network.\n *\n * - Docs: https://viem.sh/docs/actions/public/getChainId\n * - JSON-RPC Methods: [`eth_chainId`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_chainid)\n *\n * @param client - Client to use\n * @returns The current chain ID. {@link GetChainIdReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getChainId } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const chainId = await getChainId(client)\n * // 1\n */\nexport async function getChainId(client) {\n const chainIdHex = await client.request({\n method: 'eth_chainId',\n }, { dedupe: true });\n return hexToNumber(chainIdHex);\n}\n//# sourceMappingURL=getChainId.js.map","/**\n * Returns the current price of gas (in wei).\n *\n * - Docs: https://viem.sh/docs/actions/public/getGasPrice\n * - JSON-RPC Methods: [`eth_gasPrice`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_gasprice)\n *\n * @param client - Client to use\n * @returns The gas price (in wei). {@link GetGasPriceReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getGasPrice } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const gasPrice = await getGasPrice(client)\n */\nexport async function getGasPrice(client) {\n const gasPrice = await client.request({\n method: 'eth_gasPrice',\n });\n return BigInt(gasPrice);\n}\n//# sourceMappingURL=getGasPrice.js.map","import { hexToNumber, } from '../../utils/encoding/fromHex.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\n/**\n * Returns the number of [Transactions](https://viem.sh/docs/glossary/terms#transaction) an Account has broadcast / sent.\n *\n * - Docs: https://viem.sh/docs/actions/public/getTransactionCount\n * - JSON-RPC Methods: [`eth_getTransactionCount`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_gettransactioncount)\n *\n * @param client - Client to use\n * @param parameters - {@link GetTransactionCountParameters}\n * @returns The number of transactions an account has sent. {@link GetTransactionCountReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getTransactionCount } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const transactionCount = await getTransactionCount(client, {\n * address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * })\n */\nexport async function getTransactionCount(client, { address, blockTag = 'latest', blockNumber }) {\n const count = await client.request({\n method: 'eth_getTransactionCount',\n params: [address, blockNumber ? numberToHex(blockNumber) : blockTag],\n }, { dedupe: Boolean(blockNumber) });\n return hexToNumber(count);\n}\n//# sourceMappingURL=getTransactionCount.js.map","import { hexToBytes } from '../encoding/toBytes.js';\nimport { bytesToHex } from '../encoding/toHex.js';\n/**\n * Compute commitments from a list of blobs.\n *\n * @example\n * ```ts\n * import { blobsToCommitments, toBlobs } from 'viem'\n * import { kzg } from './kzg'\n *\n * const blobs = toBlobs({ data: '0x1234' })\n * const commitments = blobsToCommitments({ blobs, kzg })\n * ```\n */\nexport function blobsToCommitments(parameters) {\n const { kzg } = parameters;\n const to = parameters.to ?? (typeof parameters.blobs[0] === 'string' ? 'hex' : 'bytes');\n const blobs = (typeof parameters.blobs[0] === 'string'\n ? parameters.blobs.map((x) => hexToBytes(x))\n : parameters.blobs);\n const commitments = [];\n for (const blob of blobs)\n commitments.push(Uint8Array.from(kzg.blobToKzgCommitment(blob)));\n return (to === 'bytes'\n ? commitments\n : commitments.map((x) => bytesToHex(x)));\n}\n//# sourceMappingURL=blobsToCommitments.js.map","import { hexToBytes } from '../encoding/toBytes.js';\nimport { bytesToHex } from '../encoding/toHex.js';\n/**\n * Compute the proofs for a list of blobs and their commitments.\n *\n * @example\n * ```ts\n * import {\n * blobsToCommitments,\n * toBlobs\n * } from 'viem'\n * import { kzg } from './kzg'\n *\n * const blobs = toBlobs({ data: '0x1234' })\n * const commitments = blobsToCommitments({ blobs, kzg })\n * const proofs = blobsToProofs({ blobs, commitments, kzg })\n * ```\n */\nexport function blobsToProofs(parameters) {\n const { kzg } = parameters;\n const to = parameters.to ?? (typeof parameters.blobs[0] === 'string' ? 'hex' : 'bytes');\n const blobs = (typeof parameters.blobs[0] === 'string'\n ? parameters.blobs.map((x) => hexToBytes(x))\n : parameters.blobs);\n const commitments = (typeof parameters.commitments[0] === 'string'\n ? parameters.commitments.map((x) => hexToBytes(x))\n : parameters.commitments);\n const proofs = [];\n for (let i = 0; i < blobs.length; i++) {\n const blob = blobs[i];\n const commitment = commitments[i];\n proofs.push(Uint8Array.from(kzg.computeBlobKzgProof(blob, commitment)));\n }\n return (to === 'bytes'\n ? proofs\n : proofs.map((x) => bytesToHex(x)));\n}\n//# sourceMappingURL=blobsToProofs.js.map","import { exists, output } from './_assert.js';\nimport { Hash, createView, toBytes } from './utils.js';\n// Polyfill for Safari 14\nfunction 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// Base SHA2 class (RFC 6234)\nexport class SHA2 extends Hash {\n constructor(blockLen, outputLen, padOffset, isLE) {\n super();\n this.blockLen = blockLen;\n this.outputLen = outputLen;\n this.padOffset = padOffset;\n this.isLE = isLE;\n this.finished = false;\n this.length = 0;\n this.pos = 0;\n this.destroyed = false;\n this.buffer = new Uint8Array(blockLen);\n this.view = createView(this.buffer);\n }\n update(data) {\n exists(this);\n const { view, buffer, blockLen } = this;\n data = toBytes(data);\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // 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 exists(this);\n output(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 this.buffer.subarray(pos).fill(0);\n // we have less than padOffset left in buffer, so we cannot put length in 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.length = length;\n to.pos = pos;\n to.finished = finished;\n to.destroyed = destroyed;\n if (length % blockLen)\n to.buffer.set(buffer);\n return to;\n }\n}\n//# sourceMappingURL=_sha2.js.map","import { SHA2 } from './_sha2.js';\nimport { rotr, wrapConstructor } from './utils.js';\n// SHA2-256 need to try 2^128 hashes to execute birthday attack.\n// BTC network is doing 2^67 hashes/sec as per early 2023.\n// Choice: a ? b : c\nconst Chi = (a, b, c) => (a & b) ^ (~a & c);\n// Majority function, true if any two inpust is true\nconst Maj = (a, b, c) => (a & b) ^ (a & c) ^ (b & c);\n// Round constants:\n// first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311)\n// prettier-ignore\nconst SHA256_K = /* @__PURE__ */ new Uint32Array([\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// Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n// prettier-ignore\nconst IV = /* @__PURE__ */ new Uint32Array([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n]);\n// Temporary buffer, not used to store anything between runs\n// Named this way because it matches specification.\nconst SHA256_W = /* @__PURE__ */ new Uint32Array(64);\nclass SHA256 extends SHA2 {\n constructor() {\n super(64, 32, 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 = IV[0] | 0;\n this.B = IV[1] | 0;\n this.C = IV[2] | 0;\n this.D = IV[3] | 0;\n this.E = IV[4] | 0;\n this.F = IV[5] | 0;\n this.G = IV[6] | 0;\n this.H = 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 SHA256_W.fill(0);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n this.buffer.fill(0);\n }\n}\n// Constants from https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf\nclass SHA224 extends SHA256 {\n constructor() {\n super();\n this.A = 0xc1059ed8 | 0;\n this.B = 0x367cd507 | 0;\n this.C = 0x3070dd17 | 0;\n this.D = 0xf70e5939 | 0;\n this.E = 0xffc00b31 | 0;\n this.F = 0x68581511 | 0;\n this.G = 0x64f98fa7 | 0;\n this.H = 0xbefa4fa4 | 0;\n this.outputLen = 28;\n }\n}\n/**\n * SHA2-256 hash function\n * @param message - data that would be hashed\n */\nexport const sha256 = /* @__PURE__ */ wrapConstructor(() => new SHA256());\nexport const sha224 = /* @__PURE__ */ wrapConstructor(() => new SHA224());\n//# sourceMappingURL=sha256.js.map","import { versionedHashVersionKzg } from '../constants/kzg.js';\nimport { BaseError } from './base.js';\nexport class BlobSizeTooLargeError extends BaseError {\n constructor({ maxSize, size }) {\n super('Blob size is too large.', {\n metaMessages: [`Max: ${maxSize} bytes`, `Given: ${size} bytes`],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'BlobSizeTooLargeError'\n });\n }\n}\nexport class EmptyBlobError extends BaseError {\n constructor() {\n super('Blob data must not be empty.');\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'EmptyBlobError'\n });\n }\n}\nexport class InvalidVersionedHashSizeError extends BaseError {\n constructor({ hash, size, }) {\n super(`Versioned hash \"${hash}\" size is invalid.`, {\n metaMessages: ['Expected: 32', `Received: ${size}`],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidVersionedHashSizeError'\n });\n }\n}\nexport class InvalidVersionedHashVersionError extends BaseError {\n constructor({ hash, version, }) {\n super(`Versioned hash \"${hash}\" version is invalid.`, {\n metaMessages: [\n `Expected: ${versionedHashVersionKzg}`,\n `Received: ${version}`,\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidVersionedHashVersionError'\n });\n }\n}\n//# sourceMappingURL=blob.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { internal_estimateFeesPerGas, } from '../../actions/public/estimateFeesPerGas.js';\nimport { estimateGas, } from '../../actions/public/estimateGas.js';\nimport { getBlock as getBlock_, } from '../../actions/public/getBlock.js';\nimport { getTransactionCount, } from '../../actions/public/getTransactionCount.js';\nimport { Eip1559FeesNotSupportedError, MaxFeePerGasTooLowError, } from '../../errors/fee.js';\nimport { blobsToCommitments } from '../../utils/blob/blobsToCommitments.js';\nimport { blobsToProofs } from '../../utils/blob/blobsToProofs.js';\nimport { commitmentsToVersionedHashes } from '../../utils/blob/commitmentsToVersionedHashes.js';\nimport { toBlobSidecars } from '../../utils/blob/toBlobSidecars.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { assertRequest, } from '../../utils/transaction/assertRequest.js';\nimport { getTransactionType, } from '../../utils/transaction/getTransactionType.js';\nimport { getChainId as getChainId_ } from '../public/getChainId.js';\nexport const defaultParameters = [\n 'blobVersionedHashes',\n 'chainId',\n 'fees',\n 'gas',\n 'nonce',\n 'type',\n];\n/**\n * Prepares a transaction request for signing.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\n *\n * @param args - {@link PrepareTransactionRequestParameters}\n * @returns The transaction request. {@link PrepareTransactionRequestReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { prepareTransactionRequest } from 'viem/actions'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const request = await prepareTransactionRequest(client, {\n * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * to: '0x0000000000000000000000000000000000000000',\n * value: 1n,\n * })\n *\n * @example\n * // Account Hoisting\n * import { createWalletClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { prepareTransactionRequest } from 'viem/actions'\n *\n * const client = createWalletClient({\n * account: privateKeyToAccount('0x…'),\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const request = await prepareTransactionRequest(client, {\n * to: '0x0000000000000000000000000000000000000000',\n * value: 1n,\n * })\n */\nexport async function prepareTransactionRequest(client, args) {\n const { account: account_ = client.account, blobs, chain, gas, kzg, nonce, parameters = defaultParameters, type, } = args;\n const account = account_ ? parseAccount(account_) : undefined;\n const request = { ...args, ...(account ? { from: account?.address } : {}) };\n let block;\n async function getBlock() {\n if (block)\n return block;\n block = await getAction(client, getBlock_, 'getBlock')({ blockTag: 'latest' });\n return block;\n }\n let chainId;\n async function getChainId() {\n if (chainId)\n return chainId;\n if (chain)\n return chain.id;\n if (typeof args.chainId !== 'undefined')\n return args.chainId;\n const chainId_ = await getAction(client, getChainId_, 'getChainId')({});\n chainId = chainId_;\n return chainId;\n }\n if ((parameters.includes('blobVersionedHashes') ||\n parameters.includes('sidecars')) &&\n blobs &&\n kzg) {\n const commitments = blobsToCommitments({ blobs, kzg });\n if (parameters.includes('blobVersionedHashes')) {\n const versionedHashes = commitmentsToVersionedHashes({\n commitments,\n to: 'hex',\n });\n request.blobVersionedHashes = versionedHashes;\n }\n if (parameters.includes('sidecars')) {\n const proofs = blobsToProofs({ blobs, commitments, kzg });\n const sidecars = toBlobSidecars({\n blobs,\n commitments,\n proofs,\n to: 'hex',\n });\n request.sidecars = sidecars;\n }\n }\n if (parameters.includes('chainId'))\n request.chainId = await getChainId();\n if (parameters.includes('nonce') && typeof nonce === 'undefined' && account) {\n if (account.nonceManager) {\n const chainId = await getChainId();\n request.nonce = await account.nonceManager.consume({\n address: account.address,\n chainId,\n client,\n });\n }\n else {\n request.nonce = await getAction(client, getTransactionCount, 'getTransactionCount')({\n address: account.address,\n blockTag: 'pending',\n });\n }\n }\n if ((parameters.includes('fees') || parameters.includes('type')) &&\n typeof type === 'undefined') {\n try {\n request.type = getTransactionType(request);\n }\n catch {\n // infer type from block\n const block = await getBlock();\n request.type =\n typeof block?.baseFeePerGas === 'bigint' ? 'eip1559' : 'legacy';\n }\n }\n if (parameters.includes('fees')) {\n // TODO(4844): derive blob base fees once https://github.com/ethereum/execution-apis/pull/486 is merged.\n if (request.type !== 'legacy' && request.type !== 'eip2930') {\n // EIP-1559 fees\n if (typeof request.maxFeePerGas === 'undefined' ||\n typeof request.maxPriorityFeePerGas === 'undefined') {\n const block = await getBlock();\n const { maxFeePerGas, maxPriorityFeePerGas } = await internal_estimateFeesPerGas(client, {\n block: block,\n chain,\n request: request,\n });\n if (typeof args.maxPriorityFeePerGas === 'undefined' &&\n args.maxFeePerGas &&\n args.maxFeePerGas < maxPriorityFeePerGas)\n throw new MaxFeePerGasTooLowError({\n maxPriorityFeePerGas,\n });\n request.maxPriorityFeePerGas = maxPriorityFeePerGas;\n request.maxFeePerGas = maxFeePerGas;\n }\n }\n else {\n // Legacy fees\n if (typeof args.maxFeePerGas !== 'undefined' ||\n typeof args.maxPriorityFeePerGas !== 'undefined')\n throw new Eip1559FeesNotSupportedError();\n const block = await getBlock();\n const { gasPrice: gasPrice_ } = await internal_estimateFeesPerGas(client, {\n block: block,\n chain,\n request: request,\n type: 'legacy',\n });\n request.gasPrice = gasPrice_;\n }\n }\n if (parameters.includes('gas') && typeof gas === 'undefined')\n request.gas = await getAction(client, estimateGas, 'estimateGas')({\n ...request,\n account: account\n ? { address: account.address, type: 'json-rpc' }\n : undefined,\n });\n assertRequest(request);\n delete request.parameters;\n return request;\n}\n//# sourceMappingURL=prepareTransactionRequest.js.map","import { commitmentToVersionedHash, } from './commitmentToVersionedHash.js';\n/**\n * Transform a list of commitments to their versioned hashes.\n *\n * @example\n * ```ts\n * import {\n * blobsToCommitments,\n * commitmentsToVersionedHashes,\n * toBlobs\n * } from 'viem'\n * import { kzg } from './kzg'\n *\n * const blobs = toBlobs({ data: '0x1234' })\n * const commitments = blobsToCommitments({ blobs, kzg })\n * const versionedHashes = commitmentsToVersionedHashes({ commitments })\n * ```\n */\nexport function commitmentsToVersionedHashes(parameters) {\n const { commitments, version } = parameters;\n const to = parameters.to ?? (typeof commitments[0] === 'string' ? 'hex' : 'bytes');\n const hashes = [];\n for (const commitment of commitments) {\n hashes.push(commitmentToVersionedHash({\n commitment,\n to,\n version,\n }));\n }\n return hashes;\n}\n//# sourceMappingURL=commitmentsToVersionedHashes.js.map","import { bytesToHex } from '../encoding/toHex.js';\nimport { sha256 } from '../hash/sha256.js';\n/**\n * Transform a commitment to it's versioned hash.\n *\n * @example\n * ```ts\n * import {\n * blobsToCommitments,\n * commitmentToVersionedHash,\n * toBlobs\n * } from 'viem'\n * import { kzg } from './kzg'\n *\n * const blobs = toBlobs({ data: '0x1234' })\n * const [commitment] = blobsToCommitments({ blobs, kzg })\n * const versionedHash = commitmentToVersionedHash({ commitment })\n * ```\n */\nexport function commitmentToVersionedHash(parameters) {\n const { commitment, version = 1 } = parameters;\n const to = parameters.to ?? (typeof commitment === 'string' ? 'hex' : 'bytes');\n const versionedHash = sha256(commitment, 'bytes');\n versionedHash.set([version], 0);\n return (to === 'bytes' ? versionedHash : bytesToHex(versionedHash));\n}\n//# sourceMappingURL=commitmentToVersionedHash.js.map","import { sha256 as noble_sha256 } from '@noble/hashes/sha256';\nimport { isHex } from '../data/isHex.js';\nimport { toBytes } from '../encoding/toBytes.js';\nimport { toHex } from '../encoding/toHex.js';\nexport function sha256(value, to_) {\n const to = to_ || 'hex';\n const bytes = noble_sha256(isHex(value, { strict: false }) ? toBytes(value) : value);\n if (to === 'bytes')\n return bytes;\n return toHex(bytes);\n}\n//# sourceMappingURL=sha256.js.map","import { blobsToCommitments, } from './blobsToCommitments.js';\nimport { blobsToProofs } from './blobsToProofs.js';\nimport { toBlobs } from './toBlobs.js';\n/**\n * Transforms arbitrary data (or blobs, commitments, & proofs) into a sidecar array.\n *\n * @example\n * ```ts\n * import { toBlobSidecars, stringToHex } from 'viem'\n *\n * const sidecars = toBlobSidecars({ data: stringToHex('hello world') })\n * ```\n *\n * @example\n * ```ts\n * import {\n * blobsToCommitments,\n * toBlobs,\n * blobsToProofs,\n * toBlobSidecars,\n * stringToHex\n * } from 'viem'\n *\n * const blobs = toBlobs({ data: stringToHex('hello world') })\n * const commitments = blobsToCommitments({ blobs, kzg })\n * const proofs = blobsToProofs({ blobs, commitments, kzg })\n *\n * const sidecars = toBlobSidecars({ blobs, commitments, proofs })\n * ```\n */\nexport function toBlobSidecars(parameters) {\n const { data, kzg, to } = parameters;\n const blobs = parameters.blobs ?? toBlobs({ data: data, to });\n const commitments = parameters.commitments ?? blobsToCommitments({ blobs, kzg: kzg, to });\n const proofs = parameters.proofs ?? blobsToProofs({ blobs, commitments, kzg: kzg, to });\n const sidecars = [];\n for (let i = 0; i < blobs.length; i++)\n sidecars.push({\n blob: blobs[i],\n commitment: commitments[i],\n proof: proofs[i],\n });\n return sidecars;\n}\n//# sourceMappingURL=toBlobSidecars.js.map","import { bytesPerBlob, bytesPerFieldElement, fieldElementsPerBlob, maxBytesPerTransaction, } from '../../constants/blob.js';\nimport { BlobSizeTooLargeError, EmptyBlobError, } from '../../errors/blob.js';\nimport { createCursor } from '../cursor.js';\nimport { size } from '../data/size.js';\nimport { hexToBytes } from '../encoding/toBytes.js';\nimport { bytesToHex } from '../encoding/toHex.js';\n/**\n * Transforms arbitrary data to blobs.\n *\n * @example\n * ```ts\n * import { toBlobs, stringToHex } from 'viem'\n *\n * const blobs = toBlobs({ data: stringToHex('hello world') })\n * ```\n */\nexport function toBlobs(parameters) {\n const to = parameters.to ?? (typeof parameters.data === 'string' ? 'hex' : 'bytes');\n const data = (typeof parameters.data === 'string'\n ? hexToBytes(parameters.data)\n : parameters.data);\n const size_ = size(data);\n if (!size_)\n throw new EmptyBlobError();\n if (size_ > maxBytesPerTransaction)\n throw new BlobSizeTooLargeError({\n maxSize: maxBytesPerTransaction,\n size: size_,\n });\n const blobs = [];\n let active = true;\n let position = 0;\n while (active) {\n const blob = createCursor(new Uint8Array(bytesPerBlob));\n let size = 0;\n while (size < fieldElementsPerBlob) {\n const bytes = data.slice(position, position + (bytesPerFieldElement - 1));\n // Push a zero byte so the field element doesn't overflow the BLS modulus.\n blob.pushByte(0x00);\n // Push the current segment of data bytes.\n blob.pushBytes(bytes);\n // If we detect that the current segment of data bytes is less than 31 bytes,\n // we can stop processing and push a terminator byte to indicate the end of the blob.\n if (bytes.length < 31) {\n blob.pushByte(0x80);\n active = false;\n break;\n }\n size++;\n position += 31;\n }\n blobs.push(blob);\n }\n return (to === 'bytes'\n ? blobs.map((x) => x.bytes)\n : blobs.map((x) => bytesToHex(x.bytes)));\n}\n//# sourceMappingURL=toBlobs.js.map","// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md#parameters\n/** Blob limit per transaction. */\nconst blobsPerTransaction = 6;\n/** The number of bytes in a BLS scalar field element. */\nexport const bytesPerFieldElement = 32;\n/** The number of field elements in a blob. */\nexport const fieldElementsPerBlob = 4096;\n/** The number of bytes in a blob. */\nexport const bytesPerBlob = bytesPerFieldElement * fieldElementsPerBlob;\n/** Blob bytes limit per transaction. */\nexport const maxBytesPerTransaction = bytesPerBlob * blobsPerTransaction -\n // terminator byte (0x80).\n 1 -\n // zero byte (0x00) appended to each field element.\n 1 * fieldElementsPerBlob * blobsPerTransaction;\n//# sourceMappingURL=blob.js.map","import { InvalidSerializableTransactionError, } from '../../errors/transaction.js';\nexport function getTransactionType(transaction) {\n if (transaction.type)\n return transaction.type;\n if (typeof transaction.blobs !== 'undefined' ||\n typeof transaction.blobVersionedHashes !== 'undefined' ||\n typeof transaction.maxFeePerBlobGas !== 'undefined' ||\n typeof transaction.sidecars !== 'undefined')\n return 'eip4844';\n if (typeof transaction.maxFeePerGas !== 'undefined' ||\n typeof transaction.maxPriorityFeePerGas !== 'undefined') {\n return 'eip1559';\n }\n if (typeof transaction.gasPrice !== 'undefined') {\n if (typeof transaction.accessList !== 'undefined')\n return 'eip2930';\n return 'legacy';\n }\n throw new InvalidSerializableTransactionError({ transaction });\n}\n//# sourceMappingURL=getTransactionType.js.map","/**\n * Sends a **signed** transaction to the network\n *\n * - Docs: https://viem.sh/docs/actions/wallet/sendRawTransaction\n * - JSON-RPC Method: [`eth_sendRawTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\n *\n * @param client - Client to use\n * @param parameters - {@link SendRawTransactionParameters}\n * @returns The transaction hash. {@link SendRawTransactionReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { sendRawTransaction } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n *\n * const hash = await sendRawTransaction(client, {\n * serializedTransaction: '0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33'\n * })\n */\nexport async function sendRawTransaction(client, { serializedTransaction }) {\n return client.request({\n method: 'eth_sendRawTransaction',\n params: [serializedTransaction],\n }, { retryCount: 0 });\n}\n//# sourceMappingURL=sendRawTransaction.js.map","import { defineChain } from '../../utils/chain/defineChain.js';\nexport const mainnet = /*#__PURE__*/ defineChain({\n id: 1,\n name: 'Ethereum',\n nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },\n rpcUrls: {\n default: {\n http: ['https://cloudflare-eth.com'],\n },\n },\n blockExplorers: {\n default: {\n name: 'Etherscan',\n url: 'https://etherscan.io',\n apiUrl: 'https://api.etherscan.io/api',\n },\n },\n contracts: {\n ensRegistry: {\n address: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e',\n },\n ensUniversalResolver: {\n address: '0xce01f8eee7E479C928F8919abD53E553a36CeF67',\n blockCreated: 19_258_213,\n },\n multicall3: {\n address: '0xca11bde05977b3631167028862be2a173976ca11',\n blockCreated: 14_353_601,\n },\n },\n});\n//# sourceMappingURL=mainnet.js.map","import { parseAccount, } from '../accounts/utils/parseAccount.js';\nimport { uid } from '../utils/uid.js';\nexport function createClient(parameters) {\n const { batch, cacheTime = parameters.pollingInterval ?? 4_000, ccipRead, key = 'base', name = 'Base Client', pollingInterval = 4_000, type = 'base', } = parameters;\n const chain = parameters.chain;\n const account = parameters.account\n ? parseAccount(parameters.account)\n : undefined;\n const { config, request, value } = parameters.transport({\n chain,\n pollingInterval,\n });\n const transport = { ...config, ...value };\n const client = {\n account,\n batch,\n cacheTime,\n ccipRead,\n chain,\n key,\n name,\n pollingInterval,\n request,\n transport,\n type,\n uid: uid(),\n };\n function extend(base) {\n return (extendFn) => {\n const extended = extendFn(base);\n for (const key in client)\n delete extended[key];\n const combined = { ...base, ...extended };\n return Object.assign(combined, { extend: extend(combined) });\n };\n }\n return Object.assign(client, { extend: extend(client) });\n}\n/**\n * Defines a typed JSON-RPC schema for the client.\n * Note: This is a runtime noop function.\n */\nexport function rpcSchema() {\n return null;\n}\n//# sourceMappingURL=createClient.js.map","import { numberToHex, } from '../../utils/encoding/toHex.js';\n/**\n * Adds an EVM chain to the wallet.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/addChain\n * - JSON-RPC Methods: [`eth_addEthereumChain`](https://eips.ethereum.org/EIPS/eip-3085)\n *\n * @param client - Client to use\n * @param parameters - {@link AddChainParameters}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { optimism } from 'viem/chains'\n * import { addChain } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * transport: custom(window.ethereum),\n * })\n * await addChain(client, { chain: optimism })\n */\nexport async function addChain(client, { chain }) {\n const { id, name, nativeCurrency, rpcUrls, blockExplorers } = chain;\n await client.request({\n method: 'wallet_addEthereumChain',\n params: [\n {\n chainId: numberToHex(id),\n chainName: name,\n nativeCurrency,\n rpcUrls: rpcUrls.default.http,\n blockExplorerUrls: blockExplorers\n ? Object.values(blockExplorers).map(({ url }) => url)\n : undefined,\n },\n ],\n }, { dedupe: true, retryCount: 0 });\n}\n//# sourceMappingURL=addChain.js.map","import { BaseError } from './base.js';\nexport class AccountNotFoundError extends BaseError {\n constructor({ docsPath } = {}) {\n super([\n 'Could not find an Account to execute with this Action.',\n 'Please provide an Account with the `account` argument on the Action, or by supplying an `account` to the WalletClient.',\n ].join('\\n'), {\n docsPath,\n docsSlug: 'account',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AccountNotFoundError'\n });\n }\n}\n//# sourceMappingURL=account.js.map","import { ChainMismatchError, ChainNotFoundError, } from '../../errors/chain.js';\nexport function assertCurrentChain({ chain, currentChainId, }) {\n if (!chain)\n throw new ChainNotFoundError();\n if (currentChainId !== chain.id)\n throw new ChainMismatchError({ chain, currentChainId });\n}\n//# sourceMappingURL=assertCurrentChain.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { AccountNotFoundError } from '../../errors/account.js';\nimport { assertCurrentChain, } from '../../utils/chain/assertCurrentChain.js';\nimport { getTransactionError, } from '../../utils/errors/getTransactionError.js';\nimport { extract } from '../../utils/formatters/extract.js';\nimport { formatTransactionRequest, } from '../../utils/formatters/transactionRequest.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { assertRequest, } from '../../utils/transaction/assertRequest.js';\nimport { getChainId } from '../public/getChainId.js';\nimport { defaultParameters, prepareTransactionRequest, } from './prepareTransactionRequest.js';\nimport { sendRawTransaction, } from './sendRawTransaction.js';\n/**\n * Creates, signs, and sends a new transaction to the network.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/sendTransaction\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions/sending-transactions\n * - JSON-RPC Methods:\n * - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\n * - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\n *\n * @param client - Client to use\n * @param parameters - {@link SendTransactionParameters}\n * @returns The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { sendTransaction } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const hash = await sendTransaction(client, {\n * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * value: 1000000000000000000n,\n * })\n *\n * @example\n * // Account Hoisting\n * import { createWalletClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { sendTransaction } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * account: privateKeyToAccount('0x…'),\n * chain: mainnet,\n * transport: http(),\n * })\n * const hash = await sendTransaction(client, {\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * value: 1000000000000000000n,\n * })\n */\nexport async function sendTransaction(client, parameters) {\n const { account: account_ = client.account, chain = client.chain, accessList, blobs, data, gas, gasPrice, maxFeePerBlobGas, maxFeePerGas, maxPriorityFeePerGas, nonce, to, value, ...rest } = parameters;\n if (!account_)\n throw new AccountNotFoundError({\n docsPath: '/docs/actions/wallet/sendTransaction',\n });\n const account = parseAccount(account_);\n try {\n assertRequest(parameters);\n let chainId;\n if (chain !== null) {\n chainId = await getAction(client, getChainId, 'getChainId')({});\n assertCurrentChain({\n currentChainId: chainId,\n chain,\n });\n }\n if (account.type === 'local') {\n // Prepare the request for signing (assign appropriate fees, etc.)\n const request = await getAction(client, prepareTransactionRequest, 'prepareTransactionRequest')({\n account,\n accessList,\n blobs,\n chain,\n chainId,\n data,\n gas,\n gasPrice,\n maxFeePerBlobGas,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n parameters: [...defaultParameters, 'sidecars'],\n to,\n value,\n ...rest,\n });\n const serializer = chain?.serializers?.transaction;\n const serializedTransaction = (await account.signTransaction(request, {\n serializer,\n }));\n return await getAction(client, sendRawTransaction, 'sendRawTransaction')({\n serializedTransaction,\n });\n }\n const chainFormat = client.chain?.formatters?.transactionRequest?.format;\n const format = chainFormat || formatTransactionRequest;\n const request = format({\n // Pick out extra data that might exist on the chain's transaction request type.\n ...extract(rest, { format: chainFormat }),\n accessList,\n blobs,\n data,\n from: account.address,\n gas,\n gasPrice,\n maxFeePerBlobGas,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value,\n });\n return await client.request({\n method: 'eth_sendTransaction',\n params: [request],\n }, { retryCount: 0 });\n }\n catch (err) {\n throw getTransactionError(err, {\n ...parameters,\n account,\n chain: parameters.chain || undefined,\n });\n }\n}\n//# sourceMappingURL=sendTransaction.js.map","import { UnknownNodeError } from '../../errors/node.js';\nimport { TransactionExecutionError, } from '../../errors/transaction.js';\nimport { getNodeError, } from './getNodeError.js';\nexport function getTransactionError(err, { docsPath, ...args }) {\n const cause = (() => {\n const cause = getNodeError(err, args);\n if (cause instanceof UnknownNodeError)\n return err;\n return cause;\n })();\n return new TransactionExecutionError(cause, {\n docsPath,\n ...args,\n });\n}\n//# sourceMappingURL=getTransactionError.js.map","import { checksumAddress, } from '../../utils/address/getAddress.js';\n/**\n * Returns a list of account addresses owned by the wallet or client.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/getAddresses\n * - JSON-RPC Methods: [`eth_accounts`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_accounts)\n *\n * @param client - Client to use\n * @returns List of account addresses owned by the wallet or client. {@link GetAddressesReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getAddresses } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const accounts = await getAddresses(client)\n */\nexport async function getAddresses(client) {\n if (client.account?.type === 'local')\n return [client.account.address];\n const addresses = await client.request({ method: 'eth_accounts' }, { dedupe: true });\n return addresses.map((address) => checksumAddress(address));\n}\n//# sourceMappingURL=getAddresses.js.map","/**\n * Gets the wallets current permissions.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/getPermissions\n * - JSON-RPC Methods: [`wallet_getPermissions`](https://eips.ethereum.org/EIPS/eip-2255)\n *\n * @param client - Client to use\n * @returns The wallet permissions. {@link GetPermissionsReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getPermissions } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const permissions = await getPermissions(client)\n */\nexport async function getPermissions(client) {\n const permissions = await client.request({ method: 'wallet_getPermissions' }, { dedupe: true });\n return permissions;\n}\n//# sourceMappingURL=getPermissions.js.map","import { getAddress } from '../../utils/address/getAddress.js';\n/**\n * Requests a list of accounts managed by a wallet.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/requestAddresses\n * - JSON-RPC Methods: [`eth_requestAccounts`](https://eips.ethereum.org/EIPS/eip-1102)\n *\n * Sends a request to the wallet, asking for permission to access the user's accounts. After the user accepts the request, it will return a list of accounts (addresses).\n *\n * This API can be useful for dapps that need to access the user's accounts in order to execute transactions or interact with smart contracts.\n *\n * @param client - Client to use\n * @returns List of accounts managed by a wallet {@link RequestAddressesReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { requestAddresses } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const accounts = await requestAddresses(client)\n */\nexport async function requestAddresses(client) {\n const addresses = await client.request({ method: 'eth_requestAccounts' }, { dedupe: true, retryCount: 0 });\n return addresses.map((address) => getAddress(address));\n}\n//# sourceMappingURL=requestAddresses.js.map","/**\n * Requests permissions for a wallet.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/requestPermissions\n * - JSON-RPC Methods: [`wallet_requestPermissions`](https://eips.ethereum.org/EIPS/eip-2255)\n *\n * @param client - Client to use\n * @param parameters - {@link RequestPermissionsParameters}\n * @returns The wallet permissions. {@link RequestPermissionsReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { requestPermissions } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const permissions = await requestPermissions(client, {\n * eth_accounts: {}\n * })\n */\nexport async function requestPermissions(client, permissions) {\n return client.request({\n method: 'wallet_requestPermissions',\n params: [permissions],\n }, { retryCount: 0 });\n}\n//# sourceMappingURL=requestPermissions.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { AccountNotFoundError } from '../../errors/account.js';\nimport { stringToHex, toHex, } from '../../utils/encoding/toHex.js';\n/**\n * Calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\"\\x19Ethereum Signed Message:\\n\" + len(message) + message))`.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/signMessage\n * - JSON-RPC Methods:\n * - JSON-RPC Accounts: [`personal_sign`](https://docs.metamask.io/guide/signing-data#personal-sign)\n * - Local Accounts: Signs locally. No JSON-RPC request.\n *\n * With the calculated signature, you can:\n * - use [`verifyMessage`](https://viem.sh/docs/utilities/verifyMessage) to verify the signature,\n * - use [`recoverMessageAddress`](https://viem.sh/docs/utilities/recoverMessageAddress) to recover the signing address from a signature.\n *\n * @param client - Client to use\n * @param parameters - {@link SignMessageParameters}\n * @returns The signed message. {@link SignMessageReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { signMessage } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const signature = await signMessage(client, {\n * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * message: 'hello world',\n * })\n *\n * @example\n * // Account Hoisting\n * import { createWalletClient, custom } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { signMessage } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * account: privateKeyToAccount('0x…'),\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const signature = await signMessage(client, {\n * message: 'hello world',\n * })\n */\nexport async function signMessage(client, { account: account_ = client.account, message, }) {\n if (!account_)\n throw new AccountNotFoundError({\n docsPath: '/docs/actions/wallet/signMessage',\n });\n const account = parseAccount(account_);\n if (account.type === 'local')\n return account.signMessage({ message });\n const message_ = (() => {\n if (typeof message === 'string')\n return stringToHex(message);\n if (message.raw instanceof Uint8Array)\n return toHex(message.raw);\n return message.raw;\n })();\n return client.request({\n method: 'personal_sign',\n params: [message_, account.address],\n }, { retryCount: 0 });\n}\n//# sourceMappingURL=signMessage.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { AccountNotFoundError } from '../../errors/account.js';\nimport { assertCurrentChain, } from '../../utils/chain/assertCurrentChain.js';\nimport { numberToHex } from '../../utils/encoding/toHex.js';\nimport { formatTransactionRequest, } from '../../utils/formatters/transactionRequest.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { assertRequest, } from '../../utils/transaction/assertRequest.js';\nimport { getChainId } from '../public/getChainId.js';\n/**\n * Signs a transaction.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/signTransaction\n * - JSON-RPC Methods:\n * - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\n * - Local Accounts: Signs locally. No JSON-RPC request.\n *\n * @param args - {@link SignTransactionParameters}\n * @returns The signed serialized tranasction. {@link SignTransactionReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { signTransaction } from 'viem/actions'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const signature = await signTransaction(client, {\n * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * to: '0x0000000000000000000000000000000000000000',\n * value: 1n,\n * })\n *\n * @example\n * // Account Hoisting\n * import { createWalletClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { signTransaction } from 'viem/actions'\n *\n * const client = createWalletClient({\n * account: privateKeyToAccount('0x…'),\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const signature = await signTransaction(client, {\n * to: '0x0000000000000000000000000000000000000000',\n * value: 1n,\n * })\n */\nexport async function signTransaction(client, parameters) {\n const { account: account_ = client.account, chain = client.chain, ...transaction } = parameters;\n if (!account_)\n throw new AccountNotFoundError({\n docsPath: '/docs/actions/wallet/signTransaction',\n });\n const account = parseAccount(account_);\n assertRequest({\n account,\n ...parameters,\n });\n const chainId = await getAction(client, getChainId, 'getChainId')({});\n if (chain !== null)\n assertCurrentChain({\n currentChainId: chainId,\n chain,\n });\n const formatters = chain?.formatters || client.chain?.formatters;\n const format = formatters?.transactionRequest?.format || formatTransactionRequest;\n if (account.type === 'local') {\n return account.signTransaction({\n ...transaction,\n chainId,\n }, { serializer: client.chain?.serializers?.transaction });\n }\n return await client.request({\n method: 'eth_signTransaction',\n params: [\n {\n ...format(transaction),\n chainId: numberToHex(chainId),\n from: account.address,\n },\n ],\n }, { retryCount: 0 });\n}\n//# sourceMappingURL=signTransaction.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { AccountNotFoundError, } from '../../errors/account.js';\nimport { getTypesForEIP712Domain, serializeTypedData, validateTypedData, } from '../../utils/typedData.js';\n/**\n * Signs typed data and calculates an Ethereum-specific signature in [https://eips.ethereum.org/EIPS/eip-712](https://eips.ethereum.org/EIPS/eip-712): `sign(keccak256(\"\\x19\\x01\" ‖ domainSeparator ‖ hashStruct(message)))`\n *\n * - Docs: https://viem.sh/docs/actions/wallet/signTypedData\n * - JSON-RPC Methods:\n * - JSON-RPC Accounts: [`eth_signTypedData_v4`](https://docs.metamask.io/guide/signing-data#signtypeddata-v4)\n * - Local Accounts: Signs locally. No JSON-RPC request.\n *\n * @param client - Client to use\n * @param parameters - {@link SignTypedDataParameters}\n * @returns The signed data. {@link SignTypedDataReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { signTypedData } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const signature = await signTypedData(client, {\n * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * domain: {\n * name: 'Ether Mail',\n * version: '1',\n * chainId: 1,\n * verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\n * },\n * types: {\n * Person: [\n * { name: 'name', type: 'string' },\n * { name: 'wallet', type: 'address' },\n * ],\n * Mail: [\n * { name: 'from', type: 'Person' },\n * { name: 'to', type: 'Person' },\n * { name: 'contents', type: 'string' },\n * ],\n * },\n * primaryType: 'Mail',\n * message: {\n * from: {\n * name: 'Cow',\n * wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\n * },\n * to: {\n * name: 'Bob',\n * wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\n * },\n * contents: 'Hello, Bob!',\n * },\n * })\n *\n * @example\n * // Account Hoisting\n * import { createWalletClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { signTypedData } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * account: privateKeyToAccount('0x…'),\n * chain: mainnet,\n * transport: http(),\n * })\n * const signature = await signTypedData(client, {\n * domain: {\n * name: 'Ether Mail',\n * version: '1',\n * chainId: 1,\n * verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\n * },\n * types: {\n * Person: [\n * { name: 'name', type: 'string' },\n * { name: 'wallet', type: 'address' },\n * ],\n * Mail: [\n * { name: 'from', type: 'Person' },\n * { name: 'to', type: 'Person' },\n * { name: 'contents', type: 'string' },\n * ],\n * },\n * primaryType: 'Mail',\n * message: {\n * from: {\n * name: 'Cow',\n * wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\n * },\n * to: {\n * name: 'Bob',\n * wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\n * },\n * contents: 'Hello, Bob!',\n * },\n * })\n */\nexport async function signTypedData(client, parameters) {\n const { account: account_ = client.account, domain, message, primaryType, } = parameters;\n if (!account_)\n throw new AccountNotFoundError({\n docsPath: '/docs/actions/wallet/signTypedData',\n });\n const account = parseAccount(account_);\n const types = {\n EIP712Domain: getTypesForEIP712Domain({ domain }),\n ...parameters.types,\n };\n // Need to do a runtime validation check on addresses, byte ranges, integer ranges, etc\n // as we can't statically check this with TypeScript.\n validateTypedData({ domain, message, primaryType, types });\n if (account.type === 'local')\n return account.signTypedData({ domain, message, primaryType, types });\n const typedData = serializeTypedData({ domain, message, primaryType, types });\n return client.request({\n method: 'eth_signTypedData_v4',\n params: [account.address, typedData],\n }, { retryCount: 0 });\n}\n//# sourceMappingURL=signTypedData.js.map","import { numberToHex, } from '../../utils/encoding/toHex.js';\n/**\n * Switch the target chain in a wallet.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/switchChain\n * - JSON-RPC Methods: [`eth_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-3326)\n *\n * @param client - Client to use\n * @param parameters - {@link SwitchChainParameters}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet, optimism } from 'viem/chains'\n * import { switchChain } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * await switchChain(client, { id: optimism.id })\n */\nexport async function switchChain(client, { id }) {\n await client.request({\n method: 'wallet_switchEthereumChain',\n params: [\n {\n chainId: numberToHex(id),\n },\n ],\n }, { retryCount: 0 });\n}\n//# sourceMappingURL=switchChain.js.map","/**\n * Adds an EVM chain to the wallet.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/watchAsset\n * - JSON-RPC Methods: [`eth_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-747)\n *\n * @param client - Client to use\n * @param parameters - {@link WatchAssetParameters}\n * @returns Boolean indicating if the token was successfully added. {@link WatchAssetReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { watchAsset } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const success = await watchAsset(client, {\n * type: 'ERC20',\n * options: {\n * address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\n * decimals: 18,\n * symbol: 'WETH',\n * },\n * })\n */\nexport async function watchAsset(client, params) {\n const added = await client.request({\n method: 'wallet_watchAsset',\n params,\n }, { retryCount: 0 });\n return added;\n}\n//# sourceMappingURL=watchAsset.js.map","import { encodeFunctionData, } from '../../utils/abi/encodeFunctionData.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { sendTransaction, } from './sendTransaction.js';\n/**\n * Executes a write function on a contract.\n *\n * - Docs: https://viem.sh/docs/contract/writeContract\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts/writing-to-contracts\n *\n * A \"write\" function on a Solidity contract modifies the state of the blockchain. These types of functions require gas to be executed, and hence a [Transaction](https://viem.sh/docs/glossary/terms) is needed to be broadcast in order to change the state.\n *\n * Internally, uses a [Wallet Client](https://viem.sh/docs/clients/wallet) to call the [`sendTransaction` action](https://viem.sh/docs/actions/wallet/sendTransaction) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\n *\n * __Warning: The `write` internally sends a transaction – it does not validate if the contract write will succeed (the contract may throw an error). It is highly recommended to [simulate the contract write with `contract.simulate`](https://viem.sh/docs/contract/writeContract#usage) before you execute it.__\n *\n * @param client - Client to use\n * @param parameters - {@link WriteContractParameters}\n * @returns A [Transaction Hash](https://viem.sh/docs/glossary/terms#hash). {@link WriteContractReturnType}\n *\n * @example\n * import { createWalletClient, custom, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { writeContract } from 'viem/contract'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const hash = await writeContract(client, {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\n * functionName: 'mint',\n * args: [69420],\n * })\n *\n * @example\n * // With Validation\n * import { createWalletClient, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { simulateContract, writeContract } from 'viem/contract'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const { request } = await simulateContract(client, {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\n * functionName: 'mint',\n * args: [69420],\n * }\n * const hash = await writeContract(client, request)\n */\nexport async function writeContract(client, parameters) {\n const { abi, address, args, dataSuffix, functionName, ...request } = parameters;\n const data = encodeFunctionData({\n abi,\n args,\n functionName,\n });\n return getAction(client, sendTransaction, 'sendTransaction')({\n data: `${data}${dataSuffix ? dataSuffix.replace('0x', '') : ''}`,\n to: address,\n ...request,\n });\n}\n//# sourceMappingURL=writeContract.js.map","import { getChainId, } from '../../actions/public/getChainId.js';\nimport { addChain, } from '../../actions/wallet/addChain.js';\nimport { deployContract, } from '../../actions/wallet/deployContract.js';\nimport { getAddresses, } from '../../actions/wallet/getAddresses.js';\nimport { getPermissions, } from '../../actions/wallet/getPermissions.js';\nimport { prepareTransactionRequest, } from '../../actions/wallet/prepareTransactionRequest.js';\nimport { requestAddresses, } from '../../actions/wallet/requestAddresses.js';\nimport { requestPermissions, } from '../../actions/wallet/requestPermissions.js';\nimport { sendRawTransaction, } from '../../actions/wallet/sendRawTransaction.js';\nimport { sendTransaction, } from '../../actions/wallet/sendTransaction.js';\nimport { signMessage, } from '../../actions/wallet/signMessage.js';\nimport { signTransaction, } from '../../actions/wallet/signTransaction.js';\nimport { signTypedData, } from '../../actions/wallet/signTypedData.js';\nimport { switchChain, } from '../../actions/wallet/switchChain.js';\nimport { watchAsset, } from '../../actions/wallet/watchAsset.js';\nimport { writeContract, } from '../../actions/wallet/writeContract.js';\nexport function walletActions(client) {\n return {\n addChain: (args) => addChain(client, args),\n deployContract: (args) => deployContract(client, args),\n getAddresses: () => getAddresses(client),\n getChainId: () => getChainId(client),\n getPermissions: () => getPermissions(client),\n prepareTransactionRequest: (args) => prepareTransactionRequest(client, args),\n requestAddresses: () => requestAddresses(client),\n requestPermissions: (args) => requestPermissions(client, args),\n sendRawTransaction: (args) => sendRawTransaction(client, args),\n sendTransaction: (args) => sendTransaction(client, args),\n signMessage: (args) => signMessage(client, args),\n signTransaction: (args) => signTransaction(client, args),\n signTypedData: (args) => signTypedData(client, args),\n switchChain: (args) => switchChain(client, args),\n watchAsset: (args) => watchAsset(client, args),\n writeContract: (args) => writeContract(client, args),\n };\n}\n//# sourceMappingURL=wallet.js.map","import { encodeDeployData } from '../../utils/abi/encodeDeployData.js';\nimport { sendTransaction, } from './sendTransaction.js';\n/**\n * Deploys a contract to the network, given bytecode and constructor arguments.\n *\n * - Docs: https://viem.sh/docs/contract/deployContract\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts/deploying-contracts\n *\n * @param client - Client to use\n * @param parameters - {@link DeployContractParameters}\n * @returns The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link DeployContractReturnType}\n *\n * @example\n * import { createWalletClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { deployContract } from 'viem/contract'\n *\n * const client = createWalletClient({\n * account: privateKeyToAccount('0x…'),\n * chain: mainnet,\n * transport: http(),\n * })\n * const hash = await deployContract(client, {\n * abi: [],\n * account: '0x…,\n * bytecode: '0x608060405260405161083e38038061083e833981016040819052610...',\n * })\n */\nexport function deployContract(walletClient, parameters) {\n const { abi, args, bytecode, ...request } = parameters;\n const calldata = encodeDeployData({ abi, args, bytecode });\n return sendTransaction(walletClient, {\n ...request,\n data: calldata,\n });\n}\n//# sourceMappingURL=deployContract.js.map","import { createClient, } from './createClient.js';\nimport { walletActions } from './decorators/wallet.js';\nexport function createWalletClient(parameters) {\n const { key = 'wallet', name = 'Wallet Client', transport } = parameters;\n const client = createClient({\n ...parameters,\n key,\n name,\n transport,\n type: 'walletClient',\n });\n return client.extend(walletActions);\n}\n//# sourceMappingURL=createWalletClient.js.map","import { LruMap } from '../lru.js';\n/** @internal */\nexport const promiseCache = /*#__PURE__*/ new LruMap(8192);\n/** Deduplicates in-flight promises. */\nexport function withDedupe(fn, { enabled = true, id }) {\n if (!enabled || !id)\n return fn();\n if (promiseCache.get(id))\n return promiseCache.get(id);\n const promise = fn().finally(() => promiseCache.delete(id));\n promiseCache.set(id, promise);\n return promise;\n}\n//# sourceMappingURL=withDedupe.js.map","import { buildRequest } from '../../utils/buildRequest.js';\nimport { uid as uid_ } from '../../utils/uid.js';\n/**\n * @description Creates an transport intended to be used with a client.\n */\nexport function createTransport({ key, name, request, retryCount = 3, retryDelay = 150, timeout, type, }, value) {\n const uid = uid_();\n return {\n config: {\n key,\n name,\n request,\n retryCount,\n retryDelay,\n timeout,\n type,\n },\n request: buildRequest(request, { retryCount, retryDelay, uid }),\n value,\n };\n}\n//# sourceMappingURL=createTransport.js.map","import { BaseError } from '../errors/base.js';\nimport { HttpRequestError, } from '../errors/request.js';\nimport { ChainDisconnectedError, InternalRpcError, InvalidInputRpcError, InvalidParamsRpcError, InvalidRequestRpcError, JsonRpcVersionUnsupportedError, LimitExceededRpcError, MethodNotFoundRpcError, MethodNotSupportedRpcError, ParseRpcError, ProviderDisconnectedError, ResourceNotFoundRpcError, ResourceUnavailableRpcError, SwitchChainError, TransactionRejectedRpcError, UnauthorizedProviderError, UnknownRpcError, UnsupportedProviderMethodError, UserRejectedRequestError, } from '../errors/rpc.js';\nimport { stringToHex } from './encoding/toHex.js';\nimport { keccak256 } from './hash/keccak256.js';\nimport { withDedupe } from './promise/withDedupe.js';\nimport { withRetry } from './promise/withRetry.js';\nimport { stringify } from './stringify.js';\nexport function buildRequest(request, options = {}) {\n return async (args, overrideOptions = {}) => {\n const { dedupe = false, retryDelay = 150, retryCount = 3, uid, } = {\n ...options,\n ...overrideOptions,\n };\n const requestId = dedupe\n ? keccak256(stringToHex(`${uid}.${stringify(args)}`))\n : undefined;\n return withDedupe(() => withRetry(async () => {\n try {\n return await request(args);\n }\n catch (err_) {\n const err = err_;\n switch (err.code) {\n // -32700\n case ParseRpcError.code:\n throw new ParseRpcError(err);\n // -32600\n case InvalidRequestRpcError.code:\n throw new InvalidRequestRpcError(err);\n // -32601\n case MethodNotFoundRpcError.code:\n throw new MethodNotFoundRpcError(err);\n // -32602\n case InvalidParamsRpcError.code:\n throw new InvalidParamsRpcError(err);\n // -32603\n case InternalRpcError.code:\n throw new InternalRpcError(err);\n // -32000\n case InvalidInputRpcError.code:\n throw new InvalidInputRpcError(err);\n // -32001\n case ResourceNotFoundRpcError.code:\n throw new ResourceNotFoundRpcError(err);\n // -32002\n case ResourceUnavailableRpcError.code:\n throw new ResourceUnavailableRpcError(err);\n // -32003\n case TransactionRejectedRpcError.code:\n throw new TransactionRejectedRpcError(err);\n // -32004\n case MethodNotSupportedRpcError.code:\n throw new MethodNotSupportedRpcError(err);\n // -32005\n case LimitExceededRpcError.code:\n throw new LimitExceededRpcError(err);\n // -32006\n case JsonRpcVersionUnsupportedError.code:\n throw new JsonRpcVersionUnsupportedError(err);\n // 4001\n case UserRejectedRequestError.code:\n throw new UserRejectedRequestError(err);\n // 4100\n case UnauthorizedProviderError.code:\n throw new UnauthorizedProviderError(err);\n // 4200\n case UnsupportedProviderMethodError.code:\n throw new UnsupportedProviderMethodError(err);\n // 4900\n case ProviderDisconnectedError.code:\n throw new ProviderDisconnectedError(err);\n // 4901\n case ChainDisconnectedError.code:\n throw new ChainDisconnectedError(err);\n // 4902\n case SwitchChainError.code:\n throw new SwitchChainError(err);\n // CAIP-25: User Rejected Error\n // https://docs.walletconnect.com/2.0/specs/clients/sign/error-codes#rejected-caip-25\n case 5000:\n throw new UserRejectedRequestError(err);\n default:\n if (err_ instanceof BaseError)\n throw err_;\n throw new UnknownRpcError(err);\n }\n }\n }, {\n delay: ({ count, error }) => {\n // If we find a Retry-After header, let's retry after the given time.\n if (error && error instanceof HttpRequestError) {\n const retryAfter = error?.headers?.get('Retry-After');\n if (retryAfter?.match(/\\d/))\n return Number.parseInt(retryAfter) * 1000;\n }\n // Otherwise, let's retry with an exponential backoff.\n return ~~(1 << count) * retryDelay;\n },\n retryCount,\n shouldRetry: ({ error }) => shouldRetry(error),\n }), { enabled: dedupe, id: requestId });\n };\n}\n/** @internal */\nexport function shouldRetry(error) {\n if ('code' in error && typeof error.code === 'number') {\n if (error.code === -1)\n return true; // Unknown error\n if (error.code === LimitExceededRpcError.code)\n return true;\n if (error.code === InternalRpcError.code)\n return true;\n return false;\n }\n if (error instanceof HttpRequestError && error.status) {\n // Forbidden\n if (error.status === 403)\n return true;\n // Request Timeout\n if (error.status === 408)\n return true;\n // Request Entity Too Large\n if (error.status === 413)\n return true;\n // Too Many Requests\n if (error.status === 429)\n return true;\n // Internal Server Error\n if (error.status === 500)\n return true;\n // Bad Gateway\n if (error.status === 502)\n return true;\n // Service Unavailable\n if (error.status === 503)\n return true;\n // Gateway Timeout\n if (error.status === 504)\n return true;\n return false;\n }\n return true;\n}\n//# sourceMappingURL=buildRequest.js.map","import { createTransport, } from './createTransport.js';\n/**\n * @description Creates a custom transport given an EIP-1193 compliant `request` attribute.\n */\nexport function custom(provider, config = {}) {\n const { key = 'custom', name = 'Custom Provider', retryDelay } = config;\n return ({ retryCount: defaultRetryCount }) => createTransport({\n key,\n name,\n request: provider.request.bind(provider),\n retryCount: config.retryCount ?? defaultRetryCount,\n retryDelay,\n type: 'custom',\n });\n}\n//# sourceMappingURL=custom.js.map","/* [Multicall3](https://github.com/mds1/multicall) */\nexport const multicall3Abi = [\n {\n inputs: [\n {\n components: [\n {\n name: 'target',\n type: 'address',\n },\n {\n name: 'allowFailure',\n type: 'bool',\n },\n {\n name: 'callData',\n type: 'bytes',\n },\n ],\n name: 'calls',\n type: 'tuple[]',\n },\n ],\n name: 'aggregate3',\n outputs: [\n {\n components: [\n {\n name: 'success',\n type: 'bool',\n },\n {\n name: 'returnData',\n type: 'bytes',\n },\n ],\n name: 'returnData',\n type: 'tuple[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n];\nconst universalResolverErrors = [\n {\n inputs: [],\n name: 'ResolverNotFound',\n type: 'error',\n },\n {\n inputs: [],\n name: 'ResolverWildcardNotSupported',\n type: 'error',\n },\n {\n inputs: [],\n name: 'ResolverNotContract',\n type: 'error',\n },\n {\n inputs: [\n {\n name: 'returnData',\n type: 'bytes',\n },\n ],\n name: 'ResolverError',\n type: 'error',\n },\n {\n inputs: [\n {\n components: [\n {\n name: 'status',\n type: 'uint16',\n },\n {\n name: 'message',\n type: 'string',\n },\n ],\n name: 'errors',\n type: 'tuple[]',\n },\n ],\n name: 'HttpError',\n type: 'error',\n },\n];\nexport const universalResolverResolveAbi = [\n ...universalResolverErrors,\n {\n name: 'resolve',\n type: 'function',\n stateMutability: 'view',\n inputs: [\n { name: 'name', type: 'bytes' },\n { name: 'data', type: 'bytes' },\n ],\n outputs: [\n { name: '', type: 'bytes' },\n { name: 'address', type: 'address' },\n ],\n },\n {\n name: 'resolve',\n type: 'function',\n stateMutability: 'view',\n inputs: [\n { name: 'name', type: 'bytes' },\n { name: 'data', type: 'bytes' },\n { name: 'gateways', type: 'string[]' },\n ],\n outputs: [\n { name: '', type: 'bytes' },\n { name: 'address', type: 'address' },\n ],\n },\n];\nexport const universalResolverReverseAbi = [\n ...universalResolverErrors,\n {\n name: 'reverse',\n type: 'function',\n stateMutability: 'view',\n inputs: [{ type: 'bytes', name: 'reverseName' }],\n outputs: [\n { type: 'string', name: 'resolvedName' },\n { type: 'address', name: 'resolvedAddress' },\n { type: 'address', name: 'reverseResolver' },\n { type: 'address', name: 'resolver' },\n ],\n },\n {\n name: 'reverse',\n type: 'function',\n stateMutability: 'view',\n inputs: [\n { type: 'bytes', name: 'reverseName' },\n { type: 'string[]', name: 'gateways' },\n ],\n outputs: [\n { type: 'string', name: 'resolvedName' },\n { type: 'address', name: 'resolvedAddress' },\n { type: 'address', name: 'reverseResolver' },\n { type: 'address', name: 'resolver' },\n ],\n },\n];\nexport const textResolverAbi = [\n {\n name: 'text',\n type: 'function',\n stateMutability: 'view',\n inputs: [\n { name: 'name', type: 'bytes32' },\n { name: 'key', type: 'string' },\n ],\n outputs: [{ name: '', type: 'string' }],\n },\n];\nexport const addressResolverAbi = [\n {\n name: 'addr',\n type: 'function',\n stateMutability: 'view',\n inputs: [{ name: 'name', type: 'bytes32' }],\n outputs: [{ name: '', type: 'address' }],\n },\n {\n name: 'addr',\n type: 'function',\n stateMutability: 'view',\n inputs: [\n { name: 'name', type: 'bytes32' },\n { name: 'coinType', type: 'uint256' },\n ],\n outputs: [{ name: '', type: 'bytes' }],\n },\n];\n// ERC-1271\n// isValidSignature(bytes32 hash, bytes signature) → bytes4 magicValue\n/** @internal */\nexport const smartAccountAbi = [\n {\n name: 'isValidSignature',\n type: 'function',\n stateMutability: 'view',\n inputs: [\n { name: 'hash', type: 'bytes32' },\n { name: 'signature', type: 'bytes' },\n ],\n outputs: [{ name: '', type: 'bytes4' }],\n },\n];\n// ERC-6492 - universal deployless signature validator contract\n// constructor(address _signer, bytes32 _hash, bytes _signature) → bytes4 returnValue\n// returnValue is either 0x1 (valid) or 0x0 (invalid)\nexport const universalSignatureValidatorAbi = [\n {\n inputs: [\n {\n internalType: 'address',\n name: '_signer',\n type: 'address',\n },\n {\n internalType: 'bytes32',\n name: '_hash',\n type: 'bytes32',\n },\n {\n internalType: 'bytes',\n name: '_signature',\n type: 'bytes',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n];\n/** [ERC-20 Token Standard](https://ethereum.org/en/developers/docs/standards/tokens/erc-20) */\nexport const erc20Abi = [\n {\n type: 'event',\n name: 'Approval',\n inputs: [\n {\n indexed: true,\n name: 'owner',\n type: 'address',\n },\n {\n indexed: true,\n name: 'spender',\n type: 'address',\n },\n {\n indexed: false,\n name: 'value',\n type: 'uint256',\n },\n ],\n },\n {\n type: 'event',\n name: 'Transfer',\n inputs: [\n {\n indexed: true,\n name: 'from',\n type: 'address',\n },\n {\n indexed: true,\n name: 'to',\n type: 'address',\n },\n {\n indexed: false,\n name: 'value',\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'allowance',\n stateMutability: 'view',\n inputs: [\n {\n name: 'owner',\n type: 'address',\n },\n {\n name: 'spender',\n type: 'address',\n },\n ],\n outputs: [\n {\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'approve',\n stateMutability: 'nonpayable',\n inputs: [\n {\n name: 'spender',\n type: 'address',\n },\n {\n name: 'amount',\n type: 'uint256',\n },\n ],\n outputs: [\n {\n type: 'bool',\n },\n ],\n },\n {\n type: 'function',\n name: 'balanceOf',\n stateMutability: 'view',\n inputs: [\n {\n name: 'account',\n type: 'address',\n },\n ],\n outputs: [\n {\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'decimals',\n stateMutability: 'view',\n inputs: [],\n outputs: [\n {\n type: 'uint8',\n },\n ],\n },\n {\n type: 'function',\n name: 'name',\n stateMutability: 'view',\n inputs: [],\n outputs: [\n {\n type: 'string',\n },\n ],\n },\n {\n type: 'function',\n name: 'symbol',\n stateMutability: 'view',\n inputs: [],\n outputs: [\n {\n type: 'string',\n },\n ],\n },\n {\n type: 'function',\n name: 'totalSupply',\n stateMutability: 'view',\n inputs: [],\n outputs: [\n {\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'transfer',\n stateMutability: 'nonpayable',\n inputs: [\n {\n name: 'recipient',\n type: 'address',\n },\n {\n name: 'amount',\n type: 'uint256',\n },\n ],\n outputs: [\n {\n type: 'bool',\n },\n ],\n },\n {\n type: 'function',\n name: 'transferFrom',\n stateMutability: 'nonpayable',\n inputs: [\n {\n name: 'sender',\n type: 'address',\n },\n {\n name: 'recipient',\n type: 'address',\n },\n {\n name: 'amount',\n type: 'uint256',\n },\n ],\n outputs: [\n {\n type: 'bool',\n },\n ],\n },\n];\n/**\n * [bytes32-flavored ERC-20](https://docs.makerdao.com/smart-contract-modules/mkr-module#4.-gotchas-potential-source-of-user-error)\n * for tokens (ie. Maker) that use bytes32 instead of string.\n */\nexport const erc20Abi_bytes32 = [\n {\n type: 'event',\n name: 'Approval',\n inputs: [\n {\n indexed: true,\n name: 'owner',\n type: 'address',\n },\n {\n indexed: true,\n name: 'spender',\n type: 'address',\n },\n {\n indexed: false,\n name: 'value',\n type: 'uint256',\n },\n ],\n },\n {\n type: 'event',\n name: 'Transfer',\n inputs: [\n {\n indexed: true,\n name: 'from',\n type: 'address',\n },\n {\n indexed: true,\n name: 'to',\n type: 'address',\n },\n {\n indexed: false,\n name: 'value',\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'allowance',\n stateMutability: 'view',\n inputs: [\n {\n name: 'owner',\n type: 'address',\n },\n {\n name: 'spender',\n type: 'address',\n },\n ],\n outputs: [\n {\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'approve',\n stateMutability: 'nonpayable',\n inputs: [\n {\n name: 'spender',\n type: 'address',\n },\n {\n name: 'amount',\n type: 'uint256',\n },\n ],\n outputs: [\n {\n type: 'bool',\n },\n ],\n },\n {\n type: 'function',\n name: 'balanceOf',\n stateMutability: 'view',\n inputs: [\n {\n name: 'account',\n type: 'address',\n },\n ],\n outputs: [\n {\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'decimals',\n stateMutability: 'view',\n inputs: [],\n outputs: [\n {\n type: 'uint8',\n },\n ],\n },\n {\n type: 'function',\n name: 'name',\n stateMutability: 'view',\n inputs: [],\n outputs: [\n {\n type: 'bytes32',\n },\n ],\n },\n {\n type: 'function',\n name: 'symbol',\n stateMutability: 'view',\n inputs: [],\n outputs: [\n {\n type: 'bytes32',\n },\n ],\n },\n {\n type: 'function',\n name: 'totalSupply',\n stateMutability: 'view',\n inputs: [],\n outputs: [\n {\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'transfer',\n stateMutability: 'nonpayable',\n inputs: [\n {\n name: 'recipient',\n type: 'address',\n },\n {\n name: 'amount',\n type: 'uint256',\n },\n ],\n outputs: [\n {\n type: 'bool',\n },\n ],\n },\n {\n type: 'function',\n name: 'transferFrom',\n stateMutability: 'nonpayable',\n inputs: [\n {\n name: 'sender',\n type: 'address',\n },\n {\n name: 'recipient',\n type: 'address',\n },\n {\n name: 'amount',\n type: 'uint256',\n },\n ],\n outputs: [\n {\n type: 'bool',\n },\n ],\n },\n];\n/** [ERC-721 Non-Fungible Token Standard](https://ethereum.org/en/developers/docs/standards/tokens/erc-721) */\nexport const erc721Abi = [\n {\n type: 'event',\n name: 'Approval',\n inputs: [\n {\n indexed: true,\n name: 'owner',\n type: 'address',\n },\n {\n indexed: true,\n name: 'spender',\n type: 'address',\n },\n {\n indexed: true,\n name: 'tokenId',\n type: 'uint256',\n },\n ],\n },\n {\n type: 'event',\n name: 'ApprovalForAll',\n inputs: [\n {\n indexed: true,\n name: 'owner',\n type: 'address',\n },\n {\n indexed: true,\n name: 'operator',\n type: 'address',\n },\n {\n indexed: false,\n name: 'approved',\n type: 'bool',\n },\n ],\n },\n {\n type: 'event',\n name: 'Transfer',\n inputs: [\n {\n indexed: true,\n name: 'from',\n type: 'address',\n },\n {\n indexed: true,\n name: 'to',\n type: 'address',\n },\n {\n indexed: true,\n name: 'tokenId',\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'approve',\n stateMutability: 'payable',\n inputs: [\n {\n name: 'spender',\n type: 'address',\n },\n {\n name: 'tokenId',\n type: 'uint256',\n },\n ],\n outputs: [],\n },\n {\n type: 'function',\n name: 'balanceOf',\n stateMutability: 'view',\n inputs: [\n {\n name: 'account',\n type: 'address',\n },\n ],\n outputs: [\n {\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'getApproved',\n stateMutability: 'view',\n inputs: [\n {\n name: 'tokenId',\n type: 'uint256',\n },\n ],\n outputs: [\n {\n type: 'address',\n },\n ],\n },\n {\n type: 'function',\n name: 'isApprovedForAll',\n stateMutability: 'view',\n inputs: [\n {\n name: 'owner',\n type: 'address',\n },\n {\n name: 'operator',\n type: 'address',\n },\n ],\n outputs: [\n {\n type: 'bool',\n },\n ],\n },\n {\n type: 'function',\n name: 'name',\n stateMutability: 'view',\n inputs: [],\n outputs: [\n {\n type: 'string',\n },\n ],\n },\n {\n type: 'function',\n name: 'ownerOf',\n stateMutability: 'view',\n inputs: [\n {\n name: 'tokenId',\n type: 'uint256',\n },\n ],\n outputs: [\n {\n name: 'owner',\n type: 'address',\n },\n ],\n },\n {\n type: 'function',\n name: 'safeTransferFrom',\n stateMutability: 'payable',\n inputs: [\n {\n name: 'from',\n type: 'address',\n },\n {\n name: 'to',\n type: 'address',\n },\n {\n name: 'tokenId',\n type: 'uint256',\n },\n ],\n outputs: [],\n },\n {\n type: 'function',\n name: 'safeTransferFrom',\n stateMutability: 'nonpayable',\n inputs: [\n {\n name: 'from',\n type: 'address',\n },\n {\n name: 'to',\n type: 'address',\n },\n {\n name: 'id',\n type: 'uint256',\n },\n {\n name: 'data',\n type: 'bytes',\n },\n ],\n outputs: [],\n },\n {\n type: 'function',\n name: 'setApprovalForAll',\n stateMutability: 'nonpayable',\n inputs: [\n {\n name: 'operator',\n type: 'address',\n },\n {\n name: 'approved',\n type: 'bool',\n },\n ],\n outputs: [],\n },\n {\n type: 'function',\n name: 'symbol',\n stateMutability: 'view',\n inputs: [],\n outputs: [\n {\n type: 'string',\n },\n ],\n },\n {\n type: 'function',\n name: 'tokenByIndex',\n stateMutability: 'view',\n inputs: [\n {\n name: 'index',\n type: 'uint256',\n },\n ],\n outputs: [\n {\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'tokenByIndex',\n stateMutability: 'view',\n inputs: [\n {\n name: 'owner',\n type: 'address',\n },\n {\n name: 'index',\n type: 'uint256',\n },\n ],\n outputs: [\n {\n name: 'tokenId',\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'tokenURI',\n stateMutability: 'view',\n inputs: [\n {\n name: 'tokenId',\n type: 'uint256',\n },\n ],\n outputs: [\n {\n type: 'string',\n },\n ],\n },\n {\n type: 'function',\n name: 'totalSupply',\n stateMutability: 'view',\n inputs: [],\n outputs: [\n {\n type: 'uint256',\n },\n ],\n },\n {\n type: 'function',\n name: 'transferFrom',\n stateMutability: 'payable',\n inputs: [\n {\n name: 'sender',\n type: 'address',\n },\n {\n name: 'recipient',\n type: 'address',\n },\n {\n name: 'tokeId',\n type: 'uint256',\n },\n ],\n outputs: [],\n },\n];\n/** [ERC-4626 Tokenized Vaults Standard](https://ethereum.org/en/developers/docs/standards/tokens/erc-4626) */\nexport const erc4626Abi = [\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n name: 'owner',\n type: 'address',\n },\n {\n indexed: true,\n name: 'spender',\n type: 'address',\n },\n {\n indexed: false,\n name: 'value',\n type: 'uint256',\n },\n ],\n name: 'Approval',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n name: 'sender',\n type: 'address',\n },\n {\n indexed: true,\n name: 'receiver',\n type: 'address',\n },\n {\n indexed: false,\n name: 'assets',\n type: 'uint256',\n },\n {\n indexed: false,\n name: 'shares',\n type: 'uint256',\n },\n ],\n name: 'Deposit',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n name: 'from',\n type: 'address',\n },\n {\n indexed: true,\n name: 'to',\n type: 'address',\n },\n {\n indexed: false,\n name: 'value',\n type: 'uint256',\n },\n ],\n name: 'Transfer',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n name: 'sender',\n type: 'address',\n },\n {\n indexed: true,\n name: 'receiver',\n type: 'address',\n },\n {\n indexed: true,\n name: 'owner',\n type: 'address',\n },\n {\n indexed: false,\n name: 'assets',\n type: 'uint256',\n },\n {\n indexed: false,\n name: 'shares',\n type: 'uint256',\n },\n ],\n name: 'Withdraw',\n type: 'event',\n },\n {\n inputs: [\n {\n name: 'owner',\n type: 'address',\n },\n {\n name: 'spender',\n type: 'address',\n },\n ],\n name: 'allowance',\n outputs: [\n {\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'spender',\n type: 'address',\n },\n {\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'approve',\n outputs: [\n {\n type: 'bool',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'asset',\n outputs: [\n {\n name: 'assetTokenAddress',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'account',\n type: 'address',\n },\n ],\n name: 'balanceOf',\n outputs: [\n {\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'shares',\n type: 'uint256',\n },\n ],\n name: 'convertToAssets',\n outputs: [\n {\n name: 'assets',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'assets',\n type: 'uint256',\n },\n ],\n name: 'convertToShares',\n outputs: [\n {\n name: 'shares',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'assets',\n type: 'uint256',\n },\n {\n name: 'receiver',\n type: 'address',\n },\n ],\n name: 'deposit',\n outputs: [\n {\n name: 'shares',\n type: 'uint256',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'caller',\n type: 'address',\n },\n ],\n name: 'maxDeposit',\n outputs: [\n {\n name: 'maxAssets',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'caller',\n type: 'address',\n },\n ],\n name: 'maxMint',\n outputs: [\n {\n name: 'maxShares',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'owner',\n type: 'address',\n },\n ],\n name: 'maxRedeem',\n outputs: [\n {\n name: 'maxShares',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'owner',\n type: 'address',\n },\n ],\n name: 'maxWithdraw',\n outputs: [\n {\n name: 'maxAssets',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'shares',\n type: 'uint256',\n },\n {\n name: 'receiver',\n type: 'address',\n },\n ],\n name: 'mint',\n outputs: [\n {\n name: 'assets',\n type: 'uint256',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'assets',\n type: 'uint256',\n },\n ],\n name: 'previewDeposit',\n outputs: [\n {\n name: 'shares',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'shares',\n type: 'uint256',\n },\n ],\n name: 'previewMint',\n outputs: [\n {\n name: 'assets',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'shares',\n type: 'uint256',\n },\n ],\n name: 'previewRedeem',\n outputs: [\n {\n name: 'assets',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'assets',\n type: 'uint256',\n },\n ],\n name: 'previewWithdraw',\n outputs: [\n {\n name: 'shares',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'shares',\n type: 'uint256',\n },\n {\n name: 'receiver',\n type: 'address',\n },\n {\n name: 'owner',\n type: 'address',\n },\n ],\n name: 'redeem',\n outputs: [\n {\n name: 'assets',\n type: 'uint256',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'totalAssets',\n outputs: [\n {\n name: 'totalManagedAssets',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'totalSupply',\n outputs: [\n {\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'to',\n type: 'address',\n },\n {\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'transfer',\n outputs: [\n {\n type: 'bool',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'from',\n type: 'address',\n },\n {\n name: 'to',\n type: 'address',\n },\n {\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'transferFrom',\n outputs: [\n {\n type: 'bool',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'assets',\n type: 'uint256',\n },\n {\n name: 'receiver',\n type: 'address',\n },\n {\n name: 'owner',\n type: 'address',\n },\n ],\n name: 'withdraw',\n outputs: [\n {\n name: 'shares',\n type: 'uint256',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n];\n//# sourceMappingURL=abis.js.map","export const deploylessCallViaBytecodeBytecode = '0x608060405234801561001057600080fd5b5060405161018e38038061018e83398101604081905261002f91610124565b6000808351602085016000f59050803b61004857600080fd5b6000808351602085016000855af16040513d6000823e81610067573d81fd5b3d81f35b634e487b7160e01b600052604160045260246000fd5b600082601f83011261009257600080fd5b81516001600160401b038111156100ab576100ab61006b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100d9576100d961006b565b6040528181528382016020018510156100f157600080fd5b60005b82811015610110576020818601810151838301820152016100f4565b506000918101602001919091529392505050565b6000806040838503121561013757600080fd5b82516001600160401b0381111561014d57600080fd5b61015985828601610081565b602085015190935090506001600160401b0381111561017757600080fd5b61018385828601610081565b915050925092905056fe';\nexport const deploylessCallViaFactoryBytecode = '0x608060405234801561001057600080fd5b506040516102c03803806102c083398101604081905261002f916101e6565b836001600160a01b03163b6000036100e457600080836001600160a01b03168360405161005c9190610270565b6000604051808303816000865af19150503d8060008114610099576040519150601f19603f3d011682016040523d82523d6000602084013e61009e565b606091505b50915091508115806100b857506001600160a01b0386163b155b156100e1578060405163101bb98d60e01b81526004016100d8919061028c565b60405180910390fd5b50505b6000808451602086016000885af16040513d6000823e81610103573d81fd5b3d81f35b80516001600160a01b038116811461011e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561015457818101518382015260200161013c565b50506000910152565b600082601f83011261016e57600080fd5b81516001600160401b0381111561018757610187610123565b604051601f8201601f19908116603f011681016001600160401b03811182821017156101b5576101b5610123565b6040528181528382016020018510156101cd57600080fd5b6101de826020830160208701610139565b949350505050565b600080600080608085870312156101fc57600080fd5b61020585610107565b60208601519094506001600160401b0381111561022157600080fd5b61022d8782880161015d565b93505061023c60408601610107565b60608601519092506001600160401b0381111561025857600080fd5b6102648782880161015d565b91505092959194509250565b60008251610282818460208701610139565b9190910192915050565b60208152600082518060208401526102ab816040850160208701610139565b601f01601f1916919091016040019291505056fe';\nexport const universalSignatureValidatorByteCode = '0x60806040523480156200001157600080fd5b50604051620007003803806200070083398101604081905262000034916200056f565b6000620000438484846200004f565b9050806000526001601ff35b600080846001600160a01b0316803b806020016040519081016040528181526000908060200190933c90507f6492649264926492649264926492649264926492649264926492649264926492620000a68462000451565b036200021f57600060608085806020019051810190620000c79190620005ce565b8651929550909350915060000362000192576000836001600160a01b031683604051620000f5919062000643565b6000604051808303816000865af19150503d806000811462000134576040519150601f19603f3d011682016040523d82523d6000602084013e62000139565b606091505b5050905080620001905760405162461bcd60e51b815260206004820152601e60248201527f5369676e617475726556616c696461746f723a206465706c6f796d656e74000060448201526064015b60405180910390fd5b505b604051630b135d3f60e11b808252906001600160a01b038a1690631626ba7e90620001c4908b90869060040162000661565b602060405180830381865afa158015620001e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020891906200069d565b6001600160e01b031916149450505050506200044a565b805115620002b157604051630b135d3f60e11b808252906001600160a01b03871690631626ba7e9062000259908890889060040162000661565b602060405180830381865afa15801562000277573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029d91906200069d565b6001600160e01b031916149150506200044a565b8251604114620003195760405162461bcd60e51b815260206004820152603a6024820152600080516020620006e083398151915260448201527f3a20696e76616c6964207369676e6174757265206c656e677468000000000000606482015260840162000187565b620003236200046b565b506020830151604080850151855186939260009185919081106200034b576200034b620006c9565b016020015160f81c9050601b81148015906200036b57508060ff16601c14155b15620003cf5760405162461bcd60e51b815260206004820152603b6024820152600080516020620006e083398151915260448201527f3a20696e76616c6964207369676e617475726520762076616c75650000000000606482015260840162000187565b6040805160008152602081018083528a905260ff83169181019190915260608101849052608081018390526001600160a01b038a169060019060a0016020604051602081039080840390855afa1580156200042e573d6000803e3d6000fd5b505050602060405103516001600160a01b031614955050505050505b9392505050565b60006020825110156200046357600080fd5b508051015190565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b03811681146200049f57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620004d5578181015183820152602001620004bb565b50506000910152565b600082601f830112620004f057600080fd5b81516001600160401b03808211156200050d576200050d620004a2565b604051601f8301601f19908116603f01168101908282118183101715620005385762000538620004a2565b816040528381528660208588010111156200055257600080fd5b62000565846020830160208901620004b8565b9695505050505050565b6000806000606084860312156200058557600080fd5b8351620005928162000489565b6020850151604086015191945092506001600160401b03811115620005b657600080fd5b620005c486828701620004de565b9150509250925092565b600080600060608486031215620005e457600080fd5b8351620005f18162000489565b60208501519093506001600160401b03808211156200060f57600080fd5b6200061d87838801620004de565b935060408601519150808211156200063457600080fd5b50620005c486828701620004de565b6000825162000657818460208701620004b8565b9190910192915050565b828152604060208201526000825180604084015262000688816060850160208701620004b8565b601f01601f1916919091016060019392505050565b600060208284031215620006b057600080fd5b81516001600160e01b0319811681146200044a57600080fd5b634e487b7160e01b600052603260045260246000fdfe5369676e617475726556616c696461746f72237265636f7665725369676e6572';\n//# sourceMappingURL=contracts.js.map","// https://docs.soliditylang.org/en/v0.8.16/control-structures.html#panic-via-assert-and-error-via-require\nexport const panicReasons = {\n 1: 'An `assert` condition failed.',\n 17: 'Arithmetic operation resulted in underflow or overflow.',\n 18: 'Division or modulo by zero (e.g. `5 / 0` or `23 % 0`).',\n 33: 'Attempted to convert to an invalid type.',\n 34: 'Attempted to access a storage byte array that is incorrectly encoded.',\n 49: 'Performed `.pop()` on an empty array',\n 50: 'Array index is out of bounds.',\n 65: 'Allocated too much memory or created an array which is too large.',\n 81: 'Attempted to call a zero-initialized variable of internal function type.',\n};\nexport const solidityError = {\n inputs: [\n {\n name: 'message',\n type: 'string',\n },\n ],\n name: 'Error',\n type: 'error',\n};\nexport const solidityPanic = {\n inputs: [\n {\n name: 'reason',\n type: 'uint256',\n },\n ],\n name: 'Panic',\n type: 'error',\n};\n//# sourceMappingURL=solidity.js.map","export const etherUnits = {\n gwei: 9,\n wei: 18,\n};\nexport const gweiUnits = {\n ether: -9,\n wei: 9,\n};\nexport const weiUnits = {\n ether: -18,\n gwei: -9,\n};\n//# sourceMappingURL=unit.js.map","import { formatAbiItem, formatAbiParams } from '../utils/abi/formatAbiItem.js';\nimport { size } from '../utils/data/size.js';\nimport { BaseError } from './base.js';\nexport class AbiConstructorNotFoundError extends BaseError {\n constructor({ docsPath }) {\n super([\n 'A constructor was not found on the ABI.',\n 'Make sure you are using the correct ABI and that the constructor exists on it.',\n ].join('\\n'), {\n docsPath,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiConstructorNotFoundError'\n });\n }\n}\nexport class AbiConstructorParamsNotFoundError extends BaseError {\n constructor({ docsPath }) {\n super([\n 'Constructor arguments were provided (`args`), but a constructor parameters (`inputs`) were not found on the ABI.',\n 'Make sure you are using the correct ABI, and that the `inputs` attribute on the constructor exists.',\n ].join('\\n'), {\n docsPath,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiConstructorParamsNotFoundError'\n });\n }\n}\nexport class AbiDecodingDataSizeInvalidError extends BaseError {\n constructor({ data, size }) {\n super([\n `Data size of ${size} bytes is invalid.`,\n 'Size must be in increments of 32 bytes (size % 32 === 0).',\n ].join('\\n'), { metaMessages: [`Data: ${data} (${size} bytes)`] });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiDecodingDataSizeInvalidError'\n });\n }\n}\nexport class AbiDecodingDataSizeTooSmallError extends BaseError {\n constructor({ data, params, size, }) {\n super([`Data size of ${size} bytes is too small for given parameters.`].join('\\n'), {\n metaMessages: [\n `Params: (${formatAbiParams(params, { includeName: true })})`,\n `Data: ${data} (${size} bytes)`,\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiDecodingDataSizeTooSmallError'\n });\n Object.defineProperty(this, \"data\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"params\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"size\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.data = data;\n this.params = params;\n this.size = size;\n }\n}\nexport class AbiDecodingZeroDataError extends BaseError {\n constructor() {\n super('Cannot decode zero data (\"0x\") with ABI parameters.');\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiDecodingZeroDataError'\n });\n }\n}\nexport class AbiEncodingArrayLengthMismatchError extends BaseError {\n constructor({ expectedLength, givenLength, type, }) {\n super([\n `ABI encoding array length mismatch for type ${type}.`,\n `Expected length: ${expectedLength}`,\n `Given length: ${givenLength}`,\n ].join('\\n'));\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiEncodingArrayLengthMismatchError'\n });\n }\n}\nexport class AbiEncodingBytesSizeMismatchError extends BaseError {\n constructor({ expectedSize, value }) {\n super(`Size of bytes \"${value}\" (bytes${size(value)}) does not match expected size (bytes${expectedSize}).`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiEncodingBytesSizeMismatchError'\n });\n }\n}\nexport class AbiEncodingLengthMismatchError extends BaseError {\n constructor({ expectedLength, givenLength, }) {\n super([\n 'ABI encoding params/values length mismatch.',\n `Expected length (params): ${expectedLength}`,\n `Given length (values): ${givenLength}`,\n ].join('\\n'));\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiEncodingLengthMismatchError'\n });\n }\n}\nexport class AbiErrorInputsNotFoundError extends BaseError {\n constructor(errorName, { docsPath }) {\n super([\n `Arguments (\\`args\\`) were provided to \"${errorName}\", but \"${errorName}\" on the ABI does not contain any parameters (\\`inputs\\`).`,\n 'Cannot encode error result without knowing what the parameter types are.',\n 'Make sure you are using the correct ABI and that the inputs exist on it.',\n ].join('\\n'), {\n docsPath,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiErrorInputsNotFoundError'\n });\n }\n}\nexport class AbiErrorNotFoundError extends BaseError {\n constructor(errorName, { docsPath } = {}) {\n super([\n `Error ${errorName ? `\"${errorName}\" ` : ''}not found on ABI.`,\n 'Make sure you are using the correct ABI and that the error exists on it.',\n ].join('\\n'), {\n docsPath,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiErrorNotFoundError'\n });\n }\n}\nexport class AbiErrorSignatureNotFoundError extends BaseError {\n constructor(signature, { docsPath }) {\n super([\n `Encoded error signature \"${signature}\" not found on ABI.`,\n 'Make sure you are using the correct ABI and that the error exists on it.',\n `You can look up the decoded signature here: https://openchain.xyz/signatures?query=${signature}.`,\n ].join('\\n'), {\n docsPath,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiErrorSignatureNotFoundError'\n });\n Object.defineProperty(this, \"signature\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.signature = signature;\n }\n}\nexport class AbiEventSignatureEmptyTopicsError extends BaseError {\n constructor({ docsPath }) {\n super('Cannot extract event signature from empty topics.', {\n docsPath,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiEventSignatureEmptyTopicsError'\n });\n }\n}\nexport class AbiEventSignatureNotFoundError extends BaseError {\n constructor(signature, { docsPath }) {\n super([\n `Encoded event signature \"${signature}\" not found on ABI.`,\n 'Make sure you are using the correct ABI and that the event exists on it.',\n `You can look up the signature here: https://openchain.xyz/signatures?query=${signature}.`,\n ].join('\\n'), {\n docsPath,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiEventSignatureNotFoundError'\n });\n }\n}\nexport class AbiEventNotFoundError extends BaseError {\n constructor(eventName, { docsPath } = {}) {\n super([\n `Event ${eventName ? `\"${eventName}\" ` : ''}not found on ABI.`,\n 'Make sure you are using the correct ABI and that the event exists on it.',\n ].join('\\n'), {\n docsPath,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiEventNotFoundError'\n });\n }\n}\nexport class AbiFunctionNotFoundError extends BaseError {\n constructor(functionName, { docsPath } = {}) {\n super([\n `Function ${functionName ? `\"${functionName}\" ` : ''}not found on ABI.`,\n 'Make sure you are using the correct ABI and that the function exists on it.',\n ].join('\\n'), {\n docsPath,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiFunctionNotFoundError'\n });\n }\n}\nexport class AbiFunctionOutputsNotFoundError extends BaseError {\n constructor(functionName, { docsPath }) {\n super([\n `Function \"${functionName}\" does not contain any \\`outputs\\` on ABI.`,\n 'Cannot decode function result without knowing what the parameter types are.',\n 'Make sure you are using the correct ABI and that the function exists on it.',\n ].join('\\n'), {\n docsPath,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiFunctionOutputsNotFoundError'\n });\n }\n}\nexport class AbiFunctionSignatureNotFoundError extends BaseError {\n constructor(signature, { docsPath }) {\n super([\n `Encoded function signature \"${signature}\" not found on ABI.`,\n 'Make sure you are using the correct ABI and that the function exists on it.',\n `You can look up the signature here: https://openchain.xyz/signatures?query=${signature}.`,\n ].join('\\n'), {\n docsPath,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiFunctionSignatureNotFoundError'\n });\n }\n}\nexport class AbiItemAmbiguityError extends BaseError {\n constructor(x, y) {\n super('Found ambiguous types in overloaded ABI items.', {\n metaMessages: [\n `\\`${x.type}\\` in \\`${formatAbiItem(x.abiItem)}\\`, and`,\n `\\`${y.type}\\` in \\`${formatAbiItem(y.abiItem)}\\``,\n '',\n 'These types encode differently and cannot be distinguished at runtime.',\n 'Remove one of the ambiguous items in the ABI.',\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiItemAmbiguityError'\n });\n }\n}\nexport class BytesSizeMismatchError extends BaseError {\n constructor({ expectedSize, givenSize, }) {\n super(`Expected bytes${expectedSize}, got bytes${givenSize}.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'BytesSizeMismatchError'\n });\n }\n}\nexport class DecodeLogDataMismatch extends BaseError {\n constructor({ abiItem, data, params, size, }) {\n super([\n `Data size of ${size} bytes is too small for non-indexed event parameters.`,\n ].join('\\n'), {\n metaMessages: [\n `Params: (${formatAbiParams(params, { includeName: true })})`,\n `Data: ${data} (${size} bytes)`,\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'DecodeLogDataMismatch'\n });\n Object.defineProperty(this, \"abiItem\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"data\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"params\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"size\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.abiItem = abiItem;\n this.data = data;\n this.params = params;\n this.size = size;\n }\n}\nexport class DecodeLogTopicsMismatch extends BaseError {\n constructor({ abiItem, param, }) {\n super([\n `Expected a topic for indexed event parameter${param.name ? ` \"${param.name}\"` : ''} on event \"${formatAbiItem(abiItem, { includeName: true })}\".`,\n ].join('\\n'));\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'DecodeLogTopicsMismatch'\n });\n Object.defineProperty(this, \"abiItem\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.abiItem = abiItem;\n }\n}\nexport class InvalidAbiEncodingTypeError extends BaseError {\n constructor(type, { docsPath }) {\n super([\n `Type \"${type}\" is not a valid encoding type.`,\n 'Please provide a valid ABI type.',\n ].join('\\n'), { docsPath });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidAbiEncodingType'\n });\n }\n}\nexport class InvalidAbiDecodingTypeError extends BaseError {\n constructor(type, { docsPath }) {\n super([\n `Type \"${type}\" is not a valid decoding type.`,\n 'Please provide a valid ABI type.',\n ].join('\\n'), { docsPath });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidAbiDecodingType'\n });\n }\n}\nexport class InvalidArrayError extends BaseError {\n constructor(value) {\n super([`Value \"${value}\" is not a valid array.`].join('\\n'));\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidArrayError'\n });\n }\n}\nexport class InvalidDefinitionTypeError extends BaseError {\n constructor(type) {\n super([\n `\"${type}\" is not a valid definition type.`,\n 'Valid types: \"function\", \"event\", \"error\"',\n ].join('\\n'));\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidDefinitionTypeError'\n });\n }\n}\nexport class UnsupportedPackedAbiType extends BaseError {\n constructor(type) {\n super(`Type \"${type}\" is not supported for packed encoding.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'UnsupportedPackedAbiType'\n });\n }\n}\n//# sourceMappingURL=abi.js.map","import { BaseError } from './base.js';\nexport class InvalidAddressError extends BaseError {\n constructor({ address }) {\n super(`Address \"${address}\" is invalid.`, {\n metaMessages: [\n '- Address must be a hex value of 20 bytes (40 hex characters).',\n '- Address must match its checksum counterpart.',\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidAddressError'\n });\n }\n}\n//# sourceMappingURL=address.js.map","import { getVersion } from './utils.js';\nexport class BaseError extends Error {\n constructor(shortMessage, args = {}) {\n super();\n Object.defineProperty(this, \"details\", {\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, \"metaMessages\", {\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, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ViemError'\n });\n Object.defineProperty(this, \"version\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: getVersion()\n });\n const details = args.cause instanceof BaseError\n ? args.cause.details\n : args.cause?.message\n ? args.cause.message\n : args.details;\n const docsPath = args.cause instanceof BaseError\n ? args.cause.docsPath || args.docsPath\n : args.docsPath;\n this.message = [\n shortMessage || 'An error occurred.',\n '',\n ...(args.metaMessages ? [...args.metaMessages, ''] : []),\n ...(docsPath\n ? [\n `Docs: ${args.docsBaseUrl ?? 'https://viem.sh'}${docsPath}${args.docsSlug ? `#${args.docsSlug}` : ''}`,\n ]\n : []),\n ...(details ? [`Details: ${details}`] : []),\n `Version: ${this.version}`,\n ].join('\\n');\n if (args.cause)\n this.cause = args.cause;\n this.details = details;\n this.docsPath = docsPath;\n this.metaMessages = args.metaMessages;\n this.shortMessage = shortMessage;\n }\n walk(fn) {\n return walk(this, fn);\n }\n}\nfunction walk(err, fn) {\n if (fn?.(err))\n return err;\n if (err && typeof err === 'object' && 'cause' in err)\n return walk(err.cause, fn);\n return fn ? null : err;\n}\n//# sourceMappingURL=base.js.map","import { BaseError } from './base.js';\nexport class BlockNotFoundError extends BaseError {\n constructor({ blockHash, blockNumber, }) {\n let identifier = 'Block';\n if (blockHash)\n identifier = `Block at hash \"${blockHash}\"`;\n if (blockNumber)\n identifier = `Block at number \"${blockNumber}\"`;\n super(`${identifier} could not be found.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'BlockNotFoundError'\n });\n }\n}\n//# sourceMappingURL=block.js.map","import { BaseError } from './base.js';\nexport class ChainDoesNotSupportContract extends BaseError {\n constructor({ blockNumber, chain, contract, }) {\n super(`Chain \"${chain.name}\" does not support contract \"${contract.name}\".`, {\n metaMessages: [\n 'This could be due to any of the following:',\n ...(blockNumber &&\n contract.blockCreated &&\n contract.blockCreated > blockNumber\n ? [\n `- The contract \"${contract.name}\" was not deployed until block ${contract.blockCreated} (current block ${blockNumber}).`,\n ]\n : [\n `- The chain does not have the contract \"${contract.name}\" configured.`,\n ]),\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ChainDoesNotSupportContract'\n });\n }\n}\nexport class ChainMismatchError extends BaseError {\n constructor({ chain, currentChainId, }) {\n super(`The current chain of the wallet (id: ${currentChainId}) does not match the target chain for the transaction (id: ${chain.id} – ${chain.name}).`, {\n metaMessages: [\n `Current Chain ID: ${currentChainId}`,\n `Expected Chain ID: ${chain.id} – ${chain.name}`,\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ChainMismatchError'\n });\n }\n}\nexport class ChainNotFoundError extends BaseError {\n constructor() {\n super([\n 'No chain was provided to the request.',\n 'Please provide a chain with the `chain` argument on the Action, or by supplying a `chain` to WalletClient.',\n ].join('\\n'));\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ChainNotFoundError'\n });\n }\n}\nexport class ClientChainNotConfiguredError extends BaseError {\n constructor() {\n super('No chain was provided to the Client.');\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ClientChainNotConfiguredError'\n });\n }\n}\nexport class InvalidChainIdError extends BaseError {\n constructor({ chainId }) {\n super(typeof chainId === 'number'\n ? `Chain ID \"${chainId}\" is invalid.`\n : 'Chain ID is invalid.');\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidChainIdError'\n });\n }\n}\n//# sourceMappingURL=chain.js.map","import { stringify } from '../stringify.js';\nexport function formatAbiItemWithArgs({ abiItem, args, includeFunctionName = true, includeName = false, }) {\n if (!('name' in abiItem))\n return;\n if (!('inputs' in abiItem))\n return;\n if (!abiItem.inputs)\n return;\n return `${includeFunctionName ? abiItem.name : ''}(${abiItem.inputs\n .map((input, i) => `${includeName && input.name ? `${input.name}: ` : ''}${typeof args[i] === 'object' ? stringify(args[i]) : args[i]}`)\n .join(', ')})`;\n}\n//# sourceMappingURL=formatAbiItemWithArgs.js.map","import { parseAccount } from '../accounts/utils/parseAccount.js';\nimport { panicReasons } from '../constants/solidity.js';\nimport { decodeErrorResult, } from '../utils/abi/decodeErrorResult.js';\nimport { formatAbiItem } from '../utils/abi/formatAbiItem.js';\nimport { formatAbiItemWithArgs } from '../utils/abi/formatAbiItemWithArgs.js';\nimport { getAbiItem } from '../utils/abi/getAbiItem.js';\nimport { formatEther } from '../utils/unit/formatEther.js';\nimport { formatGwei } from '../utils/unit/formatGwei.js';\nimport { AbiErrorSignatureNotFoundError } from './abi.js';\nimport { BaseError } from './base.js';\nimport { prettyStateOverride } from './stateOverride.js';\nimport { prettyPrint } from './transaction.js';\nimport { getContractAddress } from './utils.js';\nexport class CallExecutionError extends BaseError {\n constructor(cause, { account: account_, docsPath, chain, data, gas, gasPrice, maxFeePerGas, maxPriorityFeePerGas, nonce, to, value, stateOverride, }) {\n const account = account_ ? parseAccount(account_) : undefined;\n let prettyArgs = prettyPrint({\n from: account?.address,\n to,\n value: typeof value !== 'undefined' &&\n `${formatEther(value)} ${chain?.nativeCurrency?.symbol || 'ETH'}`,\n data,\n gas,\n gasPrice: typeof gasPrice !== 'undefined' && `${formatGwei(gasPrice)} gwei`,\n maxFeePerGas: typeof maxFeePerGas !== 'undefined' &&\n `${formatGwei(maxFeePerGas)} gwei`,\n maxPriorityFeePerGas: typeof maxPriorityFeePerGas !== 'undefined' &&\n `${formatGwei(maxPriorityFeePerGas)} gwei`,\n nonce,\n });\n if (stateOverride) {\n prettyArgs += `\\n${prettyStateOverride(stateOverride)}`;\n }\n super(cause.shortMessage, {\n cause,\n docsPath,\n metaMessages: [\n ...(cause.metaMessages ? [...cause.metaMessages, ' '] : []),\n 'Raw Call Arguments:',\n prettyArgs,\n ].filter(Boolean),\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: 'CallExecutionError'\n });\n this.cause = cause;\n }\n}\nexport class ContractFunctionExecutionError extends BaseError {\n constructor(cause, { abi, args, contractAddress, docsPath, functionName, sender, }) {\n const abiItem = getAbiItem({ abi, args, name: functionName });\n const formattedArgs = abiItem\n ? formatAbiItemWithArgs({\n abiItem,\n args,\n includeFunctionName: false,\n includeName: false,\n })\n : undefined;\n const functionWithParams = abiItem\n ? formatAbiItem(abiItem, { includeName: true })\n : undefined;\n const prettyArgs = prettyPrint({\n address: contractAddress && getContractAddress(contractAddress),\n function: functionWithParams,\n args: formattedArgs &&\n formattedArgs !== '()' &&\n `${[...Array(functionName?.length ?? 0).keys()]\n .map(() => ' ')\n .join('')}${formattedArgs}`,\n sender,\n });\n super(cause.shortMessage ||\n `An unknown error occurred while executing the contract function \"${functionName}\".`, {\n cause,\n docsPath,\n metaMessages: [\n ...(cause.metaMessages ? [...cause.metaMessages, ' '] : []),\n 'Contract Call:',\n prettyArgs,\n ].filter(Boolean),\n });\n Object.defineProperty(this, \"abi\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"args\", {\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, \"contractAddress\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"formattedArgs\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"functionName\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"sender\", {\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: 'ContractFunctionExecutionError'\n });\n this.abi = abi;\n this.args = args;\n this.cause = cause;\n this.contractAddress = contractAddress;\n this.functionName = functionName;\n this.sender = sender;\n }\n}\nexport class ContractFunctionRevertedError extends BaseError {\n constructor({ abi, data, functionName, message, }) {\n let cause;\n let decodedData = undefined;\n let metaMessages;\n let reason;\n if (data && data !== '0x') {\n try {\n decodedData = decodeErrorResult({ abi, data });\n const { abiItem, errorName, args: errorArgs } = decodedData;\n if (errorName === 'Error') {\n reason = errorArgs[0];\n }\n else if (errorName === 'Panic') {\n const [firstArg] = errorArgs;\n reason = panicReasons[firstArg];\n }\n else {\n const errorWithParams = abiItem\n ? formatAbiItem(abiItem, { includeName: true })\n : undefined;\n const formattedArgs = abiItem && errorArgs\n ? formatAbiItemWithArgs({\n abiItem,\n args: errorArgs,\n includeFunctionName: false,\n includeName: false,\n })\n : undefined;\n metaMessages = [\n errorWithParams ? `Error: ${errorWithParams}` : '',\n formattedArgs && formattedArgs !== '()'\n ? ` ${[...Array(errorName?.length ?? 0).keys()]\n .map(() => ' ')\n .join('')}${formattedArgs}`\n : '',\n ];\n }\n }\n catch (err) {\n cause = err;\n }\n }\n else if (message)\n reason = message;\n let signature;\n if (cause instanceof AbiErrorSignatureNotFoundError) {\n signature = cause.signature;\n metaMessages = [\n `Unable to decode signature \"${signature}\" as it was not found on the provided ABI.`,\n 'Make sure you are using the correct ABI and that the error exists on it.',\n `You can look up the decoded signature here: https://openchain.xyz/signatures?query=${signature}.`,\n ];\n }\n super((reason && reason !== 'execution reverted') || signature\n ? [\n `The contract function \"${functionName}\" reverted with the following ${signature ? 'signature' : 'reason'}:`,\n reason || signature,\n ].join('\\n')\n : `The contract function \"${functionName}\" reverted.`, {\n cause,\n metaMessages,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ContractFunctionRevertedError'\n });\n Object.defineProperty(this, \"data\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"reason\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"signature\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.data = decodedData;\n this.reason = reason;\n this.signature = signature;\n }\n}\nexport class ContractFunctionZeroDataError extends BaseError {\n constructor({ functionName }) {\n super(`The contract function \"${functionName}\" returned no data (\"0x\").`, {\n metaMessages: [\n 'This could be due to any of the following:',\n ` - The contract does not have the function \"${functionName}\",`,\n ' - The parameters passed to the contract function may be invalid, or',\n ' - The address is not a contract.',\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ContractFunctionZeroDataError'\n });\n }\n}\nexport class CounterfactualDeploymentFailedError extends BaseError {\n constructor({ factory }) {\n super(`Deployment for counterfactual contract call failed${factory ? ` for factory \"${factory}\".` : ''}`, {\n metaMessages: [\n 'Please ensure:',\n '- The `factory` is a valid contract deployment factory (ie. Create2 Factory, ERC-4337 Factory, etc).',\n '- The `factoryData` is a valid encoded function call for contract deployment function on the factory.',\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'CounterfactualDeploymentFailedError'\n });\n }\n}\nexport class RawContractError extends BaseError {\n constructor({ data, message, }) {\n super(message || '');\n Object.defineProperty(this, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 3\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'RawContractError'\n });\n Object.defineProperty(this, \"data\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.data = data;\n }\n}\n//# sourceMappingURL=contract.js.map","import { BaseError } from './base.js';\nexport class NegativeOffsetError extends BaseError {\n constructor({ offset }) {\n super(`Offset \\`${offset}\\` cannot be negative.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'NegativeOffsetError'\n });\n }\n}\nexport class PositionOutOfBoundsError extends BaseError {\n constructor({ length, position }) {\n super(`Position \\`${position}\\` is out of bounds (\\`0 < position < ${length}\\`).`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'PositionOutOfBoundsError'\n });\n }\n}\nexport class RecursiveReadLimitExceededError extends BaseError {\n constructor({ count, limit }) {\n super(`Recursive read limit of \\`${limit}\\` exceeded (recursive read count: \\`${count}\\`).`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'RecursiveReadLimitExceededError'\n });\n }\n}\n//# sourceMappingURL=cursor.js.map","import { BaseError } from './base.js';\nexport class SliceOffsetOutOfBoundsError extends 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: 'SliceOffsetOutOfBoundsError'\n });\n }\n}\nexport class SizeExceedsPaddingSizeError extends 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: 'SizeExceedsPaddingSizeError'\n });\n }\n}\nexport class InvalidBytesLengthError extends BaseError {\n constructor({ size, targetSize, type, }) {\n super(`${type.charAt(0).toUpperCase()}${type\n .slice(1)\n .toLowerCase()} is expected to be ${targetSize} ${type} long, but is ${size} ${type} long.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidBytesLengthError'\n });\n }\n}\n//# sourceMappingURL=data.js.map","import { BaseError } from './base.js';\nexport class IntegerOutOfRangeError extends 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: 'IntegerOutOfRangeError'\n });\n }\n}\nexport class InvalidBytesBooleanError extends BaseError {\n constructor(bytes) {\n super(`Bytes value \"${bytes}\" is not a valid boolean. The bytes array must contain a single byte of either a 0 or 1 value.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidBytesBooleanError'\n });\n }\n}\nexport class InvalidHexBooleanError extends BaseError {\n constructor(hex) {\n super(`Hex value \"${hex}\" is not a valid boolean. The hex value must be \"0x0\" (false) or \"0x1\" (true).`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidHexBooleanError'\n });\n }\n}\nexport class InvalidHexValueError extends BaseError {\n constructor(value) {\n super(`Hex value \"${value}\" is an odd length (${value.length}). It must be an even length.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidHexValueError'\n });\n }\n}\nexport class SizeOverflowError extends 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: 'SizeOverflowError'\n });\n }\n}\n//# sourceMappingURL=encoding.js.map","import { formatGwei } from '../utils/unit/formatGwei.js';\nimport { BaseError } from './base.js';\nexport class BaseFeeScalarError extends BaseError {\n constructor() {\n super('`baseFeeMultiplier` must be greater than 1.');\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'BaseFeeScalarError'\n });\n }\n}\nexport class Eip1559FeesNotSupportedError extends BaseError {\n constructor() {\n super('Chain does not support EIP-1559 fees.');\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Eip1559FeesNotSupportedError'\n });\n }\n}\nexport class MaxFeePerGasTooLowError extends BaseError {\n constructor({ maxPriorityFeePerGas }) {\n super(`\\`maxFeePerGas\\` cannot be less than the \\`maxPriorityFeePerGas\\` (${formatGwei(maxPriorityFeePerGas)} gwei).`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'MaxFeePerGasTooLowError'\n });\n }\n}\n//# sourceMappingURL=fee.js.map","import { formatGwei } from '../utils/unit/formatGwei.js';\nimport { BaseError } from './base.js';\nexport class ExecutionRevertedError extends BaseError {\n constructor({ cause, message, } = {}) {\n const reason = message\n ?.replace('execution reverted: ', '')\n ?.replace('execution reverted', '');\n super(`Execution reverted ${reason ? `with reason: ${reason}` : 'for an unknown reason'}.`, {\n cause,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ExecutionRevertedError'\n });\n }\n}\nObject.defineProperty(ExecutionRevertedError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 3\n});\nObject.defineProperty(ExecutionRevertedError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /execution reverted/\n});\nexport class FeeCapTooHighError extends BaseError {\n constructor({ cause, maxFeePerGas, } = {}) {\n super(`The fee cap (\\`maxFeePerGas\\`${maxFeePerGas ? ` = ${formatGwei(maxFeePerGas)} gwei` : ''}) cannot be higher than the maximum allowed value (2^256-1).`, {\n cause,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'FeeCapTooHigh'\n });\n }\n}\nObject.defineProperty(FeeCapTooHighError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /max fee per gas higher than 2\\^256-1|fee cap higher than 2\\^256-1/\n});\nexport class FeeCapTooLowError extends BaseError {\n constructor({ cause, maxFeePerGas, } = {}) {\n super(`The fee cap (\\`maxFeePerGas\\`${maxFeePerGas ? ` = ${formatGwei(maxFeePerGas)}` : ''} gwei) cannot be lower than the block base fee.`, {\n cause,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'FeeCapTooLow'\n });\n }\n}\nObject.defineProperty(FeeCapTooLowError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /max fee per gas less than block base fee|fee cap less than block base fee|transaction is outdated/\n});\nexport class NonceTooHighError extends BaseError {\n constructor({ cause, nonce, } = {}) {\n super(`Nonce provided for the transaction ${nonce ? `(${nonce}) ` : ''}is higher than the next one expected.`, { cause });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'NonceTooHighError'\n });\n }\n}\nObject.defineProperty(NonceTooHighError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /nonce too high/\n});\nexport class NonceTooLowError extends BaseError {\n constructor({ cause, nonce, } = {}) {\n super([\n `Nonce provided for the transaction ${nonce ? `(${nonce}) ` : ''}is lower than the current nonce of the account.`,\n 'Try increasing the nonce or find the latest nonce with `getTransactionCount`.',\n ].join('\\n'), { cause });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'NonceTooLowError'\n });\n }\n}\nObject.defineProperty(NonceTooLowError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /nonce too low|transaction already imported|already known/\n});\nexport class NonceMaxValueError extends BaseError {\n constructor({ cause, nonce, } = {}) {\n super(`Nonce provided for the transaction ${nonce ? `(${nonce}) ` : ''}exceeds the maximum allowed nonce.`, { cause });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'NonceMaxValueError'\n });\n }\n}\nObject.defineProperty(NonceMaxValueError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /nonce has max value/\n});\nexport class InsufficientFundsError extends BaseError {\n constructor({ cause } = {}) {\n super([\n 'The total cost (gas * gas fee + value) of executing this transaction exceeds the balance of the account.',\n ].join('\\n'), {\n cause,\n metaMessages: [\n 'This error could arise when the account does not have enough funds to:',\n ' - pay for the total gas fee,',\n ' - pay for the value to send.',\n ' ',\n 'The cost of the transaction is calculated as `gas * gas fee + value`, where:',\n ' - `gas` is the amount of gas needed for transaction to execute,',\n ' - `gas fee` is the gas fee,',\n ' - `value` is the amount of ether to send to the recipient.',\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InsufficientFundsError'\n });\n }\n}\nObject.defineProperty(InsufficientFundsError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /insufficient funds/\n});\nexport class IntrinsicGasTooHighError extends BaseError {\n constructor({ cause, gas, } = {}) {\n super(`The amount of gas ${gas ? `(${gas}) ` : ''}provided for the transaction exceeds the limit allowed for the block.`, {\n cause,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'IntrinsicGasTooHighError'\n });\n }\n}\nObject.defineProperty(IntrinsicGasTooHighError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /intrinsic gas too high|gas limit reached/\n});\nexport class IntrinsicGasTooLowError extends BaseError {\n constructor({ cause, gas, } = {}) {\n super(`The amount of gas ${gas ? `(${gas}) ` : ''}provided for the transaction is too low.`, {\n cause,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'IntrinsicGasTooLowError'\n });\n }\n}\nObject.defineProperty(IntrinsicGasTooLowError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /intrinsic gas too low/\n});\nexport class TransactionTypeNotSupportedError extends BaseError {\n constructor({ cause }) {\n super('The transaction type is not supported for this chain.', {\n cause,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'TransactionTypeNotSupportedError'\n });\n }\n}\nObject.defineProperty(TransactionTypeNotSupportedError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /transaction type not valid/\n});\nexport class TipAboveFeeCapError extends BaseError {\n constructor({ cause, maxPriorityFeePerGas, maxFeePerGas, } = {}) {\n super([\n `The provided tip (\\`maxPriorityFeePerGas\\`${maxPriorityFeePerGas\n ? ` = ${formatGwei(maxPriorityFeePerGas)} gwei`\n : ''}) cannot be higher than the fee cap (\\`maxFeePerGas\\`${maxFeePerGas ? ` = ${formatGwei(maxFeePerGas)} gwei` : ''}).`,\n ].join('\\n'), {\n cause,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'TipAboveFeeCapError'\n });\n }\n}\nObject.defineProperty(TipAboveFeeCapError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /max priority fee per gas higher than max fee per gas|tip higher than fee cap/\n});\nexport class UnknownNodeError extends BaseError {\n constructor({ cause }) {\n super(`An error occurred while executing: ${cause?.shortMessage}`, {\n cause,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'UnknownNodeError'\n });\n }\n}\n//# sourceMappingURL=node.js.map","import { stringify } from '../utils/stringify.js';\nimport { BaseError } from './base.js';\nimport { getUrl } from './utils.js';\nexport class HttpRequestError extends BaseError {\n constructor({ body, details, headers, status, url, }) {\n super('HTTP request failed.', {\n details,\n metaMessages: [\n status && `Status: ${status}`,\n `URL: ${getUrl(url)}`,\n body && `Request body: ${stringify(body)}`,\n ].filter(Boolean),\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'HttpRequestError'\n });\n Object.defineProperty(this, \"body\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"headers\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"status\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"url\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.body = body;\n this.headers = headers;\n this.status = status;\n this.url = url;\n }\n}\nexport class WebSocketRequestError extends BaseError {\n constructor({ body, details, url, }) {\n super('WebSocket request failed.', {\n details,\n metaMessages: [`URL: ${getUrl(url)}`, `Request body: ${stringify(body)}`],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'WebSocketRequestError'\n });\n }\n}\nexport class RpcRequestError extends BaseError {\n constructor({ body, error, url, }) {\n super('RPC Request failed.', {\n cause: error,\n details: error.message,\n metaMessages: [`URL: ${getUrl(url)}`, `Request body: ${stringify(body)}`],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'RpcRequestError'\n });\n Object.defineProperty(this, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.code = error.code;\n }\n}\nexport class TimeoutError extends BaseError {\n constructor({ body, url, }) {\n super('The request took too long to respond.', {\n details: 'The request timed out.',\n metaMessages: [`URL: ${getUrl(url)}`, `Request body: ${stringify(body)}`],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'TimeoutError'\n });\n }\n}\n//# sourceMappingURL=request.js.map","import { BaseError } from './base.js';\nimport { RpcRequestError } from './request.js';\nconst unknownErrorCode = -1;\nexport class RpcError extends BaseError {\n constructor(cause, { code, docsPath, metaMessages, shortMessage }) {\n super(shortMessage, {\n cause,\n docsPath,\n metaMessages: metaMessages || cause?.metaMessages,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'RpcError'\n });\n Object.defineProperty(this, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.name = cause.name;\n this.code = (cause instanceof RpcRequestError ? cause.code : code ?? unknownErrorCode);\n }\n}\nexport class ProviderRpcError extends RpcError {\n constructor(cause, options) {\n super(cause, options);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ProviderRpcError'\n });\n Object.defineProperty(this, \"data\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.data = options.data;\n }\n}\nexport class ParseRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: ParseRpcError.code,\n shortMessage: 'Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ParseRpcError'\n });\n }\n}\nObject.defineProperty(ParseRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32700\n});\nexport class InvalidRequestRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: InvalidRequestRpcError.code,\n shortMessage: 'JSON is not a valid request object.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidRequestRpcError'\n });\n }\n}\nObject.defineProperty(InvalidRequestRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32600\n});\nexport class MethodNotFoundRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: MethodNotFoundRpcError.code,\n shortMessage: 'The method does not exist / is not available.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'MethodNotFoundRpcError'\n });\n }\n}\nObject.defineProperty(MethodNotFoundRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32601\n});\nexport class InvalidParamsRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: InvalidParamsRpcError.code,\n shortMessage: [\n 'Invalid parameters were provided to the RPC method.',\n 'Double check you have provided the correct parameters.',\n ].join('\\n'),\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidParamsRpcError'\n });\n }\n}\nObject.defineProperty(InvalidParamsRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32602\n});\nexport class InternalRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: InternalRpcError.code,\n shortMessage: 'An internal error was received.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InternalRpcError'\n });\n }\n}\nObject.defineProperty(InternalRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32603\n});\nexport class InvalidInputRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: InvalidInputRpcError.code,\n shortMessage: [\n 'Missing or invalid parameters.',\n 'Double check you have provided the correct parameters.',\n ].join('\\n'),\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidInputRpcError'\n });\n }\n}\nObject.defineProperty(InvalidInputRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32000\n});\nexport class ResourceNotFoundRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: ResourceNotFoundRpcError.code,\n shortMessage: 'Requested resource not found.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ResourceNotFoundRpcError'\n });\n }\n}\nObject.defineProperty(ResourceNotFoundRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32001\n});\nexport class ResourceUnavailableRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: ResourceUnavailableRpcError.code,\n shortMessage: 'Requested resource not available.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ResourceUnavailableRpcError'\n });\n }\n}\nObject.defineProperty(ResourceUnavailableRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32002\n});\nexport class TransactionRejectedRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: TransactionRejectedRpcError.code,\n shortMessage: 'Transaction creation failed.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'TransactionRejectedRpcError'\n });\n }\n}\nObject.defineProperty(TransactionRejectedRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32003\n});\nexport class MethodNotSupportedRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: MethodNotSupportedRpcError.code,\n shortMessage: 'Method is not implemented.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'MethodNotSupportedRpcError'\n });\n }\n}\nObject.defineProperty(MethodNotSupportedRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32004\n});\nexport class LimitExceededRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: LimitExceededRpcError.code,\n shortMessage: 'Request exceeds defined limit.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'LimitExceededRpcError'\n });\n }\n}\nObject.defineProperty(LimitExceededRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32005\n});\nexport class JsonRpcVersionUnsupportedError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: JsonRpcVersionUnsupportedError.code,\n shortMessage: 'Version of JSON-RPC protocol is not supported.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'JsonRpcVersionUnsupportedError'\n });\n }\n}\nObject.defineProperty(JsonRpcVersionUnsupportedError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32006\n});\nexport class UserRejectedRequestError extends ProviderRpcError {\n constructor(cause) {\n super(cause, {\n code: UserRejectedRequestError.code,\n shortMessage: 'User rejected the request.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'UserRejectedRequestError'\n });\n }\n}\nObject.defineProperty(UserRejectedRequestError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 4001\n});\nexport class UnauthorizedProviderError extends ProviderRpcError {\n constructor(cause) {\n super(cause, {\n code: UnauthorizedProviderError.code,\n shortMessage: 'The requested method and/or account has not been authorized by the user.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'UnauthorizedProviderError'\n });\n }\n}\nObject.defineProperty(UnauthorizedProviderError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 4100\n});\nexport class UnsupportedProviderMethodError extends ProviderRpcError {\n constructor(cause) {\n super(cause, {\n code: UnsupportedProviderMethodError.code,\n shortMessage: 'The Provider does not support the requested method.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'UnsupportedProviderMethodError'\n });\n }\n}\nObject.defineProperty(UnsupportedProviderMethodError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 4200\n});\nexport class ProviderDisconnectedError extends ProviderRpcError {\n constructor(cause) {\n super(cause, {\n code: ProviderDisconnectedError.code,\n shortMessage: 'The Provider is disconnected from all chains.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ProviderDisconnectedError'\n });\n }\n}\nObject.defineProperty(ProviderDisconnectedError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 4900\n});\nexport class ChainDisconnectedError extends ProviderRpcError {\n constructor(cause) {\n super(cause, {\n code: ChainDisconnectedError.code,\n shortMessage: 'The Provider is not connected to the requested chain.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ChainDisconnectedError'\n });\n }\n}\nObject.defineProperty(ChainDisconnectedError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 4901\n});\nexport class SwitchChainError extends ProviderRpcError {\n constructor(cause) {\n super(cause, {\n code: SwitchChainError.code,\n shortMessage: 'An error occurred when attempting to switch chain.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'SwitchChainError'\n });\n }\n}\nObject.defineProperty(SwitchChainError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 4902\n});\nexport class UnknownRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n shortMessage: 'An unknown RPC error occurred.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'UnknownRpcError'\n });\n }\n}\n//# sourceMappingURL=rpc.js.map","import { BaseError } from './base.js';\nexport class AccountStateConflictError extends BaseError {\n constructor({ address }) {\n super(`State for account \"${address}\" is set multiple times.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AccountStateConflictError'\n });\n }\n}\nexport class StateAssignmentConflictError extends BaseError {\n constructor() {\n super('state and stateDiff are set on the same account.');\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'StateAssignmentConflictError'\n });\n }\n}\n/** @internal */\nexport function prettyStateMapping(stateMapping) {\n return stateMapping.reduce((pretty, { slot, value }) => {\n return `${pretty} ${slot}: ${value}\\n`;\n }, '');\n}\nexport function prettyStateOverride(stateOverride) {\n return stateOverride\n .reduce((pretty, { address, ...state }) => {\n let val = `${pretty} ${address}:\\n`;\n if (state.nonce)\n val += ` nonce: ${state.nonce}\\n`;\n if (state.balance)\n val += ` balance: ${state.balance}\\n`;\n if (state.code)\n val += ` code: ${state.code}\\n`;\n if (state.state) {\n val += ' state:\\n';\n val += prettyStateMapping(state.state);\n }\n if (state.stateDiff) {\n val += ' stateDiff:\\n';\n val += prettyStateMapping(state.stateDiff);\n }\n return val;\n }, ' State Override:\\n')\n .slice(0, -1);\n}\n//# sourceMappingURL=stateOverride.js.map","import { formatEther } from '../utils/unit/formatEther.js';\nimport { formatGwei } from '../utils/unit/formatGwei.js';\nimport { BaseError } from './base.js';\nexport function prettyPrint(args) {\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}\nexport class FeeConflictError extends BaseError {\n constructor() {\n super([\n 'Cannot specify both a `gasPrice` and a `maxFeePerGas`/`maxPriorityFeePerGas`.',\n 'Use `maxFeePerGas`/`maxPriorityFeePerGas` for EIP-1559 compatible networks, and `gasPrice` for others.',\n ].join('\\n'));\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'FeeConflictError'\n });\n }\n}\nexport class InvalidLegacyVError extends BaseError {\n constructor({ v }) {\n super(`Invalid \\`v\\` value \"${v}\". Expected 27 or 28.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidLegacyVError'\n });\n }\n}\nexport class InvalidSerializableTransactionError extends BaseError {\n constructor({ transaction }) {\n super('Cannot infer a transaction type from provided transaction.', {\n metaMessages: [\n 'Provided Transaction:',\n '{',\n prettyPrint(transaction),\n '}',\n '',\n 'To infer the type, either provide:',\n '- a `type` to the Transaction, or',\n '- an EIP-1559 Transaction with `maxFeePerGas`, or',\n '- an EIP-2930 Transaction with `gasPrice` & `accessList`, or',\n '- an EIP-4844 Transaction with `blobs`, `blobVersionedHashes`, `sidecars`, or',\n '- a Legacy Transaction with `gasPrice`',\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidSerializableTransactionError'\n });\n }\n}\nexport class InvalidSerializedTransactionTypeError extends BaseError {\n constructor({ serializedType }) {\n super(`Serialized transaction type \"${serializedType}\" is invalid.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidSerializedTransactionType'\n });\n Object.defineProperty(this, \"serializedType\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.serializedType = serializedType;\n }\n}\nexport class InvalidSerializedTransactionError extends BaseError {\n constructor({ attributes, serializedTransaction, type, }) {\n const missing = Object.entries(attributes)\n .map(([key, value]) => (typeof value === 'undefined' ? key : undefined))\n .filter(Boolean);\n super(`Invalid serialized transaction of type \"${type}\" was provided.`, {\n metaMessages: [\n `Serialized Transaction: \"${serializedTransaction}\"`,\n missing.length > 0 ? `Missing Attributes: ${missing.join(', ')}` : '',\n ].filter(Boolean),\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidSerializedTransactionError'\n });\n Object.defineProperty(this, \"serializedTransaction\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"type\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.serializedTransaction = serializedTransaction;\n this.type = type;\n }\n}\nexport class InvalidStorageKeySizeError extends BaseError {\n constructor({ storageKey }) {\n super(`Size for storage key \"${storageKey}\" is invalid. Expected 32 bytes. Got ${Math.floor((storageKey.length - 2) / 2)} bytes.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidStorageKeySizeError'\n });\n }\n}\nexport class TransactionExecutionError extends BaseError {\n constructor(cause, { account, docsPath, chain, data, gas, gasPrice, maxFeePerGas, maxPriorityFeePerGas, nonce, to, value, }) {\n const prettyArgs = prettyPrint({\n chain: chain && `${chain?.name} (id: ${chain?.id})`,\n from: account?.address,\n to,\n value: typeof value !== 'undefined' &&\n `${formatEther(value)} ${chain?.nativeCurrency?.symbol || 'ETH'}`,\n data,\n gas,\n gasPrice: typeof gasPrice !== 'undefined' && `${formatGwei(gasPrice)} gwei`,\n maxFeePerGas: typeof maxFeePerGas !== 'undefined' &&\n `${formatGwei(maxFeePerGas)} gwei`,\n maxPriorityFeePerGas: typeof maxPriorityFeePerGas !== 'undefined' &&\n `${formatGwei(maxPriorityFeePerGas)} gwei`,\n nonce,\n });\n super(cause.shortMessage, {\n cause,\n docsPath,\n metaMessages: [\n ...(cause.metaMessages ? [...cause.metaMessages, ' '] : []),\n 'Request Arguments:',\n prettyArgs,\n ].filter(Boolean),\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: 'TransactionExecutionError'\n });\n this.cause = cause;\n }\n}\nexport class TransactionNotFoundError extends BaseError {\n constructor({ blockHash, blockNumber, blockTag, hash, index, }) {\n let identifier = 'Transaction';\n if (blockTag && index !== undefined)\n identifier = `Transaction at block time \"${blockTag}\" at index \"${index}\"`;\n if (blockHash && index !== undefined)\n identifier = `Transaction at block hash \"${blockHash}\" at index \"${index}\"`;\n if (blockNumber && index !== undefined)\n identifier = `Transaction at block number \"${blockNumber}\" at index \"${index}\"`;\n if (hash)\n identifier = `Transaction with hash \"${hash}\"`;\n super(`${identifier} could not be found.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'TransactionNotFoundError'\n });\n }\n}\nexport class TransactionReceiptNotFoundError extends BaseError {\n constructor({ hash }) {\n super(`Transaction receipt with hash \"${hash}\" could not be found. The Transaction may not be processed on a block yet.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'TransactionReceiptNotFoundError'\n });\n }\n}\nexport class WaitForTransactionReceiptTimeoutError extends BaseError {\n constructor({ hash }) {\n super(`Timed out while waiting for transaction with hash \"${hash}\" to be confirmed.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'WaitForTransactionReceiptTimeoutError'\n });\n }\n}\n//# sourceMappingURL=transaction.js.map","import { version } from './version.js';\nexport const getContractAddress = (address) => address;\nexport const getUrl = (url) => url;\nexport const getVersion = () => `viem@${version}`;\n//# sourceMappingURL=utils.js.map","import { InvalidBytesBooleanError } from '../../errors/encoding.js';\nimport { trim } from '../data/trim.js';\nimport { assertSize, hexToBigInt, hexToNumber, } from './fromHex.js';\nimport { bytesToHex } from './toHex.js';\n/**\n * Decodes a byte array into a UTF-8 string, hex value, number, bigint or boolean.\n *\n * - Docs: https://viem.sh/docs/utilities/fromBytes\n * - Example: https://viem.sh/docs/utilities/fromBytes#usage\n *\n * @param bytes Byte array to decode.\n * @param toOrOpts Type to convert to or options.\n * @returns Decoded value.\n *\n * @example\n * import { fromBytes } from 'viem'\n * const data = fromBytes(new Uint8Array([1, 164]), 'number')\n * // 420\n *\n * @example\n * import { fromBytes } from 'viem'\n * const data = fromBytes(\n * new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]),\n * 'string'\n * )\n * // 'Hello world'\n */\nexport function fromBytes(bytes, toOrOpts) {\n const opts = typeof toOrOpts === 'string' ? { to: toOrOpts } : toOrOpts;\n const to = opts.to;\n if (to === 'number')\n return bytesToNumber(bytes, opts);\n if (to === 'bigint')\n return bytesToBigInt(bytes, opts);\n if (to === 'boolean')\n return bytesToBool(bytes, opts);\n if (to === 'string')\n return bytesToString(bytes, opts);\n return bytesToHex(bytes, opts);\n}\n/**\n * Decodes a byte array into a bigint.\n *\n * - Docs: https://viem.sh/docs/utilities/fromBytes#bytestobigint\n *\n * @param bytes Byte array to decode.\n * @param opts Options.\n * @returns BigInt value.\n *\n * @example\n * import { bytesToBigInt } from 'viem'\n * const data = bytesToBigInt(new Uint8Array([1, 164]))\n * // 420n\n */\nexport function bytesToBigInt(bytes, opts = {}) {\n if (typeof opts.size !== 'undefined')\n assertSize(bytes, { size: opts.size });\n const hex = bytesToHex(bytes, opts);\n return hexToBigInt(hex, opts);\n}\n/**\n * Decodes a byte array into a boolean.\n *\n * - Docs: https://viem.sh/docs/utilities/fromBytes#bytestobool\n *\n * @param bytes Byte array to decode.\n * @param opts Options.\n * @returns Boolean value.\n *\n * @example\n * import { bytesToBool } from 'viem'\n * const data = bytesToBool(new Uint8Array([1]))\n * // true\n */\nexport function bytesToBool(bytes_, opts = {}) {\n let bytes = bytes_;\n if (typeof opts.size !== 'undefined') {\n assertSize(bytes, { size: opts.size });\n bytes = trim(bytes);\n }\n if (bytes.length > 1 || bytes[0] > 1)\n throw new InvalidBytesBooleanError(bytes);\n return Boolean(bytes[0]);\n}\n/**\n * Decodes a byte array into a number.\n *\n * - Docs: https://viem.sh/docs/utilities/fromBytes#bytestonumber\n *\n * @param bytes Byte array to decode.\n * @param opts Options.\n * @returns Number value.\n *\n * @example\n * import { bytesToNumber } from 'viem'\n * const data = bytesToNumber(new Uint8Array([1, 164]))\n * // 420\n */\nexport function bytesToNumber(bytes, opts = {}) {\n if (typeof opts.size !== 'undefined')\n assertSize(bytes, { size: opts.size });\n const hex = bytesToHex(bytes, opts);\n return hexToNumber(hex, opts);\n}\n/**\n * Decodes a byte array into a UTF-8 string.\n *\n * - Docs: https://viem.sh/docs/utilities/fromBytes#bytestostring\n *\n * @param bytes Byte array to decode.\n * @param opts Options.\n * @returns String value.\n *\n * @example\n * import { bytesToString } from 'viem'\n * const data = bytesToString(new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]))\n * // 'Hello world'\n */\nexport function bytesToString(bytes_, opts = {}) {\n let bytes = bytes_;\n if (typeof opts.size !== 'undefined') {\n assertSize(bytes, { size: opts.size });\n bytes = trim(bytes, { dir: 'right' });\n }\n return new TextDecoder().decode(bytes);\n}\n//# sourceMappingURL=fromBytes.js.map","import { AbiDecodingDataSizeTooSmallError, AbiDecodingZeroDataError, InvalidAbiDecodingTypeError, } from '../../errors/abi.js';\nimport { checksumAddress, } from '../address/getAddress.js';\nimport { createCursor, } from '../cursor.js';\nimport { size } from '../data/size.js';\nimport { sliceBytes } from '../data/slice.js';\nimport { trim } from '../data/trim.js';\nimport { bytesToBigInt, bytesToBool, bytesToNumber, bytesToString, } from '../encoding/fromBytes.js';\nimport { hexToBytes } from '../encoding/toBytes.js';\nimport { bytesToHex } from '../encoding/toHex.js';\nimport { getArrayComponents } from './encodeAbiParameters.js';\nexport function decodeAbiParameters(params, data) {\n const bytes = typeof data === 'string' ? hexToBytes(data) : data;\n const cursor = createCursor(bytes);\n if (size(bytes) === 0 && params.length > 0)\n throw new AbiDecodingZeroDataError();\n if (size(data) && size(data) < 32)\n throw new AbiDecodingDataSizeTooSmallError({\n data: typeof data === 'string' ? data : bytesToHex(data),\n params: params,\n size: size(data),\n });\n let consumed = 0;\n const values = [];\n for (let i = 0; i < params.length; ++i) {\n const param = params[i];\n cursor.setPosition(consumed);\n const [data, consumed_] = decodeParameter(cursor, param, {\n staticPosition: 0,\n });\n consumed += consumed_;\n values.push(data);\n }\n return values;\n}\nfunction decodeParameter(cursor, param, { staticPosition }) {\n const arrayComponents = getArrayComponents(param.type);\n if (arrayComponents) {\n const [length, type] = arrayComponents;\n return decodeArray(cursor, { ...param, type }, { length, staticPosition });\n }\n if (param.type === 'tuple')\n return decodeTuple(cursor, param, { staticPosition });\n if (param.type === 'address')\n return decodeAddress(cursor);\n if (param.type === 'bool')\n return decodeBool(cursor);\n if (param.type.startsWith('bytes'))\n return decodeBytes(cursor, param, { staticPosition });\n if (param.type.startsWith('uint') || param.type.startsWith('int'))\n return decodeNumber(cursor, param);\n if (param.type === 'string')\n return decodeString(cursor, { staticPosition });\n throw new InvalidAbiDecodingTypeError(param.type, {\n docsPath: '/docs/contract/decodeAbiParameters',\n });\n}\n////////////////////////////////////////////////////////////////////\n// Type Decoders\nconst sizeOfLength = 32;\nconst sizeOfOffset = 32;\nfunction decodeAddress(cursor) {\n const value = cursor.readBytes(32);\n return [checksumAddress(bytesToHex(sliceBytes(value, -20))), 32];\n}\nfunction decodeArray(cursor, param, { length, staticPosition }) {\n // If the length of the array is not known in advance (dynamic array),\n // this means we will need to wonder off to the pointer and decode.\n if (!length) {\n // Dealing with a dynamic type, so get the offset of the array data.\n const offset = bytesToNumber(cursor.readBytes(sizeOfOffset));\n // Start is the static position of current slot + offset.\n const start = staticPosition + offset;\n const startOfData = start + sizeOfLength;\n // Get the length of the array from the offset.\n cursor.setPosition(start);\n const length = bytesToNumber(cursor.readBytes(sizeOfLength));\n // Check if the array has any dynamic children.\n const dynamicChild = hasDynamicChild(param);\n let consumed = 0;\n const value = [];\n for (let i = 0; i < length; ++i) {\n // If any of the children is dynamic, then all elements will be offset pointer, thus size of one slot (32 bytes).\n // Otherwise, elements will be the size of their encoding (consumed bytes).\n cursor.setPosition(startOfData + (dynamicChild ? i * 32 : consumed));\n const [data, consumed_] = decodeParameter(cursor, param, {\n staticPosition: startOfData,\n });\n consumed += consumed_;\n value.push(data);\n }\n // As we have gone wondering, restore to the original position + next slot.\n cursor.setPosition(staticPosition + 32);\n return [value, 32];\n }\n // If the length of the array is known in advance,\n // and the length of an element deeply nested in the array is not known,\n // we need to decode the offset of the array data.\n if (hasDynamicChild(param)) {\n // Dealing with dynamic types, so get the offset of the array data.\n const offset = bytesToNumber(cursor.readBytes(sizeOfOffset));\n // Start is the static position of current slot + offset.\n const start = staticPosition + offset;\n const value = [];\n for (let i = 0; i < length; ++i) {\n // Move cursor along to the next slot (next offset pointer).\n cursor.setPosition(start + i * 32);\n const [data] = decodeParameter(cursor, param, {\n staticPosition: start,\n });\n value.push(data);\n }\n // As we have gone wondering, restore to the original position + next slot.\n cursor.setPosition(staticPosition + 32);\n return [value, 32];\n }\n // If the length of the array is known in advance and the array is deeply static,\n // then we can just decode each element in sequence.\n let consumed = 0;\n const value = [];\n for (let i = 0; i < length; ++i) {\n const [data, consumed_] = decodeParameter(cursor, param, {\n staticPosition: staticPosition + consumed,\n });\n consumed += consumed_;\n value.push(data);\n }\n return [value, consumed];\n}\nfunction decodeBool(cursor) {\n return [bytesToBool(cursor.readBytes(32), { size: 32 }), 32];\n}\nfunction decodeBytes(cursor, param, { staticPosition }) {\n const [_, size] = param.type.split('bytes');\n if (!size) {\n // Dealing with dynamic types, so get the offset of the bytes data.\n const offset = bytesToNumber(cursor.readBytes(32));\n // Set position of the cursor to start of bytes data.\n cursor.setPosition(staticPosition + offset);\n const length = bytesToNumber(cursor.readBytes(32));\n // If there is no length, we have zero data.\n if (length === 0) {\n // As we have gone wondering, restore to the original position + next slot.\n cursor.setPosition(staticPosition + 32);\n return ['0x', 32];\n }\n const data = cursor.readBytes(length);\n // As we have gone wondering, restore to the original position + next slot.\n cursor.setPosition(staticPosition + 32);\n return [bytesToHex(data), 32];\n }\n const value = bytesToHex(cursor.readBytes(Number.parseInt(size), 32));\n return [value, 32];\n}\nfunction decodeNumber(cursor, param) {\n const signed = param.type.startsWith('int');\n const size = Number.parseInt(param.type.split('int')[1] || '256');\n const value = cursor.readBytes(32);\n return [\n size > 48\n ? bytesToBigInt(value, { signed })\n : bytesToNumber(value, { signed }),\n 32,\n ];\n}\nfunction decodeTuple(cursor, param, { staticPosition }) {\n // Tuples can have unnamed components (i.e. they are arrays), so we must\n // determine whether the tuple is named or unnamed. In the case of a named\n // tuple, the value will be an object where each property is the name of the\n // component. In the case of an unnamed tuple, the value will be an array.\n const hasUnnamedChild = param.components.length === 0 || param.components.some(({ name }) => !name);\n // Initialize the value to an object or an array, depending on whether the\n // tuple is named or unnamed.\n const value = hasUnnamedChild ? [] : {};\n let consumed = 0;\n // If the tuple has a dynamic child, we must first decode the offset to the\n // tuple data.\n if (hasDynamicChild(param)) {\n // Dealing with dynamic types, so get the offset of the tuple data.\n const offset = bytesToNumber(cursor.readBytes(sizeOfOffset));\n // Start is the static position of referencing slot + offset.\n const start = staticPosition + offset;\n for (let i = 0; i < param.components.length; ++i) {\n const component = param.components[i];\n cursor.setPosition(start + consumed);\n const [data, consumed_] = decodeParameter(cursor, component, {\n staticPosition: start,\n });\n consumed += consumed_;\n value[hasUnnamedChild ? i : component?.name] = data;\n }\n // As we have gone wondering, restore to the original position + next slot.\n cursor.setPosition(staticPosition + 32);\n return [value, 32];\n }\n // If the tuple has static children, we can just decode each component\n // in sequence.\n for (let i = 0; i < param.components.length; ++i) {\n const component = param.components[i];\n const [data, consumed_] = decodeParameter(cursor, component, {\n staticPosition,\n });\n value[hasUnnamedChild ? i : component?.name] = data;\n consumed += consumed_;\n }\n return [value, consumed];\n}\nfunction decodeString(cursor, { staticPosition }) {\n // Get offset to start of string data.\n const offset = bytesToNumber(cursor.readBytes(32));\n // Start is the static position of current slot + offset.\n const start = staticPosition + offset;\n cursor.setPosition(start);\n const length = bytesToNumber(cursor.readBytes(32));\n // If there is no length, we have zero data (empty string).\n if (length === 0) {\n cursor.setPosition(staticPosition + 32);\n return ['', 32];\n }\n const data = cursor.readBytes(length, 32);\n const value = bytesToString(trim(data));\n // As we have gone wondering, restore to the original position + next slot.\n cursor.setPosition(staticPosition + 32);\n return [value, 32];\n}\nfunction hasDynamicChild(param) {\n const { type } = param;\n if (type === 'string')\n return true;\n if (type === 'bytes')\n return true;\n if (type.endsWith('[]'))\n return true;\n if (type === 'tuple')\n return param.components?.some(hasDynamicChild);\n const arrayComponents = getArrayComponents(param.type);\n if (arrayComponents &&\n hasDynamicChild({ ...param, type: arrayComponents[1] }))\n return true;\n return false;\n}\n//# sourceMappingURL=decodeAbiParameters.js.map","import { solidityError, solidityPanic } from '../../constants/solidity.js';\nimport { AbiDecodingZeroDataError, AbiErrorSignatureNotFoundError, } from '../../errors/abi.js';\nimport { slice } from '../data/slice.js';\nimport { toFunctionSelector, } from '../hash/toFunctionSelector.js';\nimport { decodeAbiParameters, } from './decodeAbiParameters.js';\nimport { formatAbiItem } from './formatAbiItem.js';\nexport function decodeErrorResult(parameters) {\n const { abi, data } = parameters;\n const signature = slice(data, 0, 4);\n if (signature === '0x')\n throw new AbiDecodingZeroDataError();\n const abi_ = [...(abi || []), solidityError, solidityPanic];\n const abiItem = abi_.find((x) => x.type === 'error' && signature === toFunctionSelector(formatAbiItem(x)));\n if (!abiItem)\n throw new AbiErrorSignatureNotFoundError(signature, {\n docsPath: '/docs/contract/decodeErrorResult',\n });\n return {\n abiItem,\n args: 'inputs' in abiItem && abiItem.inputs && abiItem.inputs.length > 0\n ? decodeAbiParameters(abiItem.inputs, slice(data, 4))\n : undefined,\n errorName: abiItem.name,\n };\n}\n//# sourceMappingURL=decodeErrorResult.js.map","import { AbiFunctionNotFoundError, AbiFunctionOutputsNotFoundError, } from '../../errors/abi.js';\nimport { decodeAbiParameters, } from './decodeAbiParameters.js';\nimport { getAbiItem } from './getAbiItem.js';\nconst docsPath = '/docs/contract/decodeFunctionResult';\nexport function decodeFunctionResult(parameters) {\n const { abi, args, functionName, data } = parameters;\n let abiItem = abi[0];\n if (functionName) {\n const item = getAbiItem({ abi, args, name: functionName });\n if (!item)\n throw new AbiFunctionNotFoundError(functionName, { docsPath });\n abiItem = item;\n }\n if (abiItem.type !== 'function')\n throw new AbiFunctionNotFoundError(undefined, { docsPath });\n if (!abiItem.outputs)\n throw new AbiFunctionOutputsNotFoundError(abiItem.name, { docsPath });\n const values = decodeAbiParameters(abiItem.outputs, data);\n if (values && values.length > 1)\n return values;\n if (values && values.length === 1)\n return values[0];\n return undefined;\n}\n//# sourceMappingURL=decodeFunctionResult.js.map","import { AbiEncodingArrayLengthMismatchError, AbiEncodingBytesSizeMismatchError, AbiEncodingLengthMismatchError, InvalidAbiEncodingTypeError, InvalidArrayError, } from '../../errors/abi.js';\nimport { InvalidAddressError, } from '../../errors/address.js';\nimport { BaseError } from '../../errors/base.js';\nimport { isAddress } from '../address/isAddress.js';\nimport { concat } from '../data/concat.js';\nimport { padHex } from '../data/pad.js';\nimport { size } from '../data/size.js';\nimport { slice } from '../data/slice.js';\nimport { boolToHex, numberToHex, stringToHex, } from '../encoding/toHex.js';\n/**\n * @description Encodes a list of primitive values into an ABI-encoded hex value.\n *\n * - Docs: https://viem.sh/docs/abi/encodeAbiParameters#encodeabiparameters\n *\n * Generates ABI encoded data using the [ABI specification](https://docs.soliditylang.org/en/latest/abi-spec), given a set of ABI parameters (inputs/outputs) and their corresponding values.\n *\n * @param params - a set of ABI Parameters (params), that can be in the shape of the inputs or outputs attribute of an ABI Item.\n * @param values - a set of values (values) that correspond to the given params.\n * @example\n * ```typescript\n * import { encodeAbiParameters } from 'viem'\n *\n * const encodedData = encodeAbiParameters(\n * [\n * { name: 'x', type: 'string' },\n * { name: 'y', type: 'uint' },\n * { name: 'z', type: 'bool' }\n * ],\n * ['wagmi', 420n, true]\n * )\n * ```\n *\n * You can also pass in Human Readable parameters with the parseAbiParameters utility.\n *\n * @example\n * ```typescript\n * import { encodeAbiParameters, parseAbiParameters } from 'viem'\n *\n * const encodedData = encodeAbiParameters(\n * parseAbiParameters('string x, uint y, bool z'),\n * ['wagmi', 420n, true]\n * )\n * ```\n */\nexport function encodeAbiParameters(params, values) {\n if (params.length !== values.length)\n throw new AbiEncodingLengthMismatchError({\n expectedLength: params.length,\n givenLength: values.length,\n });\n // Prepare the parameters to determine dynamic types to encode.\n const preparedParams = prepareParams({\n params: params,\n values: values,\n });\n const data = encodeParams(preparedParams);\n if (data.length === 0)\n return '0x';\n return data;\n}\nfunction prepareParams({ params, values, }) {\n const preparedParams = [];\n for (let i = 0; i < params.length; i++) {\n preparedParams.push(prepareParam({ param: params[i], value: values[i] }));\n }\n return preparedParams;\n}\nfunction prepareParam({ param, value, }) {\n const arrayComponents = getArrayComponents(param.type);\n if (arrayComponents) {\n const [length, type] = arrayComponents;\n return encodeArray(value, { length, param: { ...param, type } });\n }\n if (param.type === 'tuple') {\n return encodeTuple(value, {\n param: param,\n });\n }\n if (param.type === 'address') {\n return encodeAddress(value);\n }\n if (param.type === 'bool') {\n return encodeBool(value);\n }\n if (param.type.startsWith('uint') || param.type.startsWith('int')) {\n const signed = param.type.startsWith('int');\n return encodeNumber(value, { signed });\n }\n if (param.type.startsWith('bytes')) {\n return encodeBytes(value, { param });\n }\n if (param.type === 'string') {\n return encodeString(value);\n }\n throw new InvalidAbiEncodingTypeError(param.type, {\n docsPath: '/docs/contract/encodeAbiParameters',\n });\n}\nfunction encodeParams(preparedParams) {\n // 1. Compute the size of the static part of the parameters.\n let staticSize = 0;\n for (let i = 0; i < preparedParams.length; i++) {\n const { dynamic, encoded } = preparedParams[i];\n if (dynamic)\n staticSize += 32;\n else\n staticSize += size(encoded);\n }\n // 2. Split the parameters into static and dynamic parts.\n const staticParams = [];\n const dynamicParams = [];\n let dynamicSize = 0;\n for (let i = 0; i < preparedParams.length; i++) {\n const { dynamic, encoded } = preparedParams[i];\n if (dynamic) {\n staticParams.push(numberToHex(staticSize + dynamicSize, { size: 32 }));\n dynamicParams.push(encoded);\n dynamicSize += size(encoded);\n }\n else {\n staticParams.push(encoded);\n }\n }\n // 3. Concatenate static and dynamic parts.\n return concat([...staticParams, ...dynamicParams]);\n}\nfunction encodeAddress(value) {\n if (!isAddress(value))\n throw new InvalidAddressError({ address: value });\n return { dynamic: false, encoded: padHex(value.toLowerCase()) };\n}\nfunction encodeArray(value, { length, param, }) {\n const dynamic = length === null;\n if (!Array.isArray(value))\n throw new InvalidArrayError(value);\n if (!dynamic && value.length !== length)\n throw new AbiEncodingArrayLengthMismatchError({\n expectedLength: length,\n givenLength: value.length,\n type: `${param.type}[${length}]`,\n });\n let dynamicChild = false;\n const preparedParams = [];\n for (let i = 0; i < value.length; i++) {\n const preparedParam = prepareParam({ param, value: value[i] });\n if (preparedParam.dynamic)\n dynamicChild = true;\n preparedParams.push(preparedParam);\n }\n if (dynamic || dynamicChild) {\n const data = encodeParams(preparedParams);\n if (dynamic) {\n const length = numberToHex(preparedParams.length, { size: 32 });\n return {\n dynamic: true,\n encoded: preparedParams.length > 0 ? concat([length, data]) : length,\n };\n }\n if (dynamicChild)\n return { dynamic: true, encoded: data };\n }\n return {\n dynamic: false,\n encoded: concat(preparedParams.map(({ encoded }) => encoded)),\n };\n}\nfunction encodeBytes(value, { param }) {\n const [, paramSize] = param.type.split('bytes');\n const bytesSize = size(value);\n if (!paramSize) {\n let value_ = value;\n // If the size is not divisible by 32 bytes, pad the end\n // with empty bytes to the ceiling 32 bytes.\n if (bytesSize % 32 !== 0)\n value_ = padHex(value_, {\n dir: 'right',\n size: Math.ceil((value.length - 2) / 2 / 32) * 32,\n });\n return {\n dynamic: true,\n encoded: concat([padHex(numberToHex(bytesSize, { size: 32 })), value_]),\n };\n }\n if (bytesSize !== Number.parseInt(paramSize))\n throw new AbiEncodingBytesSizeMismatchError({\n expectedSize: Number.parseInt(paramSize),\n value,\n });\n return { dynamic: false, encoded: padHex(value, { dir: 'right' }) };\n}\nfunction encodeBool(value) {\n if (typeof value !== 'boolean')\n throw new BaseError(`Invalid boolean value: \"${value}\" (type: ${typeof value}). Expected: \\`true\\` or \\`false\\`.`);\n return { dynamic: false, encoded: padHex(boolToHex(value)) };\n}\nfunction encodeNumber(value, { signed }) {\n return {\n dynamic: false,\n encoded: numberToHex(value, {\n size: 32,\n signed,\n }),\n };\n}\nfunction encodeString(value) {\n const hexValue = stringToHex(value);\n const partsLength = Math.ceil(size(hexValue) / 32);\n const parts = [];\n for (let i = 0; i < partsLength; i++) {\n parts.push(padHex(slice(hexValue, i * 32, (i + 1) * 32), {\n dir: 'right',\n }));\n }\n return {\n dynamic: true,\n encoded: concat([\n padHex(numberToHex(size(hexValue), { size: 32 })),\n ...parts,\n ]),\n };\n}\nfunction encodeTuple(value, { param }) {\n let dynamic = false;\n const preparedParams = [];\n for (let i = 0; i < param.components.length; i++) {\n const param_ = param.components[i];\n const index = Array.isArray(value) ? i : param_.name;\n const preparedParam = prepareParam({\n param: param_,\n value: value[index],\n });\n preparedParams.push(preparedParam);\n if (preparedParam.dynamic)\n dynamic = true;\n }\n return {\n dynamic,\n encoded: dynamic\n ? encodeParams(preparedParams)\n : concat(preparedParams.map(({ encoded }) => encoded)),\n };\n}\nexport function getArrayComponents(type) {\n const matches = type.match(/^(.*)\\[(\\d+)?\\]$/);\n return matches\n ? // Return `null` if the array is dynamic.\n [matches[2] ? Number(matches[2]) : null, matches[1]]\n : undefined;\n}\n//# sourceMappingURL=encodeAbiParameters.js.map","import { AbiConstructorNotFoundError, AbiConstructorParamsNotFoundError, } from '../../errors/abi.js';\nimport { concatHex } from '../data/concat.js';\nimport { encodeAbiParameters, } from './encodeAbiParameters.js';\nconst docsPath = '/docs/contract/encodeDeployData';\nexport function encodeDeployData(parameters) {\n const { abi, args, bytecode } = parameters;\n if (!args || args.length === 0)\n return bytecode;\n const description = abi.find((x) => 'type' in x && x.type === 'constructor');\n if (!description)\n throw new AbiConstructorNotFoundError({ docsPath });\n if (!('inputs' in description))\n throw new AbiConstructorParamsNotFoundError({ docsPath });\n if (!description.inputs || description.inputs.length === 0)\n throw new AbiConstructorParamsNotFoundError({ docsPath });\n const data = encodeAbiParameters(description.inputs, args);\n return concatHex([bytecode, data]);\n}\n//# sourceMappingURL=encodeDeployData.js.map","import { AbiFunctionNotFoundError, } from '../../errors/abi.js';\nimport { toFunctionSelector, } from '../hash/toFunctionSelector.js';\nimport { formatAbiItem } from './formatAbiItem.js';\nimport { getAbiItem } from './getAbiItem.js';\nconst docsPath = '/docs/contract/encodeFunctionData';\nexport function prepareEncodeFunctionData(parameters) {\n const { abi, args, functionName } = parameters;\n let abiItem = abi[0];\n if (functionName) {\n const item = getAbiItem({\n abi,\n args,\n name: functionName,\n });\n if (!item)\n throw new AbiFunctionNotFoundError(functionName, { docsPath });\n abiItem = item;\n }\n if (abiItem.type !== 'function')\n throw new AbiFunctionNotFoundError(undefined, { docsPath });\n return {\n abi: [abiItem],\n functionName: toFunctionSelector(formatAbiItem(abiItem)),\n };\n}\n//# sourceMappingURL=prepareEncodeFunctionData.js.map","import { concatHex } from '../data/concat.js';\nimport { encodeAbiParameters, } from './encodeAbiParameters.js';\nimport { prepareEncodeFunctionData } from './prepareEncodeFunctionData.js';\nexport function encodeFunctionData(parameters) {\n const { args } = parameters;\n const { abi, functionName } = (() => {\n if (parameters.abi.length === 1 &&\n parameters.functionName?.startsWith('0x'))\n return parameters;\n return prepareEncodeFunctionData(parameters);\n })();\n const abiItem = abi[0];\n const signature = functionName;\n const data = 'inputs' in abiItem && abiItem.inputs\n ? encodeAbiParameters(abiItem.inputs, args ?? [])\n : undefined;\n return concatHex([signature, data ?? '0x']);\n}\n//# sourceMappingURL=encodeFunctionData.js.map","import { InvalidDefinitionTypeError, } from '../../errors/abi.js';\nexport function formatAbiItem(abiItem, { includeName = false } = {}) {\n if (abiItem.type !== 'function' &&\n abiItem.type !== 'event' &&\n abiItem.type !== 'error')\n throw new InvalidDefinitionTypeError(abiItem.type);\n return `${abiItem.name}(${formatAbiParams(abiItem.inputs, { includeName })})`;\n}\nexport function formatAbiParams(params, { includeName = false } = {}) {\n if (!params)\n return '';\n return params\n .map((param) => formatAbiParam(param, { includeName }))\n .join(includeName ? ', ' : ',');\n}\nfunction formatAbiParam(param, { includeName }) {\n if (param.type.startsWith('tuple')) {\n return `(${formatAbiParams(param.components, { includeName })})${param.type.slice('tuple'.length)}`;\n }\n return param.type + (includeName && param.name ? ` ${param.name}` : '');\n}\n//# sourceMappingURL=formatAbiItem.js.map","import { AbiItemAmbiguityError, } from '../../errors/abi.js';\nimport { isHex } from '../../utils/data/isHex.js';\nimport { isAddress } from '../address/isAddress.js';\nimport { toEventSelector } from '../hash/toEventSelector.js';\nimport { toFunctionSelector, } from '../hash/toFunctionSelector.js';\nexport function getAbiItem(parameters) {\n const { abi, args = [], name } = parameters;\n const isSelector = isHex(name, { strict: false });\n const abiItems = abi.filter((abiItem) => {\n if (isSelector) {\n if (abiItem.type === 'function')\n return toFunctionSelector(abiItem) === name;\n if (abiItem.type === 'event')\n return toEventSelector(abiItem) === name;\n return false;\n }\n return 'name' in abiItem && abiItem.name === name;\n });\n if (abiItems.length === 0)\n return undefined;\n if (abiItems.length === 1)\n return abiItems[0];\n let matchedAbiItem = undefined;\n for (const abiItem of abiItems) {\n if (!('inputs' in abiItem))\n continue;\n if (!args || args.length === 0) {\n if (!abiItem.inputs || abiItem.inputs.length === 0)\n return abiItem;\n continue;\n }\n if (!abiItem.inputs)\n continue;\n if (abiItem.inputs.length === 0)\n continue;\n if (abiItem.inputs.length !== args.length)\n continue;\n const matched = args.every((arg, index) => {\n const abiParameter = 'inputs' in abiItem && abiItem.inputs[index];\n if (!abiParameter)\n return false;\n return isArgOfType(arg, abiParameter);\n });\n if (matched) {\n // Check for ambiguity against already matched parameters (e.g. `address` vs `bytes20`).\n if (matchedAbiItem &&\n 'inputs' in matchedAbiItem &&\n matchedAbiItem.inputs) {\n const ambiguousTypes = getAmbiguousTypes(abiItem.inputs, matchedAbiItem.inputs, args);\n if (ambiguousTypes)\n throw new AbiItemAmbiguityError({\n abiItem,\n type: ambiguousTypes[0],\n }, {\n abiItem: matchedAbiItem,\n type: ambiguousTypes[1],\n });\n }\n matchedAbiItem = abiItem;\n }\n }\n if (matchedAbiItem)\n return matchedAbiItem;\n return abiItems[0];\n}\n/** @internal */\nexport function isArgOfType(arg, abiParameter) {\n const argType = typeof arg;\n const abiParameterType = abiParameter.type;\n switch (abiParameterType) {\n case 'address':\n return isAddress(arg, { strict: false });\n case 'bool':\n return argType === 'boolean';\n case 'function':\n return argType === 'string';\n case 'string':\n return argType === 'string';\n default: {\n if (abiParameterType === 'tuple' && 'components' in abiParameter)\n return Object.values(abiParameter.components).every((component, index) => {\n return isArgOfType(Object.values(arg)[index], component);\n });\n // `(u)int`: (un)signed integer type of `M` bits, `0 < M <= 256`, `M % 8 == 0`\n // https://regexr.com/6v8hp\n if (/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/.test(abiParameterType))\n return argType === 'number' || argType === 'bigint';\n // `bytes`: binary type of `M` bytes, `0 < M <= 32`\n // https://regexr.com/6va55\n if (/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(abiParameterType))\n return argType === 'string' || arg instanceof Uint8Array;\n // fixed-length (`[M]`) and dynamic (`[]`) arrays\n // https://regexr.com/6va6i\n if (/[a-z]+[1-9]{0,3}(\\[[0-9]{0,}\\])+$/.test(abiParameterType)) {\n return (Array.isArray(arg) &&\n arg.every((x) => isArgOfType(x, {\n ...abiParameter,\n // Pop off `[]` or `[M]` from end of type\n type: abiParameterType.replace(/(\\[[0-9]{0,}\\])$/, ''),\n })));\n }\n return false;\n }\n }\n}\n/** @internal */\nexport function getAmbiguousTypes(sourceParameters, targetParameters, args) {\n for (const parameterIndex in sourceParameters) {\n const sourceParameter = sourceParameters[parameterIndex];\n const targetParameter = targetParameters[parameterIndex];\n if (sourceParameter.type === 'tuple' &&\n targetParameter.type === 'tuple' &&\n 'components' in sourceParameter &&\n 'components' in targetParameter)\n return getAmbiguousTypes(sourceParameter.components, targetParameter.components, args[parameterIndex]);\n const types = [sourceParameter.type, targetParameter.type];\n const ambiguous = (() => {\n if (types.includes('address') && types.includes('bytes20'))\n return true;\n if (types.includes('address') && types.includes('string'))\n return isAddress(args[parameterIndex], { strict: false });\n if (types.includes('address') && types.includes('bytes'))\n return isAddress(args[parameterIndex], { strict: false });\n return false;\n })();\n if (ambiguous)\n return types;\n }\n return;\n}\n//# sourceMappingURL=getAbiItem.js.map","import { InvalidAddressError } from '../../errors/address.js';\nimport { stringToBytes, } from '../encoding/toBytes.js';\nimport { keccak256 } from '../hash/keccak256.js';\nimport { LruMap } from '../lru.js';\nimport { isAddress } from './isAddress.js';\nconst checksumAddressCache = /*#__PURE__*/ new LruMap(8192);\nexport function checksumAddress(address_, \n/**\n * Warning: EIP-1191 checksum addresses are generally not backwards compatible with the\n * wider Ethereum ecosystem, meaning it will break when validated against an application/tool\n * that relies on EIP-55 checksum encoding (checksum without chainId).\n *\n * It is highly recommended to not use this feature unless you\n * know what you are doing.\n *\n * See more: https://github.com/ethereum/EIPs/issues/1121\n */\nchainId) {\n if (checksumAddressCache.has(`${address_}.${chainId}`))\n return checksumAddressCache.get(`${address_}.${chainId}`);\n const hexAddress = chainId\n ? `${chainId}${address_.toLowerCase()}`\n : address_.substring(2).toLowerCase();\n const hash = keccak256(stringToBytes(hexAddress), 'bytes');\n const address = (chainId ? hexAddress.substring(`${chainId}0x`.length) : hexAddress).split('');\n for (let i = 0; i < 40; i += 2) {\n if (hash[i >> 1] >> 4 >= 8 && address[i]) {\n address[i] = address[i].toUpperCase();\n }\n if ((hash[i >> 1] & 0x0f) >= 8 && address[i + 1]) {\n address[i + 1] = address[i + 1].toUpperCase();\n }\n }\n const result = `0x${address.join('')}`;\n checksumAddressCache.set(`${address_}.${chainId}`, result);\n return result;\n}\nexport function getAddress(address, \n/**\n * Warning: EIP-1191 checksum addresses are generally not backwards compatible with the\n * wider Ethereum ecosystem, meaning it will break when validated against an application/tool\n * that relies on EIP-55 checksum encoding (checksum without chainId).\n *\n * It is highly recommended to not use this feature unless you\n * know what you are doing.\n *\n * See more: https://github.com/ethereum/EIPs/issues/1121\n */\nchainId) {\n if (!isAddress(address, { strict: false }))\n throw new InvalidAddressError({ address });\n return checksumAddress(address, chainId);\n}\n//# sourceMappingURL=getAddress.js.map","import { LruMap } from '../lru.js';\nimport { checksumAddress } from './getAddress.js';\nconst addressRegex = /^0x[a-fA-F0-9]{40}$/;\n/** @internal */\nexport const isAddressCache = /*#__PURE__*/ new LruMap(8192);\nexport function isAddress(address, options) {\n const { strict = true } = options ?? {};\n const cacheKey = `${address}.${strict}`;\n if (isAddressCache.has(cacheKey))\n return isAddressCache.get(cacheKey);\n const result = (() => {\n if (!addressRegex.test(address))\n return false;\n if (address.toLowerCase() === address)\n return true;\n if (strict)\n return checksumAddress(address) === address;\n return true;\n })();\n isAddressCache.set(cacheKey, result);\n return result;\n}\n//# sourceMappingURL=isAddress.js.map","import { InvalidAddressError, } from '../../errors/address.js';\nimport { isAddress } from './isAddress.js';\nexport function isAddressEqual(a, b) {\n if (!isAddress(a, { strict: false }))\n throw new InvalidAddressError({ address: a });\n if (!isAddress(b, { strict: false }))\n throw new InvalidAddressError({ address: b });\n return a.toLowerCase() === b.toLowerCase();\n}\n//# sourceMappingURL=isAddressEqual.js.map","export function defineChain(chain) {\n return {\n formatters: undefined,\n fees: undefined,\n serializers: undefined,\n ...chain,\n };\n}\n//# sourceMappingURL=defineChain.js.map","import { ChainDoesNotSupportContract, } from '../../errors/chain.js';\nexport function getChainContractAddress({ blockNumber, chain, contract: name, }) {\n const contract = chain?.contracts?.[name];\n if (!contract)\n throw new ChainDoesNotSupportContract({\n chain,\n contract: { name },\n });\n if (blockNumber &&\n contract.blockCreated &&\n contract.blockCreated > blockNumber)\n throw new ChainDoesNotSupportContract({\n blockNumber,\n chain,\n contract: {\n name,\n blockCreated: contract.blockCreated,\n },\n });\n return contract.address;\n}\n//# sourceMappingURL=getChainContractAddress.js.map","import { NegativeOffsetError, PositionOutOfBoundsError, RecursiveReadLimitExceededError, } from '../errors/cursor.js';\nconst staticCursor = {\n bytes: new Uint8Array(),\n dataView: new DataView(new ArrayBuffer(0)),\n position: 0,\n positionReadCount: new Map(),\n recursiveReadCount: 0,\n recursiveReadLimit: Number.POSITIVE_INFINITY,\n assertReadLimit() {\n if (this.recursiveReadCount >= this.recursiveReadLimit)\n throw new RecursiveReadLimitExceededError({\n count: this.recursiveReadCount + 1,\n limit: this.recursiveReadLimit,\n });\n },\n assertPosition(position) {\n if (position < 0 || position > this.bytes.length - 1)\n throw new PositionOutOfBoundsError({\n length: this.bytes.length,\n position,\n });\n },\n decrementPosition(offset) {\n if (offset < 0)\n throw new NegativeOffsetError({ offset });\n const position = this.position - offset;\n this.assertPosition(position);\n this.position = position;\n },\n getReadCount(position) {\n return this.positionReadCount.get(position || this.position) || 0;\n },\n incrementPosition(offset) {\n if (offset < 0)\n throw new NegativeOffsetError({ offset });\n const position = this.position + offset;\n this.assertPosition(position);\n this.position = position;\n },\n inspectByte(position_) {\n const position = position_ ?? this.position;\n this.assertPosition(position);\n return this.bytes[position];\n },\n inspectBytes(length, position_) {\n const position = position_ ?? this.position;\n this.assertPosition(position + length - 1);\n return this.bytes.subarray(position, position + length);\n },\n inspectUint8(position_) {\n const position = position_ ?? this.position;\n this.assertPosition(position);\n return this.bytes[position];\n },\n inspectUint16(position_) {\n const position = position_ ?? this.position;\n this.assertPosition(position + 1);\n return this.dataView.getUint16(position);\n },\n inspectUint24(position_) {\n const position = position_ ?? this.position;\n this.assertPosition(position + 2);\n return ((this.dataView.getUint16(position) << 8) +\n this.dataView.getUint8(position + 2));\n },\n inspectUint32(position_) {\n const position = position_ ?? this.position;\n this.assertPosition(position + 3);\n return this.dataView.getUint32(position);\n },\n pushByte(byte) {\n this.assertPosition(this.position);\n this.bytes[this.position] = byte;\n this.position++;\n },\n pushBytes(bytes) {\n this.assertPosition(this.position + bytes.length - 1);\n this.bytes.set(bytes, this.position);\n this.position += bytes.length;\n },\n pushUint8(value) {\n this.assertPosition(this.position);\n this.bytes[this.position] = value;\n this.position++;\n },\n pushUint16(value) {\n this.assertPosition(this.position + 1);\n this.dataView.setUint16(this.position, value);\n this.position += 2;\n },\n pushUint24(value) {\n this.assertPosition(this.position + 2);\n this.dataView.setUint16(this.position, value >> 8);\n this.dataView.setUint8(this.position + 2, value & ~4294967040);\n this.position += 3;\n },\n pushUint32(value) {\n this.assertPosition(this.position + 3);\n this.dataView.setUint32(this.position, value);\n this.position += 4;\n },\n readByte() {\n this.assertReadLimit();\n this._touch();\n const value = this.inspectByte();\n this.position++;\n return value;\n },\n readBytes(length, size) {\n this.assertReadLimit();\n this._touch();\n const value = this.inspectBytes(length);\n this.position += size ?? length;\n return value;\n },\n readUint8() {\n this.assertReadLimit();\n this._touch();\n const value = this.inspectUint8();\n this.position += 1;\n return value;\n },\n readUint16() {\n this.assertReadLimit();\n this._touch();\n const value = this.inspectUint16();\n this.position += 2;\n return value;\n },\n readUint24() {\n this.assertReadLimit();\n this._touch();\n const value = this.inspectUint24();\n this.position += 3;\n return value;\n },\n readUint32() {\n this.assertReadLimit();\n this._touch();\n const value = this.inspectUint32();\n this.position += 4;\n return value;\n },\n get remaining() {\n return this.bytes.length - this.position;\n },\n setPosition(position) {\n const oldPosition = this.position;\n this.assertPosition(position);\n this.position = position;\n return () => (this.position = oldPosition);\n },\n _touch() {\n if (this.recursiveReadLimit === Number.POSITIVE_INFINITY)\n return;\n const count = this.getReadCount();\n this.positionReadCount.set(this.position, count + 1);\n if (count > 0)\n this.recursiveReadCount++;\n },\n};\nexport function createCursor(bytes, { recursiveReadLimit = 8_192 } = {}) {\n const cursor = Object.create(staticCursor);\n cursor.bytes = bytes;\n cursor.dataView = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n cursor.positionReadCount = new Map();\n cursor.recursiveReadLimit = recursiveReadLimit;\n return cursor;\n}\n//# sourceMappingURL=cursor.js.map","export function concat(values) {\n if (typeof values[0] === 'string')\n return concatHex(values);\n return concatBytes(values);\n}\nexport function concatBytes(values) {\n let length = 0;\n for (const arr of values) {\n length += arr.length;\n }\n const result = new Uint8Array(length);\n let offset = 0;\n for (const arr of values) {\n result.set(arr, offset);\n offset += arr.length;\n }\n return result;\n}\nexport function concatHex(values) {\n return `0x${values.reduce((acc, x) => acc + x.replace('0x', ''), '')}`;\n}\n//# sourceMappingURL=concat.js.map","export function isHex(value, { strict = true } = {}) {\n if (!value)\n return false;\n if (typeof value !== 'string')\n return false;\n return strict ? /^0x[0-9a-fA-F]*$/.test(value) : value.startsWith('0x');\n}\n//# sourceMappingURL=isHex.js.map","import { SizeExceedsPaddingSizeError, } from '../../errors/data.js';\nexport function pad(hexOrBytes, { dir, size = 32 } = {}) {\n if (typeof hexOrBytes === 'string')\n return padHex(hexOrBytes, { dir, size });\n return padBytes(hexOrBytes, { dir, size });\n}\nexport function padHex(hex_, { dir, size = 32 } = {}) {\n if (size === null)\n return hex_;\n const hex = hex_.replace('0x', '');\n if (hex.length > size * 2)\n throw new 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}\nexport function padBytes(bytes, { dir, size = 32 } = {}) {\n if (size === null)\n return bytes;\n if (bytes.length > size)\n throw new 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//# sourceMappingURL=pad.js.map","import { isHex } from './isHex.js';\n/**\n * @description Retrieves the size of the value (in bytes).\n *\n * @param value The value (hex or byte array) to retrieve the size of.\n * @returns The size of the value (in bytes).\n */\nexport function size(value) {\n if (isHex(value, { strict: false }))\n return Math.ceil((value.length - 2) / 2);\n return value.length;\n}\n//# sourceMappingURL=size.js.map","import { SliceOffsetOutOfBoundsError, } from '../../errors/data.js';\nimport { isHex } from './isHex.js';\nimport { size } from './size.js';\n/**\n * @description Returns a section of the hex or byte array given a start/end bytes offset.\n *\n * @param value The hex or byte array to slice.\n * @param start The start offset (in bytes).\n * @param end The end offset (in bytes).\n */\nexport function slice(value, start, end, { strict } = {}) {\n if (isHex(value, { strict: false }))\n return sliceHex(value, start, end, {\n strict,\n });\n return sliceBytes(value, start, end, {\n strict,\n });\n}\nfunction assertStartOffset(value, start) {\n if (typeof start === 'number' && start > 0 && start > size(value) - 1)\n throw new SliceOffsetOutOfBoundsError({\n offset: start,\n position: 'start',\n size: size(value),\n });\n}\nfunction assertEndOffset(value, start, end) {\n if (typeof start === 'number' &&\n typeof end === 'number' &&\n size(value) !== end - start) {\n throw new SliceOffsetOutOfBoundsError({\n offset: end,\n position: 'end',\n size: size(value),\n });\n }\n}\n/**\n * @description Returns a section of the byte array given a start/end bytes offset.\n *\n * @param value The byte array to slice.\n * @param start The start offset (in bytes).\n * @param end The end offset (in bytes).\n */\nexport function sliceBytes(value_, start, end, { strict } = {}) {\n assertStartOffset(value_, start);\n const value = value_.slice(start, end);\n if (strict)\n assertEndOffset(value, start, end);\n return value;\n}\n/**\n * @description Returns a section of the hex value given a start/end bytes offset.\n *\n * @param value The hex value to slice.\n * @param start The start offset (in bytes).\n * @param end The end offset (in bytes).\n */\nexport function sliceHex(value_, start, end, { strict } = {}) {\n assertStartOffset(value_, start);\n const value = `0x${value_\n .replace('0x', '')\n .slice((start ?? 0) * 2, (end ?? value_.length) * 2)}`;\n if (strict)\n assertEndOffset(value, start, end);\n return value;\n}\n//# sourceMappingURL=slice.js.map","export function trim(hexOrBytes, { dir = 'left' } = {}) {\n let data = typeof hexOrBytes === 'string' ? hexOrBytes.replace('0x', '') : hexOrBytes;\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 (typeof hexOrBytes === 'string') {\n if (data.length === 1 && dir === 'right')\n data = `${data}0`;\n return `0x${data.length % 2 === 1 ? `0${data}` : data}`;\n }\n return data;\n}\n//# sourceMappingURL=trim.js.map","import { InvalidHexBooleanError, SizeOverflowError, } from '../../errors/encoding.js';\nimport { size as size_ } from '../data/size.js';\nimport { trim } from '../data/trim.js';\nimport { hexToBytes } from './toBytes.js';\nexport function assertSize(hexOrBytes, { size }) {\n if (size_(hexOrBytes) > size)\n throw new SizeOverflowError({\n givenSize: size_(hexOrBytes),\n maxSize: size,\n });\n}\n/**\n * Decodes a hex string into a string, number, bigint, boolean, or byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex\n * - Example: https://viem.sh/docs/utilities/fromHex#usage\n *\n * @param hex Hex string to decode.\n * @param toOrOpts Type to convert to or options.\n * @returns Decoded value.\n *\n * @example\n * import { fromHex } from 'viem'\n * const data = fromHex('0x1a4', 'number')\n * // 420\n *\n * @example\n * import { fromHex } from 'viem'\n * const data = fromHex('0x48656c6c6f20576f726c6421', 'string')\n * // 'Hello world'\n *\n * @example\n * import { fromHex } from 'viem'\n * const data = fromHex('0x48656c6c6f20576f726c64210000000000000000000000000000000000000000', {\n * size: 32,\n * to: 'string'\n * })\n * // 'Hello world'\n */\nexport function fromHex(hex, toOrOpts) {\n const opts = typeof toOrOpts === 'string' ? { to: toOrOpts } : toOrOpts;\n const to = opts.to;\n if (to === 'number')\n return hexToNumber(hex, opts);\n if (to === 'bigint')\n return hexToBigInt(hex, opts);\n if (to === 'string')\n return hexToString(hex, opts);\n if (to === 'boolean')\n return hexToBool(hex, opts);\n return hexToBytes(hex, opts);\n}\n/**\n * Decodes a hex value into a bigint.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex#hextobigint\n *\n * @param hex Hex value to decode.\n * @param opts Options.\n * @returns BigInt value.\n *\n * @example\n * import { hexToBigInt } from 'viem'\n * const data = hexToBigInt('0x1a4', { signed: true })\n * // 420n\n *\n * @example\n * import { hexToBigInt } from 'viem'\n * const data = hexToBigInt('0x00000000000000000000000000000000000000000000000000000000000001a4', { size: 32 })\n * // 420n\n */\nexport function hexToBigInt(hex, opts = {}) {\n const { signed } = opts;\n if (opts.size)\n assertSize(hex, { size: opts.size });\n const value = BigInt(hex);\n if (!signed)\n return value;\n const size = (hex.length - 2) / 2;\n const max = (1n << (BigInt(size) * 8n - 1n)) - 1n;\n if (value <= max)\n return value;\n return value - BigInt(`0x${'f'.padStart(size * 2, 'f')}`) - 1n;\n}\n/**\n * Decodes a hex value into a boolean.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex#hextobool\n *\n * @param hex Hex value to decode.\n * @param opts Options.\n * @returns Boolean value.\n *\n * @example\n * import { hexToBool } from 'viem'\n * const data = hexToBool('0x01')\n * // true\n *\n * @example\n * import { hexToBool } from 'viem'\n * const data = hexToBool('0x0000000000000000000000000000000000000000000000000000000000000001', { size: 32 })\n * // true\n */\nexport function hexToBool(hex_, opts = {}) {\n let hex = hex_;\n if (opts.size) {\n assertSize(hex, { size: opts.size });\n hex = trim(hex);\n }\n if (trim(hex) === '0x00')\n return false;\n if (trim(hex) === '0x01')\n return true;\n throw new InvalidHexBooleanError(hex);\n}\n/**\n * Decodes a hex string into a number.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex#hextonumber\n *\n * @param hex Hex value to decode.\n * @param opts Options.\n * @returns Number value.\n *\n * @example\n * import { hexToNumber } from 'viem'\n * const data = hexToNumber('0x1a4')\n * // 420\n *\n * @example\n * import { hexToNumber } from 'viem'\n * const data = hexToBigInt('0x00000000000000000000000000000000000000000000000000000000000001a4', { size: 32 })\n * // 420\n */\nexport function hexToNumber(hex, opts = {}) {\n return Number(hexToBigInt(hex, opts));\n}\n/**\n * Decodes a hex value into a UTF-8 string.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex#hextostring\n *\n * @param hex Hex value to decode.\n * @param opts Options.\n * @returns String value.\n *\n * @example\n * import { hexToString } from 'viem'\n * const data = hexToString('0x48656c6c6f20576f726c6421')\n * // 'Hello world!'\n *\n * @example\n * import { hexToString } from 'viem'\n * const data = hexToString('0x48656c6c6f20576f726c64210000000000000000000000000000000000000000', {\n * size: 32,\n * })\n * // 'Hello world'\n */\nexport function hexToString(hex, opts = {}) {\n let bytes = hexToBytes(hex);\n if (opts.size) {\n assertSize(bytes, { size: opts.size });\n bytes = trim(bytes, { dir: 'right' });\n }\n return new TextDecoder().decode(bytes);\n}\n//# sourceMappingURL=fromHex.js.map","import { BaseError } from '../../errors/base.js';\nimport { isHex } from '../data/isHex.js';\nimport { pad } from '../data/pad.js';\nimport { assertSize } from './fromHex.js';\nimport { numberToHex, } from './toHex.js';\nconst encoder = /*#__PURE__*/ new TextEncoder();\n/**\n * Encodes a UTF-8 string, hex value, bigint, number or boolean to a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes\n * - Example: https://viem.sh/docs/utilities/toBytes#usage\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Byte array value.\n *\n * @example\n * import { toBytes } from 'viem'\n * const data = toBytes('Hello world')\n * // Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\n *\n * @example\n * import { toBytes } from 'viem'\n * const data = toBytes(420)\n * // Uint8Array([1, 164])\n *\n * @example\n * import { toBytes } from 'viem'\n * const data = toBytes(420, { size: 4 })\n * // Uint8Array([0, 0, 1, 164])\n */\nexport function toBytes(value, opts = {}) {\n if (typeof value === 'number' || typeof value === 'bigint')\n return numberToBytes(value, opts);\n if (typeof value === 'boolean')\n return boolToBytes(value, opts);\n if (isHex(value))\n return hexToBytes(value, opts);\n return stringToBytes(value, opts);\n}\n/**\n * Encodes a boolean into a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes#booltobytes\n *\n * @param value Boolean value to encode.\n * @param opts Options.\n * @returns Byte array value.\n *\n * @example\n * import { boolToBytes } from 'viem'\n * const data = boolToBytes(true)\n * // Uint8Array([1])\n *\n * @example\n * import { boolToBytes } from 'viem'\n * const data = boolToBytes(true, { size: 32 })\n * // 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 */\nexport function boolToBytes(value, opts = {}) {\n const bytes = new Uint8Array(1);\n bytes[0] = Number(value);\n if (typeof opts.size === 'number') {\n assertSize(bytes, { size: opts.size });\n return pad(bytes, { size: opts.size });\n }\n return bytes;\n}\n// We use very optimized technique to convert hex string to byte array\nconst charCodeMap = {\n zero: 48,\n nine: 57,\n A: 65,\n F: 70,\n a: 97,\n f: 102,\n};\nfunction 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/**\n * Encodes a hex string into a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes#hextobytes\n *\n * @param hex Hex string to encode.\n * @param opts Options.\n * @returns Byte array value.\n *\n * @example\n * import { hexToBytes } from 'viem'\n * const data = hexToBytes('0x48656c6c6f20776f726c6421')\n * // Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\n *\n * @example\n * import { hexToBytes } from 'viem'\n * const data = hexToBytes('0x48656c6c6f20776f726c6421', { size: 32 })\n * // 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 */\nexport function hexToBytes(hex_, opts = {}) {\n let hex = hex_;\n if (opts.size) {\n assertSize(hex, { size: opts.size });\n hex = pad(hex, { dir: 'right', size: opts.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 = charCodeToBase16(hexString.charCodeAt(j++));\n const nibbleRight = charCodeToBase16(hexString.charCodeAt(j++));\n if (nibbleLeft === undefined || nibbleRight === undefined) {\n throw new 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 into a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes#numbertobytes\n *\n * @param value Number to encode.\n * @param opts Options.\n * @returns Byte array value.\n *\n * @example\n * import { numberToBytes } from 'viem'\n * const data = numberToBytes(420)\n * // Uint8Array([1, 164])\n *\n * @example\n * import { numberToBytes } from 'viem'\n * const data = numberToBytes(420, { size: 4 })\n * // Uint8Array([0, 0, 1, 164])\n */\nexport function numberToBytes(value, opts) {\n const hex = numberToHex(value, opts);\n return hexToBytes(hex);\n}\n/**\n * Encodes a UTF-8 string into a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes#stringtobytes\n *\n * @param value String to encode.\n * @param opts Options.\n * @returns Byte array value.\n *\n * @example\n * import { stringToBytes } from 'viem'\n * const data = stringToBytes('Hello world!')\n * // Uint8Array([72, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100, 33])\n *\n * @example\n * import { stringToBytes } from 'viem'\n * const data = stringToBytes('Hello world!', { size: 32 })\n * // 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 */\nexport function stringToBytes(value, opts = {}) {\n const bytes = encoder.encode(value);\n if (typeof opts.size === 'number') {\n assertSize(bytes, { size: opts.size });\n return pad(bytes, { dir: 'right', size: opts.size });\n }\n return bytes;\n}\n//# sourceMappingURL=toBytes.js.map","import { IntegerOutOfRangeError, } from '../../errors/encoding.js';\nimport { pad } from '../data/pad.js';\nimport { assertSize } from './fromHex.js';\nconst hexes = /*#__PURE__*/ Array.from({ length: 256 }, (_v, i) => i.toString(16).padStart(2, '0'));\n/**\n * Encodes a string, number, bigint, or ByteArray into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex\n * - Example: https://viem.sh/docs/utilities/toHex#usage\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { toHex } from 'viem'\n * const data = toHex('Hello world')\n * // '0x48656c6c6f20776f726c6421'\n *\n * @example\n * import { toHex } from 'viem'\n * const data = toHex(420)\n * // '0x1a4'\n *\n * @example\n * import { toHex } from 'viem'\n * const data = toHex('Hello world', { size: 32 })\n * // '0x48656c6c6f20776f726c64210000000000000000000000000000000000000000'\n */\nexport function toHex(value, opts = {}) {\n if (typeof value === 'number' || typeof value === 'bigint')\n return numberToHex(value, opts);\n if (typeof value === 'string') {\n return stringToHex(value, opts);\n }\n if (typeof value === 'boolean')\n return boolToHex(value, opts);\n return bytesToHex(value, opts);\n}\n/**\n * Encodes a boolean into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex#booltohex\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { boolToHex } from 'viem'\n * const data = boolToHex(true)\n * // '0x1'\n *\n * @example\n * import { boolToHex } from 'viem'\n * const data = boolToHex(false)\n * // '0x0'\n *\n * @example\n * import { boolToHex } from 'viem'\n * const data = boolToHex(true, { size: 32 })\n * // '0x0000000000000000000000000000000000000000000000000000000000000001'\n */\nexport function boolToHex(value, opts = {}) {\n const hex = `0x${Number(value)}`;\n if (typeof opts.size === 'number') {\n assertSize(hex, { size: opts.size });\n return pad(hex, { size: opts.size });\n }\n return hex;\n}\n/**\n * Encodes a bytes array into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex#bytestohex\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { bytesToHex } from 'viem'\n * const data = bytesToHex(Uint8Array.from([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\n * // '0x48656c6c6f20576f726c6421'\n *\n * @example\n * import { bytesToHex } from 'viem'\n * const data = bytesToHex(Uint8Array.from([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]), { size: 32 })\n * // '0x48656c6c6f20576f726c64210000000000000000000000000000000000000000'\n */\nexport function bytesToHex(value, opts = {}) {\n let string = '';\n for (let i = 0; i < value.length; i++) {\n string += hexes[value[i]];\n }\n const hex = `0x${string}`;\n if (typeof opts.size === 'number') {\n assertSize(hex, { size: opts.size });\n return pad(hex, { dir: 'right', size: opts.size });\n }\n return hex;\n}\n/**\n * Encodes a number or bigint into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex#numbertohex\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { numberToHex } from 'viem'\n * const data = numberToHex(420)\n * // '0x1a4'\n *\n * @example\n * import { numberToHex } from 'viem'\n * const data = numberToHex(420, { size: 32 })\n * // '0x00000000000000000000000000000000000000000000000000000000000001a4'\n */\nexport function numberToHex(value_, opts = {}) {\n const { signed, size } = opts;\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 hex = `0x${(signed && value < 0\n ? (1n << BigInt(size * 8)) + BigInt(value)\n : value).toString(16)}`;\n if (size)\n return pad(hex, { size });\n return hex;\n}\nconst encoder = /*#__PURE__*/ new TextEncoder();\n/**\n * Encodes a UTF-8 string into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex#stringtohex\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { stringToHex } from 'viem'\n * const data = stringToHex('Hello World!')\n * // '0x48656c6c6f20576f726c6421'\n *\n * @example\n * import { stringToHex } from 'viem'\n * const data = stringToHex('Hello World!', { size: 32 })\n * // '0x48656c6c6f20576f726c64210000000000000000000000000000000000000000'\n */\nexport function stringToHex(value_, opts = {}) {\n const value = encoder.encode(value_);\n return bytesToHex(value, opts);\n}\n//# sourceMappingURL=toHex.js.map","import { BaseError } from '../../errors/base.js';\nimport { ExecutionRevertedError, FeeCapTooHighError, FeeCapTooLowError, InsufficientFundsError, IntrinsicGasTooHighError, IntrinsicGasTooLowError, NonceMaxValueError, NonceTooHighError, NonceTooLowError, TipAboveFeeCapError, TransactionTypeNotSupportedError, UnknownNodeError, } from '../../errors/node.js';\nimport { RpcRequestError } from '../../errors/request.js';\nimport { InvalidInputRpcError, TransactionRejectedRpcError, } from '../../errors/rpc.js';\nexport function containsNodeError(err) {\n return (err instanceof TransactionRejectedRpcError ||\n err instanceof InvalidInputRpcError ||\n (err instanceof RpcRequestError && err.code === ExecutionRevertedError.code));\n}\nexport function getNodeError(err, args) {\n const message = (err.details || '').toLowerCase();\n const executionRevertedError = err instanceof BaseError\n ? err.walk((e) => e.code === ExecutionRevertedError.code)\n : err;\n if (executionRevertedError instanceof BaseError) {\n return new ExecutionRevertedError({\n cause: err,\n message: executionRevertedError.details,\n });\n }\n if (ExecutionRevertedError.nodeMessage.test(message))\n return new ExecutionRevertedError({\n cause: err,\n message: err.details,\n });\n if (FeeCapTooHighError.nodeMessage.test(message))\n return new FeeCapTooHighError({\n cause: err,\n maxFeePerGas: args?.maxFeePerGas,\n });\n if (FeeCapTooLowError.nodeMessage.test(message))\n return new FeeCapTooLowError({\n cause: err,\n maxFeePerGas: args?.maxFeePerGas,\n });\n if (NonceTooHighError.nodeMessage.test(message))\n return new NonceTooHighError({ cause: err, nonce: args?.nonce });\n if (NonceTooLowError.nodeMessage.test(message))\n return new NonceTooLowError({ cause: err, nonce: args?.nonce });\n if (NonceMaxValueError.nodeMessage.test(message))\n return new NonceMaxValueError({ cause: err, nonce: args?.nonce });\n if (InsufficientFundsError.nodeMessage.test(message))\n return new InsufficientFundsError({ cause: err });\n if (IntrinsicGasTooHighError.nodeMessage.test(message))\n return new IntrinsicGasTooHighError({ cause: err, gas: args?.gas });\n if (IntrinsicGasTooLowError.nodeMessage.test(message))\n return new IntrinsicGasTooLowError({ cause: err, gas: args?.gas });\n if (TransactionTypeNotSupportedError.nodeMessage.test(message))\n return new TransactionTypeNotSupportedError({ cause: err });\n if (TipAboveFeeCapError.nodeMessage.test(message))\n return new TipAboveFeeCapError({\n cause: err,\n maxFeePerGas: args?.maxFeePerGas,\n maxPriorityFeePerGas: args?.maxPriorityFeePerGas,\n });\n return new UnknownNodeError({\n cause: err,\n });\n}\n//# sourceMappingURL=getNodeError.js.map","import { defineFormatter } from './formatter.js';\nimport { formatTransaction } from './transaction.js';\nexport function formatBlock(block) {\n const transactions = block.transactions?.map((transaction) => {\n if (typeof transaction === 'string')\n return transaction;\n return formatTransaction(transaction);\n });\n return {\n ...block,\n baseFeePerGas: block.baseFeePerGas ? BigInt(block.baseFeePerGas) : null,\n blobGasUsed: block.blobGasUsed ? BigInt(block.blobGasUsed) : undefined,\n difficulty: block.difficulty ? BigInt(block.difficulty) : undefined,\n excessBlobGas: block.excessBlobGas\n ? BigInt(block.excessBlobGas)\n : undefined,\n gasLimit: block.gasLimit ? BigInt(block.gasLimit) : undefined,\n gasUsed: block.gasUsed ? BigInt(block.gasUsed) : undefined,\n hash: block.hash ? block.hash : null,\n logsBloom: block.logsBloom ? block.logsBloom : null,\n nonce: block.nonce ? block.nonce : null,\n number: block.number ? BigInt(block.number) : null,\n size: block.size ? BigInt(block.size) : undefined,\n timestamp: block.timestamp ? BigInt(block.timestamp) : undefined,\n transactions,\n totalDifficulty: block.totalDifficulty\n ? BigInt(block.totalDifficulty)\n : null,\n };\n}\nexport const defineBlock = /*#__PURE__*/ defineFormatter('block', formatBlock);\n//# sourceMappingURL=block.js.map","/**\n * @description Picks out the keys from `value` that exist in the formatter..\n */\nexport function extract(value_, { format }) {\n if (!format)\n return {};\n const value = {};\n function extract_(formatted) {\n const keys = Object.keys(formatted);\n for (const key of keys) {\n if (key in value_)\n value[key] = value_[key];\n if (formatted[key] &&\n typeof formatted[key] === 'object' &&\n !Array.isArray(formatted[key]))\n extract_(formatted[key]);\n }\n }\n const formatted = format(value_ || {});\n extract_(formatted);\n return value;\n}\n//# sourceMappingURL=extract.js.map","import { hexToNumber } from '../encoding/fromHex.js';\nimport { defineFormatter } from './formatter.js';\nexport const transactionType = {\n '0x0': 'legacy',\n '0x1': 'eip2930',\n '0x2': 'eip1559',\n '0x3': 'eip4844',\n};\nexport function formatTransaction(transaction) {\n const transaction_ = {\n ...transaction,\n blockHash: transaction.blockHash ? transaction.blockHash : null,\n blockNumber: transaction.blockNumber\n ? BigInt(transaction.blockNumber)\n : null,\n chainId: transaction.chainId ? hexToNumber(transaction.chainId) : undefined,\n gas: transaction.gas ? BigInt(transaction.gas) : undefined,\n gasPrice: transaction.gasPrice ? BigInt(transaction.gasPrice) : undefined,\n maxFeePerBlobGas: transaction.maxFeePerBlobGas\n ? BigInt(transaction.maxFeePerBlobGas)\n : undefined,\n maxFeePerGas: transaction.maxFeePerGas\n ? BigInt(transaction.maxFeePerGas)\n : undefined,\n maxPriorityFeePerGas: transaction.maxPriorityFeePerGas\n ? BigInt(transaction.maxPriorityFeePerGas)\n : undefined,\n nonce: transaction.nonce ? hexToNumber(transaction.nonce) : undefined,\n to: transaction.to ? transaction.to : null,\n transactionIndex: transaction.transactionIndex\n ? Number(transaction.transactionIndex)\n : null,\n type: transaction.type\n ? transactionType[transaction.type]\n : undefined,\n typeHex: transaction.type ? transaction.type : undefined,\n value: transaction.value ? BigInt(transaction.value) : undefined,\n v: transaction.v ? BigInt(transaction.v) : undefined,\n };\n transaction_.yParity = (() => {\n // If `yParity` is provided, we will use it.\n if (transaction.yParity)\n return Number(transaction.yParity);\n // If no `yParity` provided, try derive from `v`.\n if (typeof transaction_.v === 'bigint') {\n if (transaction_.v === 0n || transaction_.v === 27n)\n return 0;\n if (transaction_.v === 1n || transaction_.v === 28n)\n return 1;\n if (transaction_.v >= 35n)\n return transaction_.v % 2n === 0n ? 1 : 0;\n }\n return undefined;\n })();\n if (transaction_.type === 'legacy') {\n delete transaction_.accessList;\n delete transaction_.maxFeePerBlobGas;\n delete transaction_.maxFeePerGas;\n delete transaction_.maxPriorityFeePerGas;\n delete transaction_.yParity;\n }\n if (transaction_.type === 'eip2930') {\n delete transaction_.maxFeePerBlobGas;\n delete transaction_.maxFeePerGas;\n delete transaction_.maxPriorityFeePerGas;\n }\n if (transaction_.type === 'eip1559') {\n delete transaction_.maxFeePerBlobGas;\n }\n return transaction_;\n}\nexport const defineTransaction = /*#__PURE__*/ defineFormatter('transaction', formatTransaction);\n//# sourceMappingURL=transaction.js.map","import { bytesToHex, numberToHex } from '../encoding/toHex.js';\nimport { defineFormatter } from './formatter.js';\nexport const rpcTransactionType = {\n legacy: '0x0',\n eip2930: '0x1',\n eip1559: '0x2',\n eip4844: '0x3',\n};\nexport function formatTransactionRequest(request) {\n const rpcRequest = {};\n if (typeof request.accessList !== 'undefined')\n rpcRequest.accessList = request.accessList;\n if (typeof request.blobVersionedHashes !== 'undefined')\n rpcRequest.blobVersionedHashes = request.blobVersionedHashes;\n if (typeof request.blobs !== 'undefined') {\n if (typeof request.blobs[0] !== 'string')\n rpcRequest.blobs = request.blobs.map((x) => bytesToHex(x));\n else\n rpcRequest.blobs = request.blobs;\n }\n if (typeof request.data !== 'undefined')\n rpcRequest.data = request.data;\n if (typeof request.from !== 'undefined')\n rpcRequest.from = request.from;\n if (typeof request.gas !== 'undefined')\n rpcRequest.gas = numberToHex(request.gas);\n if (typeof request.gasPrice !== 'undefined')\n rpcRequest.gasPrice = numberToHex(request.gasPrice);\n if (typeof request.maxFeePerBlobGas !== 'undefined')\n rpcRequest.maxFeePerBlobGas = numberToHex(request.maxFeePerBlobGas);\n if (typeof request.maxFeePerGas !== 'undefined')\n rpcRequest.maxFeePerGas = numberToHex(request.maxFeePerGas);\n if (typeof request.maxPriorityFeePerGas !== 'undefined')\n rpcRequest.maxPriorityFeePerGas = numberToHex(request.maxPriorityFeePerGas);\n if (typeof request.nonce !== 'undefined')\n rpcRequest.nonce = numberToHex(request.nonce);\n if (typeof request.to !== 'undefined')\n rpcRequest.to = request.to;\n if (typeof request.type !== 'undefined')\n rpcRequest.type = rpcTransactionType[request.type];\n if (typeof request.value !== 'undefined')\n rpcRequest.value = numberToHex(request.value);\n return rpcRequest;\n}\nexport const defineTransactionRequest = /*#__PURE__*/ defineFormatter('transactionRequest', formatTransactionRequest);\n//# sourceMappingURL=transactionRequest.js.map","/**\n * Retrieves and returns an action from the client (if exists), and falls\n * back to the tree-shakable action.\n *\n * Useful for extracting overridden actions from a client (ie. if a consumer\n * wants to override the `sendTransaction` implementation).\n */\nexport function getAction(client, action, \n// Some minifiers drop `Function.prototype.name` or can change function\n// names so that getting the name by reflection through `action.name` will\n// not work.\nname) {\n return (params) => client[action.name]?.(params) ??\n client[name]?.(params) ??\n action(client, params);\n}\n//# sourceMappingURL=getAction.js.map","const U32_MASK64 = /* @__PURE__ */ BigInt(2 ** 32 - 1);\nconst _32n = /* @__PURE__ */ BigInt(32);\n// We are not using BigUint64Array, because they are extremely slow as per 2022\nfunction fromBig(n, le = false) {\n if (le)\n return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) };\n return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };\n}\nfunction split(lst, le = false) {\n let Ah = new Uint32Array(lst.length);\n let Al = new Uint32Array(lst.length);\n for (let i = 0; i < lst.length; i++) {\n const { h, l } = fromBig(lst[i], le);\n [Ah[i], Al[i]] = [h, l];\n }\n return [Ah, Al];\n}\nconst toBig = (h, l) => (BigInt(h >>> 0) << _32n) | BigInt(l >>> 0);\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 { fromBig, split, toBig, shrSH, shrSL, rotrSH, rotrSL, rotrBH, rotrBL, rotr32H, rotr32L, rotlSH, rotlSL, rotlBH, rotlBL, add, add3L, add3H, add4L, add4H, add5H, add5L, };\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","import { bytes, exists, number, output } from './_assert.js';\nimport { rotlBH, rotlBL, rotlSH, rotlSL, split } from './_u64.js';\nimport { Hash, u32, toBytes, wrapConstructor, wrapXOFConstructorWithOpts, } from './utils.js';\n// SHA3 (keccak) is based on a new design: basically, the internal state is bigger than output size.\n// It's called a sponge function.\n// Various per round constants calculations\nconst [SHA3_PI, SHA3_ROTL, _SHA3_IOTA] = [[], [], []];\nconst _0n = /* @__PURE__ */ BigInt(0);\nconst _1n = /* @__PURE__ */ BigInt(1);\nconst _2n = /* @__PURE__ */ BigInt(2);\nconst _7n = /* @__PURE__ */ BigInt(7);\nconst _256n = /* @__PURE__ */ BigInt(256);\nconst _0x71n = /* @__PURE__ */ BigInt(0x71);\nfor (let round = 0, R = _1n, x = 1, y = 0; round < 24; round++) {\n // Pi\n [x, y] = [y, (2 * x + 3 * y) % 5];\n SHA3_PI.push(2 * (5 * y + x));\n // Rotational\n SHA3_ROTL.push((((round + 1) * (round + 2)) / 2) % 64);\n // Iota\n let t = _0n;\n for (let j = 0; j < 7; j++) {\n R = ((R << _1n) ^ ((R >> _7n) * _0x71n)) % _256n;\n if (R & _2n)\n t ^= _1n << ((_1n << /* @__PURE__ */ BigInt(j)) - _1n);\n }\n _SHA3_IOTA.push(t);\n}\nconst [SHA3_IOTA_H, SHA3_IOTA_L] = /* @__PURE__ */ split(_SHA3_IOTA, true);\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// Same as keccakf1600, but allows to skip some rounds\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 B.fill(0);\n}\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.blockLen = blockLen;\n this.suffix = suffix;\n this.outputLen = outputLen;\n this.enableXOF = enableXOF;\n this.rounds = rounds;\n this.pos = 0;\n this.posOut = 0;\n this.finished = false;\n this.destroyed = false;\n // Can be passed from user as dkLen\n number(outputLen);\n // 1600 = 5x5 matrix of 64bit. 1600 bits === 200 bytes\n if (0 >= this.blockLen || this.blockLen >= 200)\n throw new Error('Sha3 supports only keccak-f1600 function');\n this.state = new Uint8Array(200);\n this.state32 = u32(this.state);\n }\n keccak() {\n keccakP(this.state32, this.rounds);\n this.posOut = 0;\n this.pos = 0;\n }\n update(data) {\n exists(this);\n const { blockLen, state } = this;\n data = toBytes(data);\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n for (let i = 0; i < take; i++)\n state[this.pos++] ^= data[pos++];\n if (this.pos === blockLen)\n this.keccak();\n }\n return this;\n }\n finish() {\n if (this.finished)\n return;\n this.finished = true;\n const { state, suffix, pos, blockLen } = this;\n // Do the padding\n state[pos] ^= suffix;\n if ((suffix & 0x80) !== 0 && pos === blockLen - 1)\n this.keccak();\n state[blockLen - 1] ^= 0x80;\n this.keccak();\n }\n writeInto(out) {\n exists(this, false);\n bytes(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 number(bytes);\n return this.xofInto(new Uint8Array(bytes));\n }\n digestInto(out) {\n output(out, this);\n if (this.finished)\n throw new Error('digest() was already called');\n this.writeInto(out);\n this.destroy();\n return out;\n }\n digest() {\n return this.digestInto(new Uint8Array(this.outputLen));\n }\n destroy() {\n this.destroyed = true;\n this.state.fill(0);\n }\n _cloneInto(to) {\n const { blockLen, suffix, outputLen, rounds, enableXOF } = this;\n to || (to = new Keccak(blockLen, suffix, outputLen, enableXOF, rounds));\n to.state32.set(this.state32);\n to.pos = this.pos;\n to.posOut = this.posOut;\n to.finished = this.finished;\n to.rounds = rounds;\n // Suffix can change in cSHAKE\n to.suffix = suffix;\n to.outputLen = outputLen;\n to.enableXOF = enableXOF;\n to.destroyed = this.destroyed;\n return to;\n }\n}\nconst gen = (suffix, blockLen, outputLen) => wrapConstructor(() => new Keccak(blockLen, suffix, outputLen));\nexport const sha3_224 = /* @__PURE__ */ gen(0x06, 144, 224 / 8);\n/**\n * SHA3-256 hash function\n * @param message - that would be hashed\n */\nexport const sha3_256 = /* @__PURE__ */ gen(0x06, 136, 256 / 8);\nexport const sha3_384 = /* @__PURE__ */ gen(0x06, 104, 384 / 8);\nexport const sha3_512 = /* @__PURE__ */ gen(0x06, 72, 512 / 8);\nexport const keccak_224 = /* @__PURE__ */ gen(0x01, 144, 224 / 8);\n/**\n * keccak-256 hash function. Different from SHA3-256.\n * @param message - that would be hashed\n */\nexport const keccak_256 = /* @__PURE__ */ gen(0x01, 136, 256 / 8);\nexport const keccak_384 = /* @__PURE__ */ gen(0x01, 104, 384 / 8);\nexport const keccak_512 = /* @__PURE__ */ gen(0x01, 72, 512 / 8);\nconst genShake = (suffix, blockLen, outputLen) => wrapXOFConstructorWithOpts((opts = {}) => new Keccak(blockLen, suffix, opts.dkLen === undefined ? outputLen : opts.dkLen, true));\nexport const shake128 = /* @__PURE__ */ genShake(0x1f, 168, 128 / 8);\nexport const shake256 = /* @__PURE__ */ genShake(0x1f, 136, 256 / 8);\n//# sourceMappingURL=sha3.js.map","import { keccak_256 } from '@noble/hashes/sha3';\nimport { isHex } from '../data/isHex.js';\nimport { toBytes } from '../encoding/toBytes.js';\nimport { toHex } from '../encoding/toHex.js';\nexport function keccak256(value, to_) {\n const to = to_ || 'hex';\n const bytes = keccak_256(isHex(value, { strict: false }) ? toBytes(value) : value);\n if (to === 'bytes')\n return bytes;\n return toHex(bytes);\n}\n//# sourceMappingURL=keccak256.js.map","import { toSignatureHash, } from './toSignatureHash.js';\n/**\n * Returns the event selector for a given event definition.\n *\n * @example\n * const selector = toEventSelector('Transfer(address indexed from, address indexed to, uint256 amount)')\n * // 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef\n */\nexport const toEventSelector = toSignatureHash;\n//# sourceMappingURL=toEventSelector.js.map","import { slice } from '../data/slice.js';\nimport { toSignatureHash, } from './toSignatureHash.js';\n/**\n * Returns the function selector for a given function definition.\n *\n * @example\n * const selector = toFunctionSelector('function ownerOf(uint256 tokenId)')\n * // 0x6352211e\n */\nexport const toFunctionSelector = (fn) => slice(toSignatureHash(fn), 0, 4);\n//# sourceMappingURL=toFunctionSelector.js.map","import { toBytes } from '../encoding/toBytes.js';\nimport { keccak256 } from './keccak256.js';\nconst hash = (value) => keccak256(toBytes(value));\nexport function hashSignature(sig) {\n return hash(sig);\n}\n//# sourceMappingURL=hashSignature.js.map","import { execTyped } from '../regex.js';\n// https://regexr.com/7f7rv\nconst tupleRegex = /^tuple(?(\\[(\\d*)\\])*)$/;\n/**\n * Formats {@link AbiParameter} to human-readable ABI parameter.\n *\n * @param abiParameter - ABI parameter\n * @returns Human-readable ABI parameter\n *\n * @example\n * const result = formatAbiParameter({ type: 'address', name: 'from' })\n * // ^? const result: 'address from'\n */\nexport function formatAbiParameter(abiParameter) {\n let type = abiParameter.type;\n if (tupleRegex.test(abiParameter.type) && 'components' in abiParameter) {\n type = '(';\n const length = abiParameter.components.length;\n for (let i = 0; i < length; i++) {\n const component = abiParameter.components[i];\n type += formatAbiParameter(component);\n if (i < length - 1)\n type += ', ';\n }\n const result = execTyped(tupleRegex, abiParameter.type);\n type += `)${result?.array ?? ''}`;\n return formatAbiParameter({\n ...abiParameter,\n type,\n });\n }\n // Add `indexed` to type if in `abiParameter`\n if ('indexed' in abiParameter && abiParameter.indexed)\n type = `${type} indexed`;\n // Return human-readable ABI parameter\n if (abiParameter.name)\n return `${type} ${abiParameter.name}`;\n return type;\n}\n//# sourceMappingURL=formatAbiParameter.js.map","import { formatAbiParameter, } from './formatAbiParameter.js';\n/**\n * Formats {@link AbiParameter}s to human-readable ABI parameters.\n *\n * @param abiParameters - ABI parameters\n * @returns Human-readable ABI parameters\n *\n * @example\n * const result = formatAbiParameters([\n * // ^? const result: 'address from, uint256 tokenId'\n * { type: 'address', name: 'from' },\n * { type: 'uint256', name: 'tokenId' },\n * ])\n */\nexport function formatAbiParameters(abiParameters) {\n let params = '';\n const length = abiParameters.length;\n for (let i = 0; i < length; i++) {\n const abiParameter = abiParameters[i];\n params += formatAbiParameter(abiParameter);\n if (i !== length - 1)\n params += ', ';\n }\n return params;\n}\n//# sourceMappingURL=formatAbiParameters.js.map","import { formatAbiItem } from 'abitype';\nimport { normalizeSignature, } from './normalizeSignature.js';\n/**\n * Returns the signature for a given function or event definition.\n *\n * @example\n * const signature = toSignature('function ownerOf(uint256 tokenId)')\n * // 'ownerOf(uint256)'\n *\n * @example\n * const signature_3 = toSignature({\n * name: 'ownerOf',\n * type: 'function',\n * inputs: [{ name: 'tokenId', type: 'uint256' }],\n * outputs: [],\n * stateMutability: 'view',\n * })\n * // 'ownerOf(uint256)'\n */\nexport const toSignature = (def) => {\n const def_ = (() => {\n if (typeof def === 'string')\n return def;\n return formatAbiItem(def);\n })();\n return normalizeSignature(def_);\n};\n//# sourceMappingURL=toSignature.js.map","import { formatAbiParameters, } from './formatAbiParameters.js';\n/**\n * Formats ABI item (e.g. error, event, function) into human-readable ABI item\n *\n * @param abiItem - ABI item\n * @returns Human-readable ABI item\n */\nexport function formatAbiItem(abiItem) {\n if (abiItem.type === 'function')\n return `function ${abiItem.name}(${formatAbiParameters(abiItem.inputs)})${abiItem.stateMutability && abiItem.stateMutability !== 'nonpayable'\n ? ` ${abiItem.stateMutability}`\n : ''}${abiItem.outputs.length\n ? ` returns (${formatAbiParameters(abiItem.outputs)})`\n : ''}`;\n else if (abiItem.type === 'event')\n return `event ${abiItem.name}(${formatAbiParameters(abiItem.inputs)})`;\n else if (abiItem.type === 'error')\n return `error ${abiItem.name}(${formatAbiParameters(abiItem.inputs)})`;\n else if (abiItem.type === 'constructor')\n return `constructor(${formatAbiParameters(abiItem.inputs)})${abiItem.stateMutability === 'payable' ? ' payable' : ''}`;\n else if (abiItem.type === 'fallback')\n return 'fallback()';\n return 'receive() external payable';\n}\n//# sourceMappingURL=formatAbiItem.js.map","import { BaseError } from '../../errors/base.js';\nexport function normalizeSignature(signature) {\n let active = true;\n let current = '';\n let level = 0;\n let result = '';\n let valid = false;\n for (let i = 0; i < signature.length; i++) {\n const char = signature[i];\n // If the character is a separator, we want to reactivate.\n if (['(', ')', ','].includes(char))\n active = true;\n // If the character is a \"level\" token, we want to increment/decrement.\n if (char === '(')\n level++;\n if (char === ')')\n level--;\n // If we aren't active, we don't want to mutate the result.\n if (!active)\n continue;\n // If level === 0, we are at the definition level.\n if (level === 0) {\n if (char === ' ' && ['event', 'function', ''].includes(result))\n result = '';\n else {\n result += char;\n // If we are at the end of the definition, we must be finished.\n if (char === ')') {\n valid = true;\n break;\n }\n }\n continue;\n }\n // Ignore spaces\n if (char === ' ') {\n // If the previous character is a separator, and the current section isn't empty, we want to deactivate.\n if (signature[i - 1] !== ',' && current !== ',' && current !== ',(') {\n current = '';\n active = false;\n }\n continue;\n }\n result += char;\n current += char;\n }\n if (!valid)\n throw new BaseError('Unable to normalize signature.');\n return result;\n}\n//# sourceMappingURL=normalizeSignature.js.map","import { hashSignature } from './hashSignature.js';\nimport { toSignature } from './toSignature.js';\n/**\n * Returns the hash (of the function/event signature) for a given event or function definition.\n */\nexport function toSignatureHash(fn) {\n return hashSignature(toSignature(fn));\n}\n//# sourceMappingURL=toSignatureHash.js.map","/**\n * Map with a LRU (Least recently used) policy.\n *\n * @link 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 set(key, value) {\n super.set(key, value);\n if (this.maxSize && this.size > this.maxSize)\n this.delete(this.keys().next().value);\n return this;\n }\n}\n//# sourceMappingURL=lru.js.map","const schedulerCache = /*#__PURE__*/ new Map();\n/** @internal */\nexport function createBatchScheduler({ fn, id, shouldSplitBatch, wait = 0, sort, }) {\n const exec = async () => {\n const scheduler = getScheduler();\n flush();\n const args = scheduler.map(({ args }) => args);\n if (args.length === 0)\n return;\n fn(args)\n .then((data) => {\n if (sort && Array.isArray(data))\n data.sort(sort);\n for (let i = 0; i < scheduler.length; i++) {\n const { pendingPromise } = scheduler[i];\n pendingPromise.resolve?.([data[i], data]);\n }\n })\n .catch((err) => {\n for (let i = 0; i < scheduler.length; i++) {\n const { pendingPromise } = scheduler[i];\n pendingPromise.reject?.(err);\n }\n });\n };\n const flush = () => schedulerCache.delete(id);\n const getBatchedArgs = () => getScheduler().map(({ args }) => args);\n const getScheduler = () => schedulerCache.get(id) || [];\n const setScheduler = (item) => schedulerCache.set(id, [...getScheduler(), item]);\n return {\n flush,\n async schedule(args) {\n const pendingPromise = {};\n const promise = new Promise((resolve, reject) => {\n pendingPromise.resolve = resolve;\n pendingPromise.reject = reject;\n });\n const split = shouldSplitBatch?.([...getBatchedArgs(), args]);\n if (split)\n exec();\n const hasActiveScheduler = getScheduler().length > 0;\n if (hasActiveScheduler) {\n setScheduler({ args, pendingPromise });\n return promise;\n }\n setScheduler({ args, pendingPromise });\n setTimeout(exec, wait);\n return promise;\n },\n };\n}\n//# sourceMappingURL=createBatchScheduler.js.map","import { wait } from '../wait.js';\nexport function withRetry(fn, { delay: delay_ = 100, retryCount = 2, shouldRetry = () => true, } = {}) {\n return new Promise((resolve, reject) => {\n const attemptRetry = async ({ count = 0 } = {}) => {\n const retry = async ({ error }) => {\n const delay = typeof delay_ === 'function' ? delay_({ count, error }) : delay_;\n if (delay)\n await wait(delay);\n attemptRetry({ count: count + 1 });\n };\n try {\n const data = await fn();\n resolve(data);\n }\n catch (err) {\n if (count < retryCount &&\n (await shouldRetry({ count, error: err })))\n return retry({ error: err });\n reject(err);\n }\n };\n attemptRetry();\n });\n}\n//# sourceMappingURL=withRetry.js.map","import { InvalidAddressError, } from '../errors/address.js';\nimport { InvalidBytesLengthError, } from '../errors/data.js';\nimport { AccountStateConflictError, StateAssignmentConflictError, } from '../errors/stateOverride.js';\nimport { isAddress } from './address/isAddress.js';\nimport { numberToHex } from './encoding/toHex.js';\n/** @internal */\nexport function serializeStateMapping(stateMapping) {\n if (!stateMapping || stateMapping.length === 0)\n return undefined;\n return stateMapping.reduce((acc, { slot, value }) => {\n if (slot.length !== 66)\n throw new InvalidBytesLengthError({\n size: slot.length,\n targetSize: 66,\n type: 'hex',\n });\n if (value.length !== 66)\n throw new InvalidBytesLengthError({\n size: value.length,\n targetSize: 66,\n type: 'hex',\n });\n acc[slot] = value;\n return acc;\n }, {});\n}\n/** @internal */\nexport function serializeAccountStateOverride(parameters) {\n const { balance, nonce, state, stateDiff, code } = parameters;\n const rpcAccountStateOverride = {};\n if (code !== undefined)\n rpcAccountStateOverride.code = code;\n if (balance !== undefined)\n rpcAccountStateOverride.balance = numberToHex(balance);\n if (nonce !== undefined)\n rpcAccountStateOverride.nonce = numberToHex(nonce);\n if (state !== undefined)\n rpcAccountStateOverride.state = serializeStateMapping(state);\n if (stateDiff !== undefined) {\n if (rpcAccountStateOverride.state)\n throw new StateAssignmentConflictError();\n rpcAccountStateOverride.stateDiff = serializeStateMapping(stateDiff);\n }\n return rpcAccountStateOverride;\n}\n/** @internal */\nexport function serializeStateOverride(parameters) {\n if (!parameters)\n return undefined;\n const rpcStateOverride = {};\n for (const { address, ...accountState } of parameters) {\n if (!isAddress(address, { strict: false }))\n throw new InvalidAddressError({ address });\n if (rpcStateOverride[address])\n throw new AccountStateConflictError({ address: address });\n rpcStateOverride[address] = serializeAccountStateOverride(accountState);\n }\n return rpcStateOverride;\n}\n//# sourceMappingURL=stateOverride.js.map","export const stringify = (value, replacer, space) => JSON.stringify(value, (key, value_) => {\n const value = typeof value_ === 'bigint' ? value_.toString() : value_;\n return typeof replacer === 'function' ? replacer(key, value) : value;\n}, space);\n//# sourceMappingURL=stringify.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { InvalidAddressError, } from '../../errors/address.js';\nimport { FeeCapTooHighError, TipAboveFeeCapError, } from '../../errors/node.js';\nimport { FeeConflictError, } from '../../errors/transaction.js';\nimport { isAddress } from '../address/isAddress.js';\nexport function assertRequest(args) {\n const { account: account_, gasPrice, maxFeePerGas, maxPriorityFeePerGas, to, } = args;\n const account = account_ ? parseAccount(account_) : undefined;\n if (account && !isAddress(account.address))\n throw new InvalidAddressError({ address: account.address });\n if (to && !isAddress(to))\n throw new InvalidAddressError({ address: to });\n if (typeof gasPrice !== 'undefined' &&\n (typeof maxFeePerGas !== 'undefined' ||\n typeof maxPriorityFeePerGas !== 'undefined'))\n throw new FeeConflictError();\n if (maxFeePerGas && maxFeePerGas > 2n ** 256n - 1n)\n throw new FeeCapTooHighError({ maxFeePerGas });\n if (maxPriorityFeePerGas &&\n maxFeePerGas &&\n maxPriorityFeePerGas > maxFeePerGas)\n throw new TipAboveFeeCapError({ maxFeePerGas, maxPriorityFeePerGas });\n}\n//# sourceMappingURL=assertRequest.js.map","export const arrayRegex = /^(.*)\\[([0-9]*)\\]$/;\n// `bytes`: binary type of `M` bytes, `0 < M <= 32`\n// https://regexr.com/6va55\nexport const bytesRegex = /^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/;\n// `(u)int`: (un)signed integer type of `M` bits, `0 < M <= 256`, `M % 8 == 0`\n// https://regexr.com/6v8hp\nexport const integerRegex = /^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/;\n//# sourceMappingURL=regex.js.map","import { BytesSizeMismatchError } from '../errors/abi.js';\nimport { InvalidAddressError } from '../errors/address.js';\nimport { isAddress } from './address/isAddress.js';\nimport { size } from './data/size.js';\nimport { numberToHex } from './encoding/toHex.js';\nimport { bytesRegex, integerRegex } from './regex.js';\nimport { hashDomain, } from './signature/hashTypedData.js';\nimport { stringify } from './stringify.js';\nexport function serializeTypedData(parameters) {\n const { domain: domain_, message: message_, primaryType, types, } = parameters;\n const normalizeData = (struct, data_) => {\n const data = { ...data_ };\n for (const param of struct) {\n const { name, type } = param;\n if (type === 'address')\n data[name] = data[name].toLowerCase();\n }\n return data;\n };\n const domain = (() => {\n if (!types.EIP712Domain)\n return {};\n if (!domain_)\n return {};\n return normalizeData(types.EIP712Domain, domain_);\n })();\n const message = (() => {\n if (primaryType === 'EIP712Domain')\n return undefined;\n return normalizeData(types[primaryType], message_);\n })();\n return stringify({ domain, message, primaryType, types });\n}\nexport function validateTypedData(parameters) {\n const { domain, message, primaryType, types } = parameters;\n const validateData = (struct, data) => {\n for (const param of struct) {\n const { name, type } = param;\n const value = data[name];\n const integerMatch = type.match(integerRegex);\n if (integerMatch &&\n (typeof value === 'number' || typeof value === 'bigint')) {\n const [_type, base, size_] = integerMatch;\n // If number cannot be cast to a sized hex value, it is out of range\n // and will throw.\n numberToHex(value, {\n signed: base === 'int',\n size: Number.parseInt(size_) / 8,\n });\n }\n if (type === 'address' && typeof value === 'string' && !isAddress(value))\n throw new InvalidAddressError({ address: value });\n const bytesMatch = type.match(bytesRegex);\n if (bytesMatch) {\n const [_type, size_] = bytesMatch;\n if (size_ && size(value) !== Number.parseInt(size_))\n throw new BytesSizeMismatchError({\n expectedSize: Number.parseInt(size_),\n givenSize: size(value),\n });\n }\n const struct = types[type];\n if (struct)\n validateData(struct, value);\n }\n };\n // Validate domain types.\n if (types.EIP712Domain && domain)\n validateData(types.EIP712Domain, domain);\n // Validate message types.\n if (primaryType !== 'EIP712Domain')\n validateData(types[primaryType], message);\n}\nexport function getTypesForEIP712Domain({ domain, }) {\n return [\n typeof domain?.name === 'string' && { name: 'name', type: 'string' },\n domain?.version && { name: 'version', type: 'string' },\n typeof domain?.chainId === 'number' && {\n name: 'chainId',\n type: 'uint256',\n },\n domain?.verifyingContract && {\n name: 'verifyingContract',\n type: 'address',\n },\n domain?.salt && { name: 'salt', type: 'bytes32' },\n ].filter(Boolean);\n}\nexport function domainSeparator({ domain }) {\n return hashDomain({\n domain,\n types: {\n EIP712Domain: getTypesForEIP712Domain({ domain }),\n },\n });\n}\n//# sourceMappingURL=typedData.js.map","const size = 256;\nlet index = size;\nlet buffer;\nexport function uid(length = 11) {\n if (!buffer || index + length > size * 2) {\n buffer = '';\n index = 0;\n for (let i = 0; i < size; i++) {\n buffer += ((256 + Math.random() * 256) | 0).toString(16).substring(1);\n }\n }\n return buffer.substring(index, index++ + length);\n}\n//# sourceMappingURL=uid.js.map","import { etherUnits } from '../../constants/unit.js';\nimport { formatUnits } from './formatUnits.js';\n/**\n * Converts numerical wei to a string representation of ether.\n *\n * - Docs: https://viem.sh/docs/utilities/formatEther\n *\n * @example\n * import { formatEther } from 'viem'\n *\n * formatEther(1000000000000000000n)\n * // '1'\n */\nexport function formatEther(wei, unit = 'wei') {\n return formatUnits(wei, etherUnits[unit]);\n}\n//# sourceMappingURL=formatEther.js.map","import { gweiUnits } from '../../constants/unit.js';\nimport { formatUnits } from './formatUnits.js';\n/**\n * Converts numerical wei to a string representation of gwei.\n *\n * - Docs: https://viem.sh/docs/utilities/formatGwei\n *\n * @example\n * import { formatGwei } from 'viem'\n *\n * formatGwei(1000000000n)\n * // '1'\n */\nexport function formatGwei(wei, unit = 'wei') {\n return formatUnits(wei, gweiUnits[unit]);\n}\n//# sourceMappingURL=formatGwei.js.map","/**\n * Divides a number by a given exponent of base 10 (10exponent), and formats it into a string representation of the number..\n *\n * - Docs: https://viem.sh/docs/utilities/formatUnits\n *\n * @example\n * import { formatUnits } from 'viem'\n *\n * formatUnits(420000000000n, 9)\n * // '420'\n */\nexport function formatUnits(value, decimals) {\n let display = value.toString();\n const negative = display.startsWith('-');\n if (negative)\n display = display.slice(1);\n display = display.padStart(decimals, '0');\n let [integer, fraction] = [\n display.slice(0, display.length - decimals),\n display.slice(display.length - decimals),\n ];\n fraction = fraction.replace(/(0+)$/, '');\n return `${negative ? '-' : ''}${integer || '0'}${fraction ? `.${fraction}` : ''}`;\n}\n//# sourceMappingURL=formatUnits.js.map","export async function wait(time) {\n return new Promise((res) => setTimeout(res, time));\n}\n//# sourceMappingURL=wait.js.map","function number(n) {\n if (!Number.isSafeInteger(n) || n < 0)\n throw new Error(`Wrong positive integer: ${n}`);\n}\nfunction bool(b) {\n if (typeof b !== 'boolean')\n throw new Error(`Expected boolean, not ${b}`);\n}\nfunction bytes(b, ...lengths) {\n if (!(b instanceof Uint8Array))\n throw new Error('Expected Uint8Array');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new Error(`Expected Uint8Array of length ${lengths}, not of length=${b.length}`);\n}\nfunction hash(hash) {\n if (typeof hash !== 'function' || typeof hash.create !== 'function')\n throw new Error('Hash should be wrapped by utils.wrapConstructor');\n number(hash.outputLen);\n number(hash.blockLen);\n}\nfunction exists(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}\nfunction output(out, instance) {\n bytes(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}\nexport { number, bool, bytes, hash, exists, output };\nconst assert = { number, bool, bytes, hash, exists, output };\nexport default assert;\n//# sourceMappingURL=_assert.js.map","/*! 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, we can just drop the import.\nimport { crypto } from '@noble/hashes/crypto';\nconst u8a = (a) => a instanceof Uint8Array;\n// Cast array to different type\nexport const u8 = (arr) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\nexport const u32 = (arr) => new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n// Cast array to view\nexport const createView = (arr) => new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n// The rotate right (circular right shift) operation for uint32\nexport const rotr = (word, shift) => (word << (32 - shift)) | (word >>> shift);\n// big-endian hardware is rare. Just in case someone still decides to run hashes:\n// early-throw an error because we don't support BE yet.\nexport const isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\nif (!isLE)\n throw new Error('Non little-endian hardware is not supported');\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes) {\n if (!u8a(bytes))\n throw new Error('Uint8Array expected');\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/**\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 const len = hex.length;\n if (len % 2)\n throw new Error('padded hex string expected, got unpadded hex of length ' + len);\n const array = new Uint8Array(len / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n const hexByte = hex.slice(j, j + 2);\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte) || byte < 0)\n throw new Error('Invalid byte sequence');\n array[i] = byte;\n }\n return array;\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.\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 * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nexport function utf8ToBytes(str) {\n if (typeof str !== 'string')\n throw new Error(`utf8ToBytes expected string, got ${typeof str}`);\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n/**\n * Normalizes (non-hex) string or Uint8Array to Uint8Array.\n * Warning: when Uint8Array is passed, it would NOT get copied.\n * Keep in mind for future mutable operations.\n */\nexport function toBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n if (!u8a(data))\n throw new Error(`expected Uint8Array, got ${typeof data}`);\n return data;\n}\n/**\n * Copies several Uint8Arrays into one.\n */\nexport function concatBytes(...arrays) {\n const r = new Uint8Array(arrays.reduce((sum, a) => sum + a.length, 0));\n let pad = 0; // walk through each item, ensure they have proper type\n arrays.forEach((a) => {\n if (!u8a(a))\n throw new Error('Uint8Array expected');\n r.set(a, pad);\n pad += a.length;\n });\n return r;\n}\n// For runtime check if class implements interface\nexport class Hash {\n // Safe version that clones internal state\n clone() {\n return this._cloneInto();\n }\n}\nconst toStr = {}.toString;\nexport function checkOpts(defaults, opts) {\n if (opts !== undefined && toStr.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}\nexport function wrapConstructor(hashCons) {\n const hashC = (msg) => hashCons().update(toBytes(msg)).digest();\n const tmp = hashCons();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashCons();\n return hashC;\n}\nexport function wrapConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\nexport function wrapXOFConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\n/**\n * Secure PRNG. Uses `crypto.getRandomValues`, which defers to OS.\n */\nexport function randomBytes(bytesLength = 32) {\n if (crypto && typeof crypto.getRandomValues === 'function') {\n return crypto.getRandomValues(new Uint8Array(bytesLength));\n }\n throw new Error('crypto.getRandomValues must be defined');\n}\n//# sourceMappingURL=utils.js.map","// TODO: This looks cool. Need to check the performance of `new RegExp` versus defined inline though.\n// https://twitter.com/GabrielVergnaud/status/1622906834343366657\nexport function execTyped(regex, string) {\n const match = regex.exec(string);\n return match?.groups;\n}\n// `bytes`: binary type of `M` bytes, `0 < M <= 32`\n// https://regexr.com/6va55\nexport const bytesRegex = /^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/;\n// `(u)int`: (un)signed integer type of `M` bits, `0 < M <= 256`, `M % 8 == 0`\n// https://regexr.com/6v8hp\nexport const integerRegex = /^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/;\nexport const isTupleRegex = /^\\(.+?\\).*?$/;\n//# sourceMappingURL=regex.js.map","'use client';\nimport * as React from 'react';\n\nfunction createValue() {\n let isReset = false;\n return {\n clearReset: () => {\n isReset = false;\n },\n reset: () => {\n isReset = true;\n },\n isReset: () => {\n return isReset;\n }\n };\n}\n\nconst QueryErrorResetBoundaryContext = /*#__PURE__*/React.createContext(createValue()); // HOOK\n\nconst useQueryErrorResetBoundary = () => React.useContext(QueryErrorResetBoundaryContext); // COMPONENT\n\nconst QueryErrorResetBoundary = ({\n children\n}) => {\n const [value] = React.useState(() => createValue());\n return /*#__PURE__*/React.createElement(QueryErrorResetBoundaryContext.Provider, {\n value: value\n }, typeof children === 'function' ? children(value) : children);\n};\n\nexport { QueryErrorResetBoundary, useQueryErrorResetBoundary };\n//# sourceMappingURL=QueryErrorResetBoundary.mjs.map\n","function createSyncStoragePersister({\n storage,\n key = \"REACT_QUERY_OFFLINE_CACHE\",\n throttleTime = 1000,\n serialize = JSON.stringify,\n deserialize = JSON.parse,\n retry\n}) {\n if (storage) {\n const trySave = persistedClient => {\n try {\n storage.setItem(key, serialize(persistedClient));\n return;\n } catch (error) {\n return error;\n }\n };\n\n return {\n persistClient: throttle(persistedClient => {\n let client = persistedClient;\n let error = trySave(client);\n let errorCount = 0;\n\n while (error && client) {\n errorCount++;\n client = retry == null ? void 0 : retry({\n persistedClient: client,\n error,\n errorCount\n });\n\n if (client) {\n error = trySave(client);\n }\n }\n }, throttleTime),\n restoreClient: () => {\n const cacheString = storage.getItem(key);\n\n if (!cacheString) {\n return;\n }\n\n return deserialize(cacheString);\n },\n removeClient: () => {\n storage.removeItem(key);\n }\n };\n }\n\n return {\n persistClient: noop,\n restoreClient: () => undefined,\n removeClient: noop\n };\n}\n\nfunction throttle(func, wait = 100) {\n let timer = null;\n let params;\n return function (...args) {\n params = args;\n\n if (timer === null) {\n timer = setTimeout(() => {\n func(...params);\n timer = null;\n }, wait);\n }\n };\n} // eslint-disable-next-line @typescript-eslint/no-empty-function\n\n\nfunction noop() {}\n\nexport { createSyncStoragePersister };\n//# sourceMappingURL=index.mjs.map\n","// TYPES\n// UTILS\nconst isServer = typeof window === 'undefined' || 'Deno' in window;\nfunction noop() {\n return undefined;\n}\nfunction functionalUpdate(updater, input) {\n return typeof updater === 'function' ? updater(input) : updater;\n}\nfunction isValidTimeout(value) {\n return typeof value === 'number' && value >= 0 && value !== Infinity;\n}\nfunction difference(array1, array2) {\n return array1.filter(x => !array2.includes(x));\n}\nfunction replaceAt(array, index, value) {\n const copy = array.slice(0);\n copy[index] = value;\n return copy;\n}\nfunction timeUntilStale(updatedAt, staleTime) {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);\n}\nfunction parseQueryArgs(arg1, arg2, arg3) {\n if (!isQueryKey(arg1)) {\n return arg1;\n }\n\n if (typeof arg2 === 'function') {\n return { ...arg3,\n queryKey: arg1,\n queryFn: arg2\n };\n }\n\n return { ...arg2,\n queryKey: arg1\n };\n}\nfunction parseMutationArgs(arg1, arg2, arg3) {\n if (isQueryKey(arg1)) {\n if (typeof arg2 === 'function') {\n return { ...arg3,\n mutationKey: arg1,\n mutationFn: arg2\n };\n }\n\n return { ...arg2,\n mutationKey: arg1\n };\n }\n\n if (typeof arg1 === 'function') {\n return { ...arg2,\n mutationFn: arg1\n };\n }\n\n return { ...arg1\n };\n}\nfunction parseFilterArgs(arg1, arg2, arg3) {\n return isQueryKey(arg1) ? [{ ...arg2,\n queryKey: arg1\n }, arg3] : [arg1 || {}, arg2];\n}\nfunction parseMutationFilterArgs(arg1, arg2, arg3) {\n return isQueryKey(arg1) ? [{ ...arg2,\n mutationKey: arg1\n }, arg3] : [arg1 || {}, arg2];\n}\nfunction matchQuery(filters, query) {\n const {\n type = 'all',\n exact,\n fetchStatus,\n predicate,\n queryKey,\n stale\n } = filters;\n\n if (isQueryKey(queryKey)) {\n if (exact) {\n if (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) {\n return false;\n }\n } else if (!partialMatchKey(query.queryKey, queryKey)) {\n return false;\n }\n }\n\n if (type !== 'all') {\n const isActive = query.isActive();\n\n if (type === 'active' && !isActive) {\n return false;\n }\n\n if (type === 'inactive' && isActive) {\n return false;\n }\n }\n\n if (typeof stale === 'boolean' && query.isStale() !== stale) {\n return false;\n }\n\n if (typeof fetchStatus !== 'undefined' && fetchStatus !== query.state.fetchStatus) {\n return false;\n }\n\n if (predicate && !predicate(query)) {\n return false;\n }\n\n return true;\n}\nfunction matchMutation(filters, mutation) {\n const {\n exact,\n fetching,\n predicate,\n mutationKey\n } = filters;\n\n if (isQueryKey(mutationKey)) {\n if (!mutation.options.mutationKey) {\n return false;\n }\n\n if (exact) {\n if (hashQueryKey(mutation.options.mutationKey) !== hashQueryKey(mutationKey)) {\n return false;\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false;\n }\n }\n\n if (typeof fetching === 'boolean' && mutation.state.status === 'loading' !== fetching) {\n return false;\n }\n\n if (predicate && !predicate(mutation)) {\n return false;\n }\n\n return true;\n}\nfunction hashQueryKeyByOptions(queryKey, options) {\n const hashFn = (options == null ? void 0 : options.queryKeyHashFn) || hashQueryKey;\n return hashFn(queryKey);\n}\n/**\n * Default query keys hash function.\n * Hashes the value into a stable hash.\n */\n\nfunction hashQueryKey(queryKey) {\n return JSON.stringify(queryKey, (_, val) => isPlainObject(val) ? Object.keys(val).sort().reduce((result, key) => {\n result[key] = val[key];\n return result;\n }, {}) : val);\n}\n/**\n * Checks if key `b` partially matches with key `a`.\n */\n\nfunction partialMatchKey(a, b) {\n return partialDeepEqual(a, b);\n}\n/**\n * Checks if `b` partially matches with `a`.\n */\n\nfunction partialDeepEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (typeof a !== typeof b) {\n return false;\n }\n\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n return !Object.keys(b).some(key => !partialDeepEqual(a[key], b[key]));\n }\n\n return false;\n}\n/**\n * This function returns `a` if `b` is deeply equal.\n * If not, it will replace any deeply equal children of `b` with those of `a`.\n * This can be used for structural sharing between JSON values for example.\n */\n\nfunction replaceEqualDeep(a, b) {\n if (a === b) {\n return a;\n }\n\n const array = isPlainArray(a) && isPlainArray(b);\n\n if (array || isPlainObject(a) && isPlainObject(b)) {\n const aSize = array ? a.length : Object.keys(a).length;\n const bItems = array ? b : Object.keys(b);\n const bSize = bItems.length;\n const copy = array ? [] : {};\n let equalItems = 0;\n\n for (let i = 0; i < bSize; i++) {\n const key = array ? i : bItems[i];\n copy[key] = replaceEqualDeep(a[key], b[key]);\n\n if (copy[key] === a[key]) {\n equalItems++;\n }\n }\n\n return aSize === bSize && equalItems === aSize ? a : copy;\n }\n\n return b;\n}\n/**\n * Shallow compare objects. Only works with objects that always have the same properties.\n */\n\nfunction shallowEqualObjects(a, b) {\n if (a && !b || b && !a) {\n return false;\n }\n\n for (const key in a) {\n if (a[key] !== b[key]) {\n return false;\n }\n }\n\n return true;\n}\nfunction isPlainArray(value) {\n return Array.isArray(value) && value.length === Object.keys(value).length;\n} // Copied from: https://github.com/jonschlinkert/is-plain-object\n\nfunction isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n } // If has modified constructor\n\n\n const ctor = o.constructor;\n\n if (typeof ctor === 'undefined') {\n return true;\n } // If has modified prototype\n\n\n const prot = ctor.prototype;\n\n if (!hasObjectPrototype(prot)) {\n return false;\n } // If constructor does not have an Object-specific method\n\n\n if (!prot.hasOwnProperty('isPrototypeOf')) {\n return false;\n } // Most likely a plain Object\n\n\n return true;\n}\n\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isQueryKey(value) {\n return Array.isArray(value);\n}\nfunction isError(value) {\n return value instanceof Error;\n}\nfunction sleep(timeout) {\n return new Promise(resolve => {\n setTimeout(resolve, timeout);\n });\n}\n/**\n * Schedules a microtask.\n * This can be useful to schedule state updates after rendering.\n */\n\nfunction scheduleMicrotask(callback) {\n sleep(0).then(callback);\n}\nfunction getAbortController() {\n if (typeof AbortController === 'function') {\n return new AbortController();\n }\n\n return;\n}\nfunction replaceData(prevData, data, options) {\n // Use prev data if an isDataEqual function is defined and returns `true`\n if (options.isDataEqual != null && options.isDataEqual(prevData, data)) {\n return prevData;\n } else if (typeof options.structuralSharing === 'function') {\n return options.structuralSharing(prevData, data);\n } else if (options.structuralSharing !== false) {\n // Structurally share data between prev and new data if needed\n return replaceEqualDeep(prevData, data);\n }\n\n return data;\n}\n\nexport { difference, functionalUpdate, getAbortController, hashQueryKey, hashQueryKeyByOptions, isError, isPlainArray, isPlainObject, isQueryKey, isServer, isValidTimeout, matchMutation, matchQuery, noop, parseFilterArgs, parseMutationArgs, parseMutationFilterArgs, parseQueryArgs, partialDeepEqual, partialMatchKey, replaceAt, replaceData, replaceEqualDeep, scheduleMicrotask, shallowEqualObjects, sleep, timeUntilStale };\n//# sourceMappingURL=utils.mjs.map\n","const defaultLogger = console;\n\nexport { defaultLogger };\n//# sourceMappingURL=logger.mjs.map\n","import { scheduleMicrotask } from './utils.mjs';\n\nfunction createNotifyManager() {\n let queue = [];\n let transactions = 0;\n\n let notifyFn = callback => {\n callback();\n };\n\n let batchNotifyFn = callback => {\n callback();\n };\n\n const batch = callback => {\n let result;\n transactions++;\n\n try {\n result = callback();\n } finally {\n transactions--;\n\n if (!transactions) {\n flush();\n }\n }\n\n return result;\n };\n\n const schedule = callback => {\n if (transactions) {\n queue.push(callback);\n } else {\n scheduleMicrotask(() => {\n notifyFn(callback);\n });\n }\n };\n /**\n * All calls to the wrapped function will be batched.\n */\n\n\n const batchCalls = callback => {\n return (...args) => {\n schedule(() => {\n callback(...args);\n });\n };\n };\n\n const flush = () => {\n const originalQueue = queue;\n queue = [];\n\n if (originalQueue.length) {\n scheduleMicrotask(() => {\n batchNotifyFn(() => {\n originalQueue.forEach(callback => {\n notifyFn(callback);\n });\n });\n });\n }\n };\n /**\n * Use this method to set a custom notify function.\n * This can be used to for example wrap notifications with `React.act` while running tests.\n */\n\n\n const setNotifyFunction = fn => {\n notifyFn = fn;\n };\n /**\n * Use this method to set a custom function to batch notifications together into a single tick.\n * By default React Query will use the batch function provided by ReactDOM or React Native.\n */\n\n\n const setBatchNotifyFunction = fn => {\n batchNotifyFn = fn;\n };\n\n return {\n batch,\n batchCalls,\n schedule,\n setNotifyFunction,\n setBatchNotifyFunction\n };\n} // SINGLETON\n\nconst notifyManager = createNotifyManager();\n\nexport { createNotifyManager, notifyManager };\n//# sourceMappingURL=notifyManager.mjs.map\n","class Subscribable {\n constructor() {\n this.listeners = new Set();\n this.subscribe = this.subscribe.bind(this);\n }\n\n subscribe(listener) {\n const identity = {\n listener\n };\n this.listeners.add(identity);\n this.onSubscribe();\n return () => {\n this.listeners.delete(identity);\n this.onUnsubscribe();\n };\n }\n\n hasListeners() {\n return this.listeners.size > 0;\n }\n\n onSubscribe() {// Do nothing\n }\n\n onUnsubscribe() {// Do nothing\n }\n\n}\n\nexport { Subscribable };\n//# sourceMappingURL=subscribable.mjs.map\n","import { Subscribable } from './subscribable.mjs';\nimport { isServer } from './utils.mjs';\n\nclass FocusManager extends Subscribable {\n constructor() {\n super();\n\n this.setup = onFocus => {\n // addEventListener does not exist in React Native, but window does\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isServer && window.addEventListener) {\n const listener = () => onFocus(); // Listen to visibillitychange and focus\n\n\n window.addEventListener('visibilitychange', listener, false);\n window.addEventListener('focus', listener, false);\n return () => {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('visibilitychange', listener);\n window.removeEventListener('focus', listener);\n };\n }\n\n return;\n };\n }\n\n onSubscribe() {\n if (!this.cleanup) {\n this.setEventListener(this.setup);\n }\n }\n\n onUnsubscribe() {\n if (!this.hasListeners()) {\n var _this$cleanup;\n\n (_this$cleanup = this.cleanup) == null ? void 0 : _this$cleanup.call(this);\n this.cleanup = undefined;\n }\n }\n\n setEventListener(setup) {\n var _this$cleanup2;\n\n this.setup = setup;\n (_this$cleanup2 = this.cleanup) == null ? void 0 : _this$cleanup2.call(this);\n this.cleanup = setup(focused => {\n if (typeof focused === 'boolean') {\n this.setFocused(focused);\n } else {\n this.onFocus();\n }\n });\n }\n\n setFocused(focused) {\n this.focused = focused;\n\n if (focused) {\n this.onFocus();\n }\n }\n\n onFocus() {\n this.listeners.forEach(({\n listener\n }) => {\n listener();\n });\n }\n\n isFocused() {\n if (typeof this.focused === 'boolean') {\n return this.focused;\n } // document global can be unavailable in react native\n\n\n if (typeof document === 'undefined') {\n return true;\n }\n\n return [undefined, 'visible', 'prerender'].includes(document.visibilityState);\n }\n\n}\nconst focusManager = new FocusManager();\n\nexport { FocusManager, focusManager };\n//# sourceMappingURL=focusManager.mjs.map\n","import { Subscribable } from './subscribable.mjs';\nimport { isServer } from './utils.mjs';\n\nconst onlineEvents = ['online', 'offline'];\nclass OnlineManager extends Subscribable {\n constructor() {\n super();\n\n this.setup = onOnline => {\n // addEventListener does not exist in React Native, but window does\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isServer && window.addEventListener) {\n const listener = () => onOnline(); // Listen to online\n\n\n onlineEvents.forEach(event => {\n window.addEventListener(event, listener, false);\n });\n return () => {\n // Be sure to unsubscribe if a new handler is set\n onlineEvents.forEach(event => {\n window.removeEventListener(event, listener);\n });\n };\n }\n\n return;\n };\n }\n\n onSubscribe() {\n if (!this.cleanup) {\n this.setEventListener(this.setup);\n }\n }\n\n onUnsubscribe() {\n if (!this.hasListeners()) {\n var _this$cleanup;\n\n (_this$cleanup = this.cleanup) == null ? void 0 : _this$cleanup.call(this);\n this.cleanup = undefined;\n }\n }\n\n setEventListener(setup) {\n var _this$cleanup2;\n\n this.setup = setup;\n (_this$cleanup2 = this.cleanup) == null ? void 0 : _this$cleanup2.call(this);\n this.cleanup = setup(online => {\n if (typeof online === 'boolean') {\n this.setOnline(online);\n } else {\n this.onOnline();\n }\n });\n }\n\n setOnline(online) {\n this.online = online;\n\n if (online) {\n this.onOnline();\n }\n }\n\n onOnline() {\n this.listeners.forEach(({\n listener\n }) => {\n listener();\n });\n }\n\n isOnline() {\n if (typeof this.online === 'boolean') {\n return this.online;\n }\n\n if (typeof navigator === 'undefined' || typeof navigator.onLine === 'undefined') {\n return true;\n }\n\n return navigator.onLine;\n }\n\n}\nconst onlineManager = new OnlineManager();\n\nexport { OnlineManager, onlineManager };\n//# sourceMappingURL=onlineManager.mjs.map\n","import { focusManager } from './focusManager.mjs';\nimport { onlineManager } from './onlineManager.mjs';\nimport { sleep } from './utils.mjs';\n\nfunction defaultRetryDelay(failureCount) {\n return Math.min(1000 * 2 ** failureCount, 30000);\n}\n\nfunction canFetch(networkMode) {\n return (networkMode != null ? networkMode : 'online') === 'online' ? onlineManager.isOnline() : true;\n}\nclass CancelledError {\n constructor(options) {\n this.revert = options == null ? void 0 : options.revert;\n this.silent = options == null ? void 0 : options.silent;\n }\n\n}\nfunction isCancelledError(value) {\n return value instanceof CancelledError;\n}\nfunction createRetryer(config) {\n let isRetryCancelled = false;\n let failureCount = 0;\n let isResolved = false;\n let continueFn;\n let promiseResolve;\n let promiseReject;\n const promise = new Promise((outerResolve, outerReject) => {\n promiseResolve = outerResolve;\n promiseReject = outerReject;\n });\n\n const cancel = cancelOptions => {\n if (!isResolved) {\n reject(new CancelledError(cancelOptions));\n config.abort == null ? void 0 : config.abort();\n }\n };\n\n const cancelRetry = () => {\n isRetryCancelled = true;\n };\n\n const continueRetry = () => {\n isRetryCancelled = false;\n };\n\n const shouldPause = () => !focusManager.isFocused() || config.networkMode !== 'always' && !onlineManager.isOnline();\n\n const resolve = value => {\n if (!isResolved) {\n isResolved = true;\n config.onSuccess == null ? void 0 : config.onSuccess(value);\n continueFn == null ? void 0 : continueFn();\n promiseResolve(value);\n }\n };\n\n const reject = value => {\n if (!isResolved) {\n isResolved = true;\n config.onError == null ? void 0 : config.onError(value);\n continueFn == null ? void 0 : continueFn();\n promiseReject(value);\n }\n };\n\n const pause = () => {\n return new Promise(continueResolve => {\n continueFn = value => {\n const canContinue = isResolved || !shouldPause();\n\n if (canContinue) {\n continueResolve(value);\n }\n\n return canContinue;\n };\n\n config.onPause == null ? void 0 : config.onPause();\n }).then(() => {\n continueFn = undefined;\n\n if (!isResolved) {\n config.onContinue == null ? void 0 : config.onContinue();\n }\n });\n }; // Create loop function\n\n\n const run = () => {\n // Do nothing if already resolved\n if (isResolved) {\n return;\n }\n\n let promiseOrValue; // Execute query\n\n try {\n promiseOrValue = config.fn();\n } catch (error) {\n promiseOrValue = Promise.reject(error);\n }\n\n Promise.resolve(promiseOrValue).then(resolve).catch(error => {\n var _config$retry, _config$retryDelay;\n\n // Stop if the fetch is already resolved\n if (isResolved) {\n return;\n } // Do we need to retry the request?\n\n\n const retry = (_config$retry = config.retry) != null ? _config$retry : 3;\n const retryDelay = (_config$retryDelay = config.retryDelay) != null ? _config$retryDelay : defaultRetryDelay;\n const delay = typeof retryDelay === 'function' ? retryDelay(failureCount, error) : retryDelay;\n const shouldRetry = retry === true || typeof retry === 'number' && failureCount < retry || typeof retry === 'function' && retry(failureCount, error);\n\n if (isRetryCancelled || !shouldRetry) {\n // We are done if the query does not need to be retried\n reject(error);\n return;\n }\n\n failureCount++; // Notify on fail\n\n config.onFail == null ? void 0 : config.onFail(failureCount, error); // Delay\n\n sleep(delay) // Pause if the document is not visible or when the device is offline\n .then(() => {\n if (shouldPause()) {\n return pause();\n }\n\n return;\n }).then(() => {\n if (isRetryCancelled) {\n reject(error);\n } else {\n run();\n }\n });\n });\n }; // Start loop\n\n\n if (canFetch(config.networkMode)) {\n run();\n } else {\n pause().then(run);\n }\n\n return {\n promise,\n cancel,\n continue: () => {\n const didContinue = continueFn == null ? void 0 : continueFn();\n return didContinue ? promise : Promise.resolve();\n },\n cancelRetry,\n continueRetry\n };\n}\n\nexport { CancelledError, canFetch, createRetryer, isCancelledError };\n//# sourceMappingURL=retryer.mjs.map\n","import { isValidTimeout, isServer } from './utils.mjs';\n\nclass Removable {\n destroy() {\n this.clearGcTimeout();\n }\n\n scheduleGc() {\n this.clearGcTimeout();\n\n if (isValidTimeout(this.cacheTime)) {\n this.gcTimeout = setTimeout(() => {\n this.optionalRemove();\n }, this.cacheTime);\n }\n }\n\n updateCacheTime(newCacheTime) {\n // Default to 5 minutes (Infinity for server-side) if no cache time is set\n this.cacheTime = Math.max(this.cacheTime || 0, newCacheTime != null ? newCacheTime : isServer ? Infinity : 5 * 60 * 1000);\n }\n\n clearGcTimeout() {\n if (this.gcTimeout) {\n clearTimeout(this.gcTimeout);\n this.gcTimeout = undefined;\n }\n }\n\n}\n\nexport { Removable };\n//# sourceMappingURL=removable.mjs.map\n","import { replaceData, noop, timeUntilStale, getAbortController } from './utils.mjs';\nimport { defaultLogger } from './logger.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { createRetryer, isCancelledError, canFetch } from './retryer.mjs';\nimport { Removable } from './removable.mjs';\n\n// CLASS\nclass Query extends Removable {\n constructor(config) {\n super();\n this.abortSignalConsumed = false;\n this.defaultOptions = config.defaultOptions;\n this.setOptions(config.options);\n this.observers = [];\n this.cache = config.cache;\n this.logger = config.logger || defaultLogger;\n this.queryKey = config.queryKey;\n this.queryHash = config.queryHash;\n this.initialState = config.state || getDefaultState(this.options);\n this.state = this.initialState;\n this.scheduleGc();\n }\n\n get meta() {\n return this.options.meta;\n }\n\n setOptions(options) {\n this.options = { ...this.defaultOptions,\n ...options\n };\n this.updateCacheTime(this.options.cacheTime);\n }\n\n optionalRemove() {\n if (!this.observers.length && this.state.fetchStatus === 'idle') {\n this.cache.remove(this);\n }\n }\n\n setData(newData, options) {\n const data = replaceData(this.state.data, newData, this.options); // Set data and mark it as cached\n\n this.dispatch({\n data,\n type: 'success',\n dataUpdatedAt: options == null ? void 0 : options.updatedAt,\n manual: options == null ? void 0 : options.manual\n });\n return data;\n }\n\n setState(state, setStateOptions) {\n this.dispatch({\n type: 'setState',\n state,\n setStateOptions\n });\n }\n\n cancel(options) {\n var _this$retryer;\n\n const promise = this.promise;\n (_this$retryer = this.retryer) == null ? void 0 : _this$retryer.cancel(options);\n return promise ? promise.then(noop).catch(noop) : Promise.resolve();\n }\n\n destroy() {\n super.destroy();\n this.cancel({\n silent: true\n });\n }\n\n reset() {\n this.destroy();\n this.setState(this.initialState);\n }\n\n isActive() {\n return this.observers.some(observer => observer.options.enabled !== false);\n }\n\n isDisabled() {\n return this.getObserversCount() > 0 && !this.isActive();\n }\n\n isStale() {\n return this.state.isInvalidated || !this.state.dataUpdatedAt || this.observers.some(observer => observer.getCurrentResult().isStale);\n }\n\n isStaleByTime(staleTime = 0) {\n return this.state.isInvalidated || !this.state.dataUpdatedAt || !timeUntilStale(this.state.dataUpdatedAt, staleTime);\n }\n\n onFocus() {\n var _this$retryer2;\n\n const observer = this.observers.find(x => x.shouldFetchOnWindowFocus());\n\n if (observer) {\n observer.refetch({\n cancelRefetch: false\n });\n } // Continue fetch if currently paused\n\n\n (_this$retryer2 = this.retryer) == null ? void 0 : _this$retryer2.continue();\n }\n\n onOnline() {\n var _this$retryer3;\n\n const observer = this.observers.find(x => x.shouldFetchOnReconnect());\n\n if (observer) {\n observer.refetch({\n cancelRefetch: false\n });\n } // Continue fetch if currently paused\n\n\n (_this$retryer3 = this.retryer) == null ? void 0 : _this$retryer3.continue();\n }\n\n addObserver(observer) {\n if (!this.observers.includes(observer)) {\n this.observers.push(observer); // Stop the query from being garbage collected\n\n this.clearGcTimeout();\n this.cache.notify({\n type: 'observerAdded',\n query: this,\n observer\n });\n }\n }\n\n removeObserver(observer) {\n if (this.observers.includes(observer)) {\n this.observers = this.observers.filter(x => x !== observer);\n\n if (!this.observers.length) {\n // If the transport layer does not support cancellation\n // we'll let the query continue so the result can be cached\n if (this.retryer) {\n if (this.abortSignalConsumed) {\n this.retryer.cancel({\n revert: true\n });\n } else {\n this.retryer.cancelRetry();\n }\n }\n\n this.scheduleGc();\n }\n\n this.cache.notify({\n type: 'observerRemoved',\n query: this,\n observer\n });\n }\n }\n\n getObserversCount() {\n return this.observers.length;\n }\n\n invalidate() {\n if (!this.state.isInvalidated) {\n this.dispatch({\n type: 'invalidate'\n });\n }\n }\n\n fetch(options, fetchOptions) {\n var _this$options$behavio, _context$fetchOptions;\n\n if (this.state.fetchStatus !== 'idle') {\n if (this.state.dataUpdatedAt && fetchOptions != null && fetchOptions.cancelRefetch) {\n // Silently cancel current fetch if the user wants to cancel refetches\n this.cancel({\n silent: true\n });\n } else if (this.promise) {\n var _this$retryer4;\n\n // make sure that retries that were potentially cancelled due to unmounts can continue\n (_this$retryer4 = this.retryer) == null ? void 0 : _this$retryer4.continueRetry(); // Return current promise if we are already fetching\n\n return this.promise;\n }\n } // Update config if passed, otherwise the config from the last execution is used\n\n\n if (options) {\n this.setOptions(options);\n } // Use the options from the first observer with a query function if no function is found.\n // This can happen when the query is hydrated or created with setQueryData.\n\n\n if (!this.options.queryFn) {\n const observer = this.observers.find(x => x.options.queryFn);\n\n if (observer) {\n this.setOptions(observer.options);\n }\n }\n\n if (!Array.isArray(this.options.queryKey)) {\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(\"As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']\");\n }\n }\n\n const abortController = getAbortController(); // Create query function context\n\n const queryFnContext = {\n queryKey: this.queryKey,\n pageParam: undefined,\n meta: this.meta\n }; // Adds an enumerable signal property to the object that\n // which sets abortSignalConsumed to true when the signal\n // is read.\n\n const addSignalProperty = object => {\n Object.defineProperty(object, 'signal', {\n enumerable: true,\n get: () => {\n if (abortController) {\n this.abortSignalConsumed = true;\n return abortController.signal;\n }\n\n return undefined;\n }\n });\n };\n\n addSignalProperty(queryFnContext); // Create fetch function\n\n const fetchFn = () => {\n if (!this.options.queryFn) {\n return Promise.reject(\"Missing queryFn for queryKey '\" + this.options.queryHash + \"'\");\n }\n\n this.abortSignalConsumed = false;\n return this.options.queryFn(queryFnContext);\n }; // Trigger behavior hook\n\n\n const context = {\n fetchOptions,\n options: this.options,\n queryKey: this.queryKey,\n state: this.state,\n fetchFn\n };\n addSignalProperty(context);\n (_this$options$behavio = this.options.behavior) == null ? void 0 : _this$options$behavio.onFetch(context); // Store state in case the current fetch needs to be reverted\n\n this.revertState = this.state; // Set to fetching state if not already in it\n\n if (this.state.fetchStatus === 'idle' || this.state.fetchMeta !== ((_context$fetchOptions = context.fetchOptions) == null ? void 0 : _context$fetchOptions.meta)) {\n var _context$fetchOptions2;\n\n this.dispatch({\n type: 'fetch',\n meta: (_context$fetchOptions2 = context.fetchOptions) == null ? void 0 : _context$fetchOptions2.meta\n });\n }\n\n const onError = error => {\n // Optimistically update state if needed\n if (!(isCancelledError(error) && error.silent)) {\n this.dispatch({\n type: 'error',\n error: error\n });\n }\n\n if (!isCancelledError(error)) {\n var _this$cache$config$on, _this$cache$config, _this$cache$config$on2, _this$cache$config2;\n\n // Notify cache callback\n (_this$cache$config$on = (_this$cache$config = this.cache.config).onError) == null ? void 0 : _this$cache$config$on.call(_this$cache$config, error, this);\n (_this$cache$config$on2 = (_this$cache$config2 = this.cache.config).onSettled) == null ? void 0 : _this$cache$config$on2.call(_this$cache$config2, this.state.data, error, this);\n\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(error);\n }\n }\n\n if (!this.isFetchingOptimistic) {\n // Schedule query gc after fetching\n this.scheduleGc();\n }\n\n this.isFetchingOptimistic = false;\n }; // Try to fetch the data\n\n\n this.retryer = createRetryer({\n fn: context.fetchFn,\n abort: abortController == null ? void 0 : abortController.abort.bind(abortController),\n onSuccess: data => {\n var _this$cache$config$on3, _this$cache$config3, _this$cache$config$on4, _this$cache$config4;\n\n if (typeof data === 'undefined') {\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(\"Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: \" + this.queryHash);\n }\n\n onError(new Error(this.queryHash + \" data is undefined\"));\n return;\n }\n\n this.setData(data); // Notify cache callback\n\n (_this$cache$config$on3 = (_this$cache$config3 = this.cache.config).onSuccess) == null ? void 0 : _this$cache$config$on3.call(_this$cache$config3, data, this);\n (_this$cache$config$on4 = (_this$cache$config4 = this.cache.config).onSettled) == null ? void 0 : _this$cache$config$on4.call(_this$cache$config4, data, this.state.error, this);\n\n if (!this.isFetchingOptimistic) {\n // Schedule query gc after fetching\n this.scheduleGc();\n }\n\n this.isFetchingOptimistic = false;\n },\n onError,\n onFail: (failureCount, error) => {\n this.dispatch({\n type: 'failed',\n failureCount,\n error\n });\n },\n onPause: () => {\n this.dispatch({\n type: 'pause'\n });\n },\n onContinue: () => {\n this.dispatch({\n type: 'continue'\n });\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay,\n networkMode: context.options.networkMode\n });\n this.promise = this.retryer.promise;\n return this.promise;\n }\n\n dispatch(action) {\n const reducer = state => {\n var _action$meta, _action$dataUpdatedAt;\n\n switch (action.type) {\n case 'failed':\n return { ...state,\n fetchFailureCount: action.failureCount,\n fetchFailureReason: action.error\n };\n\n case 'pause':\n return { ...state,\n fetchStatus: 'paused'\n };\n\n case 'continue':\n return { ...state,\n fetchStatus: 'fetching'\n };\n\n case 'fetch':\n return { ...state,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: (_action$meta = action.meta) != null ? _action$meta : null,\n fetchStatus: canFetch(this.options.networkMode) ? 'fetching' : 'paused',\n ...(!state.dataUpdatedAt && {\n error: null,\n status: 'loading'\n })\n };\n\n case 'success':\n return { ...state,\n data: action.data,\n dataUpdateCount: state.dataUpdateCount + 1,\n dataUpdatedAt: (_action$dataUpdatedAt = action.dataUpdatedAt) != null ? _action$dataUpdatedAt : Date.now(),\n error: null,\n isInvalidated: false,\n status: 'success',\n ...(!action.manual && {\n fetchStatus: 'idle',\n fetchFailureCount: 0,\n fetchFailureReason: null\n })\n };\n\n case 'error':\n const error = action.error;\n\n if (isCancelledError(error) && error.revert && this.revertState) {\n return { ...this.revertState\n };\n }\n\n return { ...state,\n error: error,\n errorUpdateCount: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n fetchFailureReason: error,\n fetchStatus: 'idle',\n status: 'error'\n };\n\n case 'invalidate':\n return { ...state,\n isInvalidated: true\n };\n\n case 'setState':\n return { ...state,\n ...action.state\n };\n }\n };\n\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.observers.forEach(observer => {\n observer.onQueryUpdate(action);\n });\n this.cache.notify({\n query: this,\n type: 'updated',\n action\n });\n });\n }\n\n}\n\nfunction getDefaultState(options) {\n const data = typeof options.initialData === 'function' ? options.initialData() : options.initialData;\n const hasData = typeof data !== 'undefined';\n const initialDataUpdatedAt = hasData ? typeof options.initialDataUpdatedAt === 'function' ? options.initialDataUpdatedAt() : options.initialDataUpdatedAt : 0;\n return {\n data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? initialDataUpdatedAt != null ? initialDataUpdatedAt : Date.now() : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: hasData ? 'success' : 'loading',\n fetchStatus: 'idle'\n };\n}\n\nexport { Query };\n//# sourceMappingURL=query.mjs.map\n","import { hashQueryKeyByOptions, parseFilterArgs, matchQuery } from './utils.mjs';\nimport { Query } from './query.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { Subscribable } from './subscribable.mjs';\n\n// CLASS\nclass QueryCache extends Subscribable {\n constructor(config) {\n super();\n this.config = config || {};\n this.queries = [];\n this.queriesMap = {};\n }\n\n build(client, options, state) {\n var _options$queryHash;\n\n const queryKey = options.queryKey;\n const queryHash = (_options$queryHash = options.queryHash) != null ? _options$queryHash : hashQueryKeyByOptions(queryKey, options);\n let query = this.get(queryHash);\n\n if (!query) {\n query = new Query({\n cache: this,\n logger: client.getLogger(),\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey)\n });\n this.add(query);\n }\n\n return query;\n }\n\n add(query) {\n if (!this.queriesMap[query.queryHash]) {\n this.queriesMap[query.queryHash] = query;\n this.queries.push(query);\n this.notify({\n type: 'added',\n query\n });\n }\n }\n\n remove(query) {\n const queryInMap = this.queriesMap[query.queryHash];\n\n if (queryInMap) {\n query.destroy();\n this.queries = this.queries.filter(x => x !== query);\n\n if (queryInMap === query) {\n delete this.queriesMap[query.queryHash];\n }\n\n this.notify({\n type: 'removed',\n query\n });\n }\n }\n\n clear() {\n notifyManager.batch(() => {\n this.queries.forEach(query => {\n this.remove(query);\n });\n });\n }\n\n get(queryHash) {\n return this.queriesMap[queryHash];\n }\n\n getAll() {\n return this.queries;\n }\n\n find(arg1, arg2) {\n const [filters] = parseFilterArgs(arg1, arg2);\n\n if (typeof filters.exact === 'undefined') {\n filters.exact = true;\n }\n\n return this.queries.find(query => matchQuery(filters, query));\n }\n\n findAll(arg1, arg2) {\n const [filters] = parseFilterArgs(arg1, arg2);\n return Object.keys(filters).length > 0 ? this.queries.filter(query => matchQuery(filters, query)) : this.queries;\n }\n\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach(({\n listener\n }) => {\n listener(event);\n });\n });\n }\n\n onFocus() {\n notifyManager.batch(() => {\n this.queries.forEach(query => {\n query.onFocus();\n });\n });\n }\n\n onOnline() {\n notifyManager.batch(() => {\n this.queries.forEach(query => {\n query.onOnline();\n });\n });\n }\n\n}\n\nexport { QueryCache };\n//# sourceMappingURL=queryCache.mjs.map\n","import { defaultLogger } from './logger.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { Removable } from './removable.mjs';\nimport { createRetryer, canFetch } from './retryer.mjs';\n\n// CLASS\nclass Mutation extends Removable {\n constructor(config) {\n super();\n this.defaultOptions = config.defaultOptions;\n this.mutationId = config.mutationId;\n this.mutationCache = config.mutationCache;\n this.logger = config.logger || defaultLogger;\n this.observers = [];\n this.state = config.state || getDefaultState();\n this.setOptions(config.options);\n this.scheduleGc();\n }\n\n setOptions(options) {\n this.options = { ...this.defaultOptions,\n ...options\n };\n this.updateCacheTime(this.options.cacheTime);\n }\n\n get meta() {\n return this.options.meta;\n }\n\n setState(state) {\n this.dispatch({\n type: 'setState',\n state\n });\n }\n\n addObserver(observer) {\n if (!this.observers.includes(observer)) {\n this.observers.push(observer); // Stop the mutation from being garbage collected\n\n this.clearGcTimeout();\n this.mutationCache.notify({\n type: 'observerAdded',\n mutation: this,\n observer\n });\n }\n }\n\n removeObserver(observer) {\n this.observers = this.observers.filter(x => x !== observer);\n this.scheduleGc();\n this.mutationCache.notify({\n type: 'observerRemoved',\n mutation: this,\n observer\n });\n }\n\n optionalRemove() {\n if (!this.observers.length) {\n if (this.state.status === 'loading') {\n this.scheduleGc();\n } else {\n this.mutationCache.remove(this);\n }\n }\n }\n\n continue() {\n var _this$retryer$continu, _this$retryer;\n\n return (_this$retryer$continu = (_this$retryer = this.retryer) == null ? void 0 : _this$retryer.continue()) != null ? _this$retryer$continu : this.execute();\n }\n\n async execute() {\n const executeMutation = () => {\n var _this$options$retry;\n\n this.retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject('No mutationFn found');\n }\n\n return this.options.mutationFn(this.state.variables);\n },\n onFail: (failureCount, error) => {\n this.dispatch({\n type: 'failed',\n failureCount,\n error\n });\n },\n onPause: () => {\n this.dispatch({\n type: 'pause'\n });\n },\n onContinue: () => {\n this.dispatch({\n type: 'continue'\n });\n },\n retry: (_this$options$retry = this.options.retry) != null ? _this$options$retry : 0,\n retryDelay: this.options.retryDelay,\n networkMode: this.options.networkMode\n });\n return this.retryer.promise;\n };\n\n const restored = this.state.status === 'loading';\n\n try {\n var _this$mutationCache$c3, _this$mutationCache$c4, _this$options$onSucce, _this$options2, _this$mutationCache$c5, _this$mutationCache$c6, _this$options$onSettl, _this$options3;\n\n if (!restored) {\n var _this$mutationCache$c, _this$mutationCache$c2, _this$options$onMutat, _this$options;\n\n this.dispatch({\n type: 'loading',\n variables: this.options.variables\n }); // Notify cache callback\n\n await ((_this$mutationCache$c = (_this$mutationCache$c2 = this.mutationCache.config).onMutate) == null ? void 0 : _this$mutationCache$c.call(_this$mutationCache$c2, this.state.variables, this));\n const context = await ((_this$options$onMutat = (_this$options = this.options).onMutate) == null ? void 0 : _this$options$onMutat.call(_this$options, this.state.variables));\n\n if (context !== this.state.context) {\n this.dispatch({\n type: 'loading',\n context,\n variables: this.state.variables\n });\n }\n }\n\n const data = await executeMutation(); // Notify cache callback\n\n await ((_this$mutationCache$c3 = (_this$mutationCache$c4 = this.mutationCache.config).onSuccess) == null ? void 0 : _this$mutationCache$c3.call(_this$mutationCache$c4, data, this.state.variables, this.state.context, this));\n await ((_this$options$onSucce = (_this$options2 = this.options).onSuccess) == null ? void 0 : _this$options$onSucce.call(_this$options2, data, this.state.variables, this.state.context)); // Notify cache callback\n\n await ((_this$mutationCache$c5 = (_this$mutationCache$c6 = this.mutationCache.config).onSettled) == null ? void 0 : _this$mutationCache$c5.call(_this$mutationCache$c6, data, null, this.state.variables, this.state.context, this));\n await ((_this$options$onSettl = (_this$options3 = this.options).onSettled) == null ? void 0 : _this$options$onSettl.call(_this$options3, data, null, this.state.variables, this.state.context));\n this.dispatch({\n type: 'success',\n data\n });\n return data;\n } catch (error) {\n try {\n var _this$mutationCache$c7, _this$mutationCache$c8, _this$options$onError, _this$options4, _this$mutationCache$c9, _this$mutationCache$c10, _this$options$onSettl2, _this$options5;\n\n // Notify cache callback\n await ((_this$mutationCache$c7 = (_this$mutationCache$c8 = this.mutationCache.config).onError) == null ? void 0 : _this$mutationCache$c7.call(_this$mutationCache$c8, error, this.state.variables, this.state.context, this));\n\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(error);\n }\n\n await ((_this$options$onError = (_this$options4 = this.options).onError) == null ? void 0 : _this$options$onError.call(_this$options4, error, this.state.variables, this.state.context)); // Notify cache callback\n\n await ((_this$mutationCache$c9 = (_this$mutationCache$c10 = this.mutationCache.config).onSettled) == null ? void 0 : _this$mutationCache$c9.call(_this$mutationCache$c10, undefined, error, this.state.variables, this.state.context, this));\n await ((_this$options$onSettl2 = (_this$options5 = this.options).onSettled) == null ? void 0 : _this$options$onSettl2.call(_this$options5, undefined, error, this.state.variables, this.state.context));\n throw error;\n } finally {\n this.dispatch({\n type: 'error',\n error: error\n });\n }\n }\n }\n\n dispatch(action) {\n const reducer = state => {\n switch (action.type) {\n case 'failed':\n return { ...state,\n failureCount: action.failureCount,\n failureReason: action.error\n };\n\n case 'pause':\n return { ...state,\n isPaused: true\n };\n\n case 'continue':\n return { ...state,\n isPaused: false\n };\n\n case 'loading':\n return { ...state,\n context: action.context,\n data: undefined,\n failureCount: 0,\n failureReason: null,\n error: null,\n isPaused: !canFetch(this.options.networkMode),\n status: 'loading',\n variables: action.variables\n };\n\n case 'success':\n return { ...state,\n data: action.data,\n failureCount: 0,\n failureReason: null,\n error: null,\n status: 'success',\n isPaused: false\n };\n\n case 'error':\n return { ...state,\n data: undefined,\n error: action.error,\n failureCount: state.failureCount + 1,\n failureReason: action.error,\n isPaused: false,\n status: 'error'\n };\n\n case 'setState':\n return { ...state,\n ...action.state\n };\n }\n };\n\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.observers.forEach(observer => {\n observer.onMutationUpdate(action);\n });\n this.mutationCache.notify({\n mutation: this,\n type: 'updated',\n action\n });\n });\n }\n\n}\nfunction getDefaultState() {\n return {\n context: undefined,\n data: undefined,\n error: null,\n failureCount: 0,\n failureReason: null,\n isPaused: false,\n status: 'idle',\n variables: undefined\n };\n}\n\nexport { Mutation, getDefaultState };\n//# sourceMappingURL=mutation.mjs.map\n","import { notifyManager } from './notifyManager.mjs';\nimport { Mutation } from './mutation.mjs';\nimport { matchMutation, noop } from './utils.mjs';\nimport { Subscribable } from './subscribable.mjs';\n\n// CLASS\nclass MutationCache extends Subscribable {\n constructor(config) {\n super();\n this.config = config || {};\n this.mutations = [];\n this.mutationId = 0;\n }\n\n build(client, options, state) {\n const mutation = new Mutation({\n mutationCache: this,\n logger: client.getLogger(),\n mutationId: ++this.mutationId,\n options: client.defaultMutationOptions(options),\n state,\n defaultOptions: options.mutationKey ? client.getMutationDefaults(options.mutationKey) : undefined\n });\n this.add(mutation);\n return mutation;\n }\n\n add(mutation) {\n this.mutations.push(mutation);\n this.notify({\n type: 'added',\n mutation\n });\n }\n\n remove(mutation) {\n this.mutations = this.mutations.filter(x => x !== mutation);\n this.notify({\n type: 'removed',\n mutation\n });\n }\n\n clear() {\n notifyManager.batch(() => {\n this.mutations.forEach(mutation => {\n this.remove(mutation);\n });\n });\n }\n\n getAll() {\n return this.mutations;\n }\n\n find(filters) {\n if (typeof filters.exact === 'undefined') {\n filters.exact = true;\n }\n\n return this.mutations.find(mutation => matchMutation(filters, mutation));\n }\n\n findAll(filters) {\n return this.mutations.filter(mutation => matchMutation(filters, mutation));\n }\n\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach(({\n listener\n }) => {\n listener(event);\n });\n });\n }\n\n resumePausedMutations() {\n var _this$resuming;\n\n this.resuming = ((_this$resuming = this.resuming) != null ? _this$resuming : Promise.resolve()).then(() => {\n const pausedMutations = this.mutations.filter(x => x.state.isPaused);\n return notifyManager.batch(() => pausedMutations.reduce((promise, mutation) => promise.then(() => mutation.continue().catch(noop)), Promise.resolve()));\n }).then(() => {\n this.resuming = undefined;\n });\n return this.resuming;\n }\n\n}\n\nexport { MutationCache };\n//# sourceMappingURL=mutationCache.mjs.map\n","function infiniteQueryBehavior() {\n return {\n onFetch: context => {\n context.fetchFn = () => {\n var _context$fetchOptions, _context$fetchOptions2, _context$fetchOptions3, _context$fetchOptions4, _context$state$data, _context$state$data2;\n\n const refetchPage = (_context$fetchOptions = context.fetchOptions) == null ? void 0 : (_context$fetchOptions2 = _context$fetchOptions.meta) == null ? void 0 : _context$fetchOptions2.refetchPage;\n const fetchMore = (_context$fetchOptions3 = context.fetchOptions) == null ? void 0 : (_context$fetchOptions4 = _context$fetchOptions3.meta) == null ? void 0 : _context$fetchOptions4.fetchMore;\n const pageParam = fetchMore == null ? void 0 : fetchMore.pageParam;\n const isFetchingNextPage = (fetchMore == null ? void 0 : fetchMore.direction) === 'forward';\n const isFetchingPreviousPage = (fetchMore == null ? void 0 : fetchMore.direction) === 'backward';\n const oldPages = ((_context$state$data = context.state.data) == null ? void 0 : _context$state$data.pages) || [];\n const oldPageParams = ((_context$state$data2 = context.state.data) == null ? void 0 : _context$state$data2.pageParams) || [];\n let newPageParams = oldPageParams;\n let cancelled = false;\n\n const addSignalProperty = object => {\n Object.defineProperty(object, 'signal', {\n enumerable: true,\n get: () => {\n var _context$signal;\n\n if ((_context$signal = context.signal) != null && _context$signal.aborted) {\n cancelled = true;\n } else {\n var _context$signal2;\n\n (_context$signal2 = context.signal) == null ? void 0 : _context$signal2.addEventListener('abort', () => {\n cancelled = true;\n });\n }\n\n return context.signal;\n }\n });\n }; // Get query function\n\n\n const queryFn = context.options.queryFn || (() => Promise.reject(\"Missing queryFn for queryKey '\" + context.options.queryHash + \"'\"));\n\n const buildNewPages = (pages, param, page, previous) => {\n newPageParams = previous ? [param, ...newPageParams] : [...newPageParams, param];\n return previous ? [page, ...pages] : [...pages, page];\n }; // Create function to fetch a page\n\n\n const fetchPage = (pages, manual, param, previous) => {\n if (cancelled) {\n return Promise.reject('Cancelled');\n }\n\n if (typeof param === 'undefined' && !manual && pages.length) {\n return Promise.resolve(pages);\n }\n\n const queryFnContext = {\n queryKey: context.queryKey,\n pageParam: param,\n meta: context.options.meta\n };\n addSignalProperty(queryFnContext);\n const queryFnResult = queryFn(queryFnContext);\n const promise = Promise.resolve(queryFnResult).then(page => buildNewPages(pages, param, page, previous));\n return promise;\n };\n\n let promise; // Fetch first page?\n\n if (!oldPages.length) {\n promise = fetchPage([]);\n } // Fetch next page?\n else if (isFetchingNextPage) {\n const manual = typeof pageParam !== 'undefined';\n const param = manual ? pageParam : getNextPageParam(context.options, oldPages);\n promise = fetchPage(oldPages, manual, param);\n } // Fetch previous page?\n else if (isFetchingPreviousPage) {\n const manual = typeof pageParam !== 'undefined';\n const param = manual ? pageParam : getPreviousPageParam(context.options, oldPages);\n promise = fetchPage(oldPages, manual, param, true);\n } // Refetch pages\n else {\n newPageParams = [];\n const manual = typeof context.options.getNextPageParam === 'undefined';\n const shouldFetchFirstPage = refetchPage && oldPages[0] ? refetchPage(oldPages[0], 0, oldPages) : true; // Fetch first page\n\n promise = shouldFetchFirstPage ? fetchPage([], manual, oldPageParams[0]) : Promise.resolve(buildNewPages([], oldPageParams[0], oldPages[0])); // Fetch remaining pages\n\n for (let i = 1; i < oldPages.length; i++) {\n promise = promise.then(pages => {\n const shouldFetchNextPage = refetchPage && oldPages[i] ? refetchPage(oldPages[i], i, oldPages) : true;\n\n if (shouldFetchNextPage) {\n const param = manual ? oldPageParams[i] : getNextPageParam(context.options, pages);\n return fetchPage(pages, manual, param);\n }\n\n return Promise.resolve(buildNewPages(pages, oldPageParams[i], oldPages[i]));\n });\n }\n }\n\n const finalPromise = promise.then(pages => ({\n pages,\n pageParams: newPageParams\n }));\n return finalPromise;\n };\n }\n };\n}\nfunction getNextPageParam(options, pages) {\n return options.getNextPageParam == null ? void 0 : options.getNextPageParam(pages[pages.length - 1], pages);\n}\nfunction getPreviousPageParam(options, pages) {\n return options.getPreviousPageParam == null ? void 0 : options.getPreviousPageParam(pages[0], pages);\n}\n/**\n * Checks if there is a next page.\n * Returns `undefined` if it cannot be determined.\n */\n\nfunction hasNextPage(options, pages) {\n if (options.getNextPageParam && Array.isArray(pages)) {\n const nextPageParam = getNextPageParam(options, pages);\n return typeof nextPageParam !== 'undefined' && nextPageParam !== null && nextPageParam !== false;\n }\n\n return;\n}\n/**\n * Checks if there is a previous page.\n * Returns `undefined` if it cannot be determined.\n */\n\nfunction hasPreviousPage(options, pages) {\n if (options.getPreviousPageParam && Array.isArray(pages)) {\n const previousPageParam = getPreviousPageParam(options, pages);\n return typeof previousPageParam !== 'undefined' && previousPageParam !== null && previousPageParam !== false;\n }\n\n return;\n}\n\nexport { getNextPageParam, getPreviousPageParam, hasNextPage, hasPreviousPage, infiniteQueryBehavior };\n//# sourceMappingURL=infiniteQueryBehavior.mjs.map\n","import { parseFilterArgs, parseQueryArgs, functionalUpdate, noop, hashQueryKey, partialMatchKey, hashQueryKeyByOptions } from './utils.mjs';\nimport { QueryCache } from './queryCache.mjs';\nimport { MutationCache } from './mutationCache.mjs';\nimport { focusManager } from './focusManager.mjs';\nimport { onlineManager } from './onlineManager.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { infiniteQueryBehavior } from './infiniteQueryBehavior.mjs';\nimport { defaultLogger } from './logger.mjs';\n\n// CLASS\nclass QueryClient {\n constructor(config = {}) {\n this.queryCache = config.queryCache || new QueryCache();\n this.mutationCache = config.mutationCache || new MutationCache();\n this.logger = config.logger || defaultLogger;\n this.defaultOptions = config.defaultOptions || {};\n this.queryDefaults = [];\n this.mutationDefaults = [];\n this.mountCount = 0;\n\n if (process.env.NODE_ENV !== 'production' && config.logger) {\n this.logger.error(\"Passing a custom logger has been deprecated and will be removed in the next major version.\");\n }\n }\n\n mount() {\n this.mountCount++;\n if (this.mountCount !== 1) return;\n this.unsubscribeFocus = focusManager.subscribe(() => {\n if (focusManager.isFocused()) {\n this.resumePausedMutations();\n this.queryCache.onFocus();\n }\n });\n this.unsubscribeOnline = onlineManager.subscribe(() => {\n if (onlineManager.isOnline()) {\n this.resumePausedMutations();\n this.queryCache.onOnline();\n }\n });\n }\n\n unmount() {\n var _this$unsubscribeFocu, _this$unsubscribeOnli;\n\n this.mountCount--;\n if (this.mountCount !== 0) return;\n (_this$unsubscribeFocu = this.unsubscribeFocus) == null ? void 0 : _this$unsubscribeFocu.call(this);\n this.unsubscribeFocus = undefined;\n (_this$unsubscribeOnli = this.unsubscribeOnline) == null ? void 0 : _this$unsubscribeOnli.call(this);\n this.unsubscribeOnline = undefined;\n }\n\n isFetching(arg1, arg2) {\n const [filters] = parseFilterArgs(arg1, arg2);\n filters.fetchStatus = 'fetching';\n return this.queryCache.findAll(filters).length;\n }\n\n isMutating(filters) {\n return this.mutationCache.findAll({ ...filters,\n fetching: true\n }).length;\n }\n\n getQueryData(queryKey, filters) {\n var _this$queryCache$find;\n\n return (_this$queryCache$find = this.queryCache.find(queryKey, filters)) == null ? void 0 : _this$queryCache$find.state.data;\n }\n\n ensureQueryData(arg1, arg2, arg3) {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n const cachedData = this.getQueryData(parsedOptions.queryKey);\n return cachedData ? Promise.resolve(cachedData) : this.fetchQuery(parsedOptions);\n }\n\n getQueriesData(queryKeyOrFilters) {\n return this.getQueryCache().findAll(queryKeyOrFilters).map(({\n queryKey,\n state\n }) => {\n const data = state.data;\n return [queryKey, data];\n });\n }\n\n setQueryData(queryKey, updater, options) {\n const query = this.queryCache.find(queryKey);\n const prevData = query == null ? void 0 : query.state.data;\n const data = functionalUpdate(updater, prevData);\n\n if (typeof data === 'undefined') {\n return undefined;\n }\n\n const parsedOptions = parseQueryArgs(queryKey);\n const defaultedOptions = this.defaultQueryOptions(parsedOptions);\n return this.queryCache.build(this, defaultedOptions).setData(data, { ...options,\n manual: true\n });\n }\n\n setQueriesData(queryKeyOrFilters, updater, options) {\n return notifyManager.batch(() => this.getQueryCache().findAll(queryKeyOrFilters).map(({\n queryKey\n }) => [queryKey, this.setQueryData(queryKey, updater, options)]));\n }\n\n getQueryState(queryKey, filters) {\n var _this$queryCache$find2;\n\n return (_this$queryCache$find2 = this.queryCache.find(queryKey, filters)) == null ? void 0 : _this$queryCache$find2.state;\n }\n\n removeQueries(arg1, arg2) {\n const [filters] = parseFilterArgs(arg1, arg2);\n const queryCache = this.queryCache;\n notifyManager.batch(() => {\n queryCache.findAll(filters).forEach(query => {\n queryCache.remove(query);\n });\n });\n }\n\n resetQueries(arg1, arg2, arg3) {\n const [filters, options] = parseFilterArgs(arg1, arg2, arg3);\n const queryCache = this.queryCache;\n const refetchFilters = {\n type: 'active',\n ...filters\n };\n return notifyManager.batch(() => {\n queryCache.findAll(filters).forEach(query => {\n query.reset();\n });\n return this.refetchQueries(refetchFilters, options);\n });\n }\n\n cancelQueries(arg1, arg2, arg3) {\n const [filters, cancelOptions = {}] = parseFilterArgs(arg1, arg2, arg3);\n\n if (typeof cancelOptions.revert === 'undefined') {\n cancelOptions.revert = true;\n }\n\n const promises = notifyManager.batch(() => this.queryCache.findAll(filters).map(query => query.cancel(cancelOptions)));\n return Promise.all(promises).then(noop).catch(noop);\n }\n\n invalidateQueries(arg1, arg2, arg3) {\n const [filters, options] = parseFilterArgs(arg1, arg2, arg3);\n return notifyManager.batch(() => {\n var _ref, _filters$refetchType;\n\n this.queryCache.findAll(filters).forEach(query => {\n query.invalidate();\n });\n\n if (filters.refetchType === 'none') {\n return Promise.resolve();\n }\n\n const refetchFilters = { ...filters,\n type: (_ref = (_filters$refetchType = filters.refetchType) != null ? _filters$refetchType : filters.type) != null ? _ref : 'active'\n };\n return this.refetchQueries(refetchFilters, options);\n });\n }\n\n refetchQueries(arg1, arg2, arg3) {\n const [filters, options] = parseFilterArgs(arg1, arg2, arg3);\n const promises = notifyManager.batch(() => this.queryCache.findAll(filters).filter(query => !query.isDisabled()).map(query => {\n var _options$cancelRefetc;\n\n return query.fetch(undefined, { ...options,\n cancelRefetch: (_options$cancelRefetc = options == null ? void 0 : options.cancelRefetch) != null ? _options$cancelRefetc : true,\n meta: {\n refetchPage: filters.refetchPage\n }\n });\n }));\n let promise = Promise.all(promises).then(noop);\n\n if (!(options != null && options.throwOnError)) {\n promise = promise.catch(noop);\n }\n\n return promise;\n }\n\n fetchQuery(arg1, arg2, arg3) {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n const defaultedOptions = this.defaultQueryOptions(parsedOptions); // https://github.com/tannerlinsley/react-query/issues/652\n\n if (typeof defaultedOptions.retry === 'undefined') {\n defaultedOptions.retry = false;\n }\n\n const query = this.queryCache.build(this, defaultedOptions);\n return query.isStaleByTime(defaultedOptions.staleTime) ? query.fetch(defaultedOptions) : Promise.resolve(query.state.data);\n }\n\n prefetchQuery(arg1, arg2, arg3) {\n return this.fetchQuery(arg1, arg2, arg3).then(noop).catch(noop);\n }\n\n fetchInfiniteQuery(arg1, arg2, arg3) {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n parsedOptions.behavior = infiniteQueryBehavior();\n return this.fetchQuery(parsedOptions);\n }\n\n prefetchInfiniteQuery(arg1, arg2, arg3) {\n return this.fetchInfiniteQuery(arg1, arg2, arg3).then(noop).catch(noop);\n }\n\n resumePausedMutations() {\n return this.mutationCache.resumePausedMutations();\n }\n\n getQueryCache() {\n return this.queryCache;\n }\n\n getMutationCache() {\n return this.mutationCache;\n }\n\n getLogger() {\n return this.logger;\n }\n\n getDefaultOptions() {\n return this.defaultOptions;\n }\n\n setDefaultOptions(options) {\n this.defaultOptions = options;\n }\n\n setQueryDefaults(queryKey, options) {\n const result = this.queryDefaults.find(x => hashQueryKey(queryKey) === hashQueryKey(x.queryKey));\n\n if (result) {\n result.defaultOptions = options;\n } else {\n this.queryDefaults.push({\n queryKey,\n defaultOptions: options\n });\n }\n }\n\n getQueryDefaults(queryKey) {\n if (!queryKey) {\n return undefined;\n } // Get the first matching defaults\n\n\n const firstMatchingDefaults = this.queryDefaults.find(x => partialMatchKey(queryKey, x.queryKey)); // Additional checks and error in dev mode\n\n if (process.env.NODE_ENV !== 'production') {\n // Retrieve all matching defaults for the given key\n const matchingDefaults = this.queryDefaults.filter(x => partialMatchKey(queryKey, x.queryKey)); // It is ok not having defaults, but it is error prone to have more than 1 default for a given key\n\n if (matchingDefaults.length > 1) {\n this.logger.error(\"[QueryClient] Several query defaults match with key '\" + JSON.stringify(queryKey) + \"'. The first matching query defaults are used. Please check how query defaults are registered. Order does matter here. cf. https://react-query.tanstack.com/reference/QueryClient#queryclientsetquerydefaults.\");\n }\n }\n\n return firstMatchingDefaults == null ? void 0 : firstMatchingDefaults.defaultOptions;\n }\n\n setMutationDefaults(mutationKey, options) {\n const result = this.mutationDefaults.find(x => hashQueryKey(mutationKey) === hashQueryKey(x.mutationKey));\n\n if (result) {\n result.defaultOptions = options;\n } else {\n this.mutationDefaults.push({\n mutationKey,\n defaultOptions: options\n });\n }\n }\n\n getMutationDefaults(mutationKey) {\n if (!mutationKey) {\n return undefined;\n } // Get the first matching defaults\n\n\n const firstMatchingDefaults = this.mutationDefaults.find(x => partialMatchKey(mutationKey, x.mutationKey)); // Additional checks and error in dev mode\n\n if (process.env.NODE_ENV !== 'production') {\n // Retrieve all matching defaults for the given key\n const matchingDefaults = this.mutationDefaults.filter(x => partialMatchKey(mutationKey, x.mutationKey)); // It is ok not having defaults, but it is error prone to have more than 1 default for a given key\n\n if (matchingDefaults.length > 1) {\n this.logger.error(\"[QueryClient] Several mutation defaults match with key '\" + JSON.stringify(mutationKey) + \"'. The first matching mutation defaults are used. Please check how mutation defaults are registered. Order does matter here. cf. https://react-query.tanstack.com/reference/QueryClient#queryclientsetmutationdefaults.\");\n }\n }\n\n return firstMatchingDefaults == null ? void 0 : firstMatchingDefaults.defaultOptions;\n }\n\n defaultQueryOptions(options) {\n if (options != null && options._defaulted) {\n return options;\n }\n\n const defaultedOptions = { ...this.defaultOptions.queries,\n ...this.getQueryDefaults(options == null ? void 0 : options.queryKey),\n ...options,\n _defaulted: true\n };\n\n if (!defaultedOptions.queryHash && defaultedOptions.queryKey) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(defaultedOptions.queryKey, defaultedOptions);\n } // dependent default values\n\n\n if (typeof defaultedOptions.refetchOnReconnect === 'undefined') {\n defaultedOptions.refetchOnReconnect = defaultedOptions.networkMode !== 'always';\n }\n\n if (typeof defaultedOptions.useErrorBoundary === 'undefined') {\n defaultedOptions.useErrorBoundary = !!defaultedOptions.suspense;\n }\n\n return defaultedOptions;\n }\n\n defaultMutationOptions(options) {\n if (options != null && options._defaulted) {\n return options;\n }\n\n return { ...this.defaultOptions.mutations,\n ...this.getMutationDefaults(options == null ? void 0 : options.mutationKey),\n ...options,\n _defaulted: true\n };\n }\n\n clear() {\n this.queryCache.clear();\n this.mutationCache.clear();\n }\n\n}\n\nexport { QueryClient };\n//# sourceMappingURL=queryClient.mjs.map\n","// TYPES\n// FUNCTIONS\nfunction dehydrateMutation(mutation) {\n return {\n mutationKey: mutation.options.mutationKey,\n state: mutation.state\n };\n} // Most config is not dehydrated but instead meant to configure again when\n// consuming the de/rehydrated data, typically with useQuery on the client.\n// Sometimes it might make sense to prefetch data on the server and include\n// in the html-payload, but not consume it on the initial render.\n\n\nfunction dehydrateQuery(query) {\n return {\n state: query.state,\n queryKey: query.queryKey,\n queryHash: query.queryHash\n };\n}\n\nfunction defaultShouldDehydrateMutation(mutation) {\n return mutation.state.isPaused;\n}\nfunction defaultShouldDehydrateQuery(query) {\n return query.state.status === 'success';\n}\nfunction dehydrate(client, options = {}) {\n const mutations = [];\n const queries = [];\n\n if (options.dehydrateMutations !== false) {\n const shouldDehydrateMutation = options.shouldDehydrateMutation || defaultShouldDehydrateMutation;\n client.getMutationCache().getAll().forEach(mutation => {\n if (shouldDehydrateMutation(mutation)) {\n mutations.push(dehydrateMutation(mutation));\n }\n });\n }\n\n if (options.dehydrateQueries !== false) {\n const shouldDehydrateQuery = options.shouldDehydrateQuery || defaultShouldDehydrateQuery;\n client.getQueryCache().getAll().forEach(query => {\n if (shouldDehydrateQuery(query)) {\n queries.push(dehydrateQuery(query));\n }\n });\n }\n\n return {\n mutations,\n queries\n };\n}\nfunction hydrate(client, dehydratedState, options) {\n if (typeof dehydratedState !== 'object' || dehydratedState === null) {\n return;\n }\n\n const mutationCache = client.getMutationCache();\n const queryCache = client.getQueryCache(); // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n\n const mutations = dehydratedState.mutations || []; // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n\n const queries = dehydratedState.queries || [];\n mutations.forEach(dehydratedMutation => {\n var _options$defaultOptio;\n\n mutationCache.build(client, { ...(options == null ? void 0 : (_options$defaultOptio = options.defaultOptions) == null ? void 0 : _options$defaultOptio.mutations),\n mutationKey: dehydratedMutation.mutationKey\n }, dehydratedMutation.state);\n });\n queries.forEach(dehydratedQuery => {\n var _options$defaultOptio2;\n\n const query = queryCache.get(dehydratedQuery.queryHash); // Reset fetch status to idle in the dehydrated state to avoid\n // query being stuck in fetching state upon hydration\n\n const dehydratedQueryState = { ...dehydratedQuery.state,\n fetchStatus: 'idle'\n }; // Do not hydrate if an existing query exists with newer data\n\n if (query) {\n if (query.state.dataUpdatedAt < dehydratedQueryState.dataUpdatedAt) {\n query.setState(dehydratedQueryState);\n }\n\n return;\n } // Restore query\n\n\n queryCache.build(client, { ...(options == null ? void 0 : (_options$defaultOptio2 = options.defaultOptions) == null ? void 0 : _options$defaultOptio2.queries),\n queryKey: dehydratedQuery.queryKey,\n queryHash: dehydratedQuery.queryHash\n }, dehydratedQueryState);\n });\n}\n\nexport { defaultShouldDehydrateMutation, defaultShouldDehydrateQuery, dehydrate, hydrate };\n//# sourceMappingURL=hydration.mjs.map\n","import { hydrate, dehydrate } from '@tanstack/query-core';\n\n/**\n * Checks if emitted event is about cache change and not about observers.\n * Useful for persist, where we only want to trigger save when cache is changed.\n */\nconst cacheableEventTypes = ['added', 'removed', 'updated'];\n\nfunction isCacheableEventType(eventType) {\n return cacheableEventTypes.includes(eventType);\n}\n/**\n * Restores persisted data to the QueryCache\n * - data obtained from persister.restoreClient\n * - data is hydrated using hydrateOptions\n * If data is expired, busted, empty, or throws, it runs persister.removeClient\n */\n\n\nasync function persistQueryClientRestore({\n queryClient,\n persister,\n maxAge = 1000 * 60 * 60 * 24,\n buster = '',\n hydrateOptions\n}) {\n try {\n const persistedClient = await persister.restoreClient();\n\n if (persistedClient) {\n if (persistedClient.timestamp) {\n const expired = Date.now() - persistedClient.timestamp > maxAge;\n const busted = persistedClient.buster !== buster;\n\n if (expired || busted) {\n persister.removeClient();\n } else {\n hydrate(queryClient, persistedClient.clientState, hydrateOptions);\n }\n } else {\n persister.removeClient();\n }\n }\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n queryClient.getLogger().error(err);\n queryClient.getLogger().warn('Encountered an error attempting to restore client cache from persisted location. As a precaution, the persisted cache will be discarded.');\n }\n\n persister.removeClient();\n }\n}\n/**\n * Persists data from the QueryCache\n * - data dehydrated using dehydrateOptions\n * - data is persisted using persister.persistClient\n */\n\nasync function persistQueryClientSave({\n queryClient,\n persister,\n buster = '',\n dehydrateOptions\n}) {\n const persistClient = {\n buster,\n timestamp: Date.now(),\n clientState: dehydrate(queryClient, dehydrateOptions)\n };\n await persister.persistClient(persistClient);\n}\n/**\n * Subscribe to QueryCache and MutationCache updates (for persisting)\n * @returns an unsubscribe function (to discontinue monitoring)\n */\n\nfunction persistQueryClientSubscribe(props) {\n const unsubscribeQueryCache = props.queryClient.getQueryCache().subscribe(event => {\n if (isCacheableEventType(event.type)) {\n persistQueryClientSave(props);\n }\n });\n const unusbscribeMutationCache = props.queryClient.getMutationCache().subscribe(event => {\n if (isCacheableEventType(event.type)) {\n persistQueryClientSave(props);\n }\n });\n return () => {\n unsubscribeQueryCache();\n unusbscribeMutationCache();\n };\n}\n/**\n * Restores persisted data to QueryCache and persists further changes.\n */\n\nfunction persistQueryClient(props) {\n let hasUnsubscribed = false;\n let persistQueryClientUnsubscribe;\n\n const unsubscribe = () => {\n hasUnsubscribed = true;\n persistQueryClientUnsubscribe == null ? void 0 : persistQueryClientUnsubscribe();\n }; // Attempt restore\n\n\n const restorePromise = persistQueryClientRestore(props).then(() => {\n if (!hasUnsubscribed) {\n // Subscribe to changes in the query cache to trigger the save\n persistQueryClientUnsubscribe = persistQueryClientSubscribe(props);\n }\n });\n return [unsubscribe, restorePromise];\n}\n\nexport { persistQueryClient, persistQueryClientRestore, persistQueryClientSave, persistQueryClientSubscribe };\n//# sourceMappingURL=persist.mjs.map\n","'use client';\nimport * as React from 'react';\n\nconst defaultContext = /*#__PURE__*/React.createContext(undefined);\nconst QueryClientSharingContext = /*#__PURE__*/React.createContext(false); // If we are given a context, we will use it.\n// Otherwise, if contextSharing is on, we share the first and at least one\n// instance of the context across the window\n// to ensure that if React Query is used across\n// different bundles or microfrontends they will\n// all use the same **instance** of context, regardless\n// of module scoping.\n\nfunction getQueryClientContext(context, contextSharing) {\n if (context) {\n return context;\n }\n\n if (contextSharing && typeof window !== 'undefined') {\n if (!window.ReactQueryClientContext) {\n window.ReactQueryClientContext = defaultContext;\n }\n\n return window.ReactQueryClientContext;\n }\n\n return defaultContext;\n}\n\nconst useQueryClient = ({\n context\n} = {}) => {\n const queryClient = React.useContext(getQueryClientContext(context, React.useContext(QueryClientSharingContext)));\n\n if (!queryClient) {\n throw new Error('No QueryClient set, use QueryClientProvider to set one');\n }\n\n return queryClient;\n};\nconst QueryClientProvider = ({\n client,\n children,\n context,\n contextSharing = false\n}) => {\n React.useEffect(() => {\n client.mount();\n return () => {\n client.unmount();\n };\n }, [client]);\n\n if (process.env.NODE_ENV !== 'production' && contextSharing) {\n client.getLogger().error(\"The contextSharing option has been deprecated and will be removed in the next major version\");\n }\n\n const Context = getQueryClientContext(context, contextSharing);\n return /*#__PURE__*/React.createElement(QueryClientSharingContext.Provider, {\n value: !context && contextSharing\n }, /*#__PURE__*/React.createElement(Context.Provider, {\n value: client\n }, children));\n};\n\nexport { QueryClientProvider, defaultContext, useQueryClient };\n//# sourceMappingURL=QueryClientProvider.mjs.map\n","'use client';\nimport * as React from 'react';\n\nconst IsRestoringContext = /*#__PURE__*/React.createContext(false);\nconst useIsRestoring = () => React.useContext(IsRestoringContext);\nconst IsRestoringProvider = IsRestoringContext.Provider;\n\nexport { IsRestoringProvider, useIsRestoring };\n//# sourceMappingURL=isRestoring.mjs.map\n","'use client';\nimport { useSyncExternalStore as useSyncExternalStore$1 } from 'use-sync-external-store/shim/index.js';\n\nconst useSyncExternalStore = useSyncExternalStore$1;\n\nexport { useSyncExternalStore };\n//# sourceMappingURL=useSyncExternalStore.mjs.map\n","import { getDefaultState } from './mutation.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { Subscribable } from './subscribable.mjs';\nimport { shallowEqualObjects } from './utils.mjs';\n\n// CLASS\nclass MutationObserver extends Subscribable {\n constructor(client, options) {\n super();\n this.client = client;\n this.setOptions(options);\n this.bindMethods();\n this.updateResult();\n }\n\n bindMethods() {\n this.mutate = this.mutate.bind(this);\n this.reset = this.reset.bind(this);\n }\n\n setOptions(options) {\n var _this$currentMutation;\n\n const prevOptions = this.options;\n this.options = this.client.defaultMutationOptions(options);\n\n if (!shallowEqualObjects(prevOptions, this.options)) {\n this.client.getMutationCache().notify({\n type: 'observerOptionsUpdated',\n mutation: this.currentMutation,\n observer: this\n });\n }\n\n (_this$currentMutation = this.currentMutation) == null ? void 0 : _this$currentMutation.setOptions(this.options);\n }\n\n onUnsubscribe() {\n if (!this.hasListeners()) {\n var _this$currentMutation2;\n\n (_this$currentMutation2 = this.currentMutation) == null ? void 0 : _this$currentMutation2.removeObserver(this);\n }\n }\n\n onMutationUpdate(action) {\n this.updateResult(); // Determine which callbacks to trigger\n\n const notifyOptions = {\n listeners: true\n };\n\n if (action.type === 'success') {\n notifyOptions.onSuccess = true;\n } else if (action.type === 'error') {\n notifyOptions.onError = true;\n }\n\n this.notify(notifyOptions);\n }\n\n getCurrentResult() {\n return this.currentResult;\n }\n\n reset() {\n this.currentMutation = undefined;\n this.updateResult();\n this.notify({\n listeners: true\n });\n }\n\n mutate(variables, options) {\n this.mutateOptions = options;\n\n if (this.currentMutation) {\n this.currentMutation.removeObserver(this);\n }\n\n this.currentMutation = this.client.getMutationCache().build(this.client, { ...this.options,\n variables: typeof variables !== 'undefined' ? variables : this.options.variables\n });\n this.currentMutation.addObserver(this);\n return this.currentMutation.execute();\n }\n\n updateResult() {\n const state = this.currentMutation ? this.currentMutation.state : getDefaultState();\n const result = { ...state,\n isLoading: state.status === 'loading',\n isSuccess: state.status === 'success',\n isError: state.status === 'error',\n isIdle: state.status === 'idle',\n mutate: this.mutate,\n reset: this.reset\n };\n this.currentResult = result;\n }\n\n notify(options) {\n notifyManager.batch(() => {\n // First trigger the mutate callbacks\n if (this.mutateOptions && this.hasListeners()) {\n if (options.onSuccess) {\n var _this$mutateOptions$o, _this$mutateOptions, _this$mutateOptions$o2, _this$mutateOptions2;\n\n (_this$mutateOptions$o = (_this$mutateOptions = this.mutateOptions).onSuccess) == null ? void 0 : _this$mutateOptions$o.call(_this$mutateOptions, this.currentResult.data, this.currentResult.variables, this.currentResult.context);\n (_this$mutateOptions$o2 = (_this$mutateOptions2 = this.mutateOptions).onSettled) == null ? void 0 : _this$mutateOptions$o2.call(_this$mutateOptions2, this.currentResult.data, null, this.currentResult.variables, this.currentResult.context);\n } else if (options.onError) {\n var _this$mutateOptions$o3, _this$mutateOptions3, _this$mutateOptions$o4, _this$mutateOptions4;\n\n (_this$mutateOptions$o3 = (_this$mutateOptions3 = this.mutateOptions).onError) == null ? void 0 : _this$mutateOptions$o3.call(_this$mutateOptions3, this.currentResult.error, this.currentResult.variables, this.currentResult.context);\n (_this$mutateOptions$o4 = (_this$mutateOptions4 = this.mutateOptions).onSettled) == null ? void 0 : _this$mutateOptions$o4.call(_this$mutateOptions4, undefined, this.currentResult.error, this.currentResult.variables, this.currentResult.context);\n }\n } // Then trigger the listeners\n\n\n if (options.listeners) {\n this.listeners.forEach(({\n listener\n }) => {\n listener(this.currentResult);\n });\n }\n });\n }\n\n}\n\nexport { MutationObserver };\n//# sourceMappingURL=mutationObserver.mjs.map\n","'use client';\nimport * as React from 'react';\nimport { useSyncExternalStore } from './useSyncExternalStore.mjs';\nimport { parseMutationArgs, MutationObserver, notifyManager } from '@tanstack/query-core';\nimport { useQueryClient } from './QueryClientProvider.mjs';\nimport { shouldThrowError } from './utils.mjs';\n\nfunction useMutation(arg1, arg2, arg3) {\n const options = parseMutationArgs(arg1, arg2, arg3);\n const queryClient = useQueryClient({\n context: options.context\n });\n const [observer] = React.useState(() => new MutationObserver(queryClient, options));\n React.useEffect(() => {\n observer.setOptions(options);\n }, [observer, options]);\n const result = useSyncExternalStore(React.useCallback(onStoreChange => observer.subscribe(notifyManager.batchCalls(onStoreChange)), [observer]), () => observer.getCurrentResult(), () => observer.getCurrentResult());\n const mutate = React.useCallback((variables, mutateOptions) => {\n observer.mutate(variables, mutateOptions).catch(noop);\n }, [observer]);\n\n if (result.error && shouldThrowError(observer.options.useErrorBoundary, [result.error])) {\n throw result.error;\n }\n\n return { ...result,\n mutate,\n mutateAsync: result.mutate\n };\n} // eslint-disable-next-line @typescript-eslint/no-empty-function\n\nfunction noop() {}\n\nexport { useMutation };\n//# sourceMappingURL=useMutation.mjs.map\n","import { shallowEqualObjects, noop, isServer, isValidTimeout, timeUntilStale, replaceData } from './utils.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { focusManager } from './focusManager.mjs';\nimport { Subscribable } from './subscribable.mjs';\nimport { canFetch, isCancelledError } from './retryer.mjs';\n\nclass QueryObserver extends Subscribable {\n constructor(client, options) {\n super();\n this.client = client;\n this.options = options;\n this.trackedProps = new Set();\n this.selectError = null;\n this.bindMethods();\n this.setOptions(options);\n }\n\n bindMethods() {\n this.remove = this.remove.bind(this);\n this.refetch = this.refetch.bind(this);\n }\n\n onSubscribe() {\n if (this.listeners.size === 1) {\n this.currentQuery.addObserver(this);\n\n if (shouldFetchOnMount(this.currentQuery, this.options)) {\n this.executeFetch();\n }\n\n this.updateTimers();\n }\n }\n\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.destroy();\n }\n }\n\n shouldFetchOnReconnect() {\n return shouldFetchOn(this.currentQuery, this.options, this.options.refetchOnReconnect);\n }\n\n shouldFetchOnWindowFocus() {\n return shouldFetchOn(this.currentQuery, this.options, this.options.refetchOnWindowFocus);\n }\n\n destroy() {\n this.listeners = new Set();\n this.clearStaleTimeout();\n this.clearRefetchInterval();\n this.currentQuery.removeObserver(this);\n }\n\n setOptions(options, notifyOptions) {\n const prevOptions = this.options;\n const prevQuery = this.currentQuery;\n this.options = this.client.defaultQueryOptions(options);\n\n if (process.env.NODE_ENV !== 'production' && typeof (options == null ? void 0 : options.isDataEqual) !== 'undefined') {\n this.client.getLogger().error(\"The isDataEqual option has been deprecated and will be removed in the next major version. You can achieve the same functionality by passing a function as the structuralSharing option\");\n }\n\n if (!shallowEqualObjects(prevOptions, this.options)) {\n this.client.getQueryCache().notify({\n type: 'observerOptionsUpdated',\n query: this.currentQuery,\n observer: this\n });\n }\n\n if (typeof this.options.enabled !== 'undefined' && typeof this.options.enabled !== 'boolean') {\n throw new Error('Expected enabled to be a boolean');\n } // Keep previous query key if the user does not supply one\n\n\n if (!this.options.queryKey) {\n this.options.queryKey = prevOptions.queryKey;\n }\n\n this.updateQuery();\n const mounted = this.hasListeners(); // Fetch if there are subscribers\n\n if (mounted && shouldFetchOptionally(this.currentQuery, prevQuery, this.options, prevOptions)) {\n this.executeFetch();\n } // Update result\n\n\n this.updateResult(notifyOptions); // Update stale interval if needed\n\n if (mounted && (this.currentQuery !== prevQuery || this.options.enabled !== prevOptions.enabled || this.options.staleTime !== prevOptions.staleTime)) {\n this.updateStaleTimeout();\n }\n\n const nextRefetchInterval = this.computeRefetchInterval(); // Update refetch interval if needed\n\n if (mounted && (this.currentQuery !== prevQuery || this.options.enabled !== prevOptions.enabled || nextRefetchInterval !== this.currentRefetchInterval)) {\n this.updateRefetchInterval(nextRefetchInterval);\n }\n }\n\n getOptimisticResult(options) {\n const query = this.client.getQueryCache().build(this.client, options);\n return this.createResult(query, options);\n }\n\n getCurrentResult() {\n return this.currentResult;\n }\n\n trackResult(result) {\n const trackedResult = {};\n Object.keys(result).forEach(key => {\n Object.defineProperty(trackedResult, key, {\n configurable: false,\n enumerable: true,\n get: () => {\n this.trackedProps.add(key);\n return result[key];\n }\n });\n });\n return trackedResult;\n }\n\n getCurrentQuery() {\n return this.currentQuery;\n }\n\n remove() {\n this.client.getQueryCache().remove(this.currentQuery);\n }\n\n refetch({\n refetchPage,\n ...options\n } = {}) {\n return this.fetch({ ...options,\n meta: {\n refetchPage\n }\n });\n }\n\n fetchOptimistic(options) {\n const defaultedOptions = this.client.defaultQueryOptions(options);\n const query = this.client.getQueryCache().build(this.client, defaultedOptions);\n query.isFetchingOptimistic = true;\n return query.fetch().then(() => this.createResult(query, defaultedOptions));\n }\n\n fetch(fetchOptions) {\n var _fetchOptions$cancelR;\n\n return this.executeFetch({ ...fetchOptions,\n cancelRefetch: (_fetchOptions$cancelR = fetchOptions.cancelRefetch) != null ? _fetchOptions$cancelR : true\n }).then(() => {\n this.updateResult();\n return this.currentResult;\n });\n }\n\n executeFetch(fetchOptions) {\n // Make sure we reference the latest query as the current one might have been removed\n this.updateQuery(); // Fetch\n\n let promise = this.currentQuery.fetch(this.options, fetchOptions);\n\n if (!(fetchOptions != null && fetchOptions.throwOnError)) {\n promise = promise.catch(noop);\n }\n\n return promise;\n }\n\n updateStaleTimeout() {\n this.clearStaleTimeout();\n\n if (isServer || this.currentResult.isStale || !isValidTimeout(this.options.staleTime)) {\n return;\n }\n\n const time = timeUntilStale(this.currentResult.dataUpdatedAt, this.options.staleTime); // The timeout is sometimes triggered 1 ms before the stale time expiration.\n // To mitigate this issue we always add 1 ms to the timeout.\n\n const timeout = time + 1;\n this.staleTimeoutId = setTimeout(() => {\n if (!this.currentResult.isStale) {\n this.updateResult();\n }\n }, timeout);\n }\n\n computeRefetchInterval() {\n var _this$options$refetch;\n\n return typeof this.options.refetchInterval === 'function' ? this.options.refetchInterval(this.currentResult.data, this.currentQuery) : (_this$options$refetch = this.options.refetchInterval) != null ? _this$options$refetch : false;\n }\n\n updateRefetchInterval(nextInterval) {\n this.clearRefetchInterval();\n this.currentRefetchInterval = nextInterval;\n\n if (isServer || this.options.enabled === false || !isValidTimeout(this.currentRefetchInterval) || this.currentRefetchInterval === 0) {\n return;\n }\n\n this.refetchIntervalId = setInterval(() => {\n if (this.options.refetchIntervalInBackground || focusManager.isFocused()) {\n this.executeFetch();\n }\n }, this.currentRefetchInterval);\n }\n\n updateTimers() {\n this.updateStaleTimeout();\n this.updateRefetchInterval(this.computeRefetchInterval());\n }\n\n clearStaleTimeout() {\n if (this.staleTimeoutId) {\n clearTimeout(this.staleTimeoutId);\n this.staleTimeoutId = undefined;\n }\n }\n\n clearRefetchInterval() {\n if (this.refetchIntervalId) {\n clearInterval(this.refetchIntervalId);\n this.refetchIntervalId = undefined;\n }\n }\n\n createResult(query, options) {\n const prevQuery = this.currentQuery;\n const prevOptions = this.options;\n const prevResult = this.currentResult;\n const prevResultState = this.currentResultState;\n const prevResultOptions = this.currentResultOptions;\n const queryChange = query !== prevQuery;\n const queryInitialState = queryChange ? query.state : this.currentQueryInitialState;\n const prevQueryResult = queryChange ? this.currentResult : this.previousQueryResult;\n const {\n state\n } = query;\n let {\n dataUpdatedAt,\n error,\n errorUpdatedAt,\n fetchStatus,\n status\n } = state;\n let isPreviousData = false;\n let isPlaceholderData = false;\n let data; // Optimistically set result in fetching state if needed\n\n if (options._optimisticResults) {\n const mounted = this.hasListeners();\n const fetchOnMount = !mounted && shouldFetchOnMount(query, options);\n const fetchOptionally = mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions);\n\n if (fetchOnMount || fetchOptionally) {\n fetchStatus = canFetch(query.options.networkMode) ? 'fetching' : 'paused';\n\n if (!dataUpdatedAt) {\n status = 'loading';\n }\n }\n\n if (options._optimisticResults === 'isRestoring') {\n fetchStatus = 'idle';\n }\n } // Keep previous data if needed\n\n\n if (options.keepPreviousData && !state.dataUpdatedAt && prevQueryResult != null && prevQueryResult.isSuccess && status !== 'error') {\n data = prevQueryResult.data;\n dataUpdatedAt = prevQueryResult.dataUpdatedAt;\n status = prevQueryResult.status;\n isPreviousData = true;\n } // Select data if needed\n else if (options.select && typeof state.data !== 'undefined') {\n // Memoize select result\n if (prevResult && state.data === (prevResultState == null ? void 0 : prevResultState.data) && options.select === this.selectFn) {\n data = this.selectResult;\n } else {\n try {\n this.selectFn = options.select;\n data = options.select(state.data);\n data = replaceData(prevResult == null ? void 0 : prevResult.data, data, options);\n this.selectResult = data;\n this.selectError = null;\n } catch (selectError) {\n if (process.env.NODE_ENV !== 'production') {\n this.client.getLogger().error(selectError);\n }\n\n this.selectError = selectError;\n }\n }\n } // Use query data\n else {\n data = state.data;\n } // Show placeholder data if needed\n\n\n if (typeof options.placeholderData !== 'undefined' && typeof data === 'undefined' && status === 'loading') {\n let placeholderData; // Memoize placeholder data\n\n if (prevResult != null && prevResult.isPlaceholderData && options.placeholderData === (prevResultOptions == null ? void 0 : prevResultOptions.placeholderData)) {\n placeholderData = prevResult.data;\n } else {\n placeholderData = typeof options.placeholderData === 'function' ? options.placeholderData() : options.placeholderData;\n\n if (options.select && typeof placeholderData !== 'undefined') {\n try {\n placeholderData = options.select(placeholderData);\n this.selectError = null;\n } catch (selectError) {\n if (process.env.NODE_ENV !== 'production') {\n this.client.getLogger().error(selectError);\n }\n\n this.selectError = selectError;\n }\n }\n }\n\n if (typeof placeholderData !== 'undefined') {\n status = 'success';\n data = replaceData(prevResult == null ? void 0 : prevResult.data, placeholderData, options);\n isPlaceholderData = true;\n }\n }\n\n if (this.selectError) {\n error = this.selectError;\n data = this.selectResult;\n errorUpdatedAt = Date.now();\n status = 'error';\n }\n\n const isFetching = fetchStatus === 'fetching';\n const isLoading = status === 'loading';\n const isError = status === 'error';\n const result = {\n status,\n fetchStatus,\n isLoading,\n isSuccess: status === 'success',\n isError,\n isInitialLoading: isLoading && isFetching,\n data,\n dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: state.fetchFailureCount,\n failureReason: state.fetchFailureReason,\n errorUpdateCount: state.errorUpdateCount,\n isFetched: state.dataUpdateCount > 0 || state.errorUpdateCount > 0,\n isFetchedAfterMount: state.dataUpdateCount > queryInitialState.dataUpdateCount || state.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching,\n isRefetching: isFetching && !isLoading,\n isLoadingError: isError && state.dataUpdatedAt === 0,\n isPaused: fetchStatus === 'paused',\n isPlaceholderData,\n isPreviousData,\n isRefetchError: isError && state.dataUpdatedAt !== 0,\n isStale: isStale(query, options),\n refetch: this.refetch,\n remove: this.remove\n };\n return result;\n }\n\n updateResult(notifyOptions) {\n const prevResult = this.currentResult;\n const nextResult = this.createResult(this.currentQuery, this.options);\n this.currentResultState = this.currentQuery.state;\n this.currentResultOptions = this.options; // Only notify and update result if something has changed\n\n if (shallowEqualObjects(nextResult, prevResult)) {\n return;\n }\n\n this.currentResult = nextResult; // Determine which callbacks to trigger\n\n const defaultNotifyOptions = {\n cache: true\n };\n\n const shouldNotifyListeners = () => {\n if (!prevResult) {\n return true;\n }\n\n const {\n notifyOnChangeProps\n } = this.options;\n\n if (notifyOnChangeProps === 'all' || !notifyOnChangeProps && !this.trackedProps.size) {\n return true;\n }\n\n const includedProps = new Set(notifyOnChangeProps != null ? notifyOnChangeProps : this.trackedProps);\n\n if (this.options.useErrorBoundary) {\n includedProps.add('error');\n }\n\n return Object.keys(this.currentResult).some(key => {\n const typedKey = key;\n const changed = this.currentResult[typedKey] !== prevResult[typedKey];\n return changed && includedProps.has(typedKey);\n });\n };\n\n if ((notifyOptions == null ? void 0 : notifyOptions.listeners) !== false && shouldNotifyListeners()) {\n defaultNotifyOptions.listeners = true;\n }\n\n this.notify({ ...defaultNotifyOptions,\n ...notifyOptions\n });\n }\n\n updateQuery() {\n const query = this.client.getQueryCache().build(this.client, this.options);\n\n if (query === this.currentQuery) {\n return;\n }\n\n const prevQuery = this.currentQuery;\n this.currentQuery = query;\n this.currentQueryInitialState = query.state;\n this.previousQueryResult = this.currentResult;\n\n if (this.hasListeners()) {\n prevQuery == null ? void 0 : prevQuery.removeObserver(this);\n query.addObserver(this);\n }\n }\n\n onQueryUpdate(action) {\n const notifyOptions = {};\n\n if (action.type === 'success') {\n notifyOptions.onSuccess = !action.manual;\n } else if (action.type === 'error' && !isCancelledError(action.error)) {\n notifyOptions.onError = true;\n }\n\n this.updateResult(notifyOptions);\n\n if (this.hasListeners()) {\n this.updateTimers();\n }\n }\n\n notify(notifyOptions) {\n notifyManager.batch(() => {\n // First trigger the configuration callbacks\n if (notifyOptions.onSuccess) {\n var _this$options$onSucce, _this$options, _this$options$onSettl, _this$options2;\n\n (_this$options$onSucce = (_this$options = this.options).onSuccess) == null ? void 0 : _this$options$onSucce.call(_this$options, this.currentResult.data);\n (_this$options$onSettl = (_this$options2 = this.options).onSettled) == null ? void 0 : _this$options$onSettl.call(_this$options2, this.currentResult.data, null);\n } else if (notifyOptions.onError) {\n var _this$options$onError, _this$options3, _this$options$onSettl2, _this$options4;\n\n (_this$options$onError = (_this$options3 = this.options).onError) == null ? void 0 : _this$options$onError.call(_this$options3, this.currentResult.error);\n (_this$options$onSettl2 = (_this$options4 = this.options).onSettled) == null ? void 0 : _this$options$onSettl2.call(_this$options4, undefined, this.currentResult.error);\n } // Then trigger the listeners\n\n\n if (notifyOptions.listeners) {\n this.listeners.forEach(({\n listener\n }) => {\n listener(this.currentResult);\n });\n } // Then the cache listeners\n\n\n if (notifyOptions.cache) {\n this.client.getQueryCache().notify({\n query: this.currentQuery,\n type: 'observerResultsUpdated'\n });\n }\n });\n }\n\n}\n\nfunction shouldLoadOnMount(query, options) {\n return options.enabled !== false && !query.state.dataUpdatedAt && !(query.state.status === 'error' && options.retryOnMount === false);\n}\n\nfunction shouldFetchOnMount(query, options) {\n return shouldLoadOnMount(query, options) || query.state.dataUpdatedAt > 0 && shouldFetchOn(query, options, options.refetchOnMount);\n}\n\nfunction shouldFetchOn(query, options, field) {\n if (options.enabled !== false) {\n const value = typeof field === 'function' ? field(query) : field;\n return value === 'always' || value !== false && isStale(query, options);\n }\n\n return false;\n}\n\nfunction shouldFetchOptionally(query, prevQuery, options, prevOptions) {\n return options.enabled !== false && (query !== prevQuery || prevOptions.enabled === false) && (!options.suspense || query.state.status !== 'error') && isStale(query, options);\n}\n\nfunction isStale(query, options) {\n return query.isStaleByTime(options.staleTime);\n}\n\nexport { QueryObserver };\n//# sourceMappingURL=queryObserver.mjs.map\n","\"use client\";\n\n// src/config.ts\nimport { createSyncStoragePersister } from \"@tanstack/query-sync-storage-persister\";\nimport { QueryClient } from \"@tanstack/react-query\";\nimport { persistQueryClient } from \"@tanstack/react-query-persist-client\";\nimport {\n createConfig as createCoreConfig,\n createStorage,\n noopStorage\n} from \"@wagmi/core\";\nfunction createConfig({\n queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n cacheTime: 1e3 * 60 * 60 * 24,\n networkMode: \"offlineFirst\",\n refetchOnWindowFocus: false,\n retry: 0\n },\n mutations: {\n networkMode: \"offlineFirst\"\n }\n }\n }),\n storage = createStorage({\n storage: typeof window !== \"undefined\" && window.localStorage ? window.localStorage : noopStorage\n }),\n persister = typeof window !== \"undefined\" ? createSyncStoragePersister({\n key: \"cache\",\n storage,\n serialize: (x) => x,\n deserialize: (x) => x\n }) : void 0,\n ...args\n}) {\n const config = createCoreConfig({\n ...args,\n storage\n });\n if (persister)\n persistQueryClient({\n queryClient,\n persister,\n dehydrateOptions: {\n shouldDehydrateQuery: (query) => query.cacheTime !== 0 && query.queryKey[0].persist !== false\n }\n });\n return Object.assign(config, { queryClient });\n}\n\n// src/context.ts\nimport { QueryClientProvider } from \"@tanstack/react-query\";\nimport * as React from \"react\";\nvar Context = React.createContext(void 0);\nvar queryClientContext = React.createContext(\n void 0\n);\nfunction WagmiConfig({\n children,\n config\n}) {\n return React.createElement(Context.Provider, {\n children: React.createElement(QueryClientProvider, {\n children,\n client: config.queryClient,\n context: queryClientContext\n }),\n value: config\n });\n}\nfunction useConfig() {\n const config = React.useContext(Context);\n if (!config)\n throw new Error(\n [\n \"`useConfig` must be used within `WagmiConfig`.\\n\",\n \"Read more: https://wagmi.sh/react/WagmiConfig\"\n ].join(\"\\n\")\n );\n return config;\n}\n\n// src/hooks/accounts/useAccount.ts\nimport { getAccount, watchAccount } from \"@wagmi/core\";\nimport * as React9 from \"react\";\n\n// src/hooks/utils/query/useBaseQuery.ts\nimport {\n notifyManager,\n useIsRestoring,\n useQueryClient,\n useQueryErrorResetBoundary\n} from \"@tanstack/react-query\";\nimport * as React2 from \"react\";\n\n// src/hooks/utils/useSyncExternalStore.ts\nimport * as pkg from \"use-sync-external-store/shim/index.js\";\nvar useSyncExternalStore2 = pkg.useSyncExternalStore;\n\n// src/hooks/utils/query/utils.ts\nfunction isQueryKey(value) {\n return Array.isArray(value);\n}\nfunction isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n }\n const ctor = o.constructor;\n if (typeof ctor === \"undefined\") {\n return true;\n }\n const prot = ctor.prototype;\n if (!hasObjectPrototype(prot)) {\n return false;\n }\n if (!prot.hasOwnProperty(\"isPrototypeOf\")) {\n return false;\n }\n return true;\n}\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === \"[object Object]\";\n}\nfunction parseQueryArgs(arg1, arg2, arg3) {\n if (!isQueryKey(arg1)) {\n return arg1;\n }\n if (typeof arg2 === \"function\") {\n return { ...arg3, queryKey: arg1, queryFn: arg2 };\n }\n return { ...arg2, queryKey: arg1 };\n}\nfunction queryKeyHashFn(queryKey17) {\n return JSON.stringify(\n queryKey17,\n (_, val) => isPlainObject(val) ? Object.keys(val).sort().reduce((result, key) => {\n result[key] = val[key];\n return result;\n }, {}) : typeof val === \"bigint\" ? val.toString() : val\n );\n}\nfunction shouldThrowError(_useErrorBoundary, params) {\n if (typeof _useErrorBoundary === \"function\") {\n return _useErrorBoundary(...params);\n }\n return !!_useErrorBoundary;\n}\nfunction trackResult(result, observer) {\n const trackedResult = {};\n Object.keys(result).forEach((key) => {\n Object.defineProperty(trackedResult, key, {\n configurable: false,\n enumerable: true,\n get: () => {\n observer.trackedProps.add(key);\n return result[key];\n }\n });\n });\n return trackedResult;\n}\n\n// src/hooks/utils/query/useBaseQuery.ts\nfunction useBaseQuery(options, Observer) {\n const queryClient = useQueryClient({ context: options.context });\n const isRestoring = useIsRestoring();\n const errorResetBoundary = useQueryErrorResetBoundary();\n const defaultedOptions = queryClient.defaultQueryOptions({\n ...options,\n queryKeyHashFn\n });\n defaultedOptions._optimisticResults = isRestoring ? \"isRestoring\" : \"optimistic\";\n if (defaultedOptions.onError) {\n defaultedOptions.onError = notifyManager.batchCalls(\n defaultedOptions.onError\n );\n }\n if (defaultedOptions.onSuccess) {\n defaultedOptions.onSuccess = notifyManager.batchCalls(\n defaultedOptions.onSuccess\n );\n }\n if (defaultedOptions.onSettled) {\n defaultedOptions.onSettled = notifyManager.batchCalls(\n defaultedOptions.onSettled\n );\n }\n if (defaultedOptions.suspense) {\n if (typeof defaultedOptions.staleTime !== \"number\") {\n defaultedOptions.staleTime = 1e3;\n }\n }\n if (defaultedOptions.suspense || defaultedOptions.useErrorBoundary) {\n if (!errorResetBoundary.isReset()) {\n defaultedOptions.retryOnMount = false;\n }\n }\n const [observer] = React2.useState(\n () => new Observer(\n queryClient,\n defaultedOptions\n )\n );\n const result = observer.getOptimisticResult(defaultedOptions);\n useSyncExternalStore2(\n React2.useCallback(\n (onStoreChange) => isRestoring ? () => void 0 : observer.subscribe(notifyManager.batchCalls(onStoreChange)),\n [observer, isRestoring]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n React2.useEffect(() => {\n errorResetBoundary.clearReset();\n }, [errorResetBoundary]);\n React2.useEffect(() => {\n observer.setOptions(defaultedOptions, { listeners: false });\n }, [defaultedOptions, observer]);\n if (defaultedOptions.suspense && result.isLoading && result.isFetching && !isRestoring) {\n throw observer.fetchOptimistic(defaultedOptions).then(({ data }) => {\n defaultedOptions.onSuccess?.(data);\n defaultedOptions.onSettled?.(data, null);\n }).catch((error) => {\n errorResetBoundary.clearReset();\n defaultedOptions.onError?.(error);\n defaultedOptions.onSettled?.(void 0, error);\n });\n }\n if (result.isError && !errorResetBoundary.isReset() && !result.isFetching && shouldThrowError(defaultedOptions.useErrorBoundary, [\n result.error,\n observer.getCurrentQuery()\n ])) {\n throw result.error;\n }\n const status = result.status === \"loading\" && result.fetchStatus === \"idle\" ? \"idle\" : result.status;\n const isIdle = status === \"idle\";\n const isLoading = status === \"loading\" && result.fetchStatus === \"fetching\";\n return {\n ...result,\n defaultedOptions,\n isIdle,\n isLoading,\n observer,\n status\n };\n}\n\n// src/hooks/utils/query/useInfiniteQuery.ts\nimport { InfiniteQueryObserver } from \"@tanstack/react-query\";\nfunction useInfiniteQuery(arg1, arg2, arg3) {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n const baseQuery = useBaseQuery(\n { context: queryClientContext, ...parsedOptions },\n InfiniteQueryObserver\n );\n const result = {\n data: baseQuery.data,\n error: baseQuery.error,\n fetchNextPage: baseQuery.fetchNextPage,\n fetchStatus: baseQuery.fetchStatus,\n hasNextPage: baseQuery.hasNextPage,\n isError: baseQuery.isError,\n isFetched: baseQuery.isFetched,\n isFetchedAfterMount: baseQuery.isFetchedAfterMount,\n isFetching: baseQuery.isFetching,\n isFetchingNextPage: baseQuery.isFetchingNextPage,\n isIdle: baseQuery.isIdle,\n isLoading: baseQuery.isLoading,\n isRefetching: baseQuery.isRefetching,\n isSuccess: baseQuery.isSuccess,\n refetch: baseQuery.refetch,\n status: baseQuery.status,\n internal: {\n dataUpdatedAt: baseQuery.dataUpdatedAt,\n errorUpdatedAt: baseQuery.errorUpdatedAt,\n failureCount: baseQuery.failureCount,\n isFetchedAfterMount: baseQuery.isFetchedAfterMount,\n isLoadingError: baseQuery.isLoadingError,\n isPaused: baseQuery.isPaused,\n isPlaceholderData: baseQuery.isPlaceholderData,\n isPreviousData: baseQuery.isPreviousData,\n isRefetchError: baseQuery.isRefetchError,\n isStale: baseQuery.isStale,\n remove: baseQuery.remove\n }\n };\n return !baseQuery.defaultedOptions.notifyOnChangeProps ? trackResult(result, baseQuery.observer) : result;\n}\n\n// src/hooks/utils/query/useMutation.ts\nimport {\n parseMutationArgs,\n useMutation as useMutation_\n} from \"@tanstack/react-query\";\nfunction useMutation(arg1, arg2, arg3) {\n const options = parseMutationArgs(arg1, arg2, arg3);\n return useMutation_({ context: queryClientContext, ...options });\n}\n\n// src/hooks/utils/query/useQuery.ts\nimport { QueryObserver } from \"@tanstack/react-query\";\nfunction useQuery(arg1, arg2, arg3) {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n const baseQuery = useBaseQuery({ context: queryClientContext, ...parsedOptions }, QueryObserver);\n const result = {\n data: baseQuery.data,\n error: baseQuery.error,\n fetchStatus: baseQuery.fetchStatus,\n isError: baseQuery.isError,\n isFetched: baseQuery.isFetched,\n isFetchedAfterMount: baseQuery.isFetchedAfterMount,\n isFetching: baseQuery.isFetching,\n isIdle: baseQuery.isIdle,\n isLoading: baseQuery.isLoading,\n isRefetching: baseQuery.isRefetching,\n isSuccess: baseQuery.isSuccess,\n refetch: baseQuery.refetch,\n status: baseQuery.status,\n internal: {\n dataUpdatedAt: baseQuery.dataUpdatedAt,\n errorUpdatedAt: baseQuery.errorUpdatedAt,\n failureCount: baseQuery.failureCount,\n isFetchedAfterMount: baseQuery.isFetchedAfterMount,\n isLoadingError: baseQuery.isLoadingError,\n isPaused: baseQuery.isPaused,\n isPlaceholderData: baseQuery.isPlaceholderData,\n isPreviousData: baseQuery.isPreviousData,\n isRefetchError: baseQuery.isRefetchError,\n isStale: baseQuery.isStale,\n remove: baseQuery.remove\n }\n };\n return !baseQuery.defaultedOptions.notifyOnChangeProps ? trackResult(result, baseQuery.observer) : result;\n}\n\n// src/hooks/utils/query/useQueryClient.ts\nimport { useQueryClient as useQueryClient_ } from \"@tanstack/react-query\";\nvar useQueryClient2 = () => useQueryClient_({ context: queryClientContext });\n\n// src/hooks/viem/usePublicClient.ts\nimport { getPublicClient, watchPublicClient } from \"@wagmi/core\";\nimport { useSyncExternalStoreWithSelector } from \"use-sync-external-store/shim/with-selector.js\";\nfunction usePublicClient({\n chainId\n} = {}) {\n return useSyncExternalStoreWithSelector(\n (cb) => watchPublicClient({ chainId }, cb),\n () => getPublicClient({ chainId }),\n () => getPublicClient({ chainId }),\n (x) => x,\n (a, b) => a.uid === b.uid\n );\n}\n\n// src/hooks/viem/useWalletClient.ts\nimport { getWalletClient, watchWalletClient } from \"@wagmi/core\";\nimport * as React3 from \"react\";\nfunction queryKey({ chainId }) {\n return [{ entity: \"walletClient\", chainId, persist: false }];\n}\nfunction queryFn({\n queryKey: [{ chainId }]\n}) {\n return getWalletClient({ chainId });\n}\nfunction useWalletClient({\n chainId: chainId_,\n suspense,\n onError,\n onSettled,\n onSuccess\n} = {}) {\n const { connector } = useAccount();\n const chainId = useChainId({ chainId: chainId_ });\n const walletClientQuery = useQuery(queryKey({ chainId }), queryFn, {\n cacheTime: 0,\n enabled: Boolean(connector),\n staleTime: Infinity,\n suspense,\n onError,\n onSettled,\n onSuccess\n });\n const queryClient = useQueryClient2();\n React3.useEffect(() => {\n const unwatch = watchWalletClient({ chainId }, (walletClient) => {\n if (walletClient)\n queryClient.invalidateQueries(queryKey({ chainId }));\n else\n queryClient.removeQueries(queryKey({ chainId }));\n });\n return unwatch;\n }, [queryClient, chainId]);\n return walletClientQuery;\n}\n\n// src/hooks/viem/useWebSocketPublicClient.ts\nimport {\n getWebSocketPublicClient,\n watchWebSocketPublicClient\n} from \"@wagmi/core\";\nimport { useSyncExternalStoreWithSelector as useSyncExternalStoreWithSelector2 } from \"use-sync-external-store/shim/with-selector.js\";\nfunction useWebSocketPublicClient({ chainId } = {}) {\n return useSyncExternalStoreWithSelector2(\n (cb) => watchWebSocketPublicClient({ chainId }, cb),\n () => getWebSocketPublicClient({ chainId }),\n () => getWebSocketPublicClient({ chainId }),\n (x) => x,\n (a, b) => a?.uid === b?.uid\n );\n}\n\n// src/hooks/utils/useChainId.ts\nfunction useChainId({ chainId } = {}) {\n const publicClient = usePublicClient({ chainId });\n return publicClient.chain.id;\n}\n\n// src/hooks/utils/useForceUpdate.ts\nimport * as React4 from \"react\";\nfunction useForceUpdate() {\n const [, forceUpdate] = React4.useReducer((x) => x + 1, 0);\n return forceUpdate;\n}\n\n// src/hooks/utils/useInvalidateOnBlock.ts\nimport * as React7 from \"react\";\n\n// src/hooks/network-status/useBlockNumber.ts\nimport { fetchBlockNumber } from \"@wagmi/core\";\nimport * as React5 from \"react\";\nfunction queryKey2({ chainId, scopeKey }) {\n return [{ entity: \"blockNumber\", chainId, scopeKey }];\n}\nfunction queryFn2({\n queryKey: [{ chainId }]\n}) {\n return fetchBlockNumber({ chainId });\n}\nfunction useBlockNumber({\n cacheTime = 0,\n chainId: chainId_,\n enabled = true,\n scopeKey,\n staleTime,\n suspense,\n watch = false,\n onBlock,\n onError,\n onSettled,\n onSuccess\n} = {}) {\n const chainId = useChainId({ chainId: chainId_ });\n const publicClient = usePublicClient({ chainId });\n const webSocketPublicClient = useWebSocketPublicClient({ chainId });\n const queryClient = useQueryClient2();\n React5.useEffect(() => {\n if (!enabled)\n return;\n if (!watch && !onBlock)\n return;\n const publicClient_ = webSocketPublicClient ?? publicClient;\n const unwatch = publicClient_.watchBlockNumber({\n onBlockNumber: (blockNumber) => {\n if (watch)\n queryClient.setQueryData(queryKey2({ chainId, scopeKey }), blockNumber);\n if (onBlock)\n onBlock(blockNumber);\n },\n emitOnBegin: true\n });\n return unwatch;\n }, [\n chainId,\n scopeKey,\n onBlock,\n publicClient,\n queryClient,\n watch,\n webSocketPublicClient,\n enabled\n ]);\n return useQuery(queryKey2({ scopeKey, chainId }), queryFn2, {\n cacheTime,\n enabled,\n staleTime,\n suspense,\n onError,\n onSettled,\n onSuccess\n });\n}\n\n// src/hooks/network-status/useFeeData.ts\nimport { fetchFeeData } from \"@wagmi/core\";\nimport * as React6 from \"react\";\nfunction queryKey3({\n chainId,\n formatUnits,\n scopeKey\n}) {\n return [{ entity: \"feeData\", chainId, formatUnits, scopeKey }];\n}\nfunction queryFn3({\n queryKey: [{ chainId, formatUnits }]\n}) {\n return fetchFeeData({ chainId, formatUnits });\n}\nfunction useFeeData({\n cacheTime,\n chainId: chainId_,\n enabled = true,\n formatUnits = \"gwei\",\n scopeKey,\n staleTime,\n suspense,\n watch,\n onError,\n onSettled,\n onSuccess\n} = {}) {\n const chainId = useChainId({ chainId: chainId_ });\n const queryKey_ = React6.useMemo(\n () => queryKey3({\n chainId,\n formatUnits,\n scopeKey\n }),\n [chainId, formatUnits, scopeKey]\n );\n const feeDataQuery = useQuery(queryKey_, queryFn3, {\n cacheTime,\n enabled,\n staleTime,\n suspense,\n onError,\n onSettled,\n onSuccess\n });\n useInvalidateOnBlock({\n chainId,\n enabled: Boolean(enabled && watch),\n queryKey: queryKey_\n });\n return feeDataQuery;\n}\n\n// src/hooks/utils/useInvalidateOnBlock.ts\nfunction useInvalidateOnBlock({\n chainId,\n enabled,\n queryKey: queryKey17\n}) {\n const queryClient = useQueryClient2();\n const onBlock = React7.useCallback(\n () => queryClient.invalidateQueries({ queryKey: queryKey17 }, { cancelRefetch: false }),\n [queryClient, queryKey17]\n );\n useBlockNumber({\n chainId,\n enabled,\n onBlock: enabled ? onBlock : void 0,\n scopeKey: enabled ? void 0 : \"idle\"\n });\n}\n\n// src/hooks/utils/useSyncExternalStoreWithTracked.ts\nimport { deepEqual } from \"@wagmi/core\";\nimport * as React8 from \"react\";\nimport { useSyncExternalStoreWithSelector as useSyncExternalStoreWithSelector3 } from \"use-sync-external-store/shim/with-selector.js\";\nvar isPlainObject2 = (obj) => typeof obj === \"object\" && !Array.isArray(obj);\nfunction useSyncExternalStoreWithTracked(subscribe, getSnapshot, getServerSnapshot = getSnapshot, isEqual = deepEqual) {\n const trackedKeys = React8.useRef([]);\n const result = useSyncExternalStoreWithSelector3(\n subscribe,\n getSnapshot,\n getServerSnapshot,\n (x) => x,\n (a, b) => {\n if (isPlainObject2(a) && isPlainObject2(b) && trackedKeys.current.length) {\n for (const key of trackedKeys.current) {\n const equal = isEqual(\n a[key],\n b[key]\n );\n if (!equal)\n return false;\n }\n return true;\n }\n return isEqual(a, b);\n }\n );\n if (isPlainObject2(result)) {\n const trackedResult = { ...result };\n Object.defineProperties(\n trackedResult,\n Object.entries(trackedResult).reduce(\n (res, [key, value]) => {\n return {\n ...res,\n [key]: {\n configurable: false,\n enumerable: true,\n get: () => {\n if (!trackedKeys.current.includes(key)) {\n trackedKeys.current.push(key);\n }\n return value;\n }\n }\n };\n },\n {}\n )\n );\n return trackedResult;\n }\n return result;\n}\n\n// src/hooks/accounts/useAccount.ts\nfunction useAccount({ onConnect, onDisconnect } = {}) {\n const config = useConfig();\n const watchAccount_ = React9.useCallback(\n (callback) => watchAccount(callback),\n [config]\n );\n const account = useSyncExternalStoreWithTracked(watchAccount_, getAccount);\n const previousAccountRef = React9.useRef();\n const previousAccount = previousAccountRef.current;\n React9.useEffect(() => {\n if (previousAccount?.status !== \"connected\" && account.status === \"connected\") {\n onConnect?.({\n address: account.address,\n connector: account.connector,\n isReconnected: previousAccount?.status === \"reconnecting\" || previousAccount?.status === void 0\n });\n }\n if (previousAccount?.status === \"connected\" && account.status === \"disconnected\") {\n onDisconnect?.();\n }\n previousAccountRef.current = account;\n }, [onConnect, onDisconnect, previousAccount, account]);\n return account;\n}\n\n// src/hooks/accounts/useBalance.ts\nimport { fetchBalance } from \"@wagmi/core\";\nimport * as React10 from \"react\";\nfunction queryKey4({\n address,\n chainId,\n formatUnits,\n scopeKey,\n token\n}) {\n return [\n {\n entity: \"balance\",\n address,\n chainId,\n formatUnits,\n scopeKey,\n token\n }\n ];\n}\nfunction queryFn4({\n queryKey: [{ address, chainId, formatUnits, token }]\n}) {\n if (!address)\n throw new Error(\"address is required\");\n return fetchBalance({ address, chainId, formatUnits, token });\n}\nfunction useBalance({\n address,\n cacheTime,\n chainId: chainId_,\n enabled = true,\n formatUnits,\n scopeKey,\n staleTime,\n suspense,\n token,\n watch,\n onError,\n onSettled,\n onSuccess\n} = {}) {\n const chainId = useChainId({ chainId: chainId_ });\n const queryKey_ = React10.useMemo(\n () => queryKey4({ address, chainId, formatUnits, scopeKey, token }),\n [address, chainId, formatUnits, scopeKey, token]\n );\n const balanceQuery = useQuery(queryKey_, queryFn4, {\n cacheTime,\n enabled: Boolean(enabled && address),\n staleTime,\n suspense,\n onError,\n onSettled,\n onSuccess\n });\n useInvalidateOnBlock({\n chainId,\n enabled: Boolean(enabled && watch && address),\n queryKey: queryKey_\n });\n return balanceQuery;\n}\n\n// src/hooks/accounts/useConnect.ts\nimport { connect } from \"@wagmi/core\";\nimport * as React11 from \"react\";\nvar mutationKey = (args) => [{ entity: \"connect\", ...args }];\nvar mutationFn = (args) => {\n const { connector, chainId } = args;\n if (!connector)\n throw new Error(\"connector is required\");\n return connect({ connector, chainId });\n};\nfunction useConnect({\n chainId,\n connector,\n onError,\n onMutate,\n onSettled,\n onSuccess\n} = {}) {\n const config = useConfig();\n const {\n data,\n error,\n isError,\n isIdle,\n isLoading,\n isSuccess,\n mutate,\n mutateAsync,\n reset,\n status,\n variables\n } = useMutation(mutationKey({ connector, chainId }), mutationFn, {\n onError,\n onMutate,\n onSettled,\n onSuccess\n });\n const connect2 = React11.useCallback(\n (args) => {\n return mutate({\n chainId: args?.chainId ?? chainId,\n connector: args?.connector ?? connector\n });\n },\n [chainId, connector, mutate]\n );\n const connectAsync = React11.useCallback(\n (args) => {\n return mutateAsync({\n chainId: args?.chainId ?? chainId,\n connector: args?.connector ?? connector\n });\n },\n [chainId, connector, mutateAsync]\n );\n return {\n connect: connect2,\n connectAsync,\n connectors: config.connectors,\n data,\n error,\n isError,\n isIdle,\n isLoading,\n isSuccess,\n pendingConnector: variables?.connector,\n reset,\n status,\n variables\n };\n}\n\n// src/hooks/accounts/useDisconnect.ts\nimport { disconnect } from \"@wagmi/core\";\nvar mutationKey2 = [{ entity: \"disconnect\" }];\nvar mutationFn2 = () => disconnect();\nfunction useDisconnect({\n onError,\n onMutate,\n onSettled,\n onSuccess\n} = {}) {\n const {\n error,\n isError,\n isIdle,\n isLoading,\n isSuccess,\n mutate: disconnect2,\n mutateAsync: disconnectAsync,\n reset,\n status\n } = useMutation(mutationKey2, mutationFn2, {\n ...onError ? {\n onError(error2, _variables, context) {\n onError(error2, context);\n }\n } : {},\n onMutate,\n ...onSettled ? {\n onSettled(_data, error2, _variables, context) {\n onSettled(error2, context);\n }\n } : {},\n ...onSuccess ? {\n onSuccess(_data, _variables, context) {\n onSuccess(context);\n }\n } : {}\n });\n return {\n disconnect: disconnect2,\n disconnectAsync,\n error,\n isError,\n isIdle,\n isLoading,\n isSuccess,\n reset,\n status\n };\n}\n\n// src/hooks/accounts/useNetwork.ts\nimport { getNetwork, watchNetwork } from \"@wagmi/core\";\nimport { useCallback as useCallback5 } from \"react\";\nfunction useNetwork() {\n const config = useConfig();\n const watchNetwork_ = useCallback5(\n (callback) => watchNetwork(callback),\n [config]\n );\n return useSyncExternalStoreWithTracked(watchNetwork_, getNetwork);\n}\n\n// src/hooks/accounts/useSignMessage.ts\nimport { signMessage } from \"@wagmi/core\";\nimport * as React12 from \"react\";\nvar mutationKey3 = (args) => [{ entity: \"signMessage\", ...args }];\nvar mutationFn3 = (args) => {\n const { message } = args;\n if (!message)\n throw new Error(\"message is required\");\n return signMessage({ message });\n};\nfunction useSignMessage({\n message,\n onError,\n onMutate,\n onSettled,\n onSuccess\n} = {}) {\n const {\n data,\n error,\n isError,\n isIdle,\n isLoading,\n isSuccess,\n mutate,\n mutateAsync,\n reset,\n status,\n variables\n } = useMutation(mutationKey3({ message }), mutationFn3, {\n onError,\n onMutate,\n onSettled,\n onSuccess\n });\n const signMessage2 = React12.useCallback(\n (args) => mutate(args || { message }),\n [message, mutate]\n );\n const signMessageAsync = React12.useCallback(\n (args) => mutateAsync(args || { message }),\n [message, mutateAsync]\n );\n return {\n data,\n error,\n isError,\n isIdle,\n isLoading,\n isSuccess,\n reset,\n signMessage: signMessage2,\n signMessageAsync,\n status,\n variables\n };\n}\n\n// src/hooks/accounts/useSignTypedData.ts\nimport { signTypedData } from \"@wagmi/core\";\nimport * as React13 from \"react\";\nfunction mutationKey4({ domain, types, message, primaryType }) {\n return [\n { entity: \"signTypedData\", domain, types, message, primaryType }\n ];\n}\nfunction mutationFn4(args) {\n const { domain, types, primaryType, message } = args;\n if (!domain)\n throw new Error(\"domain is required\");\n if (!types)\n throw new Error(\"types is required\");\n if (!primaryType)\n throw new Error(\"primaryType is required\");\n if (!message)\n throw new Error(\"message is required\");\n return signTypedData({\n domain,\n message,\n primaryType,\n types\n });\n}\nfunction useSignTypedData({\n domain,\n types,\n message,\n primaryType,\n onError,\n onMutate,\n onSettled,\n onSuccess\n} = {}) {\n const {\n data,\n error,\n isError,\n isIdle,\n isLoading,\n isSuccess,\n mutate,\n mutateAsync,\n reset,\n status,\n variables\n } = useMutation(\n mutationKey4({\n domain,\n message,\n primaryType,\n types\n }),\n mutationFn4,\n {\n onError,\n onMutate,\n onSettled,\n onSuccess\n }\n );\n const signTypedData2 = React13.useCallback(\n (args) => mutate({\n domain: args?.domain ?? domain,\n types: args?.types ?? types,\n message: args?.message ?? message,\n primaryType: args?.primaryType ?? primaryType\n }),\n [domain, types, primaryType, message, mutate]\n );\n const signTypedDataAsync = React13.useCallback(\n (args) => mutateAsync({\n domain: args?.domain ?? domain,\n types: args?.types ?? types,\n message: args?.message ?? message,\n primaryType: args?.primaryType ?? primaryType\n }),\n [domain, types, primaryType, message, mutateAsync]\n );\n return {\n data,\n error,\n isError,\n isIdle,\n isLoading,\n isSuccess,\n reset,\n signTypedData: signTypedData2,\n signTypedDataAsync,\n status,\n variables\n };\n}\n\n// src/hooks/accounts/useSwitchNetwork.ts\nimport { switchNetwork } from \"@wagmi/core\";\nimport * as React14 from \"react\";\nvar mutationKey5 = (args) => [{ entity: \"switchNetwork\", ...args }];\nvar mutationFn5 = (args) => {\n const { chainId } = args;\n if (!chainId)\n throw new Error(\"chainId is required\");\n return switchNetwork({ chainId });\n};\nfunction useSwitchNetwork({\n chainId,\n throwForSwitchChainNotSupported,\n onError,\n onMutate,\n onSettled,\n onSuccess\n} = {}) {\n const config = useConfig();\n const forceUpdate = useForceUpdate();\n const {\n data,\n error,\n isError,\n isIdle,\n isLoading,\n isSuccess,\n mutate,\n mutateAsync,\n reset,\n status,\n variables\n } = useMutation(mutationKey5({ chainId }), mutationFn5, {\n onError,\n onMutate,\n onSettled,\n onSuccess\n });\n const switchNetwork_ = React14.useCallback(\n (chainId_) => mutate({ chainId: chainId_ ?? chainId }),\n [chainId, mutate]\n );\n const switchNetworkAsync_ = React14.useCallback(\n (chainId_) => mutateAsync({ chainId: chainId_ ?? chainId }),\n [chainId, mutateAsync]\n );\n React14.useEffect(() => {\n const unwatch = config.subscribe(\n ({ chains, connector }) => ({\n chains,\n connector\n }),\n forceUpdate\n );\n return unwatch;\n }, [config, forceUpdate]);\n let switchNetwork2;\n let switchNetworkAsync;\n const supportsSwitchChain = !!config.connector?.switchChain;\n if (throwForSwitchChainNotSupported || supportsSwitchChain) {\n switchNetwork2 = switchNetwork_;\n switchNetworkAsync = switchNetworkAsync_;\n }\n return {\n chains: config.chains ?? [],\n data,\n error,\n isError,\n isIdle,\n isLoading,\n isSuccess,\n pendingChainId: variables?.chainId,\n reset,\n status,\n switchNetwork: switchNetwork2,\n switchNetworkAsync,\n variables\n };\n}\n\n// src/hooks/contracts/useContractEvent.ts\nimport * as React15 from \"react\";\nfunction useContractEvent({\n address,\n chainId,\n abi,\n listener,\n eventName\n} = {}) {\n const publicClient = usePublicClient({ chainId });\n const webSocketPublicClient = useWebSocketPublicClient({ chainId });\n const unwatch = React15.useRef();\n React15.useEffect(() => {\n if (!abi || !address || !eventName)\n return;\n const publicClient_ = webSocketPublicClient || publicClient;\n unwatch.current = publicClient_.watchContractEvent({\n abi,\n address,\n eventName,\n onLogs: listener\n });\n return unwatch.current;\n }, [abi, address, eventName, publicClient.uid, webSocketPublicClient?.uid]);\n return unwatch.current;\n}\n\n// src/hooks/contracts/useContractInfiniteReads.ts\nimport { replaceEqualDeep } from \"@tanstack/react-query\";\nimport { deepEqual as deepEqual2, readContracts } from \"@wagmi/core\";\nimport * as React16 from \"react\";\nfunction queryKey5({\n allowFailure,\n blockNumber,\n blockTag,\n cacheKey,\n scopeKey\n}) {\n return [\n {\n entity: \"readContractsInfinite\",\n allowFailure,\n blockNumber,\n blockTag,\n cacheKey,\n scopeKey\n }\n ];\n}\nfunction queryFn5({\n contracts\n}) {\n return ({\n queryKey: [{ allowFailure, blockNumber, blockTag }],\n pageParam\n }) => {\n return readContracts({\n allowFailure,\n blockNumber,\n blockTag,\n contracts: contracts(pageParam || void 0)\n });\n };\n}\nfunction useContractInfiniteReads({\n allowFailure,\n blockNumber,\n blockTag,\n cacheKey,\n cacheTime,\n contracts,\n enabled: enabled_ = true,\n getNextPageParam,\n isDataEqual,\n keepPreviousData,\n onError,\n onSettled,\n onSuccess,\n scopeKey,\n select,\n staleTime,\n structuralSharing = (oldData, newData) => deepEqual2(oldData, newData) ? oldData : replaceEqualDeep(oldData, newData),\n suspense\n}) {\n const queryKey_ = React16.useMemo(\n () => queryKey5({ allowFailure, blockNumber, blockTag, cacheKey, scopeKey }),\n [allowFailure, blockNumber, blockTag, cacheKey, scopeKey]\n );\n const enabled = React16.useMemo(() => {\n const enabled2 = Boolean(enabled_ && contracts);\n return enabled2;\n }, [contracts, enabled_]);\n return useInfiniteQuery(queryKey_, queryFn5({ contracts }), {\n cacheTime,\n enabled,\n getNextPageParam,\n isDataEqual,\n keepPreviousData,\n select,\n staleTime,\n structuralSharing,\n suspense,\n onError,\n onSettled,\n onSuccess\n });\n}\nfunction paginatedIndexesConfig(fn, {\n perPage,\n start,\n direction\n}) {\n const contracts = (page = 0) => [...Array(perPage).keys()].map((index) => {\n return direction === \"increment\" ? start + index + page * perPage : start - index - page * perPage;\n }).filter((index) => index >= 0).flatMap(fn);\n return {\n contracts,\n getNextPageParam(lastPage, pages) {\n return lastPage?.length === perPage ? pages.length : void 0;\n }\n };\n}\n\n// src/hooks/contracts/useContractRead.ts\nimport { replaceEqualDeep as replaceEqualDeep2 } from \"@tanstack/react-query\";\nimport { deepEqual as deepEqual3, readContract } from \"@wagmi/core\";\nimport * as React17 from \"react\";\nfunction queryKey6({\n account,\n address,\n args,\n blockNumber,\n blockTag,\n chainId,\n functionName,\n scopeKey\n}) {\n return [\n {\n entity: \"readContract\",\n account,\n address,\n args,\n blockNumber,\n blockTag,\n chainId,\n functionName,\n scopeKey\n }\n ];\n}\nfunction queryFn6({ abi }) {\n return async ({\n queryKey: [\n { account, address, args, blockNumber, blockTag, chainId, functionName }\n ]\n }) => {\n if (!abi)\n throw new Error(\"abi is required\");\n if (!address)\n throw new Error(\"address is required\");\n return await readContract({\n account,\n address,\n args,\n blockNumber,\n blockTag,\n chainId,\n abi,\n functionName\n }) ?? null;\n };\n}\nfunction useContractRead({\n abi,\n address,\n account,\n args,\n blockNumber: blockNumberOverride,\n blockTag,\n cacheOnBlock = false,\n cacheTime,\n chainId: chainId_,\n enabled: enabled_ = true,\n functionName,\n isDataEqual,\n keepPreviousData,\n onError,\n onSettled,\n onSuccess,\n scopeKey,\n select,\n staleTime,\n structuralSharing = (oldData, newData) => deepEqual3(oldData, newData) ? oldData : replaceEqualDeep2(oldData, newData),\n suspense,\n watch\n} = {}) {\n const chainId = useChainId({ chainId: chainId_ });\n const { data: blockNumber_ } = useBlockNumber({\n chainId,\n enabled: watch || cacheOnBlock,\n scopeKey: watch || cacheOnBlock ? void 0 : \"idle\",\n watch\n });\n const blockNumber = blockNumberOverride ?? blockNumber_;\n const queryKey_ = React17.useMemo(\n () => queryKey6({\n account,\n address,\n args,\n blockNumber: cacheOnBlock ? blockNumber : void 0,\n blockTag,\n chainId,\n functionName,\n scopeKey\n }),\n [\n account,\n address,\n args,\n blockNumber,\n blockTag,\n cacheOnBlock,\n chainId,\n functionName,\n scopeKey\n ]\n );\n const enabled = React17.useMemo(() => {\n let enabled2 = Boolean(enabled_ && abi && address && functionName);\n if (cacheOnBlock)\n enabled2 = Boolean(enabled2 && blockNumber);\n return enabled2;\n }, [abi, address, blockNumber, cacheOnBlock, enabled_, functionName]);\n useInvalidateOnBlock({\n chainId,\n enabled: Boolean(enabled && watch && !cacheOnBlock),\n queryKey: queryKey_\n });\n return useQuery(\n queryKey_,\n queryFn6({\n abi\n }),\n {\n cacheTime,\n enabled,\n isDataEqual,\n keepPreviousData,\n select,\n staleTime,\n structuralSharing,\n suspense,\n onError,\n onSettled,\n onSuccess\n }\n );\n}\n\n// src/hooks/contracts/useContractReads.ts\nimport { replaceEqualDeep as replaceEqualDeep3 } from \"@tanstack/react-query\";\nimport { deepEqual as deepEqual4, readContracts as readContracts2 } from \"@wagmi/core\";\nimport * as React18 from \"react\";\nfunction queryKey7({\n allowFailure,\n blockNumber,\n blockTag,\n chainId,\n contracts,\n scopeKey\n}) {\n return [\n {\n entity: \"readContracts\",\n allowFailure,\n blockNumber,\n blockTag,\n chainId,\n scopeKey,\n contracts: (contracts ?? []).map(({ address, args, chainId: chainId2, functionName }) => ({\n address,\n args,\n chainId: chainId2,\n functionName\n }))\n }\n ];\n}\nfunction queryFn7({ abis }) {\n return ({\n queryKey: [{ allowFailure, blockNumber, blockTag, contracts: contracts_ }]\n }) => {\n const contracts = contracts_.map((contract, i) => ({\n ...contract,\n abi: abis[i]\n }));\n return readContracts2({\n allowFailure,\n contracts,\n blockNumber,\n blockTag\n });\n };\n}\nfunction useContractReads({\n allowFailure: allowFailure_,\n blockNumber: blockNumberOverride,\n blockTag,\n cacheOnBlock = false,\n cacheTime,\n contracts,\n enabled: enabled_ = true,\n isDataEqual,\n keepPreviousData,\n onError,\n onSettled,\n onSuccess,\n scopeKey,\n select,\n staleTime,\n structuralSharing = (oldData, newData) => deepEqual4(oldData, newData) ? oldData : replaceEqualDeep3(oldData, newData),\n suspense,\n watch\n} = {}) {\n const allowFailure = allowFailure_ ?? true;\n const { data: blockNumber_ } = useBlockNumber({\n enabled: watch || cacheOnBlock,\n watch\n });\n const chainId = useChainId();\n const blockNumber = blockNumberOverride ?? blockNumber_;\n const queryKey_ = React18.useMemo(\n () => queryKey7({\n allowFailure,\n blockNumber: cacheOnBlock ? blockNumber : void 0,\n blockTag,\n chainId,\n contracts,\n scopeKey\n }),\n [\n allowFailure,\n blockNumber,\n blockTag,\n cacheOnBlock,\n chainId,\n scopeKey,\n contracts\n ]\n );\n const enabled = React18.useMemo(() => {\n let enabled2 = Boolean(\n enabled_ && contracts?.every(\n (x) => x.abi && x.address && x.functionName\n )\n );\n if (cacheOnBlock)\n enabled2 = Boolean(enabled2 && blockNumber);\n return enabled2;\n }, [blockNumber, cacheOnBlock, contracts, enabled_]);\n useInvalidateOnBlock({\n enabled: Boolean(enabled && watch && !cacheOnBlock),\n queryKey: queryKey_\n });\n const abis = (contracts ?? []).map(\n ({ abi }) => abi\n );\n return useQuery(queryKey_, queryFn7({ abis }), {\n cacheTime,\n enabled,\n isDataEqual,\n keepPreviousData,\n staleTime,\n select,\n structuralSharing,\n suspense,\n onError,\n onSettled,\n onSuccess\n });\n}\n\n// src/hooks/contracts/useContractWrite.ts\nimport { writeContract } from \"@wagmi/core\";\nimport { getSendTransactionParameters } from \"@wagmi/core/internal\";\nimport * as React19 from \"react\";\nfunction mutationKey6({\n address,\n abi,\n functionName,\n ...config\n}) {\n const {\n args,\n accessList,\n account,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n request,\n value\n } = config;\n return [\n {\n entity: \"writeContract\",\n address,\n args,\n abi,\n accessList,\n account,\n functionName,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n request,\n value\n }\n ];\n}\nfunction mutationFn6(config) {\n if (config.mode === \"prepared\") {\n if (!config.request)\n throw new Error(\"request is required\");\n return writeContract({\n mode: \"prepared\",\n request: config.request\n });\n }\n if (!config.address)\n throw new Error(\"address is required\");\n if (!config.abi)\n throw new Error(\"abi is required\");\n if (!config.functionName)\n throw new Error(\"functionName is required\");\n return writeContract({\n address: config.address,\n args: config.args,\n chainId: config.chainId,\n abi: config.abi,\n functionName: config.functionName,\n accessList: config.accessList,\n account: config.account,\n gas: config.gas,\n gasPrice: config.gasPrice,\n maxFeePerGas: config.maxFeePerGas,\n maxPriorityFeePerGas: config.maxPriorityFeePerGas,\n nonce: config.nonce,\n value: config.value\n });\n}\nfunction useContractWrite(config) {\n const { address, abi, args, chainId, functionName, mode, request } = config;\n const {\n accessList,\n account,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n value\n } = getSendTransactionParameters(config);\n const {\n data,\n error,\n isError,\n isIdle,\n isLoading,\n isSuccess,\n mutate,\n mutateAsync,\n reset,\n status,\n variables\n } = useMutation(\n mutationKey6({\n address,\n abi,\n functionName,\n chainId,\n mode,\n args,\n accessList,\n account,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n request,\n value\n }),\n mutationFn6,\n {\n onError: config.onError,\n onMutate: config.onMutate,\n onSettled: config.onSettled,\n onSuccess: config.onSuccess\n }\n );\n const write = React19.useMemo(() => {\n if (config.mode === \"prepared\") {\n if (!request)\n return void 0;\n return () => mutate({\n mode: \"prepared\",\n request: config.request,\n chainId: config.chainId\n });\n }\n return (overrideConfig) => mutate({\n address,\n args,\n abi,\n functionName,\n chainId,\n accessList,\n account,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n value,\n ...overrideConfig\n });\n }, [\n accessList,\n account,\n abi,\n address,\n args,\n chainId,\n config.chainId,\n config.mode,\n config.request,\n functionName,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n mutate,\n nonce,\n request,\n value\n ]);\n const writeAsync = React19.useMemo(() => {\n if (config.mode === \"prepared\") {\n if (!request)\n return void 0;\n return () => mutateAsync({\n mode: \"prepared\",\n request: config.request\n });\n }\n return (overrideConfig) => mutateAsync({\n address,\n args,\n abi,\n chainId,\n functionName,\n accessList,\n account,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n value,\n ...overrideConfig\n });\n }, [\n accessList,\n account,\n abi,\n address,\n args,\n chainId,\n config.mode,\n config.request,\n functionName,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n mutateAsync,\n nonce,\n request,\n value\n ]);\n return {\n data,\n error,\n isError,\n isIdle,\n isLoading,\n isSuccess,\n reset,\n status,\n variables,\n write,\n writeAsync\n };\n}\n\n// src/hooks/contracts/usePrepareContractWrite.ts\nimport { prepareWriteContract } from \"@wagmi/core\";\nimport { getCallParameters } from \"@wagmi/core/internal\";\nfunction queryKey8({\n accessList,\n account,\n activeChainId,\n args,\n address,\n blockNumber,\n blockTag,\n chainId,\n functionName,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n scopeKey,\n walletClientAddress,\n value\n}) {\n return [\n {\n entity: \"prepareContractTransaction\",\n accessList,\n account,\n activeChainId,\n address,\n args,\n blockNumber,\n blockTag,\n chainId,\n functionName,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n scopeKey,\n walletClientAddress,\n value\n }\n ];\n}\nfunction queryFn8({\n abi,\n walletClient\n}) {\n return ({\n queryKey: [\n {\n accessList,\n account,\n args,\n address,\n blockNumber,\n blockTag,\n chainId,\n functionName,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n value\n }\n ]\n }) => {\n if (!abi)\n throw new Error(\"abi is required\");\n if (!address)\n throw new Error(\"address is required\");\n if (!functionName)\n throw new Error(\"functionName is required\");\n return prepareWriteContract({\n abi,\n accessList,\n account,\n args,\n address,\n blockNumber,\n blockTag,\n chainId,\n functionName,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n walletClient,\n value\n });\n };\n}\nfunction usePrepareContractWrite({\n address,\n abi,\n functionName,\n chainId,\n args,\n cacheTime,\n enabled = true,\n scopeKey,\n staleTime,\n suspense,\n onError,\n onSettled,\n onSuccess,\n ...config\n} = {}) {\n const { chain: activeChain } = useNetwork();\n const { data: walletClient } = useWalletClient({ chainId });\n const {\n accessList,\n account,\n blockNumber,\n blockTag,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n value\n } = getCallParameters(config);\n const prepareContractWriteQuery = useQuery(\n queryKey8({\n accessList,\n account,\n activeChainId: activeChain?.id,\n address,\n args,\n blockNumber,\n blockTag,\n chainId,\n functionName,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n scopeKey,\n walletClientAddress: walletClient?.account.address,\n value\n }),\n queryFn8({\n abi,\n walletClient\n }),\n {\n cacheTime,\n enabled: Boolean(\n enabled && abi && address && functionName && walletClient\n ),\n staleTime,\n suspense,\n onError,\n onSettled,\n onSuccess\n }\n );\n return Object.assign(prepareContractWriteQuery, {\n config: {\n chainId,\n mode: \"prepared\",\n request: void 0,\n ...prepareContractWriteQuery.data\n }\n });\n}\n\n// src/hooks/contracts/useToken.ts\nimport { fetchToken } from \"@wagmi/core\";\nfunction queryKey9({\n address,\n chainId,\n formatUnits,\n scopeKey\n}) {\n return [{ entity: \"token\", address, chainId, formatUnits, scopeKey }];\n}\nfunction queryFn9({\n queryKey: [{ address, chainId, formatUnits }]\n}) {\n if (!address)\n throw new Error(\"address is required\");\n return fetchToken({ address, chainId, formatUnits });\n}\nfunction useToken({\n address,\n chainId: chainId_,\n formatUnits = \"ether\",\n cacheTime,\n enabled = true,\n scopeKey,\n staleTime = 1e3 * 60 * 60 * 24,\n suspense,\n onError,\n onSettled,\n onSuccess\n} = {}) {\n const chainId = useChainId({ chainId: chainId_ });\n return useQuery(\n queryKey9({ address, chainId, formatUnits, scopeKey }),\n queryFn9,\n {\n cacheTime,\n enabled: Boolean(enabled && address),\n staleTime,\n suspense,\n onError,\n onSettled,\n onSuccess\n }\n );\n}\n\n// src/hooks/ens/useEnsAddress.ts\nimport { fetchEnsAddress } from \"@wagmi/core\";\nfunction queryKey10({ chainId, name, scopeKey }) {\n return [{ entity: \"ensAddress\", chainId, name, scopeKey }];\n}\nfunction queryFn10({\n queryKey: [{ chainId, name }]\n}) {\n if (!name)\n throw new Error(\"name is required\");\n return fetchEnsAddress({ chainId, name });\n}\nfunction useEnsAddress({\n cacheTime,\n chainId: chainId_,\n enabled = true,\n name,\n scopeKey,\n staleTime = 1e3 * 60 * 60 * 24,\n suspense,\n onError,\n onSettled,\n onSuccess\n} = {}) {\n const chainId = useChainId({ chainId: chainId_ });\n return useQuery(queryKey10({ chainId, name, scopeKey }), queryFn10, {\n cacheTime,\n enabled: Boolean(enabled && chainId && name),\n staleTime,\n suspense,\n onError,\n onSettled,\n onSuccess\n });\n}\n\n// src/hooks/ens/useEnsAvatar.ts\nimport { fetchEnsAvatar } from \"@wagmi/core\";\nfunction queryKey11({ name, chainId, scopeKey }) {\n return [{ entity: \"ensAvatar\", name, chainId, scopeKey }];\n}\nfunction queryFn11({\n queryKey: [{ name, chainId }]\n}) {\n if (!name)\n throw new Error(\"name is required\");\n return fetchEnsAvatar({ name, chainId });\n}\nfunction useEnsAvatar({\n cacheTime,\n chainId: chainId_,\n enabled = true,\n name,\n scopeKey,\n staleTime = 1e3 * 60 * 60 * 24,\n suspense,\n onError,\n onSettled,\n onSuccess\n} = {}) {\n const chainId = useChainId({ chainId: chainId_ });\n return useQuery(queryKey11({ name, chainId, scopeKey }), queryFn11, {\n cacheTime,\n enabled: Boolean(enabled && name && chainId),\n staleTime,\n suspense,\n onError,\n onSettled,\n onSuccess\n });\n}\n\n// src/hooks/ens/useEnsName.ts\nimport { fetchEnsName } from \"@wagmi/core\";\nfunction queryKey12({\n address,\n chainId,\n scopeKey\n}) {\n return [{ entity: \"ensName\", address, chainId, scopeKey }];\n}\nfunction queryFn12({\n queryKey: [{ address, chainId }]\n}) {\n if (!address)\n throw new Error(\"address is required\");\n return fetchEnsName({ address, chainId });\n}\nfunction useEnsName({\n address,\n cacheTime,\n chainId: chainId_,\n enabled = true,\n scopeKey,\n staleTime = 1e3 * 60 * 60 * 24,\n suspense,\n onError,\n onSettled,\n onSuccess\n} = {}) {\n const chainId = useChainId({ chainId: chainId_ });\n return useQuery(queryKey12({ address, chainId, scopeKey }), queryFn12, {\n cacheTime,\n enabled: Boolean(enabled && address && chainId),\n staleTime,\n suspense,\n onError,\n onSettled,\n onSuccess\n });\n}\n\n// src/hooks/ens/useEnsResolver.ts\nimport { fetchEnsResolver } from \"@wagmi/core\";\nfunction queryKey13({ chainId, name, scopeKey }) {\n return [\n { entity: \"ensResolver\", chainId, name, scopeKey, persist: false }\n ];\n}\nfunction queryFn13({\n queryKey: [{ chainId, name }]\n}) {\n if (!name)\n throw new Error(\"name is required\");\n return fetchEnsResolver({ chainId, name });\n}\nfunction useEnsResolver({\n chainId: chainId_,\n name,\n enabled = true,\n scopeKey,\n suspense,\n onError,\n onSettled,\n onSuccess\n} = {}) {\n const chainId = useChainId({ chainId: chainId_ });\n return useQuery(queryKey13({ chainId, name, scopeKey }), queryFn13, {\n cacheTime: 0,\n enabled: Boolean(enabled && chainId && name),\n suspense,\n onError,\n onSettled,\n onSuccess\n });\n}\n\n// src/hooks/transactions/usePrepareSendTransaction.ts\nimport { prepareSendTransaction } from \"@wagmi/core\";\nfunction queryKey14({\n accessList,\n account,\n activeChainId,\n chainId,\n data,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value,\n scopeKey,\n walletClientAddress\n}) {\n return [\n {\n entity: \"prepareSendTransaction\",\n activeChainId,\n accessList,\n account,\n chainId,\n data,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value,\n scopeKey,\n walletClientAddress\n }\n ];\n}\nfunction queryFn14({ walletClient }) {\n return ({\n queryKey: [\n {\n accessList,\n account,\n chainId,\n data,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value\n }\n ]\n }) => {\n if (!to)\n throw new Error(\"to is required\");\n return prepareSendTransaction({\n accessList,\n account,\n chainId,\n data,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value,\n walletClient\n });\n };\n}\nfunction usePrepareSendTransaction({\n accessList,\n account,\n chainId,\n cacheTime,\n data,\n enabled = true,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n scopeKey,\n staleTime,\n suspense,\n to,\n value,\n onError,\n onSettled,\n onSuccess\n} = {}) {\n const { chain: activeChain } = useNetwork();\n const { data: walletClient } = useWalletClient({ chainId });\n const prepareSendTransactionQuery = useQuery(\n queryKey14({\n accessList,\n activeChainId: activeChain?.id,\n account,\n chainId,\n data,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n scopeKey,\n to,\n value,\n walletClientAddress: walletClient?.account.address\n }),\n queryFn14({ walletClient }),\n {\n cacheTime,\n enabled: Boolean(enabled && walletClient && to),\n staleTime,\n suspense,\n onError,\n onSettled,\n onSuccess\n }\n );\n return Object.assign(prepareSendTransactionQuery, {\n config: {\n mode: \"prepared\",\n ...prepareSendTransactionQuery.isSuccess ? prepareSendTransactionQuery.data : void 0\n }\n });\n}\n\n// src/hooks/transactions/useSendTransaction.ts\nimport { sendTransaction } from \"@wagmi/core\";\nimport * as React20 from \"react\";\nvar mutationKey7 = (args) => [{ entity: \"sendTransaction\", ...args }];\nvar mutationFn7 = ({\n accessList,\n account,\n chainId,\n data,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n mode,\n nonce,\n to,\n value\n}) => {\n if (!to)\n throw new Error(\"to is required.\");\n return sendTransaction({\n accessList,\n account,\n chainId,\n data,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n mode,\n nonce,\n to,\n value\n });\n};\nfunction useSendTransaction({\n accessList,\n account,\n chainId,\n data: data_,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n mode,\n nonce,\n to,\n value,\n onError,\n onMutate,\n onSettled,\n onSuccess\n} = {}) {\n const {\n data,\n error,\n isError,\n isIdle,\n isLoading,\n isSuccess,\n mutate,\n mutateAsync,\n reset,\n status,\n variables\n } = useMutation(\n mutationKey7({\n accessList,\n account,\n chainId,\n data: data_,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n mode,\n nonce,\n to,\n value\n }),\n mutationFn7,\n {\n onError,\n onMutate,\n onSettled,\n onSuccess\n }\n );\n const sendTransaction2 = React20.useCallback(\n (args) => mutate({\n chainId,\n mode,\n ...args || {\n accessList,\n account,\n chainId,\n data: data_,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n mode,\n nonce,\n value,\n to\n }\n }),\n [\n accessList,\n account,\n chainId,\n data_,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n mode,\n mutate,\n nonce,\n to,\n value\n ]\n );\n const sendTransactionAsync = React20.useCallback(\n (args) => mutateAsync({\n chainId,\n mode,\n ...args || {\n accessList,\n account,\n chainId,\n data: data_,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n mode,\n nonce,\n value,\n to\n }\n }),\n [\n accessList,\n account,\n chainId,\n data_,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n mode,\n mutateAsync,\n nonce,\n to,\n value\n ]\n );\n return {\n data,\n error,\n isError,\n isIdle,\n isLoading,\n isSuccess,\n reset,\n sendTransaction: mode === \"prepared\" && !to ? void 0 : sendTransaction2,\n sendTransactionAsync: mode === \"prepared\" && !to ? void 0 : sendTransactionAsync,\n status,\n variables\n };\n}\n\n// src/hooks/transactions/useTransaction.ts\nimport { fetchTransaction } from \"@wagmi/core\";\nfunction queryKey15({ chainId, hash, scopeKey }) {\n return [{ entity: \"transaction\", chainId, hash, scopeKey }];\n}\nfunction queryFn15({\n queryKey: [{ chainId, hash }]\n}) {\n if (!hash)\n throw new Error(\"hash is required\");\n return fetchTransaction({ chainId, hash });\n}\nfunction useTransaction({\n cacheTime = 0,\n chainId: chainId_,\n enabled = true,\n hash,\n scopeKey,\n staleTime,\n suspense,\n onError,\n onSettled,\n onSuccess\n} = {}) {\n const chainId = useChainId({ chainId: chainId_ });\n return useQuery(queryKey15({ chainId, hash, scopeKey }), queryFn15, {\n cacheTime,\n enabled: Boolean(enabled && hash),\n staleTime,\n suspense,\n onError,\n onSettled,\n onSuccess\n });\n}\n\n// src/hooks/transactions/useWaitForTransaction.ts\nimport { waitForTransaction } from \"@wagmi/core\";\nfunction queryKey16({\n confirmations,\n chainId,\n hash,\n scopeKey,\n timeout\n}) {\n return [\n {\n entity: \"waitForTransaction\",\n confirmations,\n chainId,\n hash,\n scopeKey,\n timeout\n }\n ];\n}\nfunction queryFn16({\n onReplaced\n}) {\n return ({\n queryKey: [{ chainId, confirmations, hash, timeout }]\n }) => {\n if (!hash)\n throw new Error(\"hash is required\");\n return waitForTransaction({\n chainId,\n confirmations,\n hash,\n onReplaced,\n timeout\n });\n };\n}\nfunction useWaitForTransaction({\n chainId: chainId_,\n confirmations,\n hash,\n timeout,\n cacheTime,\n enabled = true,\n scopeKey,\n staleTime,\n suspense,\n onError,\n onReplaced,\n onSettled,\n onSuccess\n} = {}) {\n const chainId = useChainId({ chainId: chainId_ });\n return useQuery(\n queryKey16({ chainId, confirmations, hash, scopeKey, timeout }),\n queryFn16({ onReplaced }),\n {\n cacheTime,\n enabled: Boolean(enabled && hash),\n staleTime,\n suspense,\n onError,\n onSettled,\n onSuccess\n }\n );\n}\n\n// src/hooks/transactions/useWatchPendingTransactions.ts\nimport * as React21 from \"react\";\nfunction useWatchPendingTransactions({\n chainId: chainId_,\n enabled = true,\n listener\n}) {\n const chainId = useChainId({ chainId: chainId_ });\n const publicClient = usePublicClient({ chainId });\n const webSocketPublicClient = useWebSocketPublicClient({ chainId });\n React21.useEffect(() => {\n if (!enabled)\n return;\n const publicClient_ = webSocketPublicClient ?? publicClient;\n return publicClient_.watchPendingTransactions({\n onTransactions: listener\n });\n }, [enabled, listener, publicClient, webSocketPublicClient]);\n}\n\n// src/index.ts\nimport {\n ChainMismatchError,\n ChainNotConfiguredError,\n Connector,\n ConnectorAlreadyConnectedError,\n ConnectorNotFoundError,\n ConfigChainsNotFound,\n SwitchChainNotSupportedError,\n configureChains,\n createStorage as createStorage2,\n deepEqual as deepEqual5,\n deserialize,\n erc20ABI,\n erc721ABI,\n erc4626ABI,\n mainnet,\n readContracts as readContracts3,\n sepolia,\n serialize\n} from \"@wagmi/core\";\nexport {\n ChainMismatchError,\n ChainNotConfiguredError,\n ConfigChainsNotFound,\n Connector,\n ConnectorAlreadyConnectedError,\n ConnectorNotFoundError,\n Context,\n SwitchChainNotSupportedError,\n WagmiConfig,\n configureChains,\n createConfig,\n createStorage2 as createStorage,\n deepEqual5 as deepEqual,\n deserialize,\n erc20ABI,\n erc4626ABI,\n erc721ABI,\n mainnet,\n paginatedIndexesConfig,\n readContracts3 as readContracts,\n sepolia,\n serialize,\n useAccount,\n useBalance,\n useBlockNumber,\n useChainId,\n useConfig,\n useConnect,\n useContractEvent,\n useContractInfiniteReads,\n useContractRead,\n useContractReads,\n useContractWrite,\n useDisconnect,\n useEnsAddress,\n useEnsAvatar,\n useEnsName,\n useEnsResolver,\n useFeeData,\n useInfiniteQuery,\n useMutation,\n useNetwork,\n usePrepareContractWrite,\n usePrepareSendTransaction,\n usePublicClient,\n useQuery,\n useQueryClient2 as useQueryClient,\n useSendTransaction,\n useSignMessage,\n useSignTypedData,\n useSwitchNetwork,\n useToken,\n useTransaction,\n useWaitForTransaction,\n useWalletClient,\n useWatchPendingTransactions,\n useWebSocketPublicClient\n};\n","function shouldThrowError(_useErrorBoundary, params) {\n // Allow useErrorBoundary function to override throwing behavior on a per-error basis\n if (typeof _useErrorBoundary === 'function') {\n return _useErrorBoundary(...params);\n }\n\n return !!_useErrorBoundary;\n}\n\nexport { shouldThrowError };\n//# sourceMappingURL=utils.mjs.map\n"],"names":["n","necc","hmac","sha256","necc__namespace","Object","create","keys","forEach","k","d","getOwnPropertyDescriptor","defineProperty","get","enumerable","e","default","freeze","utils","hmacSha256Sync","key","msgs","concatBytes","sha256Sync","normalizePrivateKey","_normalizePrivateKey","BN32_N","Uint8Array","cmpBN32","data1","data2","i","isTweak","tweak","length","isSignature","signature","subarray","isHash","h","isExtraData","undefined","hexToNumber","hex","BigInt","normalizeScalar","scalar","num","Number","isSafeInteger","bytesToHex","_privateAdd","privateKey","p","t","add","_bigintTo32Bytes","mod","CURVE","isValidPrivateKey","_privateSub","sub","_privateNegate","not","_pointAddScalar","isCompressed","P","Point","fromHex","Q","BASE","multiplyAndAddUnsafe","toRawBytes","_pointMultiply","multiply","assumeCompression","compressed","isPointCompressed","throwToNull","fn","_isPoint","xOnly","isPoint","isPrivate","isXOnlyPoint","xOnlyPointFromPoint","slice","pointFromScalar","sk","getPublicKey","exports","pointAdd","a","b","A","B","equals","negate","pointAddScalar","pointCompress","pointMultiply","privateAdd","privateNegate","privateSub","sign","signSync","der","extraEntropy","signSchnorr","Buffer","alloc","schnorr","verify","strict","verifySchnorr","verifySync","xOnlyPointAddTweak","parity","xOnlyPubkey","xOnlyPointFromScalar","number","bool","bytes","lengths","constructor","name","includes","hash","outputLen","blockLen","exists","instance","checkFinished","destroyed","finished","output","out","min","value","SHA2","_assert_js_1","utils_js_1","Hash","padOffset","isLE","pos","buffer","view","createView","update","data","len","toBytes","take","Math","dataView","process","set","roundClean","digestInto","fill","setBigUint64","byteOffset","_32n","_u32_max","wh","wl","l","setUint32","oview","outLen","state","digest","res","destroy","_cloneInto","to","add5L","add5H","add4H","add4L","add3H","add3L","rotlBL","rotlBH","rotlSL","rotlSH","rotr32L","rotr32H","rotrBL","rotrBH","rotrSL","rotrSH","shrSL","shrSH","toBig","split","fromBig","U32_MASK64","le","lst","Ah","Uint32Array","Al","_l","s","_h","Bh","Bl","Cl","low","Ch","Dl","Dh","El","Eh","crypto","globalThis","HMAC","_key","iHash","pad","oHash","buf","getPrototypeOf","message","ripemd160","RIPEMD160","_sha2_js_1","Rho","Id","from","_","Pi","map","idxL","idxR","j","push","shifts","shiftsL","idx","shiftsR","Kl","Kr","rotl","word","shift","f","group","x","y","z","BUF","h0","h1","h2","h3","h4","offset","getUint32","al","ar","bl","br","cl","cr","dl","dr","el","er","rGroup","hbl","hbr","rl","rr","sl","sr","tl","tr","wrapConstructor","sha1","Chi","c","Maj","IV","SHA1_W","SHA1","C","D","E","F","K","T","sha224","SHA256_K","SHA256_W","SHA256","G","H","W15","W2","s0","rotr","s1","T1","T2","SHA224","sha384","sha512_256","sha512_224","sha512","SHA512","_u64_js_1","SHA512_Kh","SHA512_Kl","SHA512_W_H","SHA512_W_L","Fh","Fl","Gh","Gl","Hh","Hl","W15h","W15l","s0h","s0l","W2h","W2l","s1h","s1l","SUMl","SUMh","sigma1h","sigma1l","CHIh","CHIl","T1ll","T1h","T1l","sigma0h","sigma0l","MAJh","MAJl","All","SHA512_224","SHA512_256","SHA384","randomBytes","wrapXOFConstructorWithOpts","wrapConstructorWithOpts","checkOpts","utf8ToBytes","asyncLoop","nextTick","hexToBytes","u32","u8","crypto_1","isBytes","arr","byteLength","floor","DataView","hexes","Array","toString","padStart","asciis","_0","_9","_A","_F","_a","_f","asciiToBase16","char","hl","array","ai","hi","n1","charCodeAt","n2","iters","tick","cb","ts","Date","now","diff","str","TextEncoder","encode","arrays","sum","clone","toStr","defaults","opts","call","assign","hashCons","hashC","msg","tmp","bytesLength","getRandomValues","_sha256Sync","_hmacSha256Sync","getSharedSecret","recoverPublicKey","Signature","nodeCrypto","_0n","_1n","_2n","_3n","_8n","Gx","Gy","beta","divNearest","endo","splitScalar","a1","b1","a2","POW_2_128","c1","b2","c2","k1","k2","k1neg","k2neg","weierstrass","x2","x3","USE_ENDOMORPHISM","ShaError","Error","assertJacPoint","other","JacobianPoint","fromAffine","ZERO","toAffineBatch","points","toInv","invertBatch","nums","scratch","inverted","invert","reduce","acc","reduceRight","toAffine","normalizeZ","X1","Y1","Z1","X2","Y2","Z2","Z1Z1","Z2Z2","U1","U2","S1","S2","double","x1b","X3","Y3","r","HH","HHH","V","subtract","multiplyUnsafe","P0","k1p","k2p","precomputeWindow","W","windows","base","window","wNAF","affinePoint","_WINDOW_SIZE","precomputes","pointPrecomputes","windowSize","mask","maxNumber","shiftBy","wbits","offset2","abs","cond1","cond2","constTimeNegate","point","fake","f1p","f2p","invZ","is0","iz1","iz2","iz3","ax","ay","zz","condition","item","neg","WeakMap","_setWindowSize","delete","hasEvenY","fromCompressedHex","isShort","bytesToNumber","isValidFieldElement","sqrtMod","_6n","_11n","_22n","_23n","_44n","_88n","b3","b6","b9","b11","b22","b44","b88","b176","b220","b223","t1","t2","rt","pow2","xc","isYOdd","assertValidity","fromUncompressedHex","fieldLen","ensureBytes","header","fromPrivateKey","fromSignature","msgHash","recovery","normalizeSignature","truncateHash","radj","rinv","u1","u2","prefix","R","numTo32bStr","toHex","toHexX","toRawX","left","aP","bQ","sliceDER","parseInt","parseDERInt","fromCompact","fromDER","parseDERSignature","sBytes","rBytesLeft","isWithinCurveOrder","hasHighS","HALF","normalizeS","toDERRawBytes","toDERHex","sHex","numberToHexUnpadded","rHex","sHexL","rHexL","sLen","rLen","toCompactRawBytes","toCompactHex","every","result","v","uint8a","POW_2_256","numTo32b","byte","isNaN","power","modulo","u","q","m","gcd","truncateOnly","bits2int_2","delta","groupLen","HmacDrbg","hashLen","qByteLen","counter","values","hmacSha256","hmacSync","checkSync","incr","reseed","seed","reseedSync","generate","generateSync","kmdToSig","kBytes","lowS","kinv","sig","normalizePublicKey","publicKey","error","isProbPub","bits2int","initSigArgs","seedArgs","bits2octets","z1","z2","finalizeSig","recSig","recovered","canonical","hashed","privKey","drbg","privateA","publicB","vopts","schnorrChallengeFinalize","ch","sinv","SchnorrSignature","InternalSchnorrSignature","auxRand","getScalar","px","rand","priv","initNonce","t0h","finalizeNonce","k0h","k0","rx","calc","tag","taggedHash","TAGS","aux","nonce","challenge","schnorrVerify","calcSync","taggedHashSync","schnorrVerifySync","schnorrSign","initSchnorrVerify","raw","finalizeSchnorrVerify","node","web","self","TAGGED_HASH_PREFIXES","hashToPrivateKey","randomPrivateKey","precompute","cached","messages","subtle","createHash","ckey","importKey","createHmac","tagP","tagH","_JacobianPoint","defineProperties","configurable","val","__global__","g","__globalThis__","fetch","DOMException","prototype","global","support","searchParams","iterable","Symbol","blob","Blob","formData","arrayBuffer","viewClasses","isArrayBufferView","ArrayBuffer","isView","obj","indexOf","normalizeName","String","test","toLowerCase","normalizeValue","iteratorFor","items","iterator","next","done","Headers","headers","append","isArray","getOwnPropertyNames","consumed","body","bodyUsed","Promise","reject","fileReaderReady","reader","resolve","onload","onerror","readBlobAsArrayBuffer","FileReader","promise","readAsArrayBuffer","bufferClone","Body","_initBody","_bodyInit","_bodyText","isPrototypeOf","_bodyBlob","FormData","_bodyFormData","URLSearchParams","_bodyArrayBuffer","type","rejected","then","text","readAsText","readArrayBufferAsText","chars","fromCharCode","join","decode","json","JSON","parse","oldValue","has","hasOwnProperty","callback","thisArg","entries","methods","Request","input","options","method","upcased","url","credentials","mode","signal","toUpperCase","referrer","cache","reParamSearch","replace","getTime","reQueryString","form","trim","decodeURIComponent","Response","bodyInit","status","ok","statusText","response","redirectStatuses","redirect","location","err","stack","init","request","aborted","xhr","XMLHttpRequest","abortXhr","abort","rawHeaders","getAllResponseHeaders","preProcessedHeaders","substr","line","parts","responseURL","responseText","setTimeout","ontimeout","onabort","open","fixUrl","href","withCredentials","responseType","setRequestHeader","addEventListener","onreadystatechange","readyState","removeEventListener","send","polyfill","ponyfill","ctx","module","int_1","writeUint16BE","writeUint16LE","readInt32BE","readUint32BE","readInt32LE","readUint32LE","writeUint32BE","writeUint32LE","writeUint64BE","writeUint64LE","readInt16BE","readUint16BE","readInt16LE","readUint16LE","writeInt16BE","writeInt16LE","writeInt32BE","writeInt32LE","readInt64BE","lo","readUint64BE","readInt64LE","readUint64LE","writeInt64BE","writeInt64LE","readUintBE","bitLength","mul","readUintLE","writeUintBE","div","writeUintLE","readFloat32BE","getFloat32","readFloat32LE","readFloat64BE","getFloat64","readFloat64LE","writeFloat32BE","setFloat32","writeFloat32LE","writeFloat64BE","setFloat64","writeFloat64LE","binary_1","wipe_1","streamXOR","src","dst","nonceInplaceCounterLength","counterLength","nc","block","core","j4","j5","j6","j7","j8","j9","j10","j11","j12","j13","j14","j15","x0","x1","x4","x5","x6","x7","x8","x9","x10","x11","x12","x13","x14","x15","incrementCounter","carry","wipe","stream","chacha_1","poly1305_1","constant_time_1","ZEROS","ChaCha20Poly1305","nonceLength","tagLength","seal","plaintext","associatedData","authKey","resultLength","_authenticate","sealed","calculatedTag","equal","clean","tagOut","ciphertext","Poly1305","compare","select","subject","resultIfOne","resultIfZero","lessOrEqual","isSerializableHash","saveState","restoreState","cleanSavedState","hmac_1","HKDF","salt","info","_counter","_hash","_info","okm","_hmac","_buffer","digestLength","_bufpos","_fillBuffer","ctr","reset","finish","expand","hash_1","_finished","_inner","_outer","blockSize","_innerKeyedState","_outerKeyedState","savedState","imul","isInteger","isFinite","MAX_SAFE_INTEGER","DIGEST_LENGTH","_r","Uint16Array","_pad","_leftover","_fin","t0","t3","t4","t5","t6","t7","_blocks","mpos","hibit","h5","h6","h7","h8","h9","r0","r1","r2","r3","r4","r5","r6","r7","r8","r9","d0","d1","d2","d3","d4","d5","d6","d7","d8","d9","mac","macpos","want","oneTimeAuth","randomStringForEntropy","randomString","randomUint32","defaultRandomSource","system_1","prng","SystemRandomSource","ALPHANUMERIC","charset","charsLen","maxByte","ceil","randomByte","charAt","bits","log","LN2","BrowserRandomSource","isAvailable","isInstantiated","browserCrypto","msCrypto","_crypto","NodeRandomSource","browser_1","node_1","_source","_state","Int32Array","_temp","_bufferLength","_bytesHashed","_initState","dataLength","dataPos","hashBlocks","bytesHashed","padLength","bufferLength","w","random_1","gf","Float64Array","_121665","car25519","o","sel25519","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","b0","b4","b5","b7","b8","b10","b12","b13","b14","b15","scalarMult","unpack25519","x32","x16","inv25519","inp","pack25519","generateKeyPairFromSeed","secretKey","mySecretKey","theirPublicKey","rejectZero","zeros","tslib_1","__exportStar","ONE_THOUSAND","ONE_HUNDRED","ONE_YEAR","FOUR_WEEKS","THREE_WEEKS","TWO_WEEKS","ONE_WEEK","THIRTY_DAYS","SEVEN_DAYS","FIVE_DAYS","THREE_DAYS","ONE_DAY","TWENTY_FOUR_HOURS","TWELVE_HOURS","SIX_HOURS","THREE_HOURS","ONE_HOUR","SIXTY_MINUTES","THIRTY_MINUTES","TEN_MINUTES","FIVE_MINUTES","ONE_MINUTE","SIXTY_SECONDS","THIRTY_SECONDS","TEN_SECONDS","FIVE_SECONDS","ONE_SECOND","IWatch","fromMiliseconds","toMiliseconds","constants_1","seconds","miliseconds","delay","timeout","Watch","timestamps","Map","start","label","started","stop","timestamp","elapsed","__spreadArray","pack","arguments","concat","BrowserInfo","version","os","NodeInfo","platform","SearchBotDeviceInfo","bot","BotInfo","ReactNativeInfo","SEARCHBOT_OS_REGEX","userAgentRules","operatingSystemRules","RELAY_JSONRPC","waku","publish","batchPublish","subscribe","batchSubscribe","subscription","unsubscribe","batchUnsubscribe","irn","iridium","On","accounts","chains","L","U","wn","An","Un","_n","$n","$","jn","senderPublicKey","iv","Ie","symKey","Cn","Z","encoded","Dn","Pe","receiverPublicKey","Vn","Mn","Te","getOwnPropertySymbols","kn","Kn","propertyIsEnumerable","Re","writable","we","N","reactNative","browser","unknown","ee","versions","$e","navigator","product","je","Fn","description","icons","qn","protocol","relayUrl","sdkVersion","auth","projectId","useOnCloseEvent","Me","De","Platform","OS","Version","document","parseUserAgent","ua","matchedRule","matched","regex","uaMatch","exec","match","versionParts","createVersionParts","count","ii","REQUIRED_VERSION_PARTS","detectOS","searchBotMatch","userAgent","isNode","Ve","host","O","filter","Bn","fromEntries","Yn","Xn","clearTimeout","et","ne","startsWith","nt","tt","id","topic","ot","st","it","S","Set","ct","wcDeepLink","endsWith","Linking","openURL","console","at","relay","ut","lt","Fe","dt","ft","He","pt","mt","substring","qe","yt","Ge","ht","Et","vt","getOwnPropertyDescriptors","We","gt","Nt","Be","bt","Ot","St","sn","events","te","Ze","re","Pt","INVALID_METHOD","code","INVALID_EVENT","INVALID_UPDATE_REQUEST","INVALID_EXTEND_REQUEST","INVALID_SESSION_SETTLE_REQUEST","UNAUTHORIZED_METHOD","UNAUTHORIZED_EVENT","UNAUTHORIZED_UPDATE_REQUEST","UNAUTHORIZED_EXTEND_REQUEST","USER_REJECTED","USER_REJECTED_CHAINS","USER_REJECTED_METHODS","USER_REJECTED_EVENTS","UNSUPPORTED_CHAINS","UNSUPPORTED_METHODS","UNSUPPORTED_EVENTS","UNSUPPORTED_ACCOUNTS","UNSUPPORTED_NAMESPACE_KEY","USER_DISCONNECTED","SESSION_SETTLEMENT_FAILED","WC_METHOD_UNSUPPORTED","Tt","NOT_INITIALIZED","NO_MATCHING_KEY","RESTORE_WILL_OVERRIDE","RESUBSCRIBED","MISSING_OR_INVALID","EXPIRED","UNKNOWN_TYPE","MISMATCHED_TOPIC","NON_CONFORMING_NAMESPACES","I","Rt","requiredNamespaces","namespaces","wt","URL","At","proposer","Ut","_t","oe","se","$t","Xe","cn","jt","Ct","Dt","Vt","Mt","kt","jsonrpc","Kt","Lt","Ye","xt","Je","Ft","Qe","an","Ht","qt","un","zt","max","strictUriEncode","decodeComponent","splitOnFirst","filterObject","isNullOrUndefined","encodeFragmentIdentifier","validateArrayFormatSeparator","encodeURIComponent","removeHash","hashStart","extract","queryStart","parseValue","parseNumbers","parseBooleans","query","sort","arrayFormat","arrayFormatSeparator","formatter","parserForArrayFormat","accumulator","isEncodedArray","newValue","arrayValue","ret","param","Boolean","keysSorter","stringify","object","shouldFilter","skipNull","skipEmptyString","encoderForArrayFormat","index","keyValueSep","objectCopy","parseUrl","url_","parseFragmentIdentifier","fragmentIdentifier","stringifyUrl","queryFromUrl","queryString","getHash","pick","exclude","exclusionFilter","getFromWindow","getFromWindowOrThrow","getLocalStorage","getLocalStorageOrThrow","getCrypto","getCryptoOrThrow","getLocation","getLocationOrThrow","getNavigator","getNavigatorOrThrow","getDocument","getDocumentOrThrow","window_getters_1","doc","loc","getWindowMetadataOfAny","args","metaTags","getElementsByTagName","attributes","getAttribute","target","attr","content","title","origin","getIcons","links","link","rel","absoluteHref","path","pathname","pop","finalPath","absoluteUrl","parser_1","keyPusher","selfSet","selfKeyVals","otherKeyVals","newKv","kv","getTx","psbt","globalMap","unsignedTx","getKeySet","keyVals","keyVal","combine","psbts","psbtToKeyVals","others","selfTx","selfGlobalSet","globalKeyVals","selfInputSets","inputKeyVals","selfOutputSets","outputKeyVals","otherTx","toBuffer","otherGlobalSet","otherInputSets","inputSet","otherOutputSets","outputSet","psbtFromKeyVals","globalMapKeyVals","typeFields_1","range","GlobalTypes","GLOBAL_XPUB","extendedPubkey","masterFingerprint","readUInt32LE","isHard","head","splitPath","allocUnsafe","copy","level","writeUInt32LE","expected","check","epk","mfp","isBuffer","canAddToArray","dupeSet","dupeString","UNSIGNED_TX","globalXpub","finalScriptSig","finalScriptWitness","nonWitnessUtxo","partialSig","porCommitment","sighashType","tapKeySig","tapLeafScript","tapMerkleRoot","tapScriptSig","witnessUtxo","tapTree","bip32Derivation","checkPubkey","redeemScript","tapBip32Derivation","tapInternalKey","witnessScript","globals","makeChecker","inputs","makeConverter","InputTypes","BIP32_DERIVATION","REDEEM_SCRIPT","WITNESS_SCRIPT","PARTIAL_SIG","TAP_BIP32_DERIVATION","TAP_INTERNAL_KEY","outputs","OutputTypes","FINAL_SCRIPTSIG","canAdd","currentData","newData","FINAL_SCRIPTWITNESS","NON_WITNESS_UTXO","pubkey","pSig","isDerSigWithSighash","POR_COMMITMENT","SIGHASH_TYPE","TAP_KEY_SIG","TAP_LEAF_SCRIPT","leafVersion","script","controlBlock","tScript","verBuf","TAP_MERKLE_ROOT","TAP_SCRIPT_SIG","leafHash","tSig","tools_1","varuint","WITNESS_UTXO","readUInt64LE","_offset","scriptLen","encodingLength","varintLen","writeUInt64LE","TAP_TREE","depth","leaves","tree","bufs","tapLeaf","of","isValidDERKey","TYPE_BYTE","isValidPubkey","pubkeyTypes","isValidBIP340Key","parent","nHashes","nHashesLen","leafHashes","nHashesBuf","keyValToBuffer","keyLen","valLen","keyVarIntLen","valVarIntLen","verifuint","reverseBuffer","keyValsToBuffer","buffers","checkUInt53","_number","writeUInt8","writeUInt16LE","first","readUInt8","readUInt16LE","convert","checkKeyBuffer","keyBuf","keyNum","txCount","unknownKeyVals","inputCount","outputCount","psbtFromBuffer","txGetter","varSlice","getKeyValue","checkEndOfKeyValPairs","isEnd","readUInt32BE","globalKeyIndex","hexKey","unsignedTxMaps","getInputOutputCounts","inputKeyIndex","outputKeyIndex","__export","psbtToBuffer","globalBuffer","keyValsOrEmptyToBuffer","inputBuffers","outputBuffers","writeUIntBE","sortKeyVals","keyValsFromMap","keyValMap","converterFactory","keyHexSet","converter","encodedKeyVals","keyHexes","combiner_1","utils_1","Psbt","tx","fromBase64","txFromBuffer","fromBuffer","results","toBase64","updateGlobal","updateData","updateInput","inputIndex","checkForInput","updateOutput","outputIndex","checkForOutput","addUnknownKeyValToGlobal","checkHasKey","getEnumLength","addUnknownKeyValToInput","addUnknownKeyValToOutput","addInput","inputData","addKeyVals","addInputAttributes","addOutput","outputData","addOutputAttributes","clearFinalizedInput","inputCheckUncleanFinalized","those","getTransaction","GLOBAL_TYPE_NAMES","INPUT_TYPE_NAMES","OUTPUT_TYPE_NAMES","throwForUpdateMaker","typeName","updateMaker","mainData","dupeCheckSet","checkKeyVal","enumLength","myenum","needScriptSig","needWitnessScript","scriptSigOK","witnessScriptOK","hasOneFinal","defaultVersionSetter","txBuf","defaultLocktimeSetter","locktime","chain","wrap","alphabet","digits","letter","separator","padding","chr","end","normalize","convertRadix","digit","digitBase","rounded","reverse","stringToBytes","bytesToString","utf8","bech32m","bech32","base58check","createBase58check","base58xmr","base58xrp","base58flickr","base58","base64urlnopad","base64url","base64","base32crockford","base32hex","base32","base16","assertNumber","radix2carry","convertRadix2","radix","radix2","revPadding","unsafeWrapper","apply","checksum","payload","newChecksum","oldChecksum","genBase58","abc","XMR_BLOCK_LEN","BECH_ALPHABET","POLYMOD_GENERATORS","bech32Polymod","pre","chk","bechChecksum","words","encodingConst","genBech32","encoding","ENCODING_CONST","_words","fromWords","toWords","fromWordsUnsafe","limit","lowered","sepIndex","lastIndexOf","decodeUnsafe","actualLength","decodeToBytes","TextDecoder","CODERS","coderTypeError","BIP32Factory","testecc_1","base_1","sha256_1","typeforce","wif","_bs58check","ecc","testEcc","UINT256_TYPE","BufferN","NETWORK_TYPE","compile","UInt8","bip32","public","UInt32","private","BITCOIN","messagePrefix","pubKeyHash","scriptHash","BIP32Path","UInt31","Bip32Signer","__D","__Q","lowR","extraData","writeUIntLE","BIP32","chainCode","network","__DEPTH","__INDEX","__PARENT_FINGERPRINT","parentFingerprint","identifier","hash160","fingerprint","isNeutered","neutered","fromPublicKeyLocal","toBase58","writeUInt32BE","bs58check","toWIF","derive","hd","isHardened","hmacSHA512","IL","IR","Ki","ki","fromPrivateKeyLocal","deriveHardened","derivePath","prevHd","indexStr","tweakFromPrivateKey","tweakFromPublicKey","pubKey","xOnlyPubKey","tweakedPublicKey","parityByte","hasOddY","tweakedPrivateKey","fromSeed","fromBase58","inString","fromPublicKey","ripemd160_1","sha512_1","sha256Hash","bip32_1","assert","xOnlyRes","ALPHABET","ALPHABET_MAP","polymodStep","prefixChk","inBits","outBits","maxV","getLibraryFromEncoding","__decode","LIMIT","uppered","wordChars","checksumFn","decodeRaw","payloadU8","both","string","bs58checkBase","toOutputScript","fromOutputScript","toBech32","toBase58Check","fromBech32","fromBase58Check","networks","payments","bscript","types_1","bech32_1","FUTURE_SEGWIT_VERSION_WARNING","address","unshift","tuple","Hash160bit","bitcoin","p2pkh","p2sh","p2wpkh","p2wsh","p2tr","_toFutureSegwitAddress","warn","toASM","decodeBase58","decodeBech32","lenR","lenS","Block","bufferutils_1","bcrypto","merkle_1","transaction_1","types","errorMerkleNoTxes","errorWitnessNotSegwit","prevHash","merkleRoot","witnessCommit","transactions","bufferReader","BufferReader","readInt32","readSlice","readUInt32","readTransaction","Transaction","nTransactions","readVarInt","getWitnessCommit","calculateTarget","calculateMerkleRoot","forWitness","Function","txesHaveWitnessCommit","hashes","transaction","rootHash","fastMerkleRoot","hash256","ins","witness","witnessCommits","outs","hasWitnessCommit","hasWitness","some","weight","headersOnly","allowWitness","getId","getUTCDate","date","setUTCSeconds","bufferWriter","BufferWriter","writeInt32","writeSlice","writeUInt32","txSize","checkTxRoots","__checkMerkleRoot","__checkWitnessCommit","checkProofOfWork","actualMerkleRoot","actualWitnessCommit","cloneBuffer","withCapacity","size","writeUInt64","writeVarInt","writeVarSlice","writeVector","vector","readUInt64","vi","readVarSlice","readVector","sha1_1","TapLeaf","TapBranch","TapSighash","TapTweak","getEccLib","initEccLib","_ECCLIB_CACHE","eccLib","tweakAddVectors","ecc_lib_1","digestFn","TypeError","right","testnet","regtest","REVERSE_OPS","OPS","OP_FALSE","OP_0","OP_PUSHDATA1","OP_PUSHDATA2","OP_PUSHDATA4","OP_1NEGATE","OP_RESERVED","OP_TRUE","OP_1","OP_2","OP_3","OP_4","OP_5","OP_6","OP_7","OP_8","OP_9","OP_10","OP_11","OP_12","OP_13","OP_14","OP_15","OP_16","OP_NOP","OP_VER","OP_IF","OP_NOTIF","OP_VERIF","OP_VERNOTIF","OP_ELSE","OP_ENDIF","OP_VERIFY","OP_RETURN","OP_TOALTSTACK","OP_FROMALTSTACK","OP_2DROP","OP_2DUP","OP_3DUP","OP_2OVER","OP_2ROT","OP_2SWAP","OP_IFDUP","OP_DEPTH","OP_DROP","OP_DUP","OP_NIP","OP_OVER","OP_PICK","OP_ROLL","OP_ROT","OP_SWAP","OP_TUCK","OP_CAT","OP_SUBSTR","OP_LEFT","OP_RIGHT","OP_SIZE","OP_INVERT","OP_AND","OP_OR","OP_XOR","OP_EQUAL","OP_EQUALVERIFY","OP_RESERVED1","OP_RESERVED2","OP_1ADD","OP_1SUB","OP_2MUL","OP_2DIV","OP_NEGATE","OP_ABS","OP_NOT","OP_0NOTEQUAL","OP_ADD","OP_SUB","OP_MUL","OP_DIV","OP_MOD","OP_LSHIFT","OP_RSHIFT","OP_BOOLAND","OP_BOOLOR","OP_NUMEQUAL","OP_NUMEQUALVERIFY","OP_NUMNOTEQUAL","OP_LESSTHAN","OP_GREATERTHAN","OP_LESSTHANOREQUAL","OP_GREATERTHANOREQUAL","OP_MIN","OP_MAX","OP_WITHIN","OP_RIPEMD160","OP_SHA1","OP_SHA256","OP_HASH160","OP_HASH256","OP_CODESEPARATOR","OP_CHECKSIG","OP_CHECKSIGVERIFY","OP_CHECKMULTISIG","OP_CHECKMULTISIGVERIFY","OP_NOP1","OP_NOP2","OP_CHECKLOCKTIMEVERIFY","OP_NOP3","OP_CHECKSEQUENCEVERIFY","OP_NOP4","OP_NOP5","OP_NOP6","OP_NOP7","OP_NOP8","OP_NOP9","OP_NOP10","OP_CHECKSIGADD","OP_PUBKEYHASH","OP_PUBKEY","OP_INVALIDOPCODE","op","tweakKey","tapTweakHash","tapleafHash","findScriptPath","toHashTree","rootHashFromPath","MAX_TAPTREE_DEPTH","LEAF_VERSION_TAPSCRIPT","buffer_1","isHashBranch","leaf","serializeScript","tapBranchHash","kj","ej","scriptTree","isTapleaf","leftPath","rightPath","tweakHash","p2data","networks_1","lazy","validate","maybe","arrayOf","prop","decompile","chunks","p2pk","p2ms","embed","embed_1","p2ms_1","p2pk_1","p2pkh_1","p2sh_1","p2wpkh_1","p2wsh_1","p2tr_1","_value","OP_INT_BASE","stacksEqual","pubkeys","signatures","isAcceptableSignature","isCanonicalScriptSignature","allowIncomplete","decoded","_chunks","_address","hash2","pkh","redeem","_redeem","lastChunk","nameParts","checkRedeem","countNonPushOnlyOPs","hasInput","richunks","isPushOnly","bip341_1","internalPubkey","anyOf","isTaptree","redeemVersion","_witness","_hashTree","hashTree","TAPLEAF_VERSION_MASK","tweakedKey","outputKey","controlBock","EMPTY_BUFFER","chunkHasUncompressedPubkey","chunk","_rchunks","toStack","wScript","bip174_1","address_1","bip371_1","psbtutils_1","DEFAULT_OPTS","maximumFeeRate","transactionFromBuffer","checkTxForDupeIns","checkTxInputCache","__CACHE","__TX","PsbtTransaction","__NON_WITNESS_UTXO_TX_CACHE","__NON_WITNESS_UTXO_BUF_CACHE","__TX_IN_CACHE","__UNSAFE_SIGN_NONSEGWIT","setVersion","dpew","setLocktime","txInputs","sequence","txOutputs","setMaximumFeeRate","satoshiPerByte","check32Bit","checkInputsForPartialSig","__EXTRACTED_TX","setInputSequence","addInputs","inputDatas","checkTaprootInputFields","checkInvalidP2WSH","txIn","addNonWitnessTxCache","__FEE","__FEE_RATE","addOutputs","outputDatas","checkTaprootOutputFields","extractTransaction","disableFeeCheck","isFinalized","checkFees","feeRate","getFeeRate","vsize","virtualSize","satoshis","toFixed","inputFinalizeGetAmts","getTxCacheValue","getFee","finalizeAllInputs","finalizeInput","finalScriptsFunc","isTaprootInput","_finalizeTaprootInput","_finalizeInput","finalizeTaprootInput","tapLeafHashToFinalize","tapScriptFinalizer","getFinalScripts","isP2SH","isP2WSH","isSegwit","getScriptFromInput","nonWitnessUtxoTx","nonWitnessUtxoTxFromCache","prevoutIndex","isP2WPKH","checkPartialSigSighashes","hashType","payment","witnessStackToScriptWitness","getInputType","getMeaningfulScript","getScriptFromUtxo","redeemFromFinalScriptSig","finalScript","decomp","lastItem","isPubkeyLike","redeemFromFinalWitnessScript","scriptWitnessToWitnessStack","classifyScript","meaningfulScript","inputHasPubkey","pubkeyInInput","pubkeyInScript","inputHasHDKey","root","derivationIsMine","bip32DerivationIsMine","outputHasPubkey","pubkeyInOutput","outputHasHDKey","validateSignaturesOfAllInputs","validator","validateSignaturesOfInput","final","validateSignaturesOfTaprootInput","_validateSignaturesOfInput","hashCache","scriptCache","sighashCache","mySigs","getHashForSig","checkScriptForPubkey","allHashses","toXOnly","getTaprootHashesForSig","getAllTaprootHashesForSig","allPublicKeys","getPrevoutTaprootKey","tapScriptPubkeys","tss","allHashes","pubicKey","flat","tapKeyHash","find","validationResultCount","trimTaprootSig","tapSig","tapSigHash","signAllInputsHD","hdKeyPair","sighashTypes","SIGHASH_ALL","signInputHD","signAllInputsHDAsync","promises","signInputHDAsync","all","signers","signer","signInput","signInputAsync","catch","signAllInputs","keyPair","signAllInputsAsync","_signTaprootInput","_signInput","signTaprootInput","tapLeafHashToSign","getHashAndSighashType","allowedSighashTypes","SIGHASH_DEFAULT","hashesForSig","checkTaprootHashesForSig","serializeTaprootSignature","_signTaprootInputAsync","_signInputAsync","signTaprootInputAsync","tapLeafHash","signaturePromises","tapKeySigPromise","tapScriptHashes","tapScriptSigPromises","tsh","checkCache","checkTxEmpty","hasSigs","neededSigs","sigs","pkey","compressPubkey","newKey","action","checkTaprootInputForSigs","checkInputForSig","scriptCheckerFactory","paymentScriptName","scriptPubKey","ioType","redeemScriptOutput","checkRedeemScript","checkWitnessScript","mustFinalize","scriptType","canFinalize","prepareFinalScripts","getPayment","pk","ps","forValidate","prevout","checkSighashTypeAllowed","prevoutHash","utxoHash","hashForWitnessV0","signingScript","hashForSignature","getScriptAndAmountFromUtxo","isP2TR","prevOuts","signingScripts","hashForWitnessV1","tapLeafHashes","sighashTypeToString","SIGHASH_ANYONECANPAY","SIGHASH_SINGLE","SIGHASH_NONE","getSignersFromHD","myDerivations","bipDv","txCache","newBuf","inputAmount","nwTx","vout","outputAmount","total","fee","isCanonicalPubKey","isP2SHScript","isP2SHP2WSH","isP2WSHScript","isP2PKH","isP2MS","isP2PK","tapTreeFromList","tapTreeToList","tweakInternalPubKey","isTaprootOutput","payments_1","psbtutils_2","instertLeavesInTree","instertLeafInTree","leftSide","rightSide","decodeSchnorrSignature","isTapLeafInTree","hasNonTaprootFields","io","findTapLeafToFinalize","leafHashToFinalize","canFinalizeLeaf","whiteListedHash","positionInScript","pubkeyPositionInScript","sighashTypeByte","newInputData","checkMixedTaprootAndNonTaprootInputFields","isBadTaprootUpdate","isBadNonTaprootUpdate","hasMixedFields","checkIfTapLeafInTree","newLeafsInTree","oldLeafsInTree","newOutputData","checkMixedTaprootAndNonTaprootOutputFields","checkTaprootScriptPubkey","scriptPubkey","getTaprootScripPubkey","_tapTreeToList","finalTapKeySig","getTapKeySigFromWithness","signatureBlocksAction","isPaymentFactory","pubkeyHash","pubkeyXOnly","decompiled","findIndex","element","signatureDecodeFn","whitelist","currentLen","pSigs","getPsigsFromInputFinalScripts","scriptItems","witnessItems","ops_1","opcode","isDefinedHashType","fromASM","bip66","pushdata","scriptNumber","scriptSignature","isPushOnlyChunk","asMinimalOP","chunksIsBuffer","singleChunkIsBuffer","bufferSize","accum","hashTypeMod","asm","chunkStr","Hex","maxLength","minimal","negative","toDER","bstart","hashTypeBuffer","script_1","varSliceSize","someScript","EMPTY_WITNESS","ONE","BLANK_OUTPUT","valueBuffer","_NO_STRICT","marker","flag","hasWitnesses","ADVANCED_TRANSACTION_MARKER","ADVANCED_TRANSACTION_FLAG","vinLen","voutLen","isCoinbaseHash","Hash256bit","isCoinbase","scriptSig","Null","DEFAULT_SEQUENCE","Satoshi","_ALLOW_WITNESS","vectorSize","someVector","newTx","txOut","inIndex","prevOutScript","ourScript","txTmp","__toBuffer","prevOutScripts","annex","outputType","SIGHASH_OUTPUT_MASK","isAnyoneCanPay","inputType","SIGHASH_INPUT_MASK","isNone","isSingle","hashPrevouts","hashAmounts","hashScriptPubKeys","hashSequences","hashOutputs","txOutsSize","spendType","sigMsgSize","sigMsgWriter","tbuffer","hashSequence","initialOffset","setInputScript","setWitness","oneOf","Buffer256bit","Network","ECPoint","Signer","ZERO32","EC_P","toJSON","SATOSHI_MAX","UInt53","quacksLike","basex","BASE_MAP","LEADER","FACTOR","iFACTOR","source","psz","zeroes","b256","it3","it4","vch","pbegin","pend","b58","it1","it2","repeat","Transform","StringDecoder","CipherBase","hashMode","_finalOrDigest","_final","__final","_decoder","_encoding","inherits","inputEnc","outputEnc","outData","_update","_toString","setAutoPadding","getAuthTag","setAuthTag","setAAD","_transform","_flush","enc","fin","write","MD5","sha","Base","alg","token","singleMatcher","multiMatcher","encodedURI","customDecodeURIComponent","replaceMap","tokens","decodeComponents","components","ECPairFactory","isOptions","ECPair","maybePoint","fromWIF","wifString","makeRandom","rng","ReflectOwnKeys","Reflect","ReflectApply","receiver","ownKeys","NumberIsNaN","EventEmitter","once","emitter","flags","errorListener","removeListener","resolver","eventTargetAgnosticAddListener","on","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","_getMaxListeners","that","_addListener","prepend","newListener","emit","existing","warned","onceWrapper","fired","wrapFn","_onceWrap","wrapped","bind","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","wrapListener","arg","setMaxListeners","getMaxListeners","doError","context","handler","listeners","addListener","prependListener","prependOnceListener","list","position","originalListener","spliceOne","off","removeAllListeners","rawListeners","eventNames","predicate","isArr","HashBase","_block","_blockSize","_blockOffset","_length","_finalized","throwIfNotStringOrBuffer","_digest","ctor","superCtor","super_","TempCtor","unescape","escape","base64_js_1","base64Url","fromByteArray","toByteArray","cryptoClients","SECP256K1Client","secp256k1_1","ES256K","secp","ecdsaSigFormatter_1","errors_1","derivePublicKey","signHash","signingInputHash","format","MissingParametersError","derSignature","derToJose","loadSignature","joseSignature","joseToDer","verifyHash","derSignatureBytes","algorithmName","__awaiter","_arguments","generator","fulfilled","step","adopt","hashSha256Async","hashSha256","decodeToken","tokenParts","allHeaders","headerValue","base64Url_1","getParamSize","keySize","paramBytesForAlg","ES256","ES384","ES512","getParamBytesForAlg","paramBytes","signatureAsBytes","countPadding","signatureBytes","maxEncodedParamLength","inputLength","seqLength","MAX_OCTET","rLength","rOffset","sLength","sOffset","rPadding","sPadding","rsBytes","shortLength","TAG_SEQ","TAG_INT","InvalidTokenError","__createBinding","desc","__esModule","TokenSigner","createUnsecuredToken","cryptoClients_1","createSigningInput","typ","signingAlgorithm","rawPrivateKey","tokenType","cryptoClient","expanded","customHeader","signingInput","createWithSignedHash","signAsync","TokenVerifier","rawPublicKey","verifyCompact","verifyExpanded","verifyAsync","async","performVerify","verified","isPlainObject","hashConstructor","ARRAY16","_b","_c","_d","fnF","fnG","fnH","fnI","M","cachedSetTimeout","cachedClearTimeout","currentQueue","defaultSetTimout","defaultClearTimeout","runTimeout","fun","queue","draining","queueIndex","cleanUpNextTick","drainQueue","run","runClearTimeout","Item","noop","env","argv","binding","cwd","chdir","dir","umask","generated","codes","createErrorType","NodeError","_Base","arg1","arg2","arg3","subClass","superClass","__proto__","thing","actual","search","determiner","this_len","objectKeys","Duplex","Readable","Writable","allowHalfOpen","readable","onend","_writableState","ended","onEndNT","highWaterMark","getBuffer","_readableState","PassThrough","debug","createReadableStreamAsyncIterator","ReadableState","EElistenerCount","Stream","OurUint8Array","debugUtil","debuglog","BufferList","destroyImpl","getHighWaterMark","_require","_require$codes","ERR_INVALID_ARG_TYPE","ERR_STREAM_PUSH_AFTER_EOF","ERR_METHOD_NOT_IMPLEMENTED","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","errorOrDestroy","kProxyEvents","isDuplex","objectMode","readableObjectMode","pipes","pipesCount","flowing","endEmitted","reading","sync","needReadable","emittedReadable","readableListening","resumeScheduled","paused","emitClose","autoDestroy","defaultEncoding","awaitDrain","readingMore","decoder","read","_read","_destroy","readableAddChunk","addToFront","skipChunkCheck","onEofChunk","emitReadable","emitReadable_","addChunk","maybeReadMore","howMuchToRead","flow","maybeReadMore_","updateReadableListening","resume","nReadingNextTick","resume_","fromList","clear","consume","endReadable","endReadableNT","wState","xs","_undestroy","undestroy","isPaused","setEncoding","nOrig","doRead","pipe","dest","pipeOpts","endFn","doEnd","stdout","stderr","unpipe","onunpipe","unpipeInfo","hasUnpiped","onclose","onfinish","ondrain","ondata","cleanedUp","needDrain","pause","event","dests","splice","ev","_this","asyncIterator","_fromList","ERR_MULTIPLE_CALLBACK","ERR_TRANSFORM_ALREADY_TRANSFORMING","ERR_TRANSFORM_WITH_LENGTH_0","afterTransform","_transformState","transforming","writecb","writechunk","rs","needTransform","writeencoding","transform","flush","prefinish","_write","err2","realHasInstance","CorkedRequest","entry","onCorkedFinish","corkReq","pendingcb","corkedRequestsFree","WritableState","internalUtil","deprecate","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_DESTROYED","ERR_STREAM_NULL_VALUES","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","nop","writableObjectMode","finalCalled","ending","noDecode","decodeStrings","writing","corked","bufferProcessing","onwrite","writelen","finishMaybe","errorEmitted","needFinish","bufferedRequest","clearBuffer","afterWrite","lastBufferedRequest","prefinished","bufferedRequestCount","writev","_writev","doWrite","holder","allBuffers","isBuf","callFinal","need","rState","current","hasInstance","writeOrBuffer","newChunk","last","cork","uncork","setDefaultEncoding","_Object$setPrototypeO","_defineProperty","kLastResolve","kLastReject","kError","kEnded","kLastPromise","kHandlePromise","kStream","createIterResult","readAndResolve","iter","onReadable","AsyncIteratorPrototype","ReadableStreamAsyncIteratorPrototype","setPrototypeOf","lastPromise","_this2","_Object$create","enumerableOnly","symbols","sym","inspect","_require2","custom","protoProps","_classCallCheck","Constructor","tail","hasStrings","_getString","_getBuffer","nb","_objectSpread","customInspect","_defineProperties","props","descriptor","emitErrorAndCloseNT","emitErrorNT","emitCloseNT","readableDestroyed","writableDestroyed","ERR_STREAM_PREMATURE_CLOSE","eos","called","_len","onlegacyfinish","writableEnded","readableEnded","onrequest","req","setHeader","ERR_MISSING_ARGS","streams","destroys","closed","ERR_INVALID_OPT_VALUE","duplexKey","hwm","pipeline","zl","zr","_e","getAddress","jsontokens_1","provider_1","provider","getProviderOrThrow","getProvider","purposes","connect","onFinish","onCancel","AddressPurpose","callWalletPopup","getCapabilities","extractOrValidateCapabilities","reportedCapabilities","validateCapability","capability","signMessage","signTransaction","sendBtcTransaction","createInscription","inferredCapabilities","validateInscriptionPayload","contentType","payloadType","appFeeAddress","appFee","BitcoinProvider","serializer","recipient","amountSats","recipients","senderAddress","serializedRecipients","psbtBase64","inputsToSign","BitcoinNetworkType","finalSize","_finalSize","assigned","remainder","rem","lowBits","algorithm","Algorithm","Sha","_w","Sha1","Sha256","Sha224","_g","Sha384","_ah","_bh","_ch","_dh","_eh","_fh","_gh","_hh","_al","_bl","_cl","_dl","_el","_fl","_gl","_hl","Sha512","sigma0","xl","sigma1","getCarry","ah","bh","dh","eh","fh","gh","hh","fl","gl","xh","gamma0","gamma0l","gamma1","gamma1l","Wi7h","Wi7l","Wi16h","Wi16l","Wil","Wih","majh","majl","Kih","Kil","chh","chl","t1l","t1h","t2l","t2h","separatorIndex","isEncoding","normalizeEncoding","nenc","_normalizeEncoding","retried","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8CheckByte","utf8CheckExtraBytes","utf8CheckIncomplete","extendStatics","__extends","__","__assign","__rest","__decorate","decorators","decorate","__param","paramIndex","decorator","__metadata","metadataKey","metadataValue","metadata","__generator","sent","trys","ops","verb","__values","__read","__spread","__spreadArrays","il","jl","__await","__asyncGenerator","fulfill","settle","__asyncDelegator","__asyncValues","__makeTemplateObject","cooked","__importStar","__importDefault","__classPrivateFieldGet","privateMap","__classPrivateFieldSet","native","getTypeName","getValueTypeName","Nil","captureStackTrace","tfJSON","tfErrorString","valueTypeName","valueJson","TfTypeError","__type","__value","__valueTypeName","TfPropertyTypeError","property","__label","__property","tfCustomError","tfSubError","NATIVE","ERRORS","_Buffer","_LengthN","Length","_ArrayN","_BufferN","_HexN","ArrayN","Finite","HexN","Int8","Int16","Int32","Int53","Range","_range","StringN","UInt16","TYPES","_arrayOf","minLength","Infinity","_maybe","propertyType","propertyKeyType","_map","propertyName","propertyValue","uncompiled","typePropertyName","_object","_anyOf","allOf","_allOf","_quacksLike","_tuple","surrogate","EXTRA","is","useState","useEffect","useLayoutEffect","useDebugValue","getSnapshot","createElement","inst","useSyncExternalStore","useRef","useMemo","useSyncExternalStoreWithSelector","hasValue","config","trace","localStorage","encodeRaw","_size","_sp","_byte","_word","_utf8","_int32","BYTES_PER_ELEMENT","_uint8","_hex","_bin","mainnet","bc","tb","bcrt","Er","Xr","vr","NaN","pow","for","SlowBuffer","INSPECT_MAX_BYTES","kMaxLength","SharedArrayBuffer","Ir","valueOf","Fr","X","toPrimitive","Ur","Mr","Yr","ir","Nr","Pr","Dr","J","nr","readUInt16BE","kr","ur","lr","hr","fr","TYPED_ARRAY_SUPPORT","foo","poolSize","allocUnsafeSlow","_isBuffer","swap16","swap32","swap64","toLocaleString","Tr","Wr","Gr","_arr","readUIntLE","readUIntBE","readUint8","readBigUInt64LE","readBigUInt64BE","readIntLE","readIntBE","readInt8","readBigInt64LE","readBigInt64BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUint8","writeUInt16BE","writeBigUInt64LE","writeBigUInt64BE","writeIntLE","writeIntBE","writeInt8","writeBigInt64LE","writeBigInt64BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","copyWithin","pr","ERR_OUT_OF_RANGE","ERR_BUFFER_OUT_OF_BOUNDS","RangeError","Or","$r","jr","yr","It","Y","WeakSet","notify","params","NEGATIVE_INFINITY","POSITIVE_INFINITY","height","third","Xt","hour","minute","second","Common","Uncommon","Rare","Epic","Legendary","Mythic","Palindrome","sattributes","isPalindrome","rarity","toList","degree","fromName","epoch","startingHeight","epochPosition","subsidy","cycle","percentile","period","startingSat","decimal","fromHeight","periodOffset","eq","FIRST_POST_SUBSIDY","unisat","getNetwork","switchNetwork","getAccounts","requestAccounts","addresses","appendChild","createTextNode","za","Do","jo","Ya","dn","bi","kl","Ja","Ol","Qa","Za","Gs","Ko","NODE_ENV","Xs","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","ref","__self","__source","defaultProps","$$typeof","_owner","Fragment","jsx","jsxs","ho","ce","ReactDebugCurrentFrame","getStackAddendum","displayName","_context","render","_payload","_init","ke","Se","ve","Ne","__reactDisabledLog","or","ReactCurrentDispatcher","ze","prepareStackTrace","groupCollapsed","groupEnd","construct","me","rn","Vs","isReactComponent","ti","Zr","setExtraStackFrame","fo","tn","en","toStringTag","ni","Ar","_store","ae","fe","po","Ms","Ds","js","validated","nl","Ks","Ws","getModuleId","fileName","lineNumber","pe","isReactWarning","stateNode","children","ol","propTypes","Pn","PropTypes","getDefaultProps","isReactClassApproved","eu","qs","setItem","removeItem","xn","getItem","Rl","MAINNET","TESTNET","UNISAT","XVERSE","nn","ordinals","tu","sg","initialNetwork","updateAddress","updatePublicKey","updateNetwork","wallet","updateWallet","isModalOpen","openModal","closeModal","updateFormat","disconnectWallet","Provider","ru","colors","color","translateX","translateY","rotate","isSquare","useId","viewBox","role","xmlns","width","maskUnits","square","cx","cy","y1","y2","strokeWidth","stroke","wrapperColor","faceColor","backgroundColor","wrapperTranslateX","wrapperTranslateY","wrapperRotate","wrapperScale","isMouthOpen","isCircle","eyeSpread","mouthSpread","faceRotate","faceTranslateX","faceTranslateY","strokeLinecap","gradientUnits","stopColor","scale","style","mixBlendMode","filterUnits","colorInterpolationFilters","floodOpacity","in","in2","stdDeviation","geometric","abstract","variant","pixel","bauhaus","ring","beam","sunset","marble","nu","Wl","go","Yt","detect","handoffState","currentId","nextId","isServer","isClient","handoff","isHandoffComplete","Le","Li","queueMicrotask","requestAnimationFrame","cancelAnimationFrame","nextFrame","microTask","getPropertyValue","dispose","zn","vn","zs","Hi","Node","ownerDocument","Wo","First","Previous","Next","Last","WrapAround","NoScroll","iu","Overflow","Success","Underflow","Xl","ou","querySelectorAll","tabIndex","us","Strict","Loose","cs","matches","parentElement","su","activeElement","ql","Keyboard","Mouse","focus","preventScroll","au","compareDocumentPosition","DOCUMENT_POSITION_FOLLOWING","DOCUMENT_POSITION_PRECEDING","Wn","sorted","relativeTo","skipElements","uu","maxTouchPoints","cu","lu","defaultPrevented","getRootNode","contains","isConnected","HTMLElement","composed","composedPath","preventDefault","Zl","HTMLIFrameElement","Ys","as","metaKey","altKey","ctrlKey","documentElement","dataset","headlessuiFocusVisible","detail","fu","Js","screenX","screenY","ls","flatMap","None","RenderStrategy","Static","Unmount","Hidden","ourProps","theirProps","slot","defaultTag","features","visible","mergeRefs","hu","oi","static","unmount","hidden","display","refName","yo","className","Qs","disabled","Event","nativeEvent","Oi","Focusable","Vo","top","margin","overflow","clip","whiteSpace","borderWidth","fs","Open","Closed","Closing","Opening","$i","du","pu","HTMLFieldSetElement","HTMLLegendElement","cf","previousElementSibling","uf","capture","Specific","Nothing","Space","Enter","Escape","Backspace","Delete","ArrowLeft","ArrowUp","ArrowRight","ArrowDown","Home","End","PageUp","PageDown","Tab","gu","yu","Forwards","Backwards","mu","wu","InitialFocus","TabLock","FocusLock","RestoreFocus","initialFocus","containers","mf","yf","wf","container","Ef","previousActiveElement","defaultView","Eu","stopPropagation","shiftKey","relatedTarget","onFocus","onKeyDown","onBlur","headlessuiFocusGuard","bu","Go","force","vf","Tf","Su","Xo","qo","tf","Sf","getElementById","setAttribute","register","removeChild","childNodes","Group","Cf","Bf","Nf","Ff","Mf","PUSH","meta","POP","SCROLL_PREVENT","Gf","before","getComputedStyle","scrollBehavior","scrollY","pageYOffset","closest","querySelector","headlessuiPortal","scrollHeight","clientHeight","scrollWidth","clientWidth","passive","scrollTo","scrollIntoView","innerWidth","after","offsetWidth","SCROLL_ALLOW","TEARDOWN","dispatch","wo","Zs","inert","removeAttribute","hs","zo","Add","Remove","Yf","onUpdate","enabled","vu","th","_u","rh","nh","SetTitleId","ih","titleId","Jn","sh","uh","si","onClose","__demoMode","descriptionId","panelRef","unregister","portals","resolveContainers","mainTreeNodeRef","MainTreeNode","qf","defaultContainers","oh","ResizeObserver","getBoundingClientRect","observe","disconnect","Jf","dialogState","close","setTitleId","Backdrop","Panel","onClick","Overlay","currentTarget","Title","Description","ea","ta","innerText","cloneNode","remove","Ih","Ph","Pointer","Other","Oh","OpenMenu","CloseMenu","GoToItem","Search","ClearSearch","RegisterItem","UnregisterItem","Eo","activeItemIndex","dataRef","domRef","kh","menuState","ff","resolveItems","resolveActiveIndex","resolveDisabled","resolveId","lf","searchQuery","activationTrigger","trigger","textValue","searchActiveItemIndex","ds","Mi","Uh","Lh","buttonRef","itemsRef","Button","ef","HTMLButtonElement","hasAttribute","onKeyUp","Items","nf","accept","walk","acceptNode","createTreeWalker","NodeFilter","SHOW_ELEMENT","nextNode","currentNode","FILTER_REJECT","FILTER_SKIP","FILTER_ACCEPT","click","wasMoved","active","onPointerEnter","onMouseEnter","onPointerMove","onMouseMove","onPointerLeave","onMouseLeave","bo","classList","So","Di","qh","Visible","ji","Tu","enter","leave","idle","wait","onStart","onStop","Jh","Qh","ra","Iu","Yo","show","appear","initial","beforeEnter","beforeLeave","Pu","afterEnter","afterLeave","enterFrom","enterTo","entered","leaveFrom","leaveTo","zh","Yh","Kh","addFlag","hasFlag","removeFlag","toggleFlag","Xh","immediate","direction","classes","Vh","transitionDuration","transitionDelay","parseFloat","i0","Si","Child","Root","Ou","ku","Jo","a0","onViewProfile","onChangeWallet","renderAvatar","alt","u0","customStyle","f0","p0","na","subtitle","onConnect","icon","setErrorMessage","isDisabled","isMobileDevice","connectedWallet","connectedAddress","race","g0","y0","isOpen","disableMobile","readOnly","ug","Wi","Cu","m0","vo","w0","gs","ri","Tn","Vi","Qt","Qo","Bu","Sr","Nu","En","bn","Gi","ia","Fu","ms","ws","Ai","Uu","pn","_o","oa","Ru","Qn","Lu","Hu","Nn","M0","Ke","sa","$0","j0","aa","ca","$u","Zo","fa","X0","la","Xi","ln","ha","Ae","Y0","qi","da","Q0","zi","Sn","In","xi","Mu","Es","Du","ju","Ku","Zn","Yi","nd","To","rd","sd","Wu","ad","bs","Ss","Vu","ud","cd","ld","fd","ui","pa","ci","Gu","od","Ji","Io","pd","gd","yd","dd","Rr","md","wd","Ed","bd","Xu","Sd","Pd","Td","ga","vs","kd","Po","hn","ya","xd","Oo","Qi","Rn","ge","Bd","wa","ma","Zi","Ci","qu","gn","Ea","_s","Ud","Rd","Ld","zu","ba","_i","$d","xe","li","Hd","ko","eo","va","Gt","Ao","de","Wt","fi","Dd","Sa","Gd","Xd","ro","Ce","es","qd","Ts","Yu","Ju","Qu","Zu","ec","Is","Ta","pi","di","ep","cc","lc","fc","yn","hc","gi","tc","ip","rc","no","Oa","xo","ka","hp","lp","Pa","cp","dp","yp","Bo","Aa","Cr","gp","dc","xa","pp","Co","oo","Ps","Os","ks","ei","Lr","wp","pc","As","_p","gc","yc","mc","wc","Mp","Ec","vc","Sc","Ic","Tc","qr","Pc","Oc","kc","yi","Ac","Cc","Bi","Bc","ns","so","_1","Cs","Bs","Ns","A1","mi","Fs","Us","Rs","q1","Nc","Fc","Lc","Uc","Rc","Hc","he","Ni","Ca","ao","$c","Ba","Q1","Fo","No","Ro","Na","Uo","Ls","Fa","Lo","e2","ye","ue","Mc","Gn","Dc","wi","Ti","uo","Ii","jc","Hs","Ho","mn","Ua","s2","C2","I2","O2","P2","m2","v2","_2","l2","F2","B2","Ui","Ra","M2","Gc","Kc","Fi","Ha","Ei","Ln","Ri","Wc","L2","Qc","Ka","Hn","D2","V2","co","Oe","H2","Zt","Zc","J2","Jc","q2","Ma","qc","Vc","ss","K2","zc","Va","Ga","Wa","$o","$2","$a","Q2","Xc","Da","ja","R2","j2","Yc","$s","N2","La","eg","pg","signMsg","isLoading","opcodes","WalletReadyState","BaseWalletAdapter","connected","autoConnect","prepareTransaction","connection","feePayer","recentBlockhash","getLatestBlockhash","commitment","preflightCommitment","minContextSlot","blockhash","scopePollingDetectionStrategy","disposers","detectAndDispose","interval","setInterval","clearInterval","isIosAndRedirectable","isIos","isSafari","WalletError","WalletNotReadyError","WalletConfigError","WalletConnectionError","WalletDisconnectedError","WalletDisconnectionError","WalletAccountError","WalletPublicKeyError","WalletNotConnectedError","WalletSendTransactionError","WalletSignMessageError","WalletSignTransactionError","BaseSignerWalletAdapter","sendTransaction","supportedTransactionVersions","rawTransaction","serialize","sendRawTransaction","sendOptions","partialSign","signAllTransactions","signedTransactions","BaseMessageSignerWalletAdapter","isVersionedTransaction","WalletAdapterNetwork","PhantomWalletName","PhantomWalletAdapter","_readyState","_disconnected","_wallet","_accountChanged","_publicKey","newPublicKey","PublicKey","_connecting","phantom","solana","isPhantom","connecting","signAndSendTransaction","DEFAULT_CONTEXT","setVisible","_open","constructMissingProviderErrorMessage","valueName","WalletModalContext","createContext","Collapse","instant","openCollapse","closeCollapse","offsetHeight","handleComplete","handleTransitionEnd","transition","startIcon","endIcon","WalletIcon","adapter","WalletListItem","handleClick","WalletSVG","fillOpacity","strokeOpacity","clipPath","WalletModal","wallets","useWallet","useContext","setExpanded","fadeIn","setFadeIn","portal","setPortal","listedWallets","collapsedWallets","installed","loadable","notDetected","listed","collapsed","hideModal","useCallback","handleClose","handleWalletClick","walletName","handleCollapseClick","handleTabKey","focusableElements","firstElement","lastElement","handleKeyDown","createPortal","onMouseDown","WalletModalProvider","ConnectionProvider","endpoint","Connection","_utf8Decoder","_userAgent","Environment","_StandardWalletAdapter_instances","_StandardWalletAdapter_account","_StandardWalletAdapter_publicKey","_StandardWalletAdapter_connecting","_StandardWalletAdapter_off","_StandardWalletAdapter_wallet","_StandardWalletAdapter_supportedTransactionVersions","_StandardWalletAdapter_readyState","_StandardWalletAdapter_connected","_StandardWalletAdapter_disconnected","_StandardWalletAdapter_changed","_StandardWalletAdapter_signTransaction","_StandardWalletAdapter_signAllTransactions","_StandardWalletAdapter_signMessage","_AppReadyEvent_detail","SolanaMobileWalletAdapterErrorCode","ERROR_ASSOCIATION_PORT_OUT_OF_RANGE","ERROR_FORBIDDEN_WALLET_BASE_URL","ERROR_SECURE_CONTEXT_REQUIRED","ERROR_SESSION_CLOSED","ERROR_SESSION_TIMEOUT","ERROR_WALLET_NOT_FOUND","SolanaMobileWalletAdapterError","SolanaMobileWalletAdapterProtocolError","jsonRpcMessageId","getAlgorithmParams","sequenceNumber","initializationVector","additionalData","assertAssociationPort","port","getPathParts","pathString","Browser","Firefox","_frame","fromUint8Array","byteArray","btoa","toUint8Array","base64EncodedByteArray","atob","getPayloadFromTransaction","requireAllSignatures","verifySignatures","getTransactionFromWireMessage","VersionedMessage","VersionedTransaction","SolanaMobileWalletAdapterWalletName","SolanaMobileWalletAdapter","_connectionGeneration","getIsSupported","isSecureContext","_authorizationResultCache","authorizationResultCache","_addressSelector","addressSelector","_appIdentity","appIdentity","_cluster","cluster","_onWalletNotFound","onWalletNotFound","authorizationResult","declareWalletAsInstalled","_selectedAddress","getPublicKeyFromAddress","publicKeyByteArray","_authorizationResult","runWithGuard","autoConnect_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","cachedAuthorizationResult","handleAuthorizationResult","transact","authorize","identity","didPublicKeysChange","account","nextSelectedAddress","performReauthorization","authToken","reauthorize","auth_token","walletUriBase","wallet_uri_base","currentConnectionGeneration","connectionStartTime","assertSecureContext","associationKeypair","generateAssociationKeypair","generateKey","namedCurve","sessionPort","startSession","associationPublicKey","associationURLBase","randomAssociationPort","random","associationUrl","getAssociateAndroidIntentURL","putativePort","associationPort","encodedKey","arrayBufferToBase64String","binary","exportKey","getIntentURL","methodPathname","intentUrlBase","baseUrl","unsafeBase64EncodedString","contentWindow","detectionPromise","cleanup","timeoutId","handleBlur","baseUri","websocketURL","getNextRetryDelayMs","schedule","nextJsonRpcMessageId","lastKnownInboundSequenceNumber","socket","disposeSocket","retryWaitTimeoutId","jsonRpcResponsePromises","handleOpen","ecdhKeypair","generateECDHKeypair","createHelloReq","ecdhPublicKey","associationKeypairPrivateKey","publicKeyBuffer","signatureBuffer","ecdhPrivateKey","evt","wasClean","reason","closeEvent","handleError","retryDelayMs","attemptSocketConnection","handleMessage","responseBuffer","jsonRpcMessage","decryptJsonRpcMessage","sharedSecret","sequenceNumberVector","SEQUENCE_NUMBER_BYTES","plaintextBuffer","decrypt","getUtf8Decoder","responsePromise","parseHelloRsp","payloadBuffer","associationPublicKeyBuffer","walletPublicKey","deriveBits","ecdhSecretKey","deriveKey","Proxy","encryptJsonRpcMessage","createSequenceNumberVector","encrypt","assertSecureEndpointSpecificURI","deleteProperty","WebSocket","rest","payloads","base64EncodedSignatures","signAndSendTransactions","min_context_slot","bs58","base64EncodedPayloads","signed_payloads","base64EncodedSignedMessages","signMessages","base64EncodedCompiledTransactions","signTransactions","compiledTransactions","assertIsAuthorized","selectedAddress","performSignTransactions","getTargetCommitment","targetCommitment","targetPreflightCommitment","preflightCommitmentScore","targetCommitmentScore","capabilities","supports_sign_and_send_transactions","signedTransaction","serializedTransaction","signedMessage","CACHE_KEY","defaultWalletNotFoundHandler","mobileWalletAdapter","StandardConnect","StandardEvents","isWalletAdapterCompatibleWallet","SolanaSignAndSendTransaction","SolanaSignTransaction","SolanaSignMessage","getCommitment","StandardDisconnect","_ReadonlyWalletAccount_address","kind","StandardWalletAdapter","properties","arraysEqual","standard","feature","rpcEndpoint","skipPreflight","maxRetries","signedMessages","registered","existingListener","AppReadyEvent","api","bubbles","cancelable","stopImmediatePropagation","useConstant","wrapWalletsWithAdapters","WalletNotSelectedError","WalletProviderBase","adapters","isUnloadingRef","onAutoConnectRequest","onConnectError","onError","onSelectWallet","isConnectingRef","setConnecting","isDisconnectingRef","disconnecting","setDisconnecting","setPublicKey","setConnected","onErrorRef","handleErrorRef","setWallets","handleReadyStateChange","prevWallets","handleConnect","handleDisconnect","didAttemptAutoConnectRef","getIsMobile","getEnvironment","userAgentString","DESKTOP_WEB","MOBILE_WEB","WalletProvider","localStorageKey","useConnection","adaptersWithStandardAdapters","useStandardWalletAdapters","DEPRECATED_getWallets","getWallets","dispatchEvent","callbacks","standardAdapters","setStandardAdapters","warnings","standardAdapter","existingMobileWalletAdapter","uri","getUriForAppIdentity","createDefaultAuthorizationResultCache","storage","adaptersWithMobileWalletAdapter","setWalletName","useLocalStorage","defaultState","isFirstRenderRef","changeWallet","nextWalletName","hasUserSelectedAWallet","handleAutoConnectRequest","handleBeforeUnload","handleConnectError","selectWallet","ConnectionContext","EMPTY_ARRAY","_name","_transaction","_connection","_options","_message","WalletContext","nativeCurrency","symbol","decimals","rpcUrls","alchemy","http","webSocket","infura","blockExplorers","etherscan","contracts","ensRegistry","ensUniversalResolver","blockCreated","multicall3","sepolia","_provider","normalizeChainId","chainId","InjectedConnector","options_","shimDisconnect","ethereum","providers","unsupported","isChainUnsupported","getAccount","shimDisconnectKey","detectedName","getInjectedName","getName","isApexWallet","isAvalanche","isBackpack","isBifrost","isBitKeep","isBitski","isBlockWallet","isBraveWallet","isCoinbaseWallet","isDawn","isDefiant","isEnkrypt","isExodus","isFrame","isFrontier","isGamestop","isHaqqWallet","isHyperPay","isImToken","isHaloWallet","isKuCoinWallet","isMathWallet","isNovaWallet","isOkxWallet","isOKExWallet","isOneInchIOSWallet","isOneInchAndroidWallet","isOpera","isPortal","isRabby","isRainbow","isStatus","isTalisman","isTally","isTokenPocket","isTokenary","isTrust","isTrustWallet","isTTWallet","isXDEFI","isZerion","isMetaMask","nameSet","unknownCount","names","ready","onAccountsChanged","onChainChanged","onDisconnect","getChainId","switchChain","isUserRejectedRequestError","getWalletClient","createWalletClient","transport","isAuthorized","connectorId","originalError","chainName","blockExplorerUrls","getBlockExplorerUrls","currentChainId","error2","watchAsset","image","goerli","defineChain","apiUrl","__defProp","__defNormalProp","__publicField","__accessCheck","member","__privateGet","getter","__privateAdd","__privateSet","setter","__privateMethod","Connector","blockExplorer","setStorage","ChainNotConfiguredForConnectorError","ConnectorNotFoundError","_UNSTABLE_shimOnConnectSelectAccount","MetaMaskConnector","getReady","ethereum2","UNSTABLE_shimOnConnectSelectAccount","eth_accounts","_initProviderPromise","_createProvider","createProvider_fn","_initProvider","initProvider_fn","_isChainsStale","isChainsStale_fn","_setupListeners","setupListeners_fn","_removeListeners","removeListeners_fn","_setRequestedChainsIds","setRequestedChainsIds_fn","_getRequestedChainsIds","getRequestedChainsIds_fn","_getNamespaceChainsIds","getNamespaceChainsIds_fn","_getNamespaceMethods","getNamespaceMethods_fn","NAMESPACE","REQUESTED_CHAINS_KEY","ADD_ETH_CHAIN_METHOD","WalletConnectConnector","isNewChainsStale","pairingTopic","targetChainId","store","lastUsedChainId","isChainsStale","session","optionalChains","optionalChain","id2","enable","chain2","namespaceChains","namespaceMethods","requestedChains","EthereumProvider","OPTIONAL_EVENTS","OPTIONAL_METHODS","defaultChain","showQrModal","qrModalOptions","optionalMethods","optionalEvents","rpcMap","connectorChains","onDisplayUri","normalizedNamespaces","chainIds","deepEqual","_isAutoConnecting","_lastUsedConnector","_addEffects","addEffects_fn","isNullUniversalResolverError","callType","cause","errorName","encodedLabelToLabelhash","isHex","namehash","labels","hashFromEncodedLabel","keccak256","packetToBytes","packet","labelhash","getContractError","abi","docsPath","functionName","sender","shortMessage","contractAddress","readContract","client","parameters","calldata","encodeFunctionData","getAction","decodeFunctionResult","getEnsAddress","blockNumber","blockTag","coinType","gatewayUrls","universalResolverAddress","universalResolverAddress_","getChainContractAddress","contract","functionData","readContractParameters","readContractAction","EnsAvatarInvalidMetadataError","metaMessages","EnsAvatarInvalidNftUriError","EnsAvatarUriResolutionError","EnsAvatarUnsupportedNamespaceError","namespace","networkRegex","ipfsHashRegex","base64Regex","dataURIRegex","isImageUri","img","Image","getGateway","defaultGateway","resolveAvatarUri","isEncoded","isOnChain","ipfsGateway","ipfs","arweaveGateway","arweave","networkRegexMatch","subpath","subtarget","groups","isIPNS","isIPFS","replacedUri","parsedUri","getJsonImage","image_url","image_data","getMetadataAvatarUri","parseAvatarUri","resolvedURI","getNftTokenUri","nft","stateMutability","tokenID","parseAvatarRecord","record","parseNftAvatarUri","parseNftUri","uri_","reference","asset_namespace","eip_namespace","chainID","erc_namespace","resolvedNftUri","uriTokenId","getEnsText","getEnsAvatar","assetGatewayUrls","getEnsName","reverseNode","resolvedAddress","getEnsResolver","resolverAddress","createFilterRequestScope","requestMap","onResponse","method_","createBlockFilter","getRequest","FilterTypeNotSupportedError","encodeEventTopics","eventName","abiItem","getAbiItem","definition","formatAbiItem","toEventSelector","topics","indexedInputs","indexed","args_","encodeArg","encodeAbiParameters","createContractEventFilter","fromBlock","toBlock","createEventFilter","events_","createPendingTransactionFilter","estimateContractGas","estimateGas","parseAccount","getBalance","blockNumberHex","getBlobBaseFee","promiseCache","responseCache","withCache","cacheKey","cacheTime","buildCache","age","created","getBlockNumber","uid","getBlockTransactionCount","blockHash","dedupe","getCode","decodeEventLog","strict_","argTopics","isUnnamed","decodeTopic","decodedArg","decodeAbiParameters","nonIndexedInputs","decodedData","parseEventLogs","logs","formatLog","logIndex","transactionHash","transactionIndex","getLogs","formattedLogs","getContractEvents","Eip712DomainNotFoundError","getEip712Domain","factory","factoryData","fields","verifyingContract","extensions","domain","getFeeHistory","blockCount","rewardPercentiles","feeHistory","baseFeePerGas","gasUsedRatio","oldestBlock","reward","getFilterChanges","_client","getFilterLogs","getProof","blockTag_","storageKeys","proof","balance","storageProof","getStorageAt","formatters","getTransactionConfirmations","transactionReceipt","transactionBlockNumber","receiptStatuses","getTransactionReceipt","receipt","cumulativeGasUsed","effectiveGasPrice","gasUsed","blobGasPrice","blobGasUsed","multicall","allowFailure","batchSize","batchSize_","multicallAddress","multicallAddress_","stateOverride","batch","chunkedCalls","currentChunk","currentChunkSize","callData","aggregate3Results","allSettled","calls","aggregate3Result","returnData","success","simulateContract","dataSuffix","callRequest","minimizedAbi","uninstallFilter","hashMessage","to_","messageBytes","prefixBytes","u8a","numberToBytesLE","numberToVarBytesBE","expectedLength","equalBytes","bitLen","bitGet","bitSet","bitMask","u8n","u8fr","createHmacDrbg","hmacFn","gen","pred","validatorFns","bigint","function","boolean","stringOrUint8Array","field","Fp","isValid","validateObject","validators","optValidators","checkField","fieldName","isOptional","checkVal","_4n","_5n","FIELD_FIELDS","nLength","nBitLength","_nBitLength","nByteLength","getFieldBytesLength","fieldOrder","getMinHashLength","validateBasic","curve","ORDER","MASK","BYTES","BITS","bytesToNumberBE","b2n","h2b","DER","Err","_parseInt","toSig","hexFromSig","shl","rhl","secp256k1P","secp256k1N","Field","redef","sqrtP","FpSqrt","p1div4","eql","sqr","nv","tonelliShanks","legendreC","Q1div2","isOdd","lhs","rhs","FpPow","sqrN","addN","subN","mulN","inv","sqrt","FpInvertBatch","lastMultiplied","cmov","fromBytes","secp256k1","createCurve","curveDef","defHash","validateOpts","bits2int_modN","CURVE_ORDER","compressedLen","uncompressedLen","modN","ProjectivePoint","normPrivateKeyToScalar","weierstrassEquation","weierstrassPoints","validatePointOpts","allowedPrivateKeyLengths","wrapPrivateKey","isTorsionFree","clearCofactor","allowInfinityPoint","_isCompressed","assertGE","assertPrjPoint","py","pz","Z3","wnaf","wNAFCached","comp","unsafeLadder","iz","cofactor","_bits","elm","precomputesMap","cat","numToNByteStr","slcNum","addRecoveryBit","rec","ORDER_MASK","int2octets","defaultSigOpts","prehash","defaultVerOpts","k2sig","prepSig","ent","h1int","ik","normS","isBiggerThanHalfOrder","_sig","derError","minLen","reduced","signatureHex","serializeSignature","yParity","yParity_","encodeDeployData","bytecode","isBytesEqual","a_","b_","verifyMessage","hashStruct","primaryType","encodeData","encodedTypes","encodedValues","encodedHashType","encodeType","unsortedDeps","findTypeDependencies","primaryType_","encodeField","parsedType","typeValuePairs","verifyTypedData","hashTypedData","EIP712Domain","hashDomain","listenersCache","cleanupCache","callbackCount","observerId","callbackId","getListeners","unwatch","fns","poll","emitOnBegin","initialWaitTime","watch","unpoll","initialWait","watchBlockNumber","emitMissed","onBlockNumber","poll_","pollingInterval","prevBlockNumber","enablePolling","transports","unsubscribe_","onData","waitForTransactionReceipt","confirmations","onReplaced","retryCount","retryDelay","replacedTransaction","retrying","_unobserve","_unwatch","blockNumber_","withRetry","getBlock","includeTransactions","shouldRetry","replacementTransaction","err_","prefixRegex","suffixRegex","verifySiweMessage","scheme","time","parsed","parseSiweMessage","statement","expirationTime","issuedAt","notBefore","requestId","suffix","resources","validateSiweMessage","isAddressEqual","publicActions","getBytecode","estimateFeesPerGas","getGasPrice","estimateMaxPriorityFeePerGas","getTransactionCount","prepareTransactionRequest","watchBlocks","onBlock","includeTransactions_","prevBlock","watchContractEvent","onLogs","pollContractEvent","previousBlockNumber","initialized","subscribeContractEvent","formatted","watchEvent","watchPendingTransactions","onTransactions","createPublicClient","createClient","extend","fallback","transports_","rank","createTransport","rankOptions","rankTransports","onTransports","sampleCount","weights","stability","stabilityWeight","latency","latencyWeight","samples","rankTransports_","sample","transport_","maxLatency","scores","latencies","meanLatency","successes","stabilityScore","UrlRequiredError","withTimeout","errorInstance","controller","AbortController","idCache","socketClientCache","getSocketRpcClient","getSocket","reconnect","attempts","socketClient","reconnectCount","createBatchScheduler","requests","subscriptions","setup","error_","onOpen","isSubscription","requestAsync","socketClient_","getWebSocketRpcClient","onMessage","CONNECTING","onopen","close_","CLOSED","CLOSING","details","subscribeWithSelector","origSubscribe","selector","optListener","equalityFn","currentSlice","getState","nextSlice","previousSlice","fireImmediately","toThenable","onFulfilled","_onRejected","_onFulfilled","onRejected","oldImpl","baseOptions","stateFromStorage","getStorage","deserialize","partialize","merge","persistedState","currentState","hasHydrated","hydrationListeners","finishHydrationListeners","thenableSerialize","errorInSync","thenable","serializedValue","savedSetState","setState","configResult","hydrate","postRehydrationCallback","onRehydrateStorage","storageValue","deserializedStorageValue","migrate","_a2","migratedState","persist","setOptions","newOptions","clearStorage","getOptions","rehydrate","onHydrate","onFinishHydration","newImpl","createJSONStorage","str2","skipHydration","createStoreImpl","partial","nextState","previousState","createState","createStore","objA","objB","keysA","configureChains","defaultChains","stallTimeout","httpUrls","wsUrls","configExists","apiConfig","publicClient","activeChain","chainHttpUrls","fetchOptions","onFetchRequest","onFetchResponse","retryCount_","timeout_","rpcClient","getHttpRpcClient","onRequest","signal_","shouldSplitBatch","webSocketPublicClient","chainWsUrls","getRpcClient","subscriptionId","ChainMismatchError","targetChain","ConnectorAlreadyConnectedError","SwitchChainNotSupportedError","connector","findAndReplace","cacheRef","curr","cachedString","getSendTransactionParameters","accessList","gas","gasPrice","maxFeePerGas","maxPriorityFeePerGas","getReferenceKey","cutoff","getCutoff","replacer","indent","circularReplacer","createReplacer","hasReplacer","hasCircularReplacer","thisCutoff","valueCutoff","value_","value2","noopStorage","createStorage","deserialize2","serialize2","storeKey","Config","connectors","logger","publicClients","webSocketPublicClients","rawState","_error","connectors_","getPublicClient","getWebSocketPublicClient","updater","newState","clearState","setConnectors","publicClient_","setPublicClient","webSocketPublicClient_","setWebSocketPublicClient","setLastUsedConnector","lastUsedConnector","createConfig","config_","getConfig","config2","activeConnector","watchPublicClient","handleChange","watchWebSocketPublicClient","prepareWriteContract","walletClient","walletClient_","assertActiveChain","writeContract","isConnecting","isDisconnected","isReconnecting","activeChains","watchAccount","watchNetwork","fetchBlockNumber","activeChainId","onChange","prevConnector","subscribePublicClient","publicProvider","fromString","encoder","asUint8Array","Encoder","baseEncode","Decoder","baseDecode","codePointAt","prefixCodePoint","ComposedDecoder","decoders","Codec","baseX","bitsPerChar","written","rfc4648","base2","base8","base10","base16upper","base32upper","base32pad","base32padupper","base32hexupper","base32hexpad","base32hexpadupper","base32z","base36","base36upper","base64pad","base64urlpad","alphabetBytesToChars","alphabetCharsToBytes","base256emoji","byts","byt","oldOffset","encodeTo","int","sizeOffset","digestOffset","Hasher","textEncoder","textDecoder","CID","multihash","asCID","_baseCache","readonly","toV0","DAG_PB_CODE","SHA_256_CODE","createV0","toV1","Digest","createV1","toStringV0","base58btc","toStringV1","isCID","IS_CID_DEPRECATION","cidSymbol","toBaseEncodedString","codec","multibaseName","encodeCID","cid","decodeFirst","specs","inspectBytes","prefixSize","multihashSize","multihashBytes","coerce","digestBytes","digestSize","multihashCode","initialBytes","varint","parseCIDtoBytes","codeOffset","hashOffset","bases","createCodec","ascii","latin1","errorSignatureRegex","eventSignatureRegex","functionSignatureRegex","structSignatureRegex","constructorSignatureRegex","fallbackSignatureRegex","receiveSignatureRegex","eventModifiers","functionModifiers","UnknownTypeError","UnknownSolidityTypeError","InvalidParameterError","SolidityProtectedKeywordError","InvalidModifierError","modifier","InvalidFunctionModifierError","InvalidAbiTypeParameterError","abiParameter","InvalidSignatureError","UnknownSignatureError","InvalidStructSignatureError","CircularReferenceError","InvalidParenthesisError","parameterCache","abiParameterWithoutTupleRegex","abiParameterWithTupleRegex","dynamicIntegerRegex","parseAbiParameter","parameterCacheKey","isTuple","protectedKeywordsRegex","structs","splitParameters","components_","isSolidityType","modifiers","typeWithoutTupleRegex","parseAbi","parseStructs","shallowStructs","signaturesLength","propertiesLength","trimmed","resolvedStructs","entriesLength","resolveStructs","abiParameters","ancestors","parseSignature","inputParams","returns","outputParams","outputLength","account_","blobs","data_","maxFeePerBlobGas","deploylessCallViaBytecode","deploylessCallViaFactory","deploylessCall","toDeploylessCallViaBytecodeData","toDeploylessCallViaFactoryData","assertRequest","rpcStateOverride","chainFormat","transactionRequest","shouldPerformMulticall","request_","scheduleMulticall","getRevertErrorData","offchainLookup","offchainLookupSignature","ccipRead","getCallError","getNodeError","internal_estimateFeesPerGas","block_","baseFeeMultiplier","fees","denominator","EstimateGasExecutionError","formatEther","formatGwei","blobVersionedHashes","getEstimateGasError","internal_estimateMaxPriorityFeePerGas","defaultPriorityFee","maxPriorityFeePerGasHex","chainIdHex","blobsToCommitments","kzg","commitments","blobToKzgCommitment","blobsToProofs","proofs","computeBlobKzgProof","BlobSizeTooLargeError","maxSize","EmptyBlobError","defaultParameters","versionedHashes","commitmentsToVersionedHashes","commitmentToVersionedHash","versionedHash","sidecars","toBlobSidecars","toBlobs","size_","bytesPerBlob","bytesPerFieldElement","pushByte","pushBytes","nonceManager","getTransactionType","gasPrice_","extended","extendFn","combined","addChain","AccountNotFoundError","docsSlug","assertCurrentChain","serializers","getTransactionError","getAddresses","getPermissions","requestAddresses","requestPermissions","permissions","message_","signTypedData","typedData","walletActions","deployContract","buildRequest","overrideOptions","withDedupe","finally","retryAfter","defaultRetryCount","multicall3Abi","universalResolverErrors","universalResolverResolveAbi","universalResolverReverseAbi","textResolverAbi","addressResolverAbi","universalSignatureValidatorAbi","internalType","deploylessCallViaBytecodeBytecode","deploylessCallViaFactoryBytecode","universalSignatureValidatorByteCode","panicReasons","solidityError","solidityPanic","etherUnits","gwei","wei","gweiUnits","ether","AbiConstructorNotFoundError","AbiConstructorParamsNotFoundError","AbiDecodingDataSizeTooSmallError","includeName","AbiDecodingZeroDataError","AbiEncodingArrayLengthMismatchError","givenLength","AbiEncodingBytesSizeMismatchError","expectedSize","AbiEncodingLengthMismatchError","AbiErrorSignatureNotFoundError","AbiEventSignatureEmptyTopicsError","AbiEventSignatureNotFoundError","AbiEventNotFoundError","AbiFunctionNotFoundError","AbiFunctionOutputsNotFoundError","AbiItemAmbiguityError","BytesSizeMismatchError","givenSize","DecodeLogDataMismatch","DecodeLogTopicsMismatch","InvalidAbiEncodingTypeError","InvalidAbiDecodingTypeError","InvalidArrayError","InvalidDefinitionTypeError","InvalidAddressError","BaseError","docsBaseUrl","BlockNotFoundError","ChainDoesNotSupportContract","ChainNotFoundError","ClientChainNotConfiguredError","formatAbiItemWithArgs","includeFunctionName","CallExecutionError","prettyArgs","ContractFunctionExecutionError","formattedArgs","ContractFunctionRevertedError","errorArgs","decodeErrorResult","firstArg","errorWithParams","ContractFunctionZeroDataError","CounterfactualDeploymentFailedError","RawContractError","NegativeOffsetError","PositionOutOfBoundsError","RecursiveReadLimitExceededError","SliceOffsetOutOfBoundsError","SizeExceedsPaddingSizeError","targetSize","InvalidBytesLengthError","IntegerOutOfRangeError","signed","InvalidBytesBooleanError","SizeOverflowError","BaseFeeScalarError","Eip1559FeesNotSupportedError","MaxFeePerGasTooLowError","ExecutionRevertedError","FeeCapTooHighError","FeeCapTooLowError","NonceTooHighError","NonceTooLowError","NonceMaxValueError","InsufficientFundsError","IntrinsicGasTooHighError","IntrinsicGasTooLowError","TransactionTypeNotSupportedError","TipAboveFeeCapError","UnknownNodeError","HttpRequestError","WebSocketRequestError","RpcRequestError","TimeoutError","RpcError","ProviderRpcError","ParseRpcError","InvalidRequestRpcError","MethodNotFoundRpcError","InvalidParamsRpcError","InternalRpcError","InvalidInputRpcError","ResourceNotFoundRpcError","ResourceUnavailableRpcError","TransactionRejectedRpcError","MethodNotSupportedRpcError","LimitExceededRpcError","JsonRpcVersionUnsupportedError","UserRejectedRequestError","UnauthorizedProviderError","UnsupportedProviderMethodError","ProviderDisconnectedError","ChainDisconnectedError","SwitchChainError","UnknownRpcError","AccountStateConflictError","StateAssignmentConflictError","prettyStateMapping","stateMapping","pretty","prettyStateOverride","stateDiff","prettyPrint","padEnd","FeeConflictError","InvalidSerializableTransactionError","TransactionExecutionError","TransactionNotFoundError","TransactionReceiptNotFoundError","WaitForTransactionReceiptTimeoutError","getContractAddress","getUrl","getVersion","cursor","setPosition","consumed_","decodeParameter","staticPosition","arrayComponents","decodeArray","readBytes","startOfData","dynamicChild","hasDynamicChild","decodeTuple","hasUnnamedChild","component","decodeAddress","bytesToBool","bytes_","decodeBytes","decodeNumber","bytesToBigInt","decodeString","abi_","encodeParams","prepareParams","preparedParams","prepareParam","getArrayComponents","encodeArray","dynamic","preparedParam","encodeTuple","param_","encodeAddress","encodeBool","encodeNumber","encodeBytes","paramSize","bytesSize","encodeString","hexValue","partsLength","staticSize","staticParams","dynamicParams","dynamicSize","prepareEncodeFunctionData","toFunctionSelector","formatAbiParams","formatAbiParam","matchedAbiItem","isSelector","abiItems","isArgOfType","argType","abiParameterType","ambiguousTypes","getAmbiguousTypes","sourceParameters","targetParameters","parameterIndex","sourceParameter","targetParameter","checksumAddressCache","checksumAddress","address_","hexAddress","addressRegex","isAddressCache","isAddress","staticCursor","positionReadCount","recursiveReadCount","recursiveReadLimit","assertReadLimit","assertPosition","decrementPosition","getReadCount","incrementPosition","inspectByte","position_","inspectUint8","inspectUint16","getUint16","inspectUint24","getUint8","inspectUint32","pushUint8","pushUint16","setUint16","pushUint24","setUint8","pushUint32","readByte","_touch","readUint16","readUint24","readUint32","remaining","oldPosition","createCursor","concatHex","hexOrBytes","padHex","padBytes","paddedBytes","hex_","sliceHex","assertStartOffset","assertEndOffset","sliceBytes","sliceLength","assertSize","hexToBigInt","boolToBytes","charCodeMap","zero","nine","charCodeToBase16","hexString","nibbleLeft","nibbleRight","_v","numberToHex","stringToHex","boolToHex","maxValue","minValue","executionRevertedError","formatBlock","difficulty","excessBlobGas","gasLimit","logsBloom","totalDifficulty","extract_","transactionType","formatTransaction","transaction_","typeHex","rpcTransactionType","legacy","eip2930","eip1559","eip4844","formatTransactionRequest","rpcRequest","SHA3_PI","SHA3_ROTL","_SHA3_IOTA","_7n","_256n","_0x71n","round","SHA3_IOTA_H","SHA3_IOTA_L","rotlH","rotlL","Keccak","enableXOF","rounds","posOut","state32","keccak","keccakP","idx1","idx0","B0","B1","Th","Tl","curH","curL","PI","writeInto","bufferOut","xofInto","xof","keccak_256","tupleRegex","formatAbiParameters","formatAbiParameter","toSignature","valid","def","toSignatureHash","LruMap","schedulerCache","scheduler","getScheduler","pendingPromise","getBatchedArgs","setScheduler","delay_","attemptRetry","retry","serializeStateMapping","serializeStateOverride","accountState","serializeAccountStateOverride","rpcAccountStateOverride","space","bytesRegex","integerRegex","serializeTypedData","domain_","normalizeData","struct","validateTypedData","validateData","integerMatch","_type","bytesMatch","getTypesForEIP712Domain","unit","formatUnits","integer","fraction","execTyped","isTupleRegex","isReset","isValidTimeout","timeUntilStale","updatedAt","staleTime","parseQueryArgs","queryKey","queryFn","parseMutationArgs","mutationKey","mutationFn","parseFilterArgs","isQueryKey","matchQuery","filters","exact","fetchStatus","stale","queryHash","hashQueryKeyByOptions","partialDeepEqual","isActive","isStale","matchMutation","mutation","fetching","hashQueryKey","hashFn","queryKeyHashFn","isPlainArray","aSize","bItems","bSize","equalItems","shallowEqualObjects","hasObjectPrototype","prot","sleep","scheduleMicrotask","replaceData","prevData","isDataEqual","structuralSharing","defaultLogger","notifyManager","createNotifyManager","notifyFn","batchNotifyFn","originalQueue","batchCalls","setNotifyFunction","setBatchNotifyFunction","Subscribable","onSubscribe","onUnsubscribe","hasListeners","focusManager","setEventListener","_this$cleanup","_this$cleanup2","focused","setFocused","isFocused","visibilityState","onlineEvents","onlineManager","onOnline","online","setOnline","isOnline","onLine","defaultRetryDelay","failureCount","canFetch","networkMode","CancelledError","revert","silent","isCancelledError","createRetryer","continueFn","promiseResolve","promiseReject","isRetryCancelled","isResolved","outerResolve","outerReject","shouldPause","onSuccess","continueResolve","canContinue","onPause","onContinue","promiseOrValue","_config$retry","_config$retryDelay","onFail","cancel","cancelOptions","continue","didContinue","cancelRetry","continueRetry","Removable","clearGcTimeout","scheduleGc","gcTimeout","optionalRemove","updateCacheTime","newCacheTime","Query","abortSignalConsumed","defaultOptions","observers","initialState","getDefaultState","initialData","hasData","initialDataUpdatedAt","dataUpdateCount","dataUpdatedAt","errorUpdateCount","errorUpdatedAt","fetchFailureCount","fetchFailureReason","fetchMeta","isInvalidated","setData","manual","setStateOptions","_this$retryer","retryer","observer","getObserversCount","getCurrentResult","isStaleByTime","_this$retryer2","shouldFetchOnWindowFocus","refetch","cancelRefetch","_this$retryer3","shouldFetchOnReconnect","addObserver","removeObserver","invalidate","_this$options$behavio","_context$fetchOptions","_this$retryer4","_context$fetchOptions2","abortController","getAbortController","queryFnContext","pageParam","addSignalProperty","fetchFn","behavior","onFetch","revertState","_this$cache$config$on","_this$cache$config","_this$cache$config$on2","_this$cache$config2","onSettled","isFetchingOptimistic","_this$cache$config$on3","_this$cache$config3","_this$cache$config$on4","_this$cache$config4","reducer","_action$meta","_action$dataUpdatedAt","onQueryUpdate","QueryCache","queries","queriesMap","build","_options$queryHash","getLogger","defaultQueryOptions","getQueryDefaults","queryInMap","getAll","findAll","Mutation","mutationId","mutationCache","_this$retryer$continu","execute","_this$mutationCache$c3","_this$mutationCache$c4","_this$options$onSucce","_this$options2","_this$mutationCache$c5","_this$mutationCache$c6","_this$options$onSettl","_this$options3","_this$mutationCache$c","_this$mutationCache$c2","_this$options$onMutat","_this$options","_this$mutationCache$c7","_this$mutationCache$c8","_this$options$onError","_this$options4","_this$mutationCache$c9","_this$mutationCache$c10","_this$options$onSettl2","_this$options5","restored","variables","onMutate","executeMutation","_this$options$retry","failureReason","onMutationUpdate","MutationCache","mutations","defaultMutationOptions","getMutationDefaults","resumePausedMutations","_this$resuming","resuming","pausedMutations","getNextPageParam","pages","QueryClient","queryCache","queryDefaults","mutationDefaults","mountCount","mount","unsubscribeFocus","unsubscribeOnline","_this$unsubscribeFocu","_this$unsubscribeOnli","isFetching","isMutating","getQueryData","_this$queryCache$find","ensureQueryData","parsedOptions","cachedData","fetchQuery","getQueriesData","queryKeyOrFilters","getQueryCache","setQueryData","defaultedOptions","setQueriesData","getQueryState","_this$queryCache$find2","removeQueries","resetQueries","refetchFilters","refetchQueries","cancelQueries","invalidateQueries","_ref","_filters$refetchType","refetchType","_options$cancelRefetc","refetchPage","throwOnError","prefetchQuery","fetchInfiniteQuery","_context$fetchOptions3","_context$fetchOptions4","_context$state$data","_context$state$data2","fetchMore","isFetchingNextPage","isFetchingPreviousPage","oldPages","oldPageParams","pageParams","newPageParams","cancelled","_context$signal","_context$signal2","buildNewPages","page","previous","fetchPage","getPreviousPageParam","shouldFetchFirstPage","prefetchInfiniteQuery","getMutationCache","getDefaultOptions","setDefaultOptions","setQueryDefaults","firstMatchingDefaults","setMutationDefaults","_defaulted","refetchOnReconnect","useErrorBoundary","suspense","defaultShouldDehydrateMutation","defaultShouldDehydrateQuery","cacheableEventTypes","isCacheableEventType","eventType","persistQueryClientRestore","queryClient","persister","maxAge","buster","hydrateOptions","persistedClient","restoreClient","expired","busted","removeClient","dehydratedState","dehydratedMutation","_options$defaultOptio","dehydratedQuery","_options$defaultOptio2","dehydratedQueryState","clientState","persistQueryClientSave","dehydrateOptions","persistClient","dehydrate","dehydrateMutations","shouldDehydrateMutation","dehydrateQueries","shouldDehydrateQuery","defaultContext","QueryClientSharingContext","getQueryClientContext","contextSharing","ReactQueryClientContext","useQueryClient","QueryClientProvider","Context","IsRestoringContext","useIsRestoring","QueryErrorResetBoundaryContext","clearReset","useQueryErrorResetBoundary","MutationObserver","bindMethods","updateResult","mutate","_this$currentMutation","prevOptions","currentMutation","_this$currentMutation2","notifyOptions","currentResult","mutateOptions","isSuccess","isError","isIdle","_this$mutateOptions$o","_this$mutateOptions","_this$mutateOptions$o2","_this$mutateOptions2","_this$mutateOptions$o3","_this$mutateOptions3","_this$mutateOptions$o4","_this$mutateOptions4","QueryObserver","trackedProps","selectError","currentQuery","shouldFetchOnMount","executeFetch","updateTimers","shouldFetchOn","refetchOnWindowFocus","clearStaleTimeout","clearRefetchInterval","prevQuery","updateQuery","mounted","shouldFetchOptionally","updateStaleTimeout","nextRefetchInterval","computeRefetchInterval","currentRefetchInterval","updateRefetchInterval","getOptimisticResult","createResult","trackResult","trackedResult","getCurrentQuery","fetchOptimistic","_fetchOptions$cancelR","staleTimeoutId","_this$options$refetch","refetchInterval","nextInterval","refetchIntervalId","refetchIntervalInBackground","prevResult","prevResultState","currentResultState","prevResultOptions","currentResultOptions","queryChange","queryInitialState","currentQueryInitialState","prevQueryResult","previousQueryResult","isPreviousData","isPlaceholderData","_optimisticResults","fetchOnMount","fetchOptionally","keepPreviousData","selectFn","selectResult","placeholderData","isInitialLoading","isFetched","isFetchedAfterMount","isRefetching","isLoadingError","isRefetchError","nextResult","defaultNotifyOptions","shouldNotifyListeners","notifyOnChangeProps","includedProps","changed","retryOnMount","refetchOnMount","createSyncStoragePersister","throttleTime","trySave","throttle","func","timer","errorCount","cacheString","persistQueryClient","persistQueryClientUnsubscribe","hasUnsubscribed","persistQueryClientSubscribe","unsubscribeQueryCache","unusbscribeMutationCache","queryClientContext","WagmiConfig","useConfig","useSyncExternalStore2","queryKey17","useMutation","_useErrorBoundary","onStoreChange","mutateAsync","useQuery","baseQuery","useBaseQuery","Observer","isRestoring","errorResetBoundary","internal","useQueryClient2","usePublicClient","useChainId","queryKey2","scopeKey","entity","queryFn2","useBlockNumber","chainId_","useWebSocketPublicClient","isPlainObject2","useSyncExternalStoreWithTracked","getServerSnapshot","isEqual","trackedKeys","useAccount","previousAccountRef","previousAccount","isReconnected","useConnect","connectAsync","pendingConnector","useNetwork","mutationKey3","mutationFn3","useSignMessage","signMessageAsync","mutationKey5","mutationFn5","useSwitchNetwork","throwForSwitchChainNotSupported","switchNetwork2","switchNetworkAsync","forceUpdate","useForceUpdate","switchNetwork_","switchNetworkAsync_","supportsSwitchChain","pendingChainId","useContractRead","blockNumberOverride","cacheOnBlock","enabled_","oldData","queryKey_","queryKey6","enabled2","useInvalidateOnBlock","queryFn6","mutationFn6","useContractWrite","mutationKey6","overrideConfig","writeAsync"],"sourceRoot":""}