{"version":3,"mappings":"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AAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,KAAK,EAAO,KAAK,EAAO,KAAK,EAAO,KAAK,EAAO,KAAK,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,IAAI,EAAO,I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B,CACxB,WACA,WACA,UACA,oBACA,WACA,OACA,MACH,EACD,mCAAoC,WACpC,mCAAoC,CAChC,SAAU,WACV,eAAgB,WAChB,QAAS,UACT,UAAW,oBACX,aAAc,WACd,KAAM,OACN,KAAM,MACT,EACD,0BAA2B,uCAC3B,sBAAuB,CACnB,MACA,MACA,QACA,OACA,MACA,MACA,OACA,MACA,OACA,QACA,OACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,OACA,OACA,MACA,MACA,OACA,MACA,MACA,QACA,IACH,EACD,oBAAqB,CACjB,MACA,MACA,QACA,OACA,MACA,MACA,OACA,MACA,OACA,QACA,OACA,OACA,MACA,OACA,MACA,OACA,MACA,OACA,OACA,OACA,MACA,MACA,OACA,MACA,MACA,QACA,KACA,QACA,MACA,QACA,OACA,OACA,MACA,OACA,OACA,QACA,QACA,MACA,OACA,QACA,MACA,SACA,QACA,MACA,MACA,KACA,OACA,MACA,SACA,SACA,MACA,QACA,MACA,OACA,SACA,KACA,KACH,EACD,wBAAyB,CACrB,WACA,eACA,YACA,aACA,cACA,YACA,aACA,aACA,eACA,aACA,cACA,mBACH,EACD,qBAAsB,6CACtB,2BAA4B,CAChC,ECvJaG,GAAiB,CAC1B,UAAW,CACP,OAAI,OAAO,OAAW,IACX,GAAQ,OAAO,WAAW,kBAAkB,EAAE,SACjD,wDAAwD,KAAK,UAAU,SAAS,GAEjF,EACV,EACD,iBAAiBC,EAASC,EAAc,GAAI,CACxC,OAAOD,GAAA,YAAAA,EAAS,GAAG,oBAAoB,SAASC,EAAY,YAAW,EAC1E,EACD,WAAY,CACR,MAAMv8C,EAAK,OAAO,UAAU,UAAU,YAAW,EACjD,OAAOq8C,GAAe,SAAU,GAAIr8C,EAAG,SAAS,SAAS,CAC5D,EACD,OAAQ,CACJ,MAAMA,EAAK,OAAO,UAAU,UAAU,YAAW,EACjD,OAAOq8C,GAAe,aAAer8C,EAAG,SAAS,QAAQ,GAAKA,EAAG,SAAS,MAAM,EACnF,EACD,UAAW,CACP,OAAO,OAAO,OAAW,GAC5B,EACD,iBAAiBw8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Y,SAAS5rF,EAAM,GAAG,GAAK,CAACmsF,GAAS,CAACD,GAChElsF,EAAM,eAAc,CAE3B,CACL,ECjDaqsF,GAAW,CACpB,CACI,SAAU,GACV,OAAQ,CAAE,EACV,KAAM,OACN,QAAS,CACL,CACI,KAAM,GACN,KAAM,QACT,CACJ,EACD,QAAS,GACT,gBAAiB,OACjB,KAAM,UACT,EACD,CACI,SAAU,GACV,OAAQ,CACJ,CACI,KAAM,WACN,KAAM,SACT,EACD,CACI,KAAM,SACN,KAAM,SACT,CACJ,EACD,KAAM,UACN,QAAS,CACL,CACI,KAAM,GACN,KAAM,MACT,CACJ,EACD,QAAS,GACT,gBAAiB,aACjB,KAAM,UACT,EACD,CACI,SAAU,GACV,OAAQ,CAAE,EACV,KAAM,cACN,QAAS,CACL,CACI,KAAM,GACN,KAAM,SACT,CACJ,EACD,QAAS,GACT,gBAAiB,OACjB,KAAM,UACT,EACD,CACI,SAAU,GACV,OAAQ,CACJ,CACI,KAAM,QACN,KAAM,SACT,EACD,CACI,KAAM,MACN,KAAM,SACT,EACD,CACI,KAAM,SACN,KAAM,SACT,CACJ,EACD,KAAM,eACN,QAAS,CACL,CACI,KAAM,GACN,KAAM,MACT,CACJ,EACD,QAAS,GACT,gBAAiB,aACjB,KAAM,UACT,EACD,CACI,SAAU,GACV,OAAQ,CAAE,EACV,KAAM,WACN,QAAS,CACL,CACI,KAAM,GACN,KAAM,OACT,CACJ,EACD,QAAS,GACT,gBAAiB,OACjB,KAAM,UACT,EACD,CACI,SAAU,GACV,OAAQ,CACJ,CACI,KAAM,SACN,KAAM,SACT,CACJ,EACD,KAAM,YACN,QAAS,CACL,CACI,KAAM,UACN,KAAM,SACT,CACJ,EACD,QAAS,GACT,gBAAiB,OACjB,KAAM,UACT,EACD,CACI,SAAU,GACV,OAAQ,CAAE,EACV,KAAM,SACN,QAAS,CACL,CACI,KAAM,GACN,KAAM,QACT,CACJ,EACD,QAAS,GACT,gBAAiB,OACjB,KAAM,UACT,EACD,CACI,SAAU,GACV,OAAQ,CACJ,CACI,KAAM,MACN,KAAM,SACT,EACD,CACI,KAAM,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BAC/E+N,IAAU/N,GAAA,YAAAA,EAAiB,mBAAoB,GAAG,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;A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AA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,SCATiH,GAAYjH;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,QCAZkH,GAAUlH;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,QCAVmH,GAAWnH;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,SCAXoH,GAAapH;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,QCAbqH,GAASrH;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,SCATsH,GAAUtH;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,QCAVuH,GAAavH;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,SCAbwH,GAAYxH;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA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","names":["version","errorConfig","docsBaseUrl","docsPath","docsSlug","BaseError","shortMessage","args","details","_a","docsUrl","message","fn","walk","err","max","min","signed","size","value","InvalidBytesBooleanError","bytes","InvalidHexBooleanError","hex","givenSize","maxSize","offset","position","targetSize","type","InvalidBytesLengthError","pad","hexOrBytes","dir","padHex","padBytes","hex_","SizeExceedsPaddingSizeError","paddedBytes","i","padEnd","isHex","strict","trim","data","sliceLength","encoder","toBytes","opts","numberToBytes","boolToBytes","hexToBytes","stringToBytes","assertSize","charCodeMap","charCodeToBase16","char","hexString","length","index","j","nibbleLeft","nibbleRight","numberToHex","size_","SizeOverflowError","hexToBigInt","hexToBool","hexToNumber","hexToString","hexes","_v","toHex","stringToHex","boolToHex","bytesToHex","string","value_","maxValue","minValue","suffix","IntegerOutOfRangeError","formatAbiItem","abiItem","includeName","InvalidDefinitionTypeError","formatAbiParams","params","param","formatAbiParam","AbiConstructorNotFoundError","AbiConstructorParamsNotFoundError","AbiDecodingDataSizeTooSmallError","AbiDecodingZeroDataError","AbiEncodingArrayLengthMismatchError","expectedLength","givenLength","AbiEncodingBytesSizeMismatchError","expectedSize","AbiEncodingLengthMismatchError","AbiErrorSignatureNotFoundError","signature","AbiEventSignatureEmptyTopicsError","AbiEventSignatureNotFoundError","AbiEventNotFoundError","eventName","AbiFunctionNotFoundError","functionName","AbiFunctionOutputsNotFoundError","AbiItemAmbiguityError","x","y","DecodeLogDataMismatch","DecodeLogTopicsMismatch","InvalidAbiEncodingTypeError","InvalidAbiDecodingTypeError","concat","values","concatHex","concatBytes","arr","result","acc","address","key","firstKey","anumber","n","isBytes","a","abytes","b","lengths","ahash","h","aexists","instance","checkFinished","aoutput","out","U32_MASK64","_32n","fromBig","le","split","lst","Ah","Al","l","rotlSH","s","rotlSL","rotlBH","rotlBL","crypto","u32","createView","rotr","word","shift","isLE","byteSwap","byteSwap32","utf8ToBytes","str","arrays","sum","res","Hash","wrapConstructor","hashCons","hashC","msg","tmp","randomBytes","bytesLength","SHA3_PI","SHA3_ROTL","_SHA3_IOTA","_0n","_1n","_2n","_7n","_256n","_0x71n","round","R","t","SHA3_IOTA_H","SHA3_IOTA_L","rotlH","rotlL","keccakP","rounds","B","idx1","idx0","B0","B1","Th","Tl","curH","curL","PI","Keccak","blockLen","outputLen","enableXOF","state","len","pos","take","bufferOut","to","gen","keccak_256","keccak256","to_","checksumAddressCache","LruMap","checksumAddress","address_","chainId","hexAddress","hash","getAddress","isAddress","InvalidAddressError","addressRegex","isAddressCache","options","cacheKey","slice","start","end","sliceHex","sliceBytes","assertStartOffset","SliceOffsetOutOfBoundsError","assertEndOffset","bytesRegex","integerRegex","encodeAbiParameters","preparedParams","prepareParams","encodeParams","prepareParam","arrayComponents","getArrayComponents","encodeArray","encodeTuple","encodeAddress","encodeBool","encodeNumber","encodeBytes","encodeString","staticSize","dynamic","encoded","staticParams","dynamicParams","dynamicSize","InvalidArrayError","dynamicChild","preparedParam","paramSize","bytesSize","hexValue","partsLength","parts","param_","matches","encodeDeployData","parameters","abi","bytecode","description","parseAccount","account","AccountNotFoundError","AccountTypeNotSupportedError","metaMessages","publicKeyToAddress","publicKey","recoverPublicKey","hashHex","secp256k1","__vitePreload","secp256k1$1","r","v","yParity","yParityOrV","recoveryBit","toRecoveryBit","signatureHex","recoverAddress","NegativeOffsetError","PositionOutOfBoundsError","RecursiveReadLimitExceededError","count","limit","staticCursor","position_","byte","oldPosition","createCursor","recursiveReadLimit","cursor","toRlp","encodable","getEncodable","getEncodableList","getEncodableBytes","list","bodyLength","sizeOfBodyLength","getSizeOfLength","encode","bytesOrHex","sizeOfBytesLength","hashAuthorization","nonce","recoverAuthorizationAddress","authorization","ChainDoesNotSupportContract","blockNumber","chain","contract","ChainMismatchError","currentChainId","ChainNotFoundError","ClientChainNotConfiguredError","InvalidChainIdError","assertCurrentChain","etherUnits","gweiUnits","weiUnits","formatUnits","decimals","display","negative","integer","fraction","formatGwei","wei","unit","ExecutionRevertedError","cause","reason","FeeCapTooHighError","maxFeePerGas","FeeCapTooLowError","NonceTooHighError","NonceTooLowError","NonceMaxValueError","InsufficientFundsError","IntrinsicGasTooHighError","gas","IntrinsicGasTooLowError","TransactionTypeNotSupportedError","TipAboveFeeCapError","maxPriorityFeePerGas","UnknownNodeError","formatEther","prettyPrint","entries","maxLength","FeeConflictError","InvalidLegacyVError","InvalidSerializableTransactionError","transaction","InvalidStorageKeySizeError","storageKey","TransactionExecutionError","gasPrice","prettyArgs","TransactionNotFoundError","blockHash","blockTag","identifier","TransactionReceiptNotFoundError","WaitForTransactionReceiptTimeoutError","stringify","replacer","space","getContractAddress","getUrl","url","HttpRequestError","body","headers","status","RpcRequestError","error","TimeoutError","unknownErrorCode","RpcError","code","name","ProviderRpcError","ParseRpcError","InvalidRequestRpcError","MethodNotFoundRpcError","method","InvalidParamsRpcError","InternalRpcError","InvalidInputRpcError","ResourceNotFoundRpcError","ResourceUnavailableRpcError","TransactionRejectedRpcError","MethodNotSupportedRpcError","LimitExceededRpcError","JsonRpcVersionUnsupportedError","UserRejectedRequestError","UnauthorizedProviderError","UnsupportedProviderMethodError","ProviderDisconnectedError","ChainDisconnectedError","SwitchChainError","UnknownRpcError","getNodeError","executionRevertedError","e","getTransactionError","extract","format","extract_","formatted","keys","defineFormatter","exclude","overrides","rpcTransactionType","formatTransactionRequest","request","rpcRequest","formatAuthorizationList","authorizationList","getAction","client","actionFn","action_implicit","action_explicit","maxUint256","assertRequest","account_","getChainId","chainIdHex","BaseFeeScalarError","Eip1559FeesNotSupportedError","MaxFeePerGasTooLowError","BlockNotFoundError","transactionType","formatTransaction","transaction_","defineTransaction","formatBlock","block","transactions","defineBlock","getBlock","blockTag_","includeTransactions_","includeTransactions","blockNumberHex","_c","_b","getGasPrice","estimateMaxPriorityFeePerGas","internal_estimateMaxPriorityFeePerGas","block_","maxPriorityFeePerGas_","maxPriorityFeePerGasHex","estimateFeesPerGas","internal_estimateFeesPerGas","baseFeeMultiplier","denominator","multiply","base","fees","baseFeePerGas","EstimateGasExecutionError","getEstimateGasError","AccountStateConflictError","StateAssignmentConflictError","prettyStateMapping","stateMapping","pretty","slot","prettyStateOverride","stateOverride","val","serializeStateMapping","serializeAccountStateOverride","balance","stateDiff","rpcAccountStateOverride","serializeStateOverride","rpcStateOverride","accountState","getBalance","estimateGas","estimateGas_rpc","accessList","blobs","blobVersionedHashes","maxFeePerBlobGas","rest","prepareTransactionRequest","chainFormat","estimate","estimates","curr","getTransactionCount","blobsToCommitments","kzg","commitments","blob","blobsToProofs","proofs","commitment","setBigUint64","view","byteOffset","_u32_max","wh","wl","Chi","c","Maj","HashMD","padOffset","buffer","dataView","oview","outLen","finished","destroyed","SHA256_K","SHA256_IV","SHA256_W","SHA256","A","C","D","E","F","G","H","W15","W2","s0","s1","sigma1","T1","T2","sha256","noble_sha256","commitmentToVersionedHash","versionedHash","commitmentsToVersionedHashes","hashes","blobsPerTransaction","bytesPerFieldElement","fieldElementsPerBlob","bytesPerBlob","maxBytesPerTransaction","versionedHashVersionKzg","BlobSizeTooLargeError","EmptyBlobError","InvalidVersionedHashSizeError","InvalidVersionedHashVersionError","toBlobs","active","toBlobSidecars","sidecars","getTransactionType","defaultParameters","eip1559NetworkCache","nonceManager","getBlock_","getChainId_","versionedHashes","isEip1559Network","gasPrice_","sendRawTransaction","serializedTransaction","supportsWalletNamespace","sendTransaction","isWalletNamespaceSupported","walletNamespaceError","serializer","_d","multicall3Abi","universalResolverErrors","universalResolverResolveAbi","universalResolverReverseAbi","textResolverAbi","addressResolverAbi","universalSignatureValidatorAbi","erc20Abi","bytesToBigInt","bytesToBool","bytes_","bytesToNumber","bytesToString","decodeAbiParameters","consumed","consumed_","decodeParameter","staticPosition","decodeArray","decodeTuple","decodeAddress","decodeBool","decodeBytes","decodeNumber","decodeString","sizeOfLength","sizeOfOffset","startOfData","hasDynamicChild","_","hasUnnamedChild","component","hashSignature","sig","execTyped","regex","match","isTupleRegex","tupleRegex","formatAbiParameter","abiParameter","formatAbiParameters","abiParameters","errorSignatureRegex","isErrorSignature","execErrorSignature","eventSignatureRegex","isEventSignature","execEventSignature","functionSignatureRegex","isFunctionSignature","execFunctionSignature","structSignatureRegex","isStructSignature","execStructSignature","constructorSignatureRegex","isConstructorSignature","execConstructorSignature","fallbackSignatureRegex","isFallbackSignature","execFallbackSignature","receiveSignatureRegex","isReceiveSignature","eventModifiers","functionModifiers","InvalidAbiItemError","UnknownTypeError","UnknownSolidityTypeError","InvalidParameterError","SolidityProtectedKeywordError","InvalidModifierError","modifier","InvalidFunctionModifierError","InvalidAbiTypeParameterError","InvalidSignatureError","UnknownSignatureError","InvalidStructSignatureError","CircularReferenceError","InvalidParenthesisError","current","depth","getParameterCacheKey","structs","structKey","struct","propertyKey","property","parameterCache","parseSignature","parseFunctionSignature","parseEventSignature","parseErrorSignature","parseConstructorSignature","parseFallbackSignature","inputParams","splitParameters","inputs","inputLength","parseAbiParameter","outputs","outputParams","outputLength","abiParameterWithoutTupleRegex","abiParameterWithTupleRegex","dynamicIntegerRegex","parameterCacheKey","isTuple","isSolidityKeyword","indexed","components","components_","isSolidityType","isValidDataLocation","tail","protectedKeywordsRegex","isArray","parseStructs","signatures","shallowStructs","signaturesLength","properties","propertiesLength","k","trimmed","resolvedStructs","entriesLength","resolveStructs","typeWithoutTupleRegex","ancestors","array","parseAbi","parseAbiItem","signature_","normalizeSignature","level","valid","toSignature","def","def_","toSignatureHash","toEventSelector","toFunctionSelector","getAbiItem","isSelector","abiItems","matchedAbiItem","arg","isArgOfType","ambiguousTypes","getAmbiguousTypes","argType","abiParameterType","sourceParameters","targetParameters","parameterIndex","sourceParameter","targetParameter","types","decodeFunctionResult","item","prepareEncodeFunctionData","encodeFunctionData","getChainContractAddress","panicReasons","solidityError","solidityPanic","decodeErrorResult","formatAbiItemWithArgs","includeFunctionName","input","CallExecutionError","ContractFunctionExecutionError","contractAddress","sender","formattedArgs","functionWithParams","ContractFunctionRevertedError","decodedData","errorName","errorArgs","firstArg","errorWithParams","ContractFunctionZeroDataError","CounterfactualDeploymentFailedError","factory","RawContractError","isNullUniversalResolverError","callType","_e","_f","encodedLabelToLabelhash","label","namehash","labels","hashFromEncodedLabel","hashed","encodeLabelhash","labelhash","packetToBytes","packet","EXECUTION_REVERTED_ERROR_CODE","getContractError","aggregate3Signature","deploylessCallViaBytecodeBytecode","deploylessCallViaFactoryBytecode","universalSignatureValidatorByteCode","getCallError","withResolvers","resolve","reject","resolve_","reject_","schedulerCache","createBatchScheduler","id","shouldSplitBatch","wait","sort","exec","scheduler","getScheduler","flush","getBatchedArgs","setScheduler","promise","call","batch","data_","factoryData","deploylessCallViaBytecode","deploylessCallViaFactory","deploylessCall","toDeploylessCallViaBytecodeData","toDeploylessCallViaFactoryData","shouldPerformMulticall","scheduleMulticall","response","getRevertErrorData","offchainLookup","offchainLookupSignature","request_","batchSize","multicallAddress_","multicallAddress","schedule","requests","calls","calldata","returnData","success","readContract","getEnsAddress","coinType","gatewayUrls","universalResolverAddress_","universalResolverAddress","functionData","readContractParameters","readContractAction","EnsAvatarInvalidMetadataError","EnsAvatarInvalidNftUriError","EnsAvatarUriResolutionError","uri","EnsAvatarUnsupportedNamespaceError","namespace","networkRegex","ipfsHashRegex","base64Regex","dataURIRegex","isImageUri","contentType","img","getGateway","custom","defaultGateway","resolveAvatarUri","isEncoded","ipfsGateway","arweaveGateway","networkRegexMatch","protocol","subpath","target","subtarget","isIPNS","isIPFS","replacedUri","parsedUri","getJsonImage","getMetadataAvatarUri","parseAvatarUri","resolvedURI","isOnChain","parseNftUri","uri_","reference","asset_namespace","tokenID","eip_namespace","chainID","erc_namespace","getNftTokenUri","nft","parseAvatarRecord","record","parseNftAvatarUri","nftUri","resolvedNftUri","encodedJson","decoded","uriTokenId","getEnsText","getEnsAvatar","assetGatewayUrls","getEnsName","reverseNode","resolvedAddress","getEnsResolver","resolverAddress","createAccessList","createFilterRequestScope","requestMap","method_","transport","createBlockFilter","getRequest","FilterTypeNotSupportedError","encodeEventTopics","definition","topics","indexedInputs","args_","encodeArg","createContractEventFilter","fromBlock","toBlock","createEventFilter","event","events_","events","createPendingTransactionFilter","estimateContractGas","dataSuffix","getBlobBaseFee","baseFee","promiseCache","responseCache","getCache","buildCache","cache","withCache","cacheTime","getBlockNumber","getBlockTransactionCount","getCode","isAddressEqual","decodeEventLog","strict_","argTopics","isUnnamed","topic","decodeTopic","nonIndexedInputs","parseEventLogs","logs","log","includesArgs","matchArgs","isEqual","formatLog","getLogs","formattedLogs","getContractEvents","Eip712DomainNotFoundError","getEip712Domain","fields","verifyingContract","salt","extensions","formatFeeHistory","feeHistory","reward","getFeeHistory","blockCount","rewardPercentiles","getFilterChanges","_client","filter","getFilterLogs","getStorageAt","getTransaction","getTransactionConfirmations","transactionReceipt","transactionBlockNumber","receiptStatuses","formatTransactionReceipt","receipt","defineTransactionReceipt","getTransactionReceipt","multicall","allowFailure","batchSize_","contracts","chunkedCalls","currentChunk","currentChunkSize","callData","aggregate3Results","results","aggregate3Result","abool","title","numberToHexUnpadded","num","asciis","asciiToBase16","ch","hl","al","ai","hi","n1","n2","bytesToNumberBE","bytesToNumberLE","numberToBytesBE","numberToBytesLE","numberToVarBytesBE","ensureBytes","equalBytes","diff","isPosBig","inRange","aInRange","bitLen","bitGet","bitSet","bitMask","u8n","u8fr","createHmacDrbg","hashLen","qByteLen","hmacFn","reset","reseed","seed","sl","pred","validatorFns","object","validateObject","validators","optValidators","checkField","fieldName","isOptional","checkVal","notImplemented","memoized","map","computed","getVersion","docs","bigIntSuffix","Bytes.size","Bytes.SizeOverflowError","Bytes.SizeExceedsPaddingSizeError","Hex.size","Hex.SizeOverflowError","Hex.SliceOffsetOutOfBoundsError","Hex.SizeExceedsPaddingSizeError","from","fromHex","fromArray","internal_hex.assertSize","Hex.padRight","internal.charCodeToBase16","Errors.BaseError","fromString","internal.assertSize","padRight","internal.pad","assert","InvalidHexTypeError","InvalidHexValueError","fromBoolean","padLeft","fromBytes","fromNumber","internal.assertStartOffset","internal.assertEndOffset","validate","Json.stringify","toRpc","withdrawal","Hex.fromNumber","blockOverrides","Withdrawal.toRpc","simulateBlocks","blocks","returnFullTransactions","traceTransfers","validation","blockStateCalls","BlockOverrides.toRpc","call_","stateOverrides","gasUsed","as","noble_keccak256","Bytes.from","Hex.fromBytes","caches","checksum","InvalidInputError","InvalidChecksumError","Caches.checksum","Hash.keccak256","Bytes.fromString","characters","Address.validate","prepare","abitype.parseAbiItem","getSignatureHash","fromAbi","Hex.validate","getSelector","Hex.slice","NotFoundError","internal.isArgOfType","internal.getAmbiguousTypes","AmbiguityError","overloads","getSignature","abitype.formatAbiItem","internal.normalizeSignature","Hex.fromString","selector","arrayRegex","prepareParameters","preparedParameters","prepareParameter","parameter_","parameter","encodeBoolean","AbiParameters.InvalidTypeError","staticParameters","dynamicParameters","Hex.concat","Address.assert","Hex.padLeft","AbiParameters.InvalidArrayError","AbiParameters.ArrayLengthMismatchError","parametersize","AbiParameters.BytesSizeMismatchError","Hex.fromBoolean","Hex.IntegerOutOfRangeError","LengthMismatchError","internal.prepareParameters","internal.encode","encodePacked","intMatch","Solidity.integerRegex","_type","baseType","bits","bytesMatch","Solidity.bytesRegex","BytesSizeMismatchError","arrayMatch","Solidity.arrayRegex","childType","InvalidTypeError","ArrayLengthMismatchError","abiConstructor","AbiParameters.encode","AbiItem.from","encodeData","abiFunction","AbiItem.fromAbi","AbiItem.NotFoundError","AbiItem.getSelector","ethAddress","zeroAddress","withDedupe","enabled","time","withRetry","delay_","retryCount","shouldRetry","attemptRetry","retry","delay","buildRequest","overrideOptions","dedupe","methods","retryDelay","uid","requestId","err_","retryAfter","OffchainLookupError","callbackSelector","extraData","urls","OffchainLookupResponseMalformedError","OffchainLookupSenderMismatchError","offchainLookupAbiItem","ccipRead","ccipRequest_","ccipRequest","defineChain","withTimeout","errorInstance","timeout","signal","timeoutId","controller","createIdStore","idCache","getHttpRpcClient","onRequest","onResponse","fetchOptions","signal_","init","InvalidDomainError","domain","InvalidPrimaryTypeError","primaryType","InvalidStructTypeError","hashTypedData","getTypesForEIP712Domain","validateTypedData","hashDomain","hashStruct","encodedTypes","encodedValues","hashType","field","encodeField","encodedHashType","encodeType","unsortedDeps","findTypeDependencies","deps","primaryType_","parsedType","typeValuePairs","validateData","integerMatch","validateReference","assertTransactionEIP7702","assertTransactionEIP1559","assertTransactionEIP4844","assertTransactionEIP2930","assertTransactionLegacy","serializeAccessList","serializedAccessList","storageKeys","serializeTransaction","serializeTransactionEIP1559","serializeTransactionEIP2930","serializeTransactionEIP4844","serializeTransactionEIP7702","serializeTransactionLegacy","serializedAuthorizationList","serializeAuthorizationList","toYParitySignatureArray","proof","presignMessagePrefix","toPrefixedMessage","message_","prefix","hashMessage","erc6492MagicBytes","isErc6492Signature","serializeErc6492Signature","InvalidDecimalNumberError","parseUnits","left","right","rounded","parseEther","ether","getBalanceCode","simulateCalls","traceAssetChanges","getBalanceData","AbiConstructor.encode","AbiConstructor.from","AbiFunction.encodeData","AbiFunction.from","assetAddresses","resultsStateOverrides","override","block_results","block_ethPre","block_assetsPre","block_ethPost","block_assetsPost","block_decimals","block_tokenURI","block_symbols","block_calls","ethPre","assetsPre","balancesPre","ethPost","assetsPost","balancesPost","symbols","tokenURI","changes","balancePost","balancePre","decimals_","symbol_","tokenURI_","token","change","listenersCache","cleanupCache","callbackCount","observe","observerId","callbacks","callbackId","getListeners","unsubscribe","listeners","cb","unwatch","cleanup","emit","listener","poll","emitOnBegin","initialWaitTime","interval","initialWait","watchBlocks","emitMissed","onBlock","onError","poll_","pollingInterval","enablePolling","prevBlock","emitFetched","unsubscribe_","watchBlockNumber","onBlockNumber","prevBlockNumber","uninstallFilter","watchEvent","onLogs","previousBlockNumber","initialized","watchPendingTransactions","onTransactions","formatStorageProof","storageProof","formatProof","getProof","waitForTransactionReceipt","confirmations","onReplaced","replacedTransaction","retrying","timer","_unobserve","_unwatch","blockNumber_","done","replacementTransaction","signMessage","simulateContract","callRequest","minimizedAbi","_key","buf","oHash","iHash","hmac","HMAC","_3n","_4n","_5n","_8n","mod","pow","power","modulo","pow2","invert","number","u","q","m","tonelliShanks","P","legendreC","Q","S","Z","p1div4","Fp","root","Q1div2","g","t2","ge","FpSqrt","c1","nv","FIELD_FIELDS","validateField","initial","FpPow","f","p","d","FpInvertBatch","nums","lastMultiplied","inverted","nLength","nBitLength","_nBitLength","nByteLength","Field","ORDER","redef","BITS","BYTES","sqrtP","lhs","rhs","getFieldBytesLength","fieldOrder","bitLength","getMinHashLength","mapHashToField","fieldLen","minLen","reduced","constTimeNegate","condition","neg","validateW","W","calcWOpts","windows","windowSize","validateMSMPoints","points","validateMSMScalars","scalars","pointPrecomputes","pointWindowSizes","getW","wNAF","elm","window","precomputes","mask","maxNumber","shiftBy","wbits","offset1","offset2","cond1","cond2","transform","comp","prev","pippenger","fieldN","zero","MASK","buckets","lastBits","scalar","resI","sumI","validateBasic","curve","validateSigVerOpts","validatePointOpts","ut.validateObject","endo","b2n","h2b","ut","DERErr","DER","tag","dataLen","ut.numberToHexUnpadded","lenLen","first","isLong","lengthBytes","int","tlv","ut.abytes","seqBytes","seqLeftBytes","rBytes","rLeftBytes","sBytes","sLeftBytes","rs","ss","seq","weierstrassPoints","CURVE","Fn","point","_isCompressed","ut.concatBytes","weierstrassEquation","x2","x3","isWithinCurveOrder","ut.inRange","normPrivateKeyToScalar","wrapPrivateKey","N","ut.isBytes","ut.bytesToHex","ut.bytesToNumberBE","ut.aInRange","assertPrjPoint","other","Point","toAffineMemo","iz","z","is0","ax","ay","zz","assertValidMemo","px","py","pz","toInv","privateKey","wnaf","X1","Y1","Z1","X2","Y2","Z2","U1","U2","b3","X3","Y3","Z3","t0","t1","t3","t4","t5","sc","I","k1neg","k1","k2neg","k2","k1p","k2p","fake","f1p","f2p","mul","cofactor","isTorsionFree","clearCofactor","isCompressed","_bits","validateOpts","weierstrass","curveDef","CURVE_ORDER","compressedLen","uncompressedLen","modN","invN","cat","head","y2","sqrtError","isYOdd","cl","ul","numToNByteStr","ut.numberToBytesBE","isBiggerThanHalfOrder","HALF","normalizeS","slcNum","Signature","recovery","msgHash","rec","bits2int_modN","radj","ir","u1","u2","ut.hexToBytes","utils","getPublicKey","isProbPub","getSharedSecret","privateA","publicB","bits2int","delta","ORDER_MASK","ut.bitMask","int2octets","prepSig","defaultSigOpts","lowS","prehash","ent","h1int","seedArgs","k2sig","kBytes","ik","normS","defaultVerOpts","sign","privKey","ut.createHmacDrbg","verify","sg","isObj","_sig","derError","is","getHash","msgs","createCurve","defHash","create","secp256k1P","secp256k1N","divNearest","sqrtMod","_6n","_11n","_22n","_23n","_44n","_88n","b2","b6","b9","b11","b22","b44","b88","b176","b220","b223","Fpk1","a1","b1","a2","POW_2_128","c2","serializeSignature","yParity_","verifyHash","universalSignatureVerifierAddress","wrappedSignature","verifyMessage","verifyTypedData","watchContractEvent","writeContract","__classPrivateFieldGet","receiver","kind","_BaseError_instances","_BaseError_walk","ChainNotConfiguredError","ConnectorAlreadyConnectedError","ConnectorNotConnectedError","ConnectorAccountNotFoundError","connector","ConnectorChainMismatchError","connectionChainId","connectorChainId","ConnectorUnavailableReconnectingError","connect","config","accounts","createClient","extend","extendFn","extended","combined","createTransport","uid_","provider","defaultRetryCount","fallback","transports_","rank","shouldThrow_","shouldThrow","transports","includes","fetch","include","rankOptions","rankTransports","onTransports","ping","sampleCount","weights","stabilityWeight","latencyWeight","samples","rankTransports_","sample","transport_","maxLatency","latency","scores","latencies","latencyScore","successes","stabilityScore","UrlRequiredError","http","onFetchRequest","onFetchResponse","raw","retryCount_","timeout_","url_","rpcClient","parseSiweMessage","scheme","statement","prefixRegex","expirationTime","issuedAt","notBefore","suffixRegex","resources","validateSiweMessage","verifySiweMessage","parsed","publicActions","getConnectorClient","connection","disconnect","connections","nextConnection","viem_estimateGas","getUnit","getAccount","addresses","viem_multicall","viem_readContract","readContracts","contractsByChainId","promises","multicallResults","resultIndexes","tokenAddress","getTokenBalance","symbol","viem_getBalance","balanceAddress","symbolType","deepEqual","previousChains","getChains","chains","getClient","previousConnections","getConnections","viem_getEnsAddress","viem_getEnsAvatar","viem_getEnsName","getPublicClient","viem_prepareTransactionRequest","isReconnecting","reconnect","connectors","connector_","recentConnectorId","sorted","connected","providers","viem_sendTransaction","viem_signMessage","ProviderNotFoundError","SwitchChainNotSupportedError","switchChain","addEthereumChainParameter","watchAccount","onChange","aConnector","aRest","bConnector","bRest","watchChainId","watchConnections","watchConnectors","prevConnectors","watchPublicClient","viem_waitForTransactionReceipt","txn","viem_writeContract","injected","shimDisconnect","unstable_shimAsyncInject","getTarget","targetMap","accountsChanged","chainChanged","hexChainId","findProvider","handleEthereum","blockExplorer","blockExplorers","blockExplorerUrls","rpcUrls","addEthereumChain","connectInfo","flags","flag","select","isProvider","ethereum","requestProviders","handler","createStore","providerDetails","providerDetail","info","rdns","emitImmediately","subscribeWithSelectorImpl","set","get","api","origSubscribe","optListener","equalityFn","currentSlice","nextSlice","previousSlice","subscribeWithSelector","createJSONStorage","getStorage","storage","parse","str2","newValue","toThenable","onFulfilled","_onRejected","_onFulfilled","onRejected","persistImpl","baseOptions","persistedState","currentState","hasHydrated","hydrationListeners","finishHydrationListeners","setItem","savedSetState","replace","configResult","stateFromStorage","hydrate","_a2","postRehydrationCallback","deserializedStorageValue","migrationResult","migrated","migratedState","newOptions","persist","createStoreImpl","createState","setState","partial","nextState","previousState","getState","initialState","has","Events","EE","context","once","addListener","emitter","evt","clearEvent","EventEmitter","names","handlers","ee","a3","a4","a5","module","Emitter","createEmitter","deserialize","reviver","getReferenceKey","cutoff","getCutoff","createReplacer","circularReplacer","hasReplacer","hasCircularReplacer","thisCutoff","valueCutoff","serialize","indent","createStorage","deserialize_","serialize_","noopStorage","unwrap","defaultValue","unwrapped","getDefaultStorage","createConfig","multiInjectedProviderDiscovery","syncConnectedChain","ssr","mipd","createMipd","collection","rdnsSet","connectorFns","setup","rdnsValues","providerDetailToConnector","connectorFn","clients","store","chainIds","getInitialState","currentVersion","validatePersistedChainId","defaultChainId","connectorIdSet","connectorRdnsSet","newConnectors","newState","nextChains","reconnectOnMount","mipdConnectors","viem_fallback","extractRpcUrls","fallbackUrl","formatters","isDeposit","serializeTransactionDeposit","serializeTransaction_","serializers","assertTransactionDeposit","sourceHash","isSystemTx","mint","chainConfig","arbitrum","avalanche","sourceId","bsc","fantom","mainnet","optimism","polygon","walletConnect","isNewChainsStale","provider_","providerPromise","NAMESPACE","displayUri","sessionDelete","targetChainId","isChainsStale","optionalChains","optionalChain","initProvider","EthereumProvider","requestedChains","_error","connectorChains","namespaceChains","ReflectApply","ReflectOwnKeys","ProcessEmitWarning","warning","NumberIsNaN","eventsModule","defaultMaxListeners","checkListener","_getMaxListeners","that","doError","er","arrayClone","_addListener","prepend","existing","w","onceWrapper","_onceWrap","wrapped","originalListener","spliceOne","_listeners","evlistener","unwrapListeners","listenerCount","copy","ret","errorListener","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","wrapListener","__spreadArray","pack","ar","BrowserInfo","os","NodeInfo","SearchBotDeviceInfo","bot","BotInfo","ReactNativeInfo","SEARCHBOX_UA_REGEX","SEARCHBOT_OS_REGEX","REQUIRED_VERSION_PARTS","userAgentRules","operatingSystemRules","detect","userAgent","parseUserAgent","getNodeVersion","matchUserAgent","ua","matched","browser","uaMatch","matchedRule","versionParts","createVersionParts","detectOS","searchBotMatch","ii","isNode","output","extendStatics","__extends","__","__assign","__rest","__decorate","decorators","desc","__param","paramIndex","decorator","__metadata","metadataKey","metadataValue","__awaiter","thisArg","_arguments","generator","adopt","fulfilled","step","rejected","__generator","verb","op","__createBinding","o","__exportStar","exports","__values","__read","__spread","__spreadArrays","il","jl","__await","__asyncGenerator","resume","settle","fulfill","__asyncDelegator","__asyncValues","__makeTemplateObject","cooked","__importStar","__importDefault","privateMap","__classPrivateFieldSet","delay_1","misc","tslib_1","require$$0","require$$1","require$$2","convert","constants_1","toMiliseconds","seconds","fromMiliseconds","miliseconds","watch","Watch","timestamp","elapsed","IWatch","require$$3","require$$4","cjs","getLocation_1","getNavigator_1","getDocument_1","getFromWindow","getFromWindowOrThrow","getDocumentOrThrow","getDocument","getNavigatorOrThrow","getNavigator","getLocationOrThrow","getLocation","getCryptoOrThrow","getCrypto","getLocalStorageOrThrow","getLocalStorage","getWindowMetadata_1","window_getters_1","getWindowMetadata","doc","loc","getIcons","links","icons","link","rel","href","absoluteHref","path","finalPath","absoluteUrl","getWindowMetadataOfAny","metaTags","attributes","attr","content","getName","getDescription","strictUriEncode","singleMatcher","multiMatcher","decodeComponents","decode","tokens","customDecodeURIComponent","replaceMap","decodeUriComponent","encodedURI","splitOnFirst","separator","separatorIndex","filterObj","obj","predicate","isArr","decodeComponent","filterObject","isNullOrUndefined","encodeFragmentIdentifier","encoderForArrayFormat","keyValueSep","parserForArrayFormat","accumulator","isEncodedArray","arrayValue","validateArrayFormatSeparator","keysSorter","removeHash","hashStart","queryStart","parseValue","query","formatter","shouldFilter","objectCopy","queryFromUrl","parsedQueryFromUrl","queryString","fragmentIdentifier","exclusionFilter","imulShim","ah","bh","bl","add","sub","rotl","isIntegerShim","binary","int_1","readInt16BE","readUint16BE","readInt16LE","readUint16LE","writeUint16BE","writeUint16LE","readInt32BE","readUint32BE","readInt32LE","readUint32LE","writeUint32BE","writeUint32LE","readInt64BE","lo","readUint64BE","readInt64LE","readUint64LE","writeUint64BE","writeUint64LE","readUintBE","readUintLE","writeUintBE","div","writeUintLE","readFloat32BE","readFloat32LE","readFloat64BE","readFloat64LE","writeFloat32BE","writeFloat32LE","writeFloat64BE","writeFloat64LE","wipe_1","wipe","chacha","binary_1","ROUNDS","core","j0","j1","j2","j3","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","streamXOR","src","dst","nonceInplaceCounterLength","nc","counterLength","incrementCounter","stream","counter","carry","constantTime","subject","resultIfOne","resultIfZero","lessOrEqual","compare","equal","constant_time_1","Poly1305","t6","t7","mpos","hibit","h0","h1","h2","h3","h4","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","digest","chacha_1","poly1305_1","ZEROS","ChaCha20Poly1305","plaintext","associatedData","authKey","resultLength","sealed","calculatedTag","tagOut","ciphertext","isSerializableHash","hmac_1","hash_1","savedState","hkdf","HKDF","okm","ctr","QUOTA","BrowserRandomSource","browserCrypto","__viteBrowserExternal","node","NodeRandomSource","require","nodeCrypto","system","browser_1","node_1","SystemRandomSource","system_1","prng","randomUint32","ALPHANUMERIC","randomString","charset","charsLen","maxByte","randomByte","randomStringForEntropy","dataLength","dataPos","hashBlocks","bytesHashed","bitLenHi","bitLenLo","padLength","K","random_1","gf","_9","_121665","car25519","sel25519","pack25519","unpack25519","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","square","inv25519","inp","scalarMult","x32","x16","scalarMultBase","generateKeyPairFromSeed","secretKey","generateKeyPair","sharedKey","mySecretKey","theirPublicKey","rejectZero","zeros","allocUnsafe","ALPHABET","BASE_MAP","xc","BASE","LEADER","FACTOR","iFACTOR","source","zeroes","pbegin","pend","b58","it1","it2","decodeUnsafe","psz","b256","it3","it4","vch","_brrp__multiformats_scope_baseX","coerce","toString","Encoder","baseEncode","Decoder","baseDecode","text","decoder","or","ComposedDecoder","decoders","Codec","baseX","alphabet","basex","bitsPerChar","codes","written","rfc4648","identity","base2","base8","base10","base16","base16upper","base32","base32upper","base32pad","base32padupper","base32hex","base32hexupper","base32hexpad","base32hexpadupper","base32z","base36","base36upper","base58btc","base58flickr","base64","base64pad","base64url","base64urlpad","alphabetBytesToChars","alphabetCharsToBytes","byts","byt","base256emoji","bases","identityBase","base58","createCodec","ascii","BASES","encoding","suspectProtoRx","suspectConstructorRx","JsonSigRx","jsonParseTransform","warnKeyDropped","destr","_value","_lval","promisifyRequest","dbName","storeName","dbp","txMode","callback","db","defaultGetStoreFunc","defaultGetStore","customStore","del","clear","eachCursor","items","JSONStringify","JSONParse","json","numbersBiggerThanMaxInt","serializedData","safeJsonParse","safeJsonStringify","IEvents","i$c","tryStringify","quickFormatUnescaped","objects","argLen","lastPos","flen","pino","_console","pfGlobalThisOrFallback","stdSerializers","mock","passthrough","asErrValue","shouldSerialize","transmit","proto","stdErrSerialize","levels","logger","noop","getLevelVal","getLevel","setLevel","setOpts","getTimeFunction","child","createLogEventShape","bindings","childOptions","childOptionsSerializers","childSerializers","childSerialize","applySerializers","Child","parent","bind","nullTime","epochTime","unixTime","isoTime","wrap","write","ts","asObject","transmitLevel","transmitValue","methodValue","argsCloned","lvl","send","methodLevel","defd","O$1","d$5","O","m$2","L","B$2","T","PARSE_ERROR","INVALID_REQUEST","METHOD_NOT_FOUND","INVALID_PARAMS","INTERNAL_ERROR","SERVER_ERROR","RESERVED_ERROR_CODES","STANDARD_ERROR_MAP","DEFAULT_ERROR","isReservedErrorCode","getError","getErrorByCode","parseConnectionError","getBrowerCrypto","global","getSubtleCrypto","isBrowserCryptoAvailable","env","isReactNative","isBrowser","payloadId","entropy","date","extra","getBigIntRpcId","formatJsonRpcRequest","formatJsonRpcResult","formatJsonRpcError","formatErrorMessage","n$c","HTTP_REGEX","WS_REGEX","getUrlProtocol","matchRegexProtocol","isHttpUrl","isWsUrl","isLocalhostUrl","isJsonRpcPayload","payload","isJsonRpcRequest","isJsonRpcResponse","isJsonRpcResult","isJsonRpcError","o$f","__global__","__globalThis__","globalThis","support","isDataView","viewClasses","isArrayBufferView","normalizeName","normalizeValue","iteratorFor","iterator","Headers","header","oldValue","fileReaderReady","reader","readBlobAsArrayBuffer","readBlobAsText","readArrayBufferAsText","chars","bufferClone","Body","isConsumed","normalizeMethod","upcased","Request","ctrl","reParamSearch","reQueryString","form","parseHeaders","rawHeaders","preProcessedHeaders","line","Response","bodyInit","redirectStatuses","xhr","abortXhr","fixUrl","ctx","f$8","Ui","En","zt","pr","It","Ln","xt","Et","ve","vn","ct","Bi","Dn","yt","Nn","St","Mn","Kt","dr","Na","Ha","$a","Ua","Gi","Wa","Fa","ht","kn","Ma","Hn","qa","Ba","Ga","Ot","me","za","Yt","Zt","Ka","we","Pe","zi","yn","Jt","Ya","qn","Ki","Za","Xt","Sn","Qt","Ae","Ja","Vt","Xa","kt","Rt","gr","vr","_r","mr","wr","Pr","Ar","Cr","Ir","Qa","Va","ka","Yi","Zi","ja","no","eo","Ji","ro","io","so","xr","uo","Er","ao","oo","fo","co","ho","po","go","Xi","vo","_o","mo","wo","Po","Ao","Ce","Co","Ie","Io","xo","Eo","Qi","Vi","ki","yo","So","Oo","Ro","ji","ns","yr","bo","es","xe","To","Sr","Lo","us","Or","Rr","bt","Do","fs","cs","hs","ls","No","Ho","$o","ps","Uo","Wo","Fo","Mo","br","qo","Bo","Go","zo","Ko","Yo","Zo","Jo","Xo","Qo","Vo","ds","ko","Tr","lt","gs","Lr","_n","vs","_s","ms","ws","Ps","As","cn","jo","U","X","mn","nf","Cs","jn","Ee","Tt","Dr","nt","Nr","tf","Hr","ef","$r","rf","sf","Is","ye","xs","uf","Es","Wr","Ur","ys","M","af","Fr","of","Ss","Ts","hn","Mr","jt","Os","Rs","ff","cf","hf","lf","pf","Lt","df","qr","bs","tt","Se","vf","mf","Dt","Pf","On","Af","wf","Cf","If","Nt","Br","xf","wn","Oe","Ef","Ht","Re","be","yf","Ls","Te","Sf","Of","Rf","Le","et","De","Ds","Ne","Ns","Hs","He","$s","ne","pt","$e","mt","bf","Tf","Lf","Ue","We","Gr","Df","Us","Nf","Hf","nn","$f","Uf","Ws","Wf","zr","te","Kr","$t","re","Fe","Ut","Ff","wt","Mf","qf","Bf","Gf","Me","ie","Fs","Y","Pn","Mu","Wt","qe","zf","un","Kf","Yf","ih","fu","$","dn","sn","dt","Zf","Jf","Xf","Qf","Vf","Bn","kf","jf","Be","tc","ec","Gn","rc","ic","nr","uc","ac","gt","oc","fc","Rn","cc","hc","lc","pc","dc","Ms","Pt","at","Bt","Zn","qs","ei","gc","tr","vt","vc","Yr","bn","zn","se","rt","Bs","Un","V","mc","on","Zr","Si","An","uh","tn","lu","Tu","Xc","Jc","ia","pi","li","wc","Gs","zs","ue","_u","$n","Ks","Xr","Pc","Ge","pn","Ac","oa","Ys","fh","Jr","mu","Zs","ze","Jn","_t","st","Wn","Js","en","rh","vh","Qr","Cc","Ic","Vr","Ec","ae","Hu","In","Xs","yc","Sc","oe","Oc","Ou","th","eh","Rc","kr","Qs","hh","bc","Tc","Lc","Vs","nu","js","wa","jr","he","Dc","gh","ni","ks","an","gi","Du","_i","Lu","Oi","Ke","Nc","wi","pu","pe","fa","tu","eu","Zc","Hc","ru","fe","$c","ti","iu","si","Uc","ri","Pi","Nu","Wc","Gt","Fc","su","Mc","bi","qc","Cn","Bc","Ye","uu","au","ln","it","jc","ou","Ze","ui","cu","oi","Fu","Gc","hu","fi","zc","Kc","Yc","du","gu","vu","vi","Ru","Je","Ft","rn","Qc","ce","wu","Mt","va","Vc","qt","xu","Xe","Pu","Au","Yn","je","di","mi","gn","J","Tn","Qn","_h","Cu","Qe","ci","Ve","kc","Iu","Xn","ke","xn","$u","Uu","Di","Eu","Kn","dh","yu","Su","nh","Gu","Ti","Ni","sh","bu","oh","lh","Hi","ph","sr","Wu","mh","Ph","Ch","Ih","xh","Eh","yh","Sh","Oh","Rh","qu","Bu","Lh","zu","Dh","Nh","Hh","$h","Uh","Wh","Fh","Mh","qh","Ku","Bh","Gh","zh","Kh","Ai","Yh","Zh","Jh","Xh","Qh","Vh","kh","jh","nl","tl","el","rl","ol","fl","Ci","Yu","ll","pl","dl","gl","vl","_l","ml","Zu","Pl","Cl","Il","xl","aa","El","yl","Sl","Ol","Rl","Ll","Dl","Nl","rr","Hl","$l","Ju","Xu","Ul","Wl","Fl","Ml","ql","Bl","Gl","zl","Kl","ur","Yl","Zl","Jl","Xl","Ql","Vl","kl","Qu","Vu","Ii","ku","ju","na","ta","Pa","np","tp","ep","rp","xi","ea","ip","sp","up","ap","fp","cp","hp","lp","pp","dp","gp","vp","_p","mp","wp","Pp","Ap","Cp","Ip","xp","Ei","Ep","ra","yp","Sp","Op","sa","Rp","bp","Tp","yi","Lp","Dp","Np","Hp","$p","Up","Wp","ca","fr","Mp","qp","Bp","Gp","zp","ha","Kp","Yp","Zp","Jp","Xp","Qp","Vp","kp","jp","nd","td","ed","rd","sd","ud","ad","la","od","fd","cd","hd","pa","da","ld","pd","dd","gd","vd","md","wd","Pd","ga","Ri","Ad","Cd","Id","xd","Ed","yd","Sd","Od","Rd","bd","Td","Ld","Dd","Nd","Hd","$d","Ud","ma","Wd","Fd","Md","qd","Bd","Gd","zd","Kd","Yd","Zd","Jd","Xd","Qd","Vd","kd","jd","ng","tg","Li","eg","rg","ig","ug","ag","og","fg","cg","hg","lg","pg","dg","gg","vg","_g","mg","wg","Pg","Ag","Cg","Ig","xg","Eg","yg","Sg","Og","Rg","bg","isObject","proxyStateMap","refSet","buildProxyFunction","objectIs","newProxy","canProxy","defaultHandlePromise","snapCache","createSnapshot","handlePromise","snap","markToTrack","target2","ensureVersion","proxyCache","versionHolder","proxyFunction","initialObject","found","notifyUpdate","nextVersion","checkVersion","nextCheckVersion","propProxyStates","propProxyState","propVersion","createPropListener","prop","newOp","addPropListener","__vite_import_meta_env__","remove","removePropListener","entry","prevRemove","baseObject","proxyObject","prevValue","deleted","hasPrevValue","getUntracked","nextValue","childProxyState","proxyState","defaultProxyFunction","proxy","subscribe","notifyInSync","ops","isListenerActive","removeListener","snapshot","ref","subscribeKey","SECURE_SITE","ONRAMP_PROVIDERS","ConstantsUtil","CoreHelperUtil","network","networkName","expiry","lastRetry","caipAddress","milliseconds","func","next","appUrl","wcUri","safeAppUrl","encodedWcUrl","features","imagePromise","image","formattedBalance","timeZone","capTimeZone","approvedIds","requestedNetworks","approvedIndexMap","indexA","indexB","roundedNumber","dollars","pennies","fetchData","FetchUtil","baseUrl","this","dayjs","relativeTime","updateLocale","localeObject","englishLocale","DateUtil","NetworkUtil","caipnetworkId","isNumeric","mathceil","mathfloor","bignumberError","tooManyDigits","LOG_BASE","MAX_SAFE_INTEGER","POWS_TEN","SQRT_BASE","MAX","clone","configObject","convertBase","parseNumeric","BigNumber","ONE","DECIMAL_PLACES","ROUNDING_MODE","TO_EXP_NEG","TO_EXP_POS","MIN_EXP","MAX_EXP","CRYPTO","MODULO_MODE","POW_PRECISION","FORMAT","alphabetHasNormalDecimalDigits","caseChanged","isNum","intCheck","maxOrMin","pow2_53","random53bitInt","rand","decimal","toBaseOut","baseIn","baseOut","arrL","callerIsToString","rm","toFixedPoint","coeffToString","temp","xlo","xhi","klo","khi","aL","bL","cmp","subtract","more","prod","prodL","rem","remL","rem0","xL","yc0","yL","yz","bitFloor","c0","toExponential","normalise","basePrefix","dotAfter","dotBefore","isInfinityOrNaN","whitespaceOrPlus","p1","p2","pows10","valueOf","half","isModExp","nIsBig","nIsNeg","nIsOdd","isOdd","xLTy","xcL","ycL","ylo","yhi","sqrtBase","rep","g1","g2","groupSeparator","intPart","fractionPart","isNeg","intDigits","exp","n0","NumberUtil","aBigNumber","bBigNumber","InputUtil","currentValue","allowedKeys","controlPressed","selectAll","copyKey","pasteKey","cutKey","isComma","isDot","isNumericKey","erc20ABI","NavigationUtil","getW3mThemeVariables","themeVariables","themeType","OptionsController","subKey","projectId","allWallets","includeWalletIds","excludeWalletIds","featuredWalletIds","termsConditionsUrl","privacyPolicyUrl","customWallets","isSiweEnabled","enableAnalytics","sdkVersion","metadata","enableOnramp","enableWalletFeatures","DEFAULT_OPTIONS","BlockchainApiController","onramp","queryParams","amount","userAddress","sdkType","forceUpdate","CommonConstantsUtil","destinationWallets","partnerUserId","defaultNetwork","purchaseAmount","paymentAmount","purchaseCurrency","paymentCurrency","SnackController","errorMessage","WC_DEEPLINK","W3M_RECENT","W3M_CONNECTED_WALLET_IMAGE_URL","W3M_CONNECTED_CONNECTOR","W3M_CONNECTED_SOCIAL","W3M_CONNECTED_SOCIAL_USERNAME","StorageUtil","deepLink","wallet","recentWallets","recent","imageUrl","connectorType","socialProvider","excluded","EventsController","TransactionsController","accountAddress","nonSpamTransactions","filteredTransactions","transactionsMap","grouped","year","month","yearTransactions","newMonthTransactions","tx","transfer","ConnectionController","ids","wcLinking","wcError","buffering","PublicStateController","NetworkController","caipNetwork","allowUnsupportedChain","smartAccountEnabledNetworks","approvedCaipNetworkIds","requestedCaipNetworks","networkId","ModalController","SwapApiUtil","sourceTokenAmount","sourceTokenDecimals","parsedValue","AccountController","balances","RouterController","action","cancel","last","historyIndex","SwapCalculationUtil","totalGasCostInWei","networkPrice","totalGasCostInEther","sourceTokenPriceInUSD","toTokenPriceInUSD","toTokenAmount","inputValue","outputValue","slippage","slippageToleranceDecimal","feePercentage","networkBalanceInUSD","gasPriceInUSD","sourceTokenAddress","sourceTokenBalance","sourceToken","toToken","sourceTokenPrice","toTokenPrice","toTokenDecimals","providerFee","sourceAmountInSmallestUnit","priceRatio","decimalDifference","INITIAL_GAS_LIMIT","TO_AMOUNT_DECIMALS","SwapController","networkAddress","invalidToToken","invalidSourceToken","invalidSourceTokenAmount","loading","availableToSwap","price","newSourceToken","newToToken","newSourceTokenAmount","networkToken","aTokenInfo","bTokenInfo","existPrice","fungibles","allTokens","priceAsFloat","gasFee","gasLimit","haveSourceTokenAmount","amountDecimal","quoteResponse","quoteToAmount","fromCaipAddress","hasAllowance","fromAddress","toTokenAddress","isSourceTokenIsNetworkToken","successMessage","forceUpdateAddresses","transactionHash","isInsufficientSourceTokenForSwap","isConnected","balanceSymbol","profileName","profileImage","explorerUrl","isDeployed","currentTab","tokenBalance","connectedWalletInfo","preferredAccountType","socialWindow","filteredBalances","AssetController","ThemeController","themeMode","authConnector","ConnectorController","themeVariablesSnapshot","optionsState","recommendedEntries","ApiController","imageId","countryCode","currencies","currency","images","recommendedImages","recentImages","page","search","isAnalyticsEnabled","USDC_CURRENCY_DEFAULT","USD_CURRENCY_DEFAULT","defaultState","OnRampController","quote","SendController","sendTokenAmount","receiverAddress","receiverProfileImageUrl","receiverProfileName","TooltipController","triggerRect","variant","SLIP44_MSB","EnsUtil","EnsController","suggestion","emailConnector","defaultError","ensError","AssetUtil","RouterUtil","history","networkSelectIndex","n$b","b$2","R$1","k$1","H$1","L$1","z$2","r$a","swapInputMaskBottomSvg","svg","swapInputMaskTopSvg","themeTag","darkModeTag","lightModeTag","initializeTheming","createRootStyles","setColorTheme","setThemeVariables","css","unsafeCSS","resetStyles","elementStyles","colorStyles","standardCustomElement","tagName","descriptor","elements","clazz","legacyCustomElement","customElement","classOrDescriptor","WuiCard","LitElement","html","styles","addSvg","allWalletsSvg","arrowBottomCircleSvg","appStoreSvg","appleSvg","arrowBottomSvg","arrowLeftSvg","arrowRightSvg","arrowTopSvg","bankSvg","browserSvg","cardSvg","checkmarkBoldSvg","checkmarkSvg","chevronBottomSvg","chevronLeftSvg","chevronRightSvg","chevronTopSvg","chromeStoreSvg","clockSvg","closeSvg","coinPlaceholderSvg","compassSvg","copySvg","cursorSvg","cursorTransparentSvg","desktopSvg","disconnectSvg","discordSvg","etherscanSvg","extensionSvg","externalLinkSvg","facebookSvg","filtersSvg","githubSvg","googleSvg","helpCircleSvg","infoCircleSvg","mailSvg","mobileSvg","moreSvg","networkPlaceholderSvg","nftPlaceholderSvg","offSvg","playStoreSvg","plusSvg","qrCodeIcon","recycleHorizontalSvg","refreshSvg","searchSvg","sendSvg","swapHorizontalSvg","swapHorizontalBoldSvg","swapHorizontalMediumSvg","swapHorizontalRoundedBoldSvg","swapVerticalSvg","telegramSvg","twitchSvg","twitterIconSvg","verifySvg","verifyFilledSvg","walletPlaceholderSvg","walletSvg","walletConnectSvg","warningCircleSvg","idSvg","xSvg","svgOptions","WuiIcon","WuiImage","WuiLoadingHexagon","WuiLoadingSpinner","WuiLoadingThumbnail","radius","radiusFactor","dashArrayStart","dashArrayEnd","dashOffset","WuiShimmer","i$6","WuiText","classes","classMap","daoSvg","defiSvg","defiAltSvg","ethSvg","layersSvg","lockSvg","loginSvg","networkSvg","nftSvg","nounSvg","profileSvg","systemSvg","coinbaseSvg","moonpaySvg","stripeSvg","paypalSvg","onrampCardSvg","pencilSvg","lightbulbSvg","WuiVisual","UiHelperUtil","spacing","charsStart","charsEnd","truncate","baseColor","rgbColor","masterBorderRadius","edge","gradientCircle","colors","tintedColor","bigint","rgb","tint","tintedR","tintedG","tintedB","character","theme","threshold","fixed","WuiFlex","WuiAvatar","cssColors","WuiIconBox","iconSize","isLg","isXl","bgMix","borderRadius","isGray","isOpaque","isColorChange","bgValueVariable","WuiAccountButton","ifDefined","networkElement","WuiWalletImage","TOTAL_IMAGES","WuiAllWalletsImage","isPlaceholders","walletName","SPINNER_COLOR_BY_VARIANT","TEXT_VARIANT_BY_SIZE","SPINNER_SIZE_BY_SIZE","WuiButton","textVariant","color","networkSvgMd","WuiCardSelectLoader","networkSvgSm","networkSvgLg","WuiNetworkImage","networkImagesBySize","WuiCardSelect","WuiChip","WuiConnectButton","WuiCtaButton","WuiDetailsGroup","WuiDetailsGroupItem","f$4","h$4","WuiInputText","createRef","inputClass","WuiEmailInput","WuiEnsInput","WuiIconLink","padding","WuiInputElement","WuiInputNumeric","WuiLink","WuiListItem","TransactionTypePastTense","WuiTransactionVisual","firstImage","secondImage","isLeftNFT","isRightNFT","leftRadius","rightRadius","firstImageType","icon","WuiTransactionListItem","WuiTransactionListItemLoader","WuiTag","WuiListWallet","WuiLogo","WuiLogoSelect","WuiNetworkButton","WuiOtp","inputElement","keyArr","currentCaretPos","nextIndex","numeric","numericElements","element","targetElement","inputString","nextNumeric","nextInput","canPromise","toSJISFunction","CODEWORDS_COUNT","digit","kanji","BitBuffer","bufIndex","bit","bitBuffer","BitMatrix","row","col","reserved","bitMatrix","getSymbolSize","posCount","intervals","positions","coords","posLength","FINDER_PATTERN_SIZE","finderPattern","PenaltyScores","sameCountCol","sameCountRow","lastCol","lastRow","bitsCol","bitsRow","darkCount","modulesCount","getMaskAt","maskPattern","pattern","setupFormatFunc","numPatterns","bestPattern","lowerPenalty","penalty","ECLevel","EC_BLOCKS_TABLE","EC_CODEWORDS_TABLE","errorCorrectionCode","errorCorrectionLevel","EXP_TABLE","LOG_TABLE","galoisField","GF","coeff","divident","divisor","degree","poly","Polynomial","ReedSolomonEncoder","paddedData","remainder","buff","reedSolomonEncoder","versionCheck","alphanumeric","TEST_KANJI","TEST_NUMERIC","TEST_ALPHANUMERIC","VersionCheck","Regex","mode","dataStr","Utils","ECCode","Mode","G18","G18_BCH","getBestVersionForDataLength","getReservedBitsCount","getTotalBitsFromDataArray","segments","totalBits","reservedBits","getBestVersionForMixedData","totalCodewords","ecTotalCodewords","dataTotalCodewordsBits","usableBits","seg","ecl","G15","G15_MASK","G15_BCH","formatInfo","NumericData","group","remainingNum","numericData","ALPHA_NUM_CHARS","AlphanumericData","alphanumericData","encodeUtf8","second","ByteData","byteData","KanjiData","kanjiData","dijkstra","graph","predecessors","costs","open","closest","cost_of_s_to_u","adjacent_nodes","cost_of_e","cost_of_s_to_u_plus_cost_of_e","cost_of_s_to_v","first_visit","nodes","cost","require$$5","require$$6","require$$7","getStringByteLength","getSegments","getSegmentsFromString","numSegs","alphaNumSegs","byteSegs","kanjiSegs","s2","getSegmentBitsLength","mergeSegments","segs","prevSeg","buildNodes","buildGraph","table","prevNodeIds","nodeGroup","currentNodeIds","prevNodeId","buildSingleSegment","modesHint","bestMode","optimizedSegs","AlignmentPattern","FinderPattern","MaskPattern","require$$8","Version","require$$9","FormatInfo","require$$10","require$$11","Segments","require$$12","setupFinderPattern","matrix","setupTimingPattern","setupAlignmentPattern","setupVersionInfo","setupFormatInfo","setupData","inc","bitIndex","byteIndex","dark","createData","remainingByte","createCodewords","dataTotalCodewords","ecTotalBlocks","blocksInGroup2","blocksInGroup1","totalCodewordsInGroup1","dataCodewordsInGroup1","dataCodewordsInGroup2","ecCount","dcData","ecData","maxDataSize","dataSize","createSymbol","estimatedVersion","rawSegments","bestVersion","dataBits","moduleCount","modules","qrcode","hex2rgba","hexCode","margin","width","scale","qrSize","imgData","symbolSize","scaledMargin","palette","posDst","pxColor","iSrc","jSrc","clearCanvas","canvas","getCanvasElement","qrData","canvasEl","rendererOpts","getColorAttrib","attrib","alpha","svgCmd","cmd","qrToPath","moveBy","newRow","lineLength","svgTag","qrcodesize","viewBox","QRCode","CanvasRenderer","SvgRenderer","renderCanvas","renderFunc","argsNum","isLastArgCb","CONNECTING_ERROR_MARGIN","CIRCLE_SIZE_MODIFIER","QRCODE_MATRIX_MARGIN","isAdjecentDots","cy","otherCy","cellSize","getMatrix","QRCodeUtil","sqrt","rows","QrCodeUtil","logoSize","dotColor","edgeColor","dots","qrList","y1","dotSize","clearArenaSize","matrixMiddleStart","matrixMiddleEnd","circles","cx","circlesToConnect","cys","newCys","groups","WuiQrCode","WuiSearchBar","inputComponent","WuiSnackbar","WuiTabs","tab","isActive","initialAnimation","passiveBtn","activeBtn","passiveBtnText","activeBtnText","activeBtnBounds","activeBtnTextBounds","WuiTokenButton","WuiTooltip","WuiTokenListItem","WuiVisualThumbnail","WuiNoticeCard","MAX_HEIGHT","WuiListAccordion","changedProperties","heightElement","textElement","scrollHeight","WuiListContent","WuiListNetwork","WuiListWalletTransaction","WuiOnRampActivityItem","WuiOnRampProviderItem","networks","slicedNetworks","WuiPromo","WuiBalance","WuiProfileButton","WuiChipButton","WuiCompatibleNetwork","WuiBanner","WuiListToken","WuiListDescription","specialCharactersRegex","numbersRegex","WuiInputAmount","inputChar","WuiPreviewItem","WuiIconButton","WuiListButton","WuiListSocial","WuiGrid","WuiSeparator","MathUtil","inputRange","outputRange","originalRangeMin","originalRangeMax","newRangeMin","newRangeMax","FLOAT_FIXED_VALUE","plusTypes","minusTypes","TransactionUtil","monthNumber","currentYear","monthName","transfers","secondTransfer","isAllNFT","haveMultipleTransfers","imageURL","isNFT","isFungible","haveTransfer","firstTransfer","firstDescription","secondDescription","n$5","z$1","r$3","W3mAccountButton","networkImage","showBalance","W3mButton","W3mConnectButton","isLoading","SCROLL_LOCK","W3mModal","SIWEController","defaultThemeMode","styleTag","card","previousAddress","newAddress","previousNetworkId","newNetworkId","session","W3mNetworkButton","W3mRouter","height","newView","xOut","xIn","PAYMENT_CURRENCY_SYMBOLS","BUY_PRESET_AMOUNTS","W3mOnrampWidget","base64Js","byteLength","toByteArray","fromByteArray","lookup","revLookup","Arr","getLens","b64","validLen","placeHoldersLen","lens","_byteLength","curByte","tripletToBase64","encodeChunk","uint8","extraBytes","maxChunkLength","len2","ieee754","mLen","nBytes","eLen","eMax","eBias","nBits","customInspectSymbol","Buffer","SlowBuffer","K_MAX_LENGTH","typedArraySupport","createBuffer","encodingOrOffset","fromArrayView","isInstance","fromArrayBuffer","fromObject","alloc","fill","checked","actual","fromArrayLike","arrayView","numberIsNaN","mustMatch","loweredCase","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","thisStart","thisEnd","thisCopy","targetCopy","bidirectionalIndexOf","arrayIndexOf","indexSize","arrLength","valLength","read","foundIndex","hexWrite","remaining","strLen","utf8Write","blitBuffer","asciiWrite","asciiToBytes","base64Write","ucs2Write","utf16leToBytes","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","decodeCodePointsArray","MAX_ARGUMENTS_LENGTH","codePoints","hexSliceLookupTable","newBuf","checkOffset","ext","noAssert","defineBigIntMethod","validateNumber","boundsError","checkInt","maxBytes","wrtBigUInt64LE","checkIntBI","wrtBigUInt64BE","checkIEEE754","writeFloat","littleEndian","writeDouble","targetStart","errors","sym","getMessage","Base","range","received","addNumericalSeparator","checkBounds","INVALID_BASE64_RE","base64clean","units","leadSurrogate","byteArray","i16","BufferBigIntNotDefined","W3mFrameConstants","W3mFrameRpcConstants","util","assertIs","_arg","assertNever","_x","validKeys","filtered","checker","joinValues","objectUtil","ZodParsedType","getParsedType","ZodIssueCode","quotelessJson","ZodError","issues","subs","actualProto","_mapper","mapper","issue","fieldErrors","processError","formErrors","errorMap","_ctx","overrideErrorMap","setErrorMap","getErrorMap","makeIssue","errorMaps","issueData","fullPath","fullIssue","maps","EMPTY_PATH","addIssueToContext","ParseStatus","INVALID","pairs","syncPairs","pair","finalObject","DIRTY","OK","isAborted","isDirty","isValid","isAsync","errorUtil","ParseInputLazyPath","handleResult","processCreateParams","invalid_type_error","required_error","iss","ZodType","maybeAsyncResult","check","getIssueProperties","setError","refinementData","refinement","ZodEffects","ZodFirstPartyTypeKind","ZodOptional","ZodNullable","ZodArray","ZodPromise","option","ZodUnion","incoming","ZodIntersection","defaultValueFunc","ZodDefault","ZodBranded","catchValueFunc","ZodCatch","This","ZodPipeline","ZodReadonly","cuidRegex","cuid2Regex","ulidRegex","uuidRegex","emailRegex","_emojiRegex","emojiRegex","ipv4Regex","ipv6Regex","datetimeRegex","isValidIP","ZodString","tooBig","tooSmall","minLength","floatSafeRemainder","valDecCount","stepDecCount","decCount","valInt","stepInt","ZodNumber","inclusive","ZodBigInt","ZodBoolean","ZodDate","minDate","maxDate","ZodSymbol","ZodUndefined","ZodNull","ZodAny","ZodUnknown","ZodNever","ZodVoid","schema","deepPartialify","ZodObject","newShape","fieldSchema","ZodTuple","shape","shapeKeys","extraKeys","keyValidator","unknownKeys","catchall","augmentation","merging","newField","createZodEnum","handleResults","unionErrors","childCtx","dirty","getDiscriminator","ZodLazy","ZodLiteral","ZodEnum","ZodNativeEnum","ZodDiscriminatedUnion","discriminator","discriminatorValue","optionsMap","discriminatorValues","mergeValues","aType","bType","bKeys","sharedKeys","newObj","sharedValue","newArray","itemA","itemB","handleParsed","parsedLeft","parsedRight","merged","itemIndex","schemas","ZodRecord","keyType","valueType","third","ZodMap","finalMap","ZodSet","finalizeSet","parsedSet","minSize","ZodFunction","makeArgsIssue","makeReturnsIssue","returns","parsedArgs","parsedReturns","returnType","getter","expectedValues","enumValues","opt","nativeEnumValues","promisified","effect","checkCtx","processed","executeRefinement","inner","preprocess","newCtx","ZodNaN","BRAND","inResult","fatal","_fatal","late","instanceOfType","cls","stringType","numberType","nanType","bigIntType","booleanType","dateType","undefinedType","nullType","anyType","unknownType","neverType","voidType","arrayType","objectType","strictObjectType","unionType","discriminatedUnionType","intersectionType","tupleType","recordType","mapType","setType","functionType","lazyType","literalType","enumType","nativeEnumType","promiseType","effectsType","optionalType","nullableType","preprocessType","pipelineType","ostring","onumber","oboolean","NEVER","zError","zType","AppSwitchNetworkRequest","AppConnectEmailRequest","AppConnectOtpRequest","AppConnectSocialRequest","AppGetUserRequest","AppGetSocialRedirectUriRequest","AppUpdateEmailRequest","AppUpdateEmailPrimaryOtpRequest","AppUpdateEmailSecondaryOtpRequest","AppSyncThemeRequest","AppSyncDappDataRequest","AppSetPreferredAccountRequest","FrameConnectEmailResponse","FrameConnectSocialResponse","FrameUpdateEmailResponse","FrameGetUserResponse","FrameGetSocialRedirectUriResponse","FrameIsConnectedResponse","FrameGetChainIdResponse","FrameSwitchNetworkResponse","FrameUpdateEmailSecondaryOtpResolver","FrameGetSmartAccountEnabledNetworksResponse","FrameSetPreferredAccountResponse","RpcResponse","RpcEthAccountsRequest","RpcEthBlockNumber","RpcEthCall","RpcEthChainId","RpcEthEstimateGas","RpcEthFeeHistory","RpcEthGasPrice","RpcEthGetAccount","RpcEthGetBalance","RpcEthGetBlockyByHash","RpcEthGetBlockByNumber","RpcEthGetBlockReceipts","RcpEthGetBlockTransactionCountByHash","RcpEthGetBlockTransactionCountByNumber","RpcEthGetCode","RpcEthGetFilter","RpcEthGetFilterLogs","RpcEthGetLogs","RpcEthGetProof","RpcEthGetStorageAt","RpcEthGetTransactionByBlockHashAndIndex","RpcEthGetTransactionByBlockNumberAndIndex","RpcEthGetTransactionByHash","RpcEthGetTransactionCount","RpcEthGetTransactionReceipt","RpcEthGetUncleCountByBlockHash","RpcEthGetUncleCountByBlockNumber","RpcEthMaxPriorityFeePerGas","RpcEthNewBlockFilter","RpcEthNewFilter","RpcEthNewPendingTransactionFilter","RpcEthSendRawTransaction","RpcEthSyncing","RpcUnistallFilter","RpcPersonalSignRequest","RpcEthSignTypedDataV4","RpcEthSendTransactionRequest","FrameSession","W3mFrameStorage","W3mFrameHelpers","social","RegexUtil","RESTRICTED_TIMEZONES","EMAIL_MINIMUM_TIMEOUT","lastEmailLoginTime","difference","cooldownSec","W3mAccountSettingsView","isAllowed","isMultiNetwork","isValidNetwork","networkEnabled","smartAccountEnabled","accountTypeTarget","W3mAccountView","W3mAllWalletsView","isSearch","W3mBuyInProgressView","subLabel","borderRadiusMaster","W3mConnectView","W3mConnectingWidget","retryButton","W3mConnectingExternalView","W3mConnectingWcView","wcPairingExpiry","recentWallet","mobile_link","desktop_link","webapp_link","injectedIds","injected_id","browserIds","isMobileWc","isWebWc","isBrowserInstalled","isBrowserWc","isDesktopWc","platform","container","W3mChooseAccountNameView","W3mDownloadsView","EXPLORER","W3mGetWalletView","recommended","featured","W3mRegisterAccountNameView","registered","unsub","suggestions","W3mRegisterAccountNameSuccess","W3mNetworkSwitchView","W3mNetworksView","supportsAllNetworks","sortedNetworks","LOADING_ITEM_COUNT","W3mOnRampActivityView","fungibleInfo","yearInt","idx","groupTitle","today","W3mOnrampFiatSelectView","W3mOnRampProvidersView","urlPromises","assets","W3mOnrampTokensView","W3mSwapView","newCaipNetwork","isOpen","newRoute","myToken","isNetworkToken","amountOfTokenGasRequires","haveNoTokenSelected","haveNoAmount","disabled","W3mSwapPreviewView","newBalanceSymbol","sourceTokenText","toTokenText","sourceTokenValue","toTokenValue","sentPrice","receivePrice","W3mSwapSelectTokenView","suggestedTokensContainer","tokensList","yourTokens","filteredYourTokens","filteredTokens","selected","W3mTransactionsView","W3mWhatIsANetworkView","W3mWhatIsAWalletView","W3mWhatIsABuyView","OTP_LENGTH","W3mEmailOtpWidget","isResendDisabled","footerLabels","W3mEmailVerifyOtpView","otp","email","W3mEmailVerifyDeviceView","PAGE_HEIGHT","PAGE_WIDTH","HEADER_HEIGHT","W3mApproveTransactionView","contentBoxSize","isMobile","W3mUpgradeWalletView","W3mUpgradeToSmartAccountView","W3mUpdateEmailWalletView","showSubmit","W3mUpdateEmailPrimaryOtpView","W3mUpdateEmailSecondaryOtpView","W3mUnsupportedChainView","W3mWalletReceiveView","isNetworkEnabledForSmartAccounts","imagesArray","W3mWalletCompatibleNetworksView","W3mWalletSendView","W3mSendSelectTokenView","W3mWalletSendPreviewView","totalValue","W3mConnectWalletsView","W3mConnectSocialsView","define_process_env_default","W3mConnectingSocialView","markWalletsAsInstalled","wallets","installedConnectors","acum","PAGINATOR_ID","W3mAllWalletsList","gridEl","columns","currentWallets","shimmerCount","loaderEl","W3mAllWalletsSearch","W3mConnectingHeader","tabs","W3mConnectingWcBrowser","announcedConnector","injectedConnector","W3mConnectingWcDesktop","redirect","W3mConnectingWcMobile","isIos","W3mConnectingWcQrcode","alt","inactive","W3mConnectingWcUnsupported","W3mConnectingWcWeb","slippageRate","WuiSwapDetails","minReceivedAmount","toTokenSwappedAmount","MINIMUM_USD_VALUE_TO_CONVERT","W3mSwapInput","marketValue","isMarketValueGreaterThanZero","balanceValueInUSD","haveBalance","W3mSwapInputSkeleton","BETA_SCREENS","headings","connectorName","W3mHeader","isBeta","isConnectHelp","shouldHideBack","headingEl","preset","buttonEl","W3mHelpWidget","W3mInputCurrency","W3mLegalFooter","W3mMobileDownloadLinks","app_store","play_store","chrome_store","homepage","isAndroid","isMultiple","shortName","W3mOnRampProvidersFooter","presets","W3mSnackBar","W3mEmailLoginWidget","multipleConnectors","parsedError","W3mAccountDefaultWidget","origin","addressExplorerUrl","TABS","TABS_PADDING","MODAL_MOBILE_VIEW_PX","W3mAccountWalletFeaturesWidget","CoreConstantsUtil","W3mAccountActivityWidget","W3mAccountNftsWidget","W3mAccountTokensWidget","W3mActivityList","sortedYearKeys","isLastGroup","isLastTransaction","descriptions","direction","isLastTransfer","lastItem","W3mInputToken","W3mInputAddress","avatar","focus","W3mWalletSendDetails","W3mTooltip","topValue","leftValue","WuiTooltipTrigger","modalOpen","tooltipOpen","rect","MAX_TOP_VIEW","MAXIMUM_LENGTH","W3mSocialLoginWidget","newWindow","W3mWalletLoginList","W3mSocialLoginList","W3mConnectAnnouncedWidget","announcedConnectors","W3mConnectCustomWidget","connectorRDNSs","recentRDNSs","allRDNSs","W3mConnectExternalWidget","externalConnectors","W3mConnectFeaturedWidget","W3mConnectInjectedWidget","injectedConnectors","W3mConnectCoinbaseWidget","coinbaseConnector","W3mConnectRecentWidget","W3mConnectRecommendedWidget","injectedWallets","overrideLength","maxRecommended","W3mConnectWalletConnectWidget","W3mAllWalletsWidget","featuredCount","rawCount","roundedCount","tagLabel","W3mAccountAuthButton","socialUsername","isInitialized","Web3ModalScaffold","trimmedName","wcNameAddress","route","index$1","modal","PresetsUtil","HelpersUtil","caipTokens","getCaipDefaultChain","getWalletConnectCaipNetworks","nsMethods","nsChains","getEmailCaipNetworks","COMPRESSED$1","FENCED","NSM_MAX","decode_arithmetic","u16","symbol_count","total","skip","pos_payload","read_width","read_buffer","read_bit","FULL","QRTR","register","low","mid","read_payload","read_compressed_payload","unsafe_atob","read_deltas","read_sorted","read_sorted_arrays","read_array_while","read_mapped","read_linear_table","read_replacement_table","read_transposed","dx","dy","vN","j_dy","read_trie","expand","cps","saved","hex_cp","quote_cp","explode_cp","str_from_cps","compare_arrays","COMPRESSED","S0","L0","V0","T0","L_COUNT","V_COUNT","T_COUNT","N_COUNT","S_COUNT","S1","L1","V1","unpack_cc","packed","unpack_cp","SHIFTED_RANK","EXCLUSIONS","DECOMP","RECOMP","init$1","bucket","is_hangul","compose_pair","recomp","decomposed","check_order","s_index","l_index","v_index","t_index","mapped","prev_cc","composed_from_decomposed","stack","prev_cp","composed","nfd","nfc","HYPHEN","STOP_CH","FE0F","UNIQUE_PH","Array_from","group_has_cp","Emoji","MAPPED","IGNORED","CM","NSM","ESCAPE","GROUPS","WHOLE_VALID","WHOLE_MAP","VALID","EMOJI_LIST","EMOJI_ROOT","read_sorted_array","read_sorted_set","set_add_many","chunks","unrestricted","read_chunked","wholes","recs","union","complement","multi","add_to_union","quoted_cp","should_escape","bidi_qq","safe_str_from_cps","check_label_extension","check_leading_underscore","check_fenced","error_placement","quoter","is_combining_mark","only_nsm","ens_normalize","flatten","filter_fe0f","tokens_from_str","token_count","norm","unique","determine_group","check_group","check_whole","maker","shared","whole","error_group_member","error_disallowed","quoted","where","emoji","consume_emoji_reversed","eaten","normalize","Ens.normalize","Web3Modal","wagmiConfig","siweConfig","defaultChain","_sdkVersion","w3mOptions","networkControllerClient","connectionControllerClient","onUri","getDidChainId","getDidAddress","siweParams","OPTIONAL_METHODS","signedCacao","cacaoChainId","wagmiEstimateGas","txParams","wagmiSendTransaction","wagmiWriteContract","ensName","wcName","CommonConstants","wagmiGetEnsAddress","wagmiGetEnsAvatar","accountData","caipChainId","registeredWcNames","walletConnectProvider","uniqueIds","filteredConnectors","w3mConnectors","coinbaseSDKId","isLoginEmailUsed","req","createWeb3Modal"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928],"sources":["../../node_modules/viem/_esm/errors/version.js","../../node_modules/viem/_esm/errors/base.js","../../node_modules/viem/_esm/errors/encoding.js","../../node_modules/viem/_esm/errors/data.js","../../node_modules/viem/_esm/utils/data/pad.js","../../node_modules/viem/_esm/utils/data/isHex.js","../../node_modules/viem/_esm/utils/data/size.js","../../node_modules/viem/_esm/utils/data/trim.js","../../node_modules/viem/_esm/utils/encoding/toBytes.js","../../node_modules/viem/_esm/utils/encoding/fromHex.js","../../node_modules/viem/_esm/utils/encoding/toHex.js","../../node_modules/viem/_esm/utils/abi/formatAbiItem.js","../../node_modules/viem/_esm/errors/abi.js","../../node_modules/viem/_esm/utils/data/concat.js","../../node_modules/viem/_esm/errors/address.js","../../node_modules/viem/_esm/utils/lru.js","../../node_modules/@noble/hashes/esm/_assert.js","../../node_modules/@noble/hashes/esm/_u64.js","../../node_modules/@noble/hashes/esm/crypto.js","../../node_modules/@noble/hashes/esm/utils.js","../../node_modules/@noble/hashes/esm/sha3.js","../../node_modules/viem/_esm/utils/hash/keccak256.js","../../node_modules/viem/_esm/utils/address/getAddress.js","../../node_modules/viem/_esm/utils/address/isAddress.js","../../node_modules/viem/_esm/utils/data/slice.js","../../node_modules/viem/_esm/utils/regex.js","../../node_modules/viem/_esm/utils/abi/encodeAbiParameters.js","../../node_modules/viem/_esm/utils/abi/encodeDeployData.js","../../node_modules/viem/_esm/accounts/utils/parseAccount.js","../../node_modules/viem/_esm/errors/account.js","../../node_modules/viem/_esm/accounts/utils/publicKeyToAddress.js","../../node_modules/viem/_esm/utils/signature/recoverPublicKey.js","../../node_modules/viem/_esm/utils/signature/recoverAddress.js","../../node_modules/viem/_esm/errors/cursor.js","../../node_modules/viem/_esm/utils/cursor.js","../../node_modules/viem/_esm/utils/encoding/toRlp.js","../../node_modules/viem/_esm/utils/authorization/hashAuthorization.js","../../node_modules/viem/_esm/utils/authorization/recoverAuthorizationAddress.js","../../node_modules/viem/_esm/errors/chain.js","../../node_modules/viem/_esm/utils/chain/assertCurrentChain.js","../../node_modules/viem/_esm/constants/unit.js","../../node_modules/viem/_esm/utils/unit/formatUnits.js","../../node_modules/viem/_esm/utils/unit/formatGwei.js","../../node_modules/viem/_esm/errors/node.js","../../node_modules/viem/_esm/utils/unit/formatEther.js","../../node_modules/viem/_esm/errors/transaction.js","../../node_modules/viem/_esm/utils/stringify.js","../../node_modules/viem/_esm/errors/utils.js","../../node_modules/viem/_esm/errors/request.js","../../node_modules/viem/_esm/errors/rpc.js","../../node_modules/viem/_esm/utils/errors/getNodeError.js","../../node_modules/viem/_esm/utils/errors/getTransactionError.js","../../node_modules/viem/_esm/utils/formatters/extract.js","../../node_modules/viem/_esm/utils/formatters/formatter.js","../../node_modules/viem/_esm/utils/formatters/transactionRequest.js","../../node_modules/viem/_esm/utils/getAction.js","../../node_modules/viem/_esm/constants/number.js","../../node_modules/viem/_esm/utils/transaction/assertRequest.js","../../node_modules/viem/_esm/actions/public/getChainId.js","../../node_modules/viem/_esm/errors/fee.js","../../node_modules/viem/_esm/errors/block.js","../../node_modules/viem/_esm/utils/formatters/transaction.js","../../node_modules/viem/_esm/utils/formatters/block.js","../../node_modules/viem/_esm/actions/public/getBlock.js","../../node_modules/viem/_esm/actions/public/getGasPrice.js","../../node_modules/viem/_esm/actions/public/estimateMaxPriorityFeePerGas.js","../../node_modules/viem/_esm/actions/public/estimateFeesPerGas.js","../../node_modules/viem/_esm/errors/estimateGas.js","../../node_modules/viem/_esm/utils/errors/getEstimateGasError.js","../../node_modules/viem/_esm/errors/stateOverride.js","../../node_modules/viem/_esm/utils/stateOverride.js","../../node_modules/viem/_esm/actions/public/getBalance.js","../../node_modules/viem/_esm/actions/public/estimateGas.js","../../node_modules/viem/_esm/actions/public/getTransactionCount.js","../../node_modules/viem/_esm/utils/blob/blobsToCommitments.js","../../node_modules/viem/_esm/utils/blob/blobsToProofs.js","../../node_modules/@noble/hashes/esm/_md.js","../../node_modules/@noble/hashes/esm/sha256.js","../../node_modules/viem/_esm/utils/hash/sha256.js","../../node_modules/viem/_esm/utils/blob/commitmentToVersionedHash.js","../../node_modules/viem/_esm/utils/blob/commitmentsToVersionedHashes.js","../../node_modules/viem/_esm/constants/blob.js","../../node_modules/viem/_esm/constants/kzg.js","../../node_modules/viem/_esm/errors/blob.js","../../node_modules/viem/_esm/utils/blob/toBlobs.js","../../node_modules/viem/_esm/utils/blob/toBlobSidecars.js","../../node_modules/viem/_esm/utils/transaction/getTransactionType.js","../../node_modules/viem/_esm/actions/wallet/prepareTransactionRequest.js","../../node_modules/viem/_esm/actions/wallet/sendRawTransaction.js","../../node_modules/viem/_esm/actions/wallet/sendTransaction.js","../../node_modules/viem/_esm/constants/abis.js","../../node_modules/viem/_esm/utils/encoding/fromBytes.js","../../node_modules/viem/_esm/utils/abi/decodeAbiParameters.js","../../node_modules/viem/_esm/utils/hash/hashSignature.js","../../node_modules/abitype/dist/esm/version.js","../../node_modules/abitype/dist/esm/errors.js","../../node_modules/abitype/dist/esm/regex.js","../../node_modules/abitype/dist/esm/human-readable/formatAbiParameter.js","../../node_modules/abitype/dist/esm/human-readable/formatAbiParameters.js","../../node_modules/abitype/dist/esm/human-readable/formatAbiItem.js","../../node_modules/abitype/dist/esm/human-readable/runtime/signatures.js","../../node_modules/abitype/dist/esm/human-readable/errors/abiItem.js","../../node_modules/abitype/dist/esm/human-readable/errors/abiParameter.js","../../node_modules/abitype/dist/esm/human-readable/errors/signature.js","../../node_modules/abitype/dist/esm/human-readable/errors/struct.js","../../node_modules/abitype/dist/esm/human-readable/errors/splitParameters.js","../../node_modules/abitype/dist/esm/human-readable/runtime/cache.js","../../node_modules/abitype/dist/esm/human-readable/runtime/utils.js","../../node_modules/abitype/dist/esm/human-readable/runtime/structs.js","../../node_modules/abitype/dist/esm/human-readable/parseAbi.js","../../node_modules/abitype/dist/esm/human-readable/parseAbiItem.js","../../node_modules/viem/_esm/utils/hash/normalizeSignature.js","../../node_modules/viem/_esm/utils/hash/toSignature.js","../../node_modules/viem/_esm/utils/hash/toSignatureHash.js","../../node_modules/viem/_esm/utils/hash/toEventSelector.js","../../node_modules/viem/_esm/utils/hash/toFunctionSelector.js","../../node_modules/viem/_esm/utils/abi/getAbiItem.js","../../node_modules/viem/_esm/utils/abi/decodeFunctionResult.js","../../node_modules/viem/_esm/utils/abi/prepareEncodeFunctionData.js","../../node_modules/viem/_esm/utils/abi/encodeFunctionData.js","../../node_modules/viem/_esm/utils/chain/getChainContractAddress.js","../../node_modules/viem/_esm/constants/solidity.js","../../node_modules/viem/_esm/utils/abi/decodeErrorResult.js","../../node_modules/viem/_esm/utils/abi/formatAbiItemWithArgs.js","../../node_modules/viem/_esm/errors/contract.js","../../node_modules/viem/_esm/utils/ens/errors.js","../../node_modules/viem/_esm/utils/ens/encodedLabelToLabelhash.js","../../node_modules/viem/_esm/utils/ens/namehash.js","../../node_modules/viem/_esm/utils/ens/encodeLabelhash.js","../../node_modules/viem/_esm/utils/ens/labelhash.js","../../node_modules/viem/_esm/utils/ens/packetToBytes.js","../../node_modules/viem/_esm/utils/errors/getContractError.js","../../node_modules/viem/_esm/constants/contract.js","../../node_modules/viem/_esm/constants/contracts.js","../../node_modules/viem/_esm/utils/errors/getCallError.js","../../node_modules/viem/_esm/utils/promise/withResolvers.js","../../node_modules/viem/_esm/utils/promise/createBatchScheduler.js","../../node_modules/viem/_esm/actions/public/call.js","../../node_modules/viem/_esm/actions/public/readContract.js","../../node_modules/viem/_esm/actions/ens/getEnsAddress.js","../../node_modules/viem/_esm/errors/ens.js","../../node_modules/viem/_esm/utils/ens/avatar/utils.js","../../node_modules/viem/_esm/utils/ens/avatar/parseAvatarRecord.js","../../node_modules/viem/_esm/actions/ens/getEnsText.js","../../node_modules/viem/_esm/actions/ens/getEnsAvatar.js","../../node_modules/viem/_esm/actions/ens/getEnsName.js","../../node_modules/viem/_esm/actions/ens/getEnsResolver.js","../../node_modules/viem/_esm/actions/public/createAccessList.js","../../node_modules/viem/_esm/utils/filters/createFilterRequestScope.js","../../node_modules/viem/_esm/actions/public/createBlockFilter.js","../../node_modules/viem/_esm/errors/log.js","../../node_modules/viem/_esm/utils/abi/encodeEventTopics.js","../../node_modules/viem/_esm/actions/public/createContractEventFilter.js","../../node_modules/viem/_esm/actions/public/createEventFilter.js","../../node_modules/viem/_esm/actions/public/createPendingTransactionFilter.js","../../node_modules/viem/_esm/actions/public/estimateContractGas.js","../../node_modules/viem/_esm/actions/public/getBlobBaseFee.js","../../node_modules/viem/_esm/utils/promise/withCache.js","../../node_modules/viem/_esm/actions/public/getBlockNumber.js","../../node_modules/viem/_esm/actions/public/getBlockTransactionCount.js","../../node_modules/viem/_esm/actions/public/getCode.js","../../node_modules/viem/_esm/utils/address/isAddressEqual.js","../../node_modules/viem/_esm/utils/abi/decodeEventLog.js","../../node_modules/viem/_esm/utils/abi/parseEventLogs.js","../../node_modules/viem/_esm/utils/formatters/log.js","../../node_modules/viem/_esm/actions/public/getLogs.js","../../node_modules/viem/_esm/actions/public/getContractEvents.js","../../node_modules/viem/_esm/errors/eip712.js","../../node_modules/viem/_esm/actions/public/getEip712Domain.js","../../node_modules/viem/_esm/utils/formatters/feeHistory.js","../../node_modules/viem/_esm/actions/public/getFeeHistory.js","../../node_modules/viem/_esm/actions/public/getFilterChanges.js","../../node_modules/viem/_esm/actions/public/getFilterLogs.js","../../node_modules/viem/_esm/actions/public/getStorageAt.js","../../node_modules/viem/_esm/actions/public/getTransaction.js","../../node_modules/viem/_esm/actions/public/getTransactionConfirmations.js","../../node_modules/viem/_esm/utils/formatters/transactionReceipt.js","../../node_modules/viem/_esm/actions/public/getTransactionReceipt.js","../../node_modules/viem/_esm/actions/public/multicall.js","../../node_modules/@noble/curves/esm/abstract/utils.js","../../node_modules/ox/_esm/core/version.js","../../node_modules/ox/_esm/core/internal/errors.js","../../node_modules/ox/_esm/core/Errors.js","../../node_modules/ox/_esm/core/Json.js","../../node_modules/ox/_esm/core/internal/bytes.js","../../node_modules/ox/_esm/core/internal/hex.js","../../node_modules/ox/_esm/core/Bytes.js","../../node_modules/ox/_esm/core/Hex.js","../../node_modules/ox/_esm/core/Withdrawal.js","../../node_modules/ox/_esm/core/BlockOverrides.js","../../node_modules/viem/_esm/actions/public/simulateBlocks.js","../../node_modules/ox/_esm/core/Hash.js","../../node_modules/ox/_esm/core/internal/lru.js","../../node_modules/ox/_esm/core/Caches.js","../../node_modules/ox/_esm/core/Address.js","../../node_modules/ox/_esm/core/internal/abiItem.js","../../node_modules/ox/_esm/core/AbiItem.js","../../node_modules/ox/_esm/core/Solidity.js","../../node_modules/ox/_esm/core/internal/abiParameters.js","../../node_modules/ox/_esm/core/AbiParameters.js","../../node_modules/ox/_esm/core/AbiConstructor.js","../../node_modules/ox/_esm/core/AbiFunction.js","../../node_modules/viem/_esm/constants/address.js","../../node_modules/viem/_esm/utils/promise/withDedupe.js","../../node_modules/viem/_esm/utils/wait.js","../../node_modules/viem/_esm/utils/promise/withRetry.js","../../node_modules/viem/_esm/utils/buildRequest.js","../../node_modules/viem/_esm/errors/ccip.js","../../node_modules/viem/_esm/utils/ccip.js","../../node_modules/viem/_esm/utils/chain/defineChain.js","../../node_modules/viem/_esm/utils/promise/withTimeout.js","../../node_modules/viem/_esm/utils/rpc/id.js","../../node_modules/viem/_esm/utils/rpc/http.js","../../node_modules/viem/_esm/errors/typedData.js","../../node_modules/viem/_esm/utils/signature/hashTypedData.js","../../node_modules/viem/_esm/utils/typedData.js","../../node_modules/viem/_esm/utils/transaction/assertTransaction.js","../../node_modules/viem/_esm/utils/transaction/serializeAccessList.js","../../node_modules/viem/_esm/utils/transaction/serializeTransaction.js","../../node_modules/viem/_esm/utils/authorization/serializeAuthorizationList.js","../../node_modules/viem/_esm/constants/strings.js","../../node_modules/viem/_esm/utils/signature/toPrefixedMessage.js","../../node_modules/viem/_esm/utils/signature/hashMessage.js","../../node_modules/viem/_esm/constants/bytes.js","../../node_modules/viem/_esm/utils/signature/isErc6492Signature.js","../../node_modules/viem/_esm/utils/signature/serializeErc6492Signature.js","../../node_modules/viem/_esm/errors/unit.js","../../node_modules/viem/_esm/utils/unit/parseUnits.js","../../node_modules/viem/_esm/utils/unit/parseEther.js","../../node_modules/viem/_esm/actions/public/simulateCalls.js","../../node_modules/viem/_esm/utils/observe.js","../../node_modules/viem/_esm/utils/poll.js","../../node_modules/viem/_esm/actions/public/watchBlocks.js","../../node_modules/viem/_esm/actions/public/watchBlockNumber.js","../../node_modules/viem/_esm/actions/public/uninstallFilter.js","../../node_modules/viem/_esm/actions/public/watchEvent.js","../../node_modules/viem/_esm/actions/public/watchPendingTransactions.js","../../node_modules/viem/_esm/utils/formatters/proof.js","../../node_modules/viem/_esm/actions/public/getProof.js","../../node_modules/viem/_esm/actions/public/waitForTransactionReceipt.js","../../node_modules/viem/_esm/actions/wallet/signMessage.js","../../node_modules/viem/_esm/actions/public/simulateContract.js","../../node_modules/@noble/hashes/esm/hmac.js","../../node_modules/@noble/curves/esm/abstract/modular.js","../../node_modules/@noble/curves/esm/abstract/curve.js","../../node_modules/@noble/curves/esm/abstract/weierstrass.js","../../node_modules/@noble/curves/esm/_shortw_utils.js","../../node_modules/@noble/curves/esm/secp256k1.js","../../node_modules/viem/_esm/utils/signature/serializeSignature.js","../../node_modules/viem/_esm/actions/public/verifyHash.js","../../node_modules/viem/_esm/actions/public/verifyMessage.js","../../node_modules/viem/_esm/actions/public/verifyTypedData.js","../../node_modules/viem/_esm/actions/public/watchContractEvent.js","../../node_modules/viem/_esm/actions/wallet/writeContract.js","../../node_modules/@wagmi/core/dist/esm/utils/getAction.js","../../node_modules/@wagmi/core/dist/esm/version.js","../../node_modules/@wagmi/core/dist/esm/utils/getVersion.js","../../node_modules/@wagmi/core/dist/esm/errors/base.js","../../node_modules/@wagmi/core/dist/esm/errors/config.js","../../node_modules/@wagmi/core/dist/esm/actions/connect.js","../../node_modules/viem/_esm/utils/uid.js","../../node_modules/viem/_esm/clients/createClient.js","../../node_modules/viem/_esm/clients/transports/createTransport.js","../../node_modules/viem/_esm/clients/transports/custom.js","../../node_modules/viem/_esm/clients/transports/fallback.js","../../node_modules/viem/_esm/errors/transport.js","../../node_modules/viem/_esm/clients/transports/http.js","../../node_modules/viem/_esm/utils/siwe/parseSiweMessage.js","../../node_modules/viem/_esm/utils/siwe/validateSiweMessage.js","../../node_modules/viem/_esm/actions/siwe/verifySiweMessage.js","../../node_modules/viem/_esm/clients/decorators/public.js","../../node_modules/@wagmi/core/dist/esm/actions/getConnectorClient.js","../../node_modules/@wagmi/core/dist/esm/actions/disconnect.js","../../node_modules/@wagmi/core/dist/esm/actions/estimateGas.js","../../node_modules/@wagmi/core/dist/esm/utils/getUnit.js","../../node_modules/@wagmi/core/dist/esm/actions/getAccount.js","../../node_modules/@wagmi/core/dist/esm/actions/multicall.js","../../node_modules/@wagmi/core/dist/esm/actions/readContract.js","../../node_modules/@wagmi/core/dist/esm/actions/readContracts.js","../../node_modules/@wagmi/core/dist/esm/actions/getBalance.js","../../node_modules/@wagmi/core/dist/esm/actions/getChainId.js","../../node_modules/@wagmi/core/dist/esm/utils/deepEqual.js","../../node_modules/@wagmi/core/dist/esm/actions/getChains.js","../../node_modules/@wagmi/core/dist/esm/actions/getClient.js","../../node_modules/@wagmi/core/dist/esm/actions/getConnections.js","../../node_modules/@wagmi/core/dist/esm/actions/getEnsAddress.js","../../node_modules/@wagmi/core/dist/esm/actions/getEnsAvatar.js","../../node_modules/@wagmi/core/dist/esm/actions/getEnsName.js","../../node_modules/@wagmi/core/dist/esm/actions/getPublicClient.js","../../node_modules/@wagmi/core/dist/esm/actions/prepareTransactionRequest.js","../../node_modules/@wagmi/core/dist/esm/actions/reconnect.js","../../node_modules/@wagmi/core/dist/esm/actions/sendTransaction.js","../../node_modules/@wagmi/core/dist/esm/actions/signMessage.js","../../node_modules/@wagmi/core/dist/esm/errors/connector.js","../../node_modules/@wagmi/core/dist/esm/actions/switchChain.js","../../node_modules/@wagmi/core/dist/esm/actions/watchAccount.js","../../node_modules/@wagmi/core/dist/esm/actions/watchChainId.js","../../node_modules/@wagmi/core/dist/esm/actions/watchConnections.js","../../node_modules/@wagmi/core/dist/esm/actions/watchConnectors.js","../../node_modules/@wagmi/core/dist/esm/actions/watchPublicClient.js","../../node_modules/@wagmi/core/dist/esm/actions/waitForTransactionReceipt.js","../../node_modules/@wagmi/core/dist/esm/actions/writeContract.js","../../node_modules/@wagmi/core/dist/esm/connectors/injected.js","../../node_modules/mipd/dist/esm/utils.js","../../node_modules/mipd/dist/esm/store.js","../../node_modules/zustand/esm/middleware.mjs","../../node_modules/zustand/esm/vanilla.mjs","../../node_modules/eventemitter3/index.js","../../node_modules/@wagmi/core/dist/esm/createEmitter.js","../../node_modules/@wagmi/core/dist/esm/utils/deserialize.js","../../node_modules/@wagmi/core/dist/esm/utils/serialize.js","../../node_modules/@wagmi/core/dist/esm/createStorage.js","../../node_modules/@wagmi/core/dist/esm/utils/uid.js","../../node_modules/@wagmi/core/dist/esm/createConfig.js","../../node_modules/@wagmi/core/dist/esm/hydrate.js","../../node_modules/@wagmi/core/dist/esm/transports/fallback.js","../../node_modules/@wagmi/core/dist/esm/utils/extractRpcUrls.js","../../node_modules/viem/_esm/op-stack/contracts.js","../../node_modules/viem/_esm/op-stack/formatters.js","../../node_modules/viem/_esm/op-stack/serializers.js","../../node_modules/viem/_esm/op-stack/chainConfig.js","../../node_modules/viem/_esm/chains/definitions/arbitrum.js","../../node_modules/viem/_esm/chains/definitions/avalanche.js","../../node_modules/viem/_esm/chains/definitions/base.js","../../node_modules/viem/_esm/chains/definitions/bsc.js","../../node_modules/viem/_esm/chains/definitions/fantom.js","../../node_modules/viem/_esm/chains/definitions/mainnet.js","../../node_modules/viem/_esm/chains/definitions/optimism.js","../../node_modules/viem/_esm/chains/definitions/polygon.js","../../node_modules/@wagmi/connectors/dist/esm/walletConnect.js","../../node_modules/events/events.js","../../node_modules/detect-browser/es/index.js","../../node_modules/@walletconnect/time/node_modules/tslib/tslib.es6.js","../../node_modules/@walletconnect/time/dist/cjs/utils/delay.js","../../node_modules/@walletconnect/time/dist/cjs/constants/misc.js","../../node_modules/@walletconnect/time/dist/cjs/constants/time.js","../../node_modules/@walletconnect/time/dist/cjs/constants/index.js","../../node_modules/@walletconnect/time/dist/cjs/utils/convert.js","../../node_modules/@walletconnect/time/dist/cjs/utils/index.js","../../node_modules/@walletconnect/time/dist/cjs/watch.js","../../node_modules/@walletconnect/time/dist/cjs/types/watch.js","../../node_modules/@walletconnect/time/dist/cjs/types/index.js","../../node_modules/@walletconnect/time/dist/cjs/index.js","../../node_modules/@walletconnect/window-getters/dist/cjs/index.js","../../node_modules/@walletconnect/window-metadata/dist/cjs/index.js","../../node_modules/strict-uri-encode/index.js","../../node_modules/decode-uri-component/index.js","../../node_modules/split-on-first/index.js","../../node_modules/filter-obj/index.js","../../node_modules/query-string/index.js","../../node_modules/@stablelib/int/lib/int.js","../../node_modules/@stablelib/binary/lib/binary.js","../../node_modules/@stablelib/wipe/lib/wipe.js","../../node_modules/@stablelib/chacha/lib/chacha.js","../../node_modules/@stablelib/constant-time/lib/constant-time.js","../../node_modules/@stablelib/poly1305/lib/poly1305.js","../../node_modules/@stablelib/chacha20poly1305/lib/chacha20poly1305.js","../../node_modules/@stablelib/hash/lib/hash.js","../../node_modules/@stablelib/hmac/lib/hmac.js","../../node_modules/@stablelib/hkdf/lib/hkdf.js","../../node_modules/@stablelib/random/lib/source/browser.js","../../__vite-browser-external","../../node_modules/@stablelib/random/lib/source/node.js","../../node_modules/@stablelib/random/lib/source/system.js","../../node_modules/@stablelib/random/lib/random.js","../../node_modules/@stablelib/sha256/lib/sha256.js","../../node_modules/@stablelib/x25519/lib/x25519.js","../../node_modules/uint8arrays/esm/src/alloc.js","../../node_modules/uint8arrays/esm/src/concat.js","../../node_modules/multiformats/esm/vendor/base-x.js","../../node_modules/multiformats/esm/src/bytes.js","../../node_modules/multiformats/esm/src/bases/base.js","../../node_modules/multiformats/esm/src/bases/identity.js","../../node_modules/multiformats/esm/src/bases/base2.js","../../node_modules/multiformats/esm/src/bases/base8.js","../../node_modules/multiformats/esm/src/bases/base10.js","../../node_modules/multiformats/esm/src/bases/base16.js","../../node_modules/multiformats/esm/src/bases/base32.js","../../node_modules/multiformats/esm/src/bases/base36.js","../../node_modules/multiformats/esm/src/bases/base58.js","../../node_modules/multiformats/esm/src/bases/base64.js","../../node_modules/multiformats/esm/src/bases/base256emoji.js","../../node_modules/multiformats/esm/src/codecs/json.js","../../node_modules/multiformats/esm/src/basics.js","../../node_modules/uint8arrays/esm/src/util/bases.js","../../node_modules/uint8arrays/esm/src/from-string.js","../../node_modules/uint8arrays/esm/src/to-string.js","../../node_modules/destr/dist/index.mjs","../../node_modules/idb-keyval/dist/index.js","../../node_modules/@walletconnect/safe-json/dist/esm/index.js","../../node_modules/@walletconnect/events/dist/esm/events.js","../../node_modules/@walletconnect/heartbeat/dist/index.es.js","../../node_modules/quick-format-unescaped/index.js","../../node_modules/pino/browser.js","../../node_modules/@walletconnect/logger/dist/index.es.js","../../node_modules/@walletconnect/jsonrpc-utils/dist/esm/constants.js","../../node_modules/@walletconnect/jsonrpc-utils/dist/esm/error.js","../../node_modules/@walletconnect/environment/node_modules/tslib/tslib.es6.js","../../node_modules/@walletconnect/environment/dist/cjs/crypto.js","../../node_modules/@walletconnect/environment/dist/cjs/env.js","../../node_modules/@walletconnect/environment/dist/cjs/index.js","../../node_modules/@walletconnect/jsonrpc-utils/dist/esm/format.js","../../node_modules/@walletconnect/jsonrpc-types/dist/index.es.js","../../node_modules/@walletconnect/jsonrpc-utils/dist/esm/url.js","../../node_modules/@walletconnect/jsonrpc-utils/dist/esm/validators.js","../../node_modules/@walletconnect/jsonrpc-provider/dist/index.es.js","../../node_modules/@walletconnect/jsonrpc-http-connection/node_modules/cross-fetch/dist/browser-ponyfill.js","../../node_modules/@walletconnect/jsonrpc-http-connection/dist/index.es.js","../../node_modules/@web3modal/wagmi/node_modules/@walletconnect/universal-provider/dist/index.es.js","../../node_modules/@web3modal/wagmi/node_modules/@walletconnect/ethereum-provider/dist/index.es.js","../../node_modules/proxy-compare/dist/index.modern.js","../../node_modules/valtio/esm/vanilla.mjs","../../node_modules/valtio/esm/vanilla/utils.mjs","../../node_modules/@web3modal/core/dist/esm/src/utils/ConstantsUtil.js","../../node_modules/@web3modal/core/dist/esm/src/utils/CoreHelperUtil.js","../../node_modules/@web3modal/core/dist/esm/src/utils/FetchUtil.js","../../node_modules/dayjs/dayjs.min.js","../../node_modules/dayjs/locale/en.js","../../node_modules/dayjs/plugin/relativeTime.js","../../node_modules/dayjs/plugin/updateLocale.js","../../node_modules/@web3modal/common/dist/esm/src/utils/DateUtil.js","../../node_modules/@web3modal/common/dist/esm/src/utils/NetworkUtil.js","../../node_modules/bignumber.js/bignumber.mjs","../../node_modules/@web3modal/common/dist/esm/src/utils/NumberUtil.js","../../node_modules/@web3modal/common/dist/esm/src/utils/InputUtil.js","../../node_modules/@web3modal/common/dist/esm/src/contracts/erc20.js","../../node_modules/@web3modal/common/dist/esm/src/utils/NavigationUtil.js","../../node_modules/@web3modal/common/dist/esm/src/utils/ConstantsUtil.js","../../node_modules/@web3modal/common/dist/esm/src/utils/ThemeUtil.js","../../node_modules/@web3modal/core/dist/esm/src/controllers/OptionsController.js","../../node_modules/@web3modal/core/dist/esm/src/controllers/BlockchainApiController.js","../../node_modules/@web3modal/core/dist/esm/src/controllers/SnackController.js","../../node_modules/@web3modal/core/dist/esm/src/utils/StorageUtil.js","../../node_modules/@web3modal/core/dist/esm/src/controllers/EventsController.js","../../node_modules/@web3modal/core/dist/esm/src/controllers/TransactionsController.js","../../node_modules/@web3modal/core/dist/esm/src/controllers/ConnectionController.js","../../node_modules/@web3modal/core/dist/esm/src/controllers/PublicStateController.js","../../node_modules/@web3modal/core/dist/esm/src/controllers/NetworkController.js","../../node_modules/@web3modal/core/dist/esm/src/utils/SwapApiUtil.js","../../node_modules/@web3modal/core/dist/esm/src/controllers/RouterController.js","../../node_modules/@web3modal/core/dist/esm/src/utils/SwapCalculationUtil.js","../../node_modules/@web3modal/core/dist/esm/src/controllers/SwapController.js","../../node_modules/@web3modal/core/dist/esm/src/controllers/AccountController.js","../../node_modules/@web3modal/core/dist/esm/src/controllers/AssetController.js","../../node_modules/@web3modal/core/dist/esm/src/controllers/ThemeController.js","../../node_modules/@web3modal/core/dist/esm/src/controllers/ConnectorController.js","../../node_modules/@web3modal/core/dist/esm/src/controllers/ApiController.js","../../node_modules/@web3modal/core/dist/esm/src/controllers/ModalController.js","../../node_modules/@web3modal/core/dist/esm/src/controllers/OnRampController.js","../../node_modules/@web3modal/core/dist/esm/src/controllers/SendController.js","../../node_modules/@web3modal/core/dist/esm/src/controllers/TooltipController.js","../../node_modules/@web3modal/core/dist/esm/src/utils/EnsUtil.js","../../node_modules/@web3modal/core/dist/esm/src/controllers/EnsController.js","../../node_modules/@web3modal/core/dist/esm/src/utils/AssetUtil.js","../../node_modules/@web3modal/core/dist/esm/src/utils/RouterUtil.js","../../node_modules/@web3modal/ui/node_modules/@lit/reactive-element/css-tag.js","../../node_modules/@web3modal/ui/node_modules/@lit/reactive-element/reactive-element.js","../../node_modules/@web3modal/ui/node_modules/lit-html/lit-html.js","../../node_modules/@web3modal/ui/node_modules/lit-element/lit-element.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/swap-input-mask-bottom.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/swap-input-mask-top.js","../../node_modules/@web3modal/ui/dist/esm/src/utils/ThemeUtil.js","../../node_modules/@web3modal/ui/dist/esm/src/utils/WebComponentsUtil.js","../../node_modules/@web3modal/ui/dist/esm/src/components/wui-card/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/components/wui-card/index.js","../../node_modules/@web3modal/ui/node_modules/@lit/reactive-element/decorators/property.js","../../node_modules/@web3modal/ui/node_modules/@lit/reactive-element/decorators/state.js","../../node_modules/@web3modal/ui/dist/esm/src/components/wui-icon/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/add.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/all-wallets.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/arrow-bottom-circle.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/app-store.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/apple.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/arrow-bottom.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/arrow-left.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/arrow-right.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/arrow-top.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/bank.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/browser.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/card.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/checkmark-bold.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/checkmark.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/chevron-bottom.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/chevron-left.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/chevron-right.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/chevron-top.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/chrome-store.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/clock.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/close.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/coinPlaceholder.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/compass.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/copy.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/cursor.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/cursor-transparent.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/desktop.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/disconnect.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/discord.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/etherscan.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/extension.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/external-link.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/facebook.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/filters.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/github.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/google.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/help-circle.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/info-circle.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/mail.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/mobile.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/more.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/network-placeholder.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/nftPlaceholder.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/off.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/play-store.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/plus.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/qr-code.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/recycle-horizontal.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/refresh.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/search.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/send.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/swapHorizontal.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/swapHorizontalBold.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/swapHorizontalMedium.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/swapHorizontalRoundedBold.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/swapVertical.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/telegram.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/twitch.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/twitterIcon.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/verify.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/verify-filled.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/wallet-placeholder.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/wallet.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/walletconnect.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/warning-circle.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/id.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/x.js","../../node_modules/@web3modal/ui/dist/esm/src/components/wui-icon/index.js","../../node_modules/@web3modal/ui/dist/esm/src/components/wui-image/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/components/wui-image/index.js","../../node_modules/@web3modal/ui/dist/esm/src/components/wui-loading-hexagon/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/components/wui-loading-hexagon/index.js","../../node_modules/@web3modal/ui/dist/esm/src/components/wui-loading-spinner/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/components/wui-loading-spinner/index.js","../../node_modules/@web3modal/ui/dist/esm/src/components/wui-loading-thumbnail/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/components/wui-loading-thumbnail/index.js","../../node_modules/@web3modal/ui/dist/esm/src/components/wui-shimmer/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/components/wui-shimmer/index.js","../../node_modules/@web3modal/ui/node_modules/lit-html/directive.js","../../node_modules/@web3modal/ui/node_modules/lit-html/directives/class-map.js","../../node_modules/@web3modal/ui/dist/esm/src/components/wui-text/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/components/wui-text/index.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/visual/browser.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/visual/dao.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/visual/defi.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/visual/defiAlt.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/visual/eth.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/visual/layers.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/visual/lock.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/visual/login.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/visual/network.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/visual/nft.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/visual/noun.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/visual/profile.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/visual/system.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/visual/coinbase.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/visual/moonpay.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/visual/stripe.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/visual/paypal.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/visual/onramp-card.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/visual/google.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/visual/pencil.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/visual/lightbulb.js","../../node_modules/@web3modal/ui/dist/esm/src/components/wui-visual/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/components/wui-visual/index.js","../../node_modules/@web3modal/ui/node_modules/lit-html/directives/if-defined.js","../../node_modules/@web3modal/ui/dist/esm/src/utils/UiHelperUtil.js","../../node_modules/@web3modal/ui/dist/esm/src/layout/wui-flex/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/layout/wui-flex/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-avatar/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-avatar/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-icon-box/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-icon-box/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-account-button/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-account-button/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-wallet-image/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-wallet-image/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-all-wallets-image/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-all-wallets-image/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-button/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-button/index.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/networkMd.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-card-select-loader/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-card-select-loader/index.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/networkSm.js","../../node_modules/@web3modal/ui/dist/esm/src/assets/svg/networkLg.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-network-image/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-network-image/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-card-select/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-card-select/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-chip/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-chip/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-connect-button/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-connect-button/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-cta-button/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-cta-button/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-details-group/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-details-group/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-details-group-item/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-details-group-item/index.js","../../node_modules/@web3modal/ui/node_modules/lit-html/directive-helpers.js","../../node_modules/@web3modal/ui/node_modules/lit-html/async-directive.js","../../node_modules/@web3modal/ui/node_modules/lit-html/directives/ref.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-input-text/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-input-text/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-email-input/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-email-input/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-ens-input/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-ens-input/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-icon-link/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-icon-link/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-input-element/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-input-element/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-input-numeric/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-input-numeric/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-link/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-link/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-list-item/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-list-item/index.js","../../node_modules/@web3modal/ui/dist/esm/src/utils/TypeUtil.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-transaction-visual/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-transaction-visual/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-transaction-list-item/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-transaction-list-item/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-transaction-list-item-loader/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-transaction-list-item-loader/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-tag/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-tag/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-list-wallet/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-list-wallet/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-logo/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-logo/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-logo-select/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-logo-select/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-network-button/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-network-button/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-otp/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-otp/index.js","../../node_modules/qrcode/lib/can-promise.js","../../node_modules/qrcode/lib/core/utils.js","../../node_modules/qrcode/lib/core/error-correction-level.js","../../node_modules/qrcode/lib/core/bit-buffer.js","../../node_modules/qrcode/lib/core/bit-matrix.js","../../node_modules/qrcode/lib/core/alignment-pattern.js","../../node_modules/qrcode/lib/core/finder-pattern.js","../../node_modules/qrcode/lib/core/mask-pattern.js","../../node_modules/qrcode/lib/core/error-correction-code.js","../../node_modules/qrcode/lib/core/galois-field.js","../../node_modules/qrcode/lib/core/polynomial.js","../../node_modules/qrcode/lib/core/reed-solomon-encoder.js","../../node_modules/qrcode/lib/core/version-check.js","../../node_modules/qrcode/lib/core/regex.js","../../node_modules/qrcode/lib/core/mode.js","../../node_modules/qrcode/lib/core/version.js","../../node_modules/qrcode/lib/core/format-info.js","../../node_modules/qrcode/lib/core/numeric-data.js","../../node_modules/qrcode/lib/core/alphanumeric-data.js","../../node_modules/encode-utf8/index.js","../../node_modules/qrcode/lib/core/byte-data.js","../../node_modules/qrcode/lib/core/kanji-data.js","../../node_modules/dijkstrajs/dijkstra.js","../../node_modules/qrcode/lib/core/segments.js","../../node_modules/qrcode/lib/core/qrcode.js","../../node_modules/qrcode/lib/renderer/utils.js","../../node_modules/qrcode/lib/renderer/canvas.js","../../node_modules/qrcode/lib/renderer/svg-tag.js","../../node_modules/qrcode/lib/browser.js","../../node_modules/@web3modal/ui/dist/esm/src/utils/QrCode.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-qr-code/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-qr-code/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-search-bar/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-search-bar/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-snackbar/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-snackbar/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-tabs/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-tabs/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-token-button/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-token-button/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-tooltip/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-tooltip/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-token-list-item/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-token-list-item/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-visual-thumbnail/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-visual-thumbnail/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-notice-card/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-notice-card/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-list-accordion/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-list-accordion/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-list-content/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-list-content/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-list-network/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-list-network/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-list-wallet-transaction/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-list-wallet-transaction/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-onramp-activity-item/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-onramp-activity-item/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-onramp-provider-item/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-onramp-provider-item/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-promo/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-promo/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-balance/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-balance/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-profile-button/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-profile-button/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-chip-button/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-chip-button/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-compatible-network/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-compatible-network/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-banner/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-banner/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-list-token/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-list-token/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-list-description/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-list-description/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-input-amount/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/utils/ConstantsUtil.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-input-amount/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-preview-item/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-preview-item/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-icon-button/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-icon-button/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-list-button/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-list-button/index.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-list-social/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/composites/wui-list-social/index.js","../../node_modules/@web3modal/ui/dist/esm/src/layout/wui-grid/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/layout/wui-grid/index.js","../../node_modules/@web3modal/ui/dist/esm/src/layout/wui-separator/styles.js","../../node_modules/@web3modal/ui/dist/esm/src/layout/wui-separator/index.js","../../node_modules/@web3modal/ui/dist/esm/src/utils/MathUtil.js","../../node_modules/@web3modal/ui/dist/esm/src/utils/TransactionUtil.js","../../node_modules/@web3modal/scaffold/node_modules/@lit/reactive-element/css-tag.js","../../node_modules/@web3modal/scaffold/node_modules/@lit/reactive-element/reactive-element.js","../../node_modules/@web3modal/scaffold/node_modules/lit-html/lit-html.js","../../node_modules/@web3modal/scaffold/node_modules/lit-element/lit-element.js","../../node_modules/@web3modal/scaffold/node_modules/@lit/reactive-element/decorators/property.js","../../node_modules/@web3modal/scaffold/node_modules/@lit/reactive-element/decorators/state.js","../../node_modules/@web3modal/scaffold/node_modules/lit-html/directives/if-defined.js","../../node_modules/@web3modal/scaffold/dist/esm/src/modal/w3m-account-button/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/modal/w3m-button/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/modal/w3m-button/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/modal/w3m-connect-button/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/modal/w3m-modal/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/modal/w3m-modal/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/modal/w3m-network-button/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/modal/w3m-network-button/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/modal/w3m-router/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/modal/w3m-router/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/modal/w3m-onramp-widget/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/modal/w3m-onramp-widget/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-account-settings-view/styles.js","../../node_modules/base64-js/index.js","../../node_modules/ieee754/index.js","../../node_modules/buffer/index.js","../../node_modules/@web3modal/polyfills/dist/esm/index.js","../../node_modules/@web3modal/wallet/dist/esm/src/W3mFrameConstants.js","../../node_modules/zod/lib/index.mjs","../../node_modules/@web3modal/wallet/dist/esm/src/W3mFrameSchema.js","../../node_modules/@web3modal/wallet/dist/esm/src/W3mFrameStorage.js","../../node_modules/@web3modal/wallet/dist/esm/src/RegexUtil.js","../../node_modules/@web3modal/wallet/dist/esm/src/W3mFrameHelpers.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-account-settings-view/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-account-view/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-all-wallets-view/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-buy-in-progress-view/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-buy-in-progress-view/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-connect-view/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-connect-view/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/utils/w3m-connecting-widget/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/utils/w3m-connecting-widget/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-connecting-external-view/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-connecting-wc-view/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-choose-account-name-view/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-choose-account-name-view/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-downloads-view/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-get-wallet-view/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-register-account-name-view/styles.js","../../node_modules/@web3modal/scaffold/node_modules/lit-html/directive-helpers.js","../../node_modules/@web3modal/scaffold/node_modules/lit-html/directive.js","../../node_modules/@web3modal/scaffold/node_modules/lit-html/async-directive.js","../../node_modules/@web3modal/scaffold/node_modules/lit-html/directives/ref.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-register-account-name-view/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-register-account-name-success-view/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-register-account-name-success-view/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-network-switch-view/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-network-switch-view/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-networks-view/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-networks-view/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-onramp-activity-view/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-onramp-activity-view/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-onramp-fiat-select-view/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-onramp-fiat-select-view/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-onramp-providers-view/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-onramp-tokens-select-view/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-onramp-tokens-select-view/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-swap-view/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-swap-view/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-swap-preview-view/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-swap-preview-view/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-swap-select-token-view/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-swap-select-token-view/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-transactions-view/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-transactions-view/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-what-is-a-network-view/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-what-is-a-wallet-view/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-what-is-a-buy-view/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/utils/w3m-email-otp-widget/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/utils/w3m-email-otp-widget/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-email-verify-otp-view/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-email-verify-device-view/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-email-verify-device-view/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-approve-transaction-view/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-approve-transaction-view/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-upgrade-wallet-view/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-upgrade-to-smart-account-view/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-update-email-wallet-view/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-update-email-wallet-view/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-update-email-primary-otp-view/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-update-email-secondary-otp-view/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-unsupported-chain-view/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-unsupported-chain-view/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-wallet-receive-view/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-wallet-receive-view/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-wallet-compatible-networks-view/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-wallet-compatible-networks-view/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-wallet-send-view/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-wallet-send-view/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-wallet-send-select-token-view/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-wallet-send-select-token-view/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-wallet-send-preview-view/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-wallet-send-preview-view/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-connect-wallets-view/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-connect-wallets-view/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-connect-socials-view/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-connect-socials-view/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-connecting-social-view/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/utils/ConstantsUtil.js","../../node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-connecting-social-view/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-all-wallets-list/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/utils/markWalletsAsInstalled.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-all-wallets-list/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-all-wallets-search/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-all-wallets-search/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-connecting-header/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-connecting-wc-browser/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-connecting-wc-desktop/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-connecting-wc-mobile/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-connecting-wc-qrcode/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-connecting-wc-qrcode/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-connecting-wc-unsupported/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-connecting-wc-web/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-swap-details/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-swap-details/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-swap-input/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-swap-input/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-swap-input-skeleton/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-swap-input-skeleton/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-header/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-header/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-help-widget/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-onramp-input/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-onramp-input/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-legal-footer/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-legal-footer/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-mobile-download-links/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-mobile-download-links/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-onramp-providers-footer/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-onramp-providers-footer/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-snackbar/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-snackbar/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-email-login-widget/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-email-login-widget/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-account-default-widget/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-account-default-widget/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-account-wallet-features-widget/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-account-wallet-features-widget/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-account-activity-widget/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-account-activity-widget/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-account-nfts-widget/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-account-nfts-widget/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-account-tokens-widget/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-account-tokens-widget/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-activity-list/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-activity-list/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-input-token/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-input-token/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-input-address/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-input-address/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-wallet-send-details/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-wallet-send-details/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-tooltip/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-tooltip/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-tooltip-trigger/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-tooltip-trigger/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-social-login-widget/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-social-login-widget/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-wallet-login-list/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-wallet-login-list/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-social-login-list/styles.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-social-login-list/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-connect-announced-widget/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-connect-custom-widget/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-connect-external-widget/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-connect-featured-widget/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-connect-injected-widget/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-connect-coinbase-widget/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-connect-recent-widget/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-connect-recommended-widget/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-connect-walletconnect-widget/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-all-wallets-widget/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-account-auth-button/index.js","../../node_modules/@web3modal/scaffold/dist/esm/src/client.js","../../node_modules/@web3modal/scaffold-utils/dist/esm/src/ConstantsUtil.js","../../node_modules/@web3modal/scaffold-utils/dist/esm/src/PresetsUtil.js","../../node_modules/@web3modal/scaffold-utils/dist/esm/src/HelpersUtil.js","../../node_modules/@web3modal/wagmi/dist/esm/src/utils/helpers.js","../../node_modules/@adraffy/ens-normalize/dist/index.mjs","../../node_modules/ox/_esm/core/Ens.js","../../node_modules/viem/_esm/utils/ens/normalize.js","../../node_modules/@web3modal/wagmi/dist/esm/src/client.js","../../node_modules/@web3modal/wagmi/dist/esm/exports/index.js"],"sourcesContent":["export const version = '2.24.2';\n//# sourceMappingURL=version.js.map","import { version } from './version.js';\nlet errorConfig = {\n getDocsUrl: ({ docsBaseUrl, docsPath = '', docsSlug, }) => docsPath\n ? `${docsBaseUrl ?? 'https://viem.sh'}${docsPath}${docsSlug ? `#${docsSlug}` : ''}`\n : undefined,\n version: `viem@${version}`,\n};\nexport function setErrorConfig(config) {\n errorConfig = config;\n}\nexport class BaseError extends Error {\n constructor(shortMessage, args = {}) {\n const details = (() => {\n if (args.cause instanceof BaseError)\n return args.cause.details;\n if (args.cause?.message)\n return args.cause.message;\n return args.details;\n })();\n const docsPath = (() => {\n if (args.cause instanceof BaseError)\n return args.cause.docsPath || args.docsPath;\n return args.docsPath;\n })();\n const docsUrl = errorConfig.getDocsUrl?.({ ...args, docsPath });\n const message = [\n shortMessage || 'An error occurred.',\n '',\n ...(args.metaMessages ? [...args.metaMessages, ''] : []),\n ...(docsUrl ? [`Docs: ${docsUrl}`] : []),\n ...(details ? [`Details: ${details}`] : []),\n ...(errorConfig.version ? [`Version: ${errorConfig.version}`] : []),\n ].join('\\n');\n super(message, args.cause ? { cause: args.cause } : undefined);\n Object.defineProperty(this, \"details\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"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, \"version\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'BaseError'\n });\n this.details = details;\n this.docsPath = docsPath;\n this.metaMessages = args.metaMessages;\n this.name = args.name ?? this.name;\n this.shortMessage = shortMessage;\n this.version = version;\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 &&\n typeof err === 'object' &&\n 'cause' in err &&\n err.cause !== undefined)\n return walk(err.cause, fn);\n return fn ? null : err;\n}\n//# sourceMappingURL=base.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})`}`, { name: 'IntegerOutOfRangeError' });\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 name: '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).`, { name: 'InvalidHexBooleanError' });\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.`, { name: 'InvalidHexValueError' });\n }\n}\nexport class SizeOverflowError extends BaseError {\n constructor({ givenSize, maxSize }) {\n super(`Size cannot exceed ${maxSize} bytes. Given size: ${givenSize} bytes.`, { name: 'SizeOverflowError' });\n }\n}\n//# sourceMappingURL=encoding.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}).`, { name: 'SliceOffsetOutOfBoundsError' });\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}).`, { name: 'SizeExceedsPaddingSizeError' });\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.`, { name: 'InvalidBytesLengthError' });\n }\n}\n//# sourceMappingURL=data.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","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 { 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","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 { 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 { 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 { 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 ? (1n << BigInt(size * 8)) + BigInt(value) : 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 { 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 { 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 name: '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 name: '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'), {\n metaMessages: [`Data: ${data} (${size} bytes)`],\n name: '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 name: '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 name: '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'), { name: 'AbiEncodingArrayLengthMismatchError' });\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}).`, { name: 'AbiEncodingBytesSizeMismatchError' });\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'), { name: 'AbiEncodingLengthMismatchError' });\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 name: '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 name: '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 name: '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 name: '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 name: '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 name: '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 name: '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 name: '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 name: '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 name: 'AbiItemAmbiguityError',\n });\n }\n}\nexport class BytesSizeMismatchError extends BaseError {\n constructor({ expectedSize, givenSize, }) {\n super(`Expected bytes${expectedSize}, got bytes${givenSize}.`, {\n name: '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 name: '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'), { name: 'DecodeLogTopicsMismatch' });\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, name: 'InvalidAbiEncodingType' });\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, name: 'InvalidAbiDecodingType' });\n }\n}\nexport class InvalidArrayError extends BaseError {\n constructor(value) {\n super([`Value \"${value}\" is not a valid array.`].join('\\n'), {\n name: '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'), { name: 'InvalidDefinitionTypeError' });\n }\n}\nexport class UnsupportedPackedAbiType extends BaseError {\n constructor(type) {\n super(`Type \"${type}\" is not supported for packed encoding.`, {\n name: 'UnsupportedPackedAbiType',\n });\n }\n}\n//# sourceMappingURL=abi.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","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 name: 'InvalidAddressError',\n });\n }\n}\n//# sourceMappingURL=address.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 get(key) {\n const value = super.get(key);\n if (super.has(key) && value !== undefined) {\n this.delete(key);\n super.set(key, value);\n }\n return value;\n }\n set(key, value) {\n super.set(key, value);\n if (this.maxSize && this.size > this.maxSize) {\n const firstKey = this.keys().next().value;\n if (firstKey)\n this.delete(firstKey);\n }\n return this;\n }\n}\n//# sourceMappingURL=lru.js.map","/**\n * Internal assertion helpers.\n * @module\n */\n/** Asserts something is positive integer. */\nfunction anumber(n) {\n if (!Number.isSafeInteger(n) || n < 0)\n throw new Error('positive integer expected, got ' + n);\n}\n/** Is number an Uint8Array? Copied from utils for perf. */\nfunction isBytes(a) {\n return a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array');\n}\n/** Asserts something is Uint8Array. */\nfunction abytes(b, ...lengths) {\n if (!isBytes(b))\n throw new Error('Uint8Array expected');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new Error('Uint8Array expected of length ' + lengths + ', got length=' + b.length);\n}\n/** Asserts something is hash */\nfunction ahash(h) {\n if (typeof h !== 'function' || typeof h.create !== 'function')\n throw new Error('Hash should be wrapped by utils.wrapConstructor');\n anumber(h.outputLen);\n anumber(h.blockLen);\n}\n/** Asserts a hash instance has not been destroyed / finished */\nfunction aexists(instance, checkFinished = true) {\n if (instance.destroyed)\n throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished)\n throw new Error('Hash#digest() has already been called');\n}\n/** Asserts output is properly-sized byte array */\nfunction aoutput(out, instance) {\n abytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error('digestInto() expects output buffer of length at least ' + min);\n }\n}\nexport { anumber, abytes, ahash, aexists, aoutput };\n//# sourceMappingURL=_assert.js.map","/**\n * Internal helpers for u64. BigUint64Array is too slow as per 2025, so we implement it using Uint32Array.\n * @todo re-check https://issues.chromium.org/issues/42212588\n * @module\n */\nconst U32_MASK64 = /* @__PURE__ */ BigInt(2 ** 32 - 1);\nconst _32n = /* @__PURE__ */ BigInt(32);\nfunction fromBig(n, le = false) {\n if (le)\n return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) };\n return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };\n}\nfunction split(lst, le = false) {\n 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","export const crypto = typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined;\n//# sourceMappingURL=crypto.js.map","/**\n * Utilities for hex, bytes, CSPRNG.\n * @module\n */\n/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// node.js versions earlier than v19 don't declare it in global scope.\n// For node.js, package.json#exports field mapping rewrites import\n// from `crypto` to `cryptoNode`, which imports native module.\n// Makes the utils un-importable in browsers without a bundler.\n// Once node.js 18 is deprecated (2025-04-30), we can just drop the import.\nimport { crypto } from '@noble/hashes/crypto';\nimport { abytes } from './_assert.js';\n// export { isBytes } from './_assert.js';\n// We can't reuse isBytes from _assert, because somehow this causes huge perf issues\nexport function isBytes(a) {\n return a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array');\n}\n// Cast array to different type\nexport function u8(arr) {\n return new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\n}\nexport function u32(arr) {\n return new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n}\n// Cast array to view\nexport function createView(arr) {\n return new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n}\n/** The rotate right (circular right shift) operation for uint32 */\nexport function rotr(word, shift) {\n return (word << (32 - shift)) | (word >>> shift);\n}\n/** The rotate left (circular left shift) operation for uint32 */\nexport function rotl(word, shift) {\n return (word << shift) | ((word >>> (32 - shift)) >>> 0);\n}\n/** Is current platform little-endian? Most are. Big-Endian platform: IBM */\nexport const isLE = /* @__PURE__ */ (() => new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44)();\n// The byte swap operation for uint32\nexport function byteSwap(word) {\n return (((word << 24) & 0xff000000) |\n ((word << 8) & 0xff0000) |\n ((word >>> 8) & 0xff00) |\n ((word >>> 24) & 0xff));\n}\n/** Conditionally byte swap if on a big-endian platform */\nexport const byteSwapIfBE = isLE\n ? (n) => n\n : (n) => byteSwap(n);\n/** In place byte swap for Uint32Array */\nexport function byteSwap32(arr) {\n for (let i = 0; i < arr.length; i++) {\n arr[i] = byteSwap(arr[i]);\n }\n}\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n/**\n * Convert byte array to hex string.\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes) {\n abytes(bytes);\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, A: 65, F: 70, a: 97, f: 102 };\nfunction asciiToBase16(ch) {\n if (ch >= asciis._0 && ch <= asciis._9)\n return ch - asciis._0; // '2' => 50-48\n if (ch >= asciis.A && ch <= asciis.F)\n return ch - (asciis.A - 10); // 'B' => 66-(65-10)\n if (ch >= asciis.a && ch <= asciis.f)\n return ch - (asciis.a - 10); // 'b' => 98-(97-10)\n return;\n}\n/**\n * Convert hex string to byte array.\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nexport function hexToBytes(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2)\n throw new Error('hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi));\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2; // multiply first octet, e.g. 'a3' => 10*16+3 => 160 + 3 => 163\n }\n return array;\n}\n/**\n * There is no setImmediate in browser and setTimeout is slow.\n * Call of async fn will return Promise, which will be fullfiled only on\n * next scheduler queue processing step and this is exactly what we need.\n */\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 * Convert JS string to byte array.\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 abytes(data);\n return data;\n}\n/**\n * Copies several Uint8Arrays into one.\n */\nexport function concatBytes(...arrays) {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n abytes(a);\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\n/** 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}\nexport function checkOpts(defaults, opts) {\n if (opts !== undefined && {}.toString.call(opts) !== '[object Object]')\n throw new Error('Options should be object or undefined');\n const merged = Object.assign(defaults, opts);\n return merged;\n}\n/** Wraps hash function, creating an interface on top of it */\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/** Cryptographically secure PRNG. Uses internal OS-level `crypto.getRandomValues`. */\nexport function randomBytes(bytesLength = 32) {\n if (crypto && typeof crypto.getRandomValues === 'function') {\n return crypto.getRandomValues(new Uint8Array(bytesLength));\n }\n // Legacy Node.js compatibility\n if (crypto && typeof crypto.randomBytes === 'function') {\n return crypto.randomBytes(bytesLength);\n }\n throw new Error('crypto.getRandomValues must be defined');\n}\n//# sourceMappingURL=utils.js.map","/**\n * SHA3 (keccak) hash function, based on a new \"Sponge function\" design.\n * Different from older hashes, the internal state is bigger than output size.\n *\n * Check out [FIPS-202](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf),\n * [Website](https://keccak.team/keccak.html),\n * [the differences between SHA-3 and Keccak](https://crypto.stackexchange.com/questions/15727/what-are-the-key-differences-between-the-draft-sha-3-standard-and-the-keccak-sub).\n *\n * Check out `sha3-addons` module for cSHAKE, k12, and others.\n * @module\n */\nimport { abytes, aexists, anumber, aoutput } from './_assert.js';\nimport { rotlBH, rotlBL, rotlSH, rotlSL, split } from './_u64.js';\nimport { byteSwap32, Hash, isLE, toBytes, u32, wrapConstructor, wrapXOFConstructorWithOpts, } from './utils.js';\n// Various per round constants calculations\nconst SHA3_PI = [];\nconst SHA3_ROTL = [];\nconst _SHA3_IOTA = [];\nconst _0n = /* @__PURE__ */ BigInt(0);\nconst _1n = /* @__PURE__ */ BigInt(1);\nconst _2n = /* @__PURE__ */ BigInt(2);\nconst _7n = /* @__PURE__ */ BigInt(7);\nconst _256n = /* @__PURE__ */ BigInt(256);\nconst _0x71n = /* @__PURE__ */ BigInt(0x71);\nfor (let round = 0, R = _1n, x = 1, y = 0; round < 24; round++) {\n // Pi\n [x, y] = [y, (2 * x + 3 * y) % 5];\n SHA3_PI.push(2 * (5 * y + x));\n // Rotational\n SHA3_ROTL.push((((round + 1) * (round + 2)) / 2) % 64);\n // Iota\n let t = _0n;\n for (let j = 0; j < 7; j++) {\n R = ((R << _1n) ^ ((R >> _7n) * _0x71n)) % _256n;\n if (R & _2n)\n t ^= _1n << ((_1n << /* @__PURE__ */ BigInt(j)) - _1n);\n }\n _SHA3_IOTA.push(t);\n}\nconst [SHA3_IOTA_H, SHA3_IOTA_L] = /* @__PURE__ */ 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/** `keccakf1600` internal function, additionally allows to adjust round count. */\nexport function keccakP(s, rounds = 24) {\n const B = new Uint32Array(5 * 2);\n // NOTE: all indices are x2 since we store state as u32 instead of u64 (bigints to slow in js)\n for (let round = 24 - rounds; round < 24; round++) {\n // Theta θ\n for (let x = 0; x < 10; x++)\n B[x] = s[x] ^ s[x + 10] ^ s[x + 20] ^ s[x + 30] ^ s[x + 40];\n for (let x = 0; x < 10; x += 2) {\n const idx1 = (x + 8) % 10;\n const idx0 = (x + 2) % 10;\n const B0 = B[idx0];\n const B1 = B[idx0 + 1];\n const Th = rotlH(B0, B1, 1) ^ B[idx1];\n const Tl = rotlL(B0, B1, 1) ^ B[idx1 + 1];\n for (let y = 0; y < 50; y += 10) {\n s[x + y] ^= Th;\n s[x + y + 1] ^= Tl;\n }\n }\n // Rho (ρ) and Pi (π)\n let curH = s[2];\n let curL = s[3];\n for (let t = 0; t < 24; t++) {\n const shift = SHA3_ROTL[t];\n const Th = rotlH(curH, curL, shift);\n const Tl = rotlL(curH, curL, shift);\n const PI = SHA3_PI[t];\n curH = s[PI];\n curL = s[PI + 1];\n s[PI] = Th;\n s[PI + 1] = Tl;\n }\n // Chi (χ)\n for (let y = 0; y < 50; y += 10) {\n for (let x = 0; x < 10; x++)\n B[x] = s[y + x];\n for (let x = 0; x < 10; x++)\n s[y + x] ^= ~B[(x + 2) % 10] & B[(x + 4) % 10];\n }\n // Iota (ι)\n s[0] ^= SHA3_IOTA_H[round];\n s[1] ^= SHA3_IOTA_L[round];\n }\n B.fill(0);\n}\n/** Keccak sponge function. */\nexport class Keccak extends Hash {\n // NOTE: we accept arguments in bytes instead of bits here.\n constructor(blockLen, suffix, outputLen, enableXOF = false, rounds = 24) {\n super();\n this.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 anumber(outputLen);\n // 1600 = 5x5 matrix of 64bit. 1600 bits === 200 bytes\n // 0 < blockLen < 200\n if (0 >= this.blockLen || this.blockLen >= 200)\n throw new Error('Sha3 supports only keccak-f1600 function');\n this.state = new Uint8Array(200);\n this.state32 = u32(this.state);\n }\n keccak() {\n if (!isLE)\n byteSwap32(this.state32);\n keccakP(this.state32, this.rounds);\n if (!isLE)\n byteSwap32(this.state32);\n this.posOut = 0;\n this.pos = 0;\n }\n update(data) {\n aexists(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 aexists(this, false);\n abytes(out);\n this.finish();\n const bufferOut = this.state;\n const { blockLen } = this;\n for (let pos = 0, len = out.length; pos < len;) {\n if (this.posOut >= blockLen)\n this.keccak();\n const take = Math.min(blockLen - this.posOut, len - pos);\n out.set(bufferOut.subarray(this.posOut, this.posOut + take), pos);\n this.posOut += take;\n pos += take;\n }\n return out;\n }\n xofInto(out) {\n // Sha3/Keccak usage with XOF is probably mistake, only SHAKE instances can do XOF\n if (!this.enableXOF)\n throw new Error('XOF is not possible for this instance');\n return this.writeInto(out);\n }\n xof(bytes) {\n anumber(bytes);\n return this.xofInto(new Uint8Array(bytes));\n }\n digestInto(out) {\n aoutput(out, this);\n if (this.finished)\n throw new Error('digest() was already called');\n this.writeInto(out);\n this.destroy();\n return out;\n }\n digest() {\n return this.digestInto(new Uint8Array(this.outputLen));\n }\n destroy() {\n this.destroyed = true;\n 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));\n/** SHA3-224 hash function. */\nexport const sha3_224 = /* @__PURE__ */ gen(0x06, 144, 224 / 8);\n/** SHA3-256 hash function. Different from keccak-256. */\nexport const sha3_256 = /* @__PURE__ */ gen(0x06, 136, 256 / 8);\n/** SHA3-384 hash function. */\nexport const sha3_384 = /* @__PURE__ */ gen(0x06, 104, 384 / 8);\n/** SHA3-512 hash function. */\nexport const sha3_512 = /* @__PURE__ */ gen(0x06, 72, 512 / 8);\n/** keccak-224 hash function. */\nexport const keccak_224 = /* @__PURE__ */ gen(0x01, 144, 224 / 8);\n/** keccak-256 hash function. Different from SHA3-256. */\nexport const keccak_256 = /* @__PURE__ */ gen(0x01, 136, 256 / 8);\n/** keccak-384 hash function. */\nexport const keccak_384 = /* @__PURE__ */ gen(0x01, 104, 384 / 8);\n/** keccak-512 hash function. */\nexport const keccak_512 = /* @__PURE__ */ gen(0x01, 72, 512 / 8);\nconst genShake = (suffix, blockLen, outputLen) => wrapXOFConstructorWithOpts((opts = {}) => new Keccak(blockLen, suffix, opts.dkLen === undefined ? outputLen : opts.dkLen, true));\n/** SHAKE128 XOF with 128-bit security. */\nexport const shake128 = /* @__PURE__ */ genShake(0x1f, 168, 128 / 8);\n/** SHAKE256 XOF with 256-bit security. */\nexport const shake256 = /* @__PURE__ */ genShake(0x1f, 136, 256 / 8);\n//# sourceMappingURL=sha3.js.map","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 { 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 { 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 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 { AbiEncodingArrayLengthMismatchError, AbiEncodingBytesSizeMismatchError, AbiEncodingLengthMismatchError, InvalidAbiEncodingTypeError, InvalidArrayError, } from '../../errors/abi.js';\nimport { InvalidAddressError, } from '../../errors/address.js';\nimport { BaseError } from '../../errors/base.js';\nimport { IntegerOutOfRangeError } from '../../errors/encoding.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';\nimport { integerRegex } from '../regex.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 const [, , size = '256'] = integerRegex.exec(param.type) ?? [];\n return encodeNumber(value, {\n signed,\n size: Number(size),\n });\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, size = 256 }) {\n if (typeof size === 'number') {\n const max = 2n ** (BigInt(size) - (signed ? 1n : 0n)) - 1n;\n const min = signed ? -max - 1n : 0n;\n if (value > max || value < min)\n throw new IntegerOutOfRangeError({\n max: max.toString(),\n min: min.toString(),\n signed,\n size: size / 8,\n value: value.toString(),\n });\n }\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","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 { 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 Client.',\n ].join('\\n'), {\n docsPath,\n docsSlug: 'account',\n name: 'AccountNotFoundError',\n });\n }\n}\nexport class AccountTypeNotSupportedError extends BaseError {\n constructor({ docsPath, metaMessages, type, }) {\n super(`Account type \"${type}\" is not supported.`, {\n docsPath,\n metaMessages,\n name: 'AccountTypeNotSupportedError',\n });\n }\n}\n//# sourceMappingURL=account.js.map","import { checksumAddress, } from '../../utils/address/getAddress.js';\nimport { keccak256, } from '../../utils/hash/keccak256.js';\n/**\n * @description Converts an ECDSA public key to an address.\n *\n * @param publicKey The public key to convert.\n *\n * @returns The address.\n */\nexport function publicKeyToAddress(publicKey) {\n const address = keccak256(`0x${publicKey.substring(4)}`).substring(26);\n return checksumAddress(`0x${address}`);\n}\n//# sourceMappingURL=publicKeyToAddress.js.map","import { isHex } from '../data/isHex.js';\nimport { hexToBigInt, hexToNumber, } from '../encoding/fromHex.js';\nimport { toHex } from '../encoding/toHex.js';\nexport async function recoverPublicKey({ hash, signature, }) {\n const hashHex = isHex(hash) ? hash : toHex(hash);\n const { secp256k1 } = await import('@noble/curves/secp256k1');\n const signature_ = (() => {\n // typeof signature: `Signature`\n if (typeof signature === 'object' && 'r' in signature && 's' in signature) {\n const { r, s, v, yParity } = signature;\n const yParityOrV = Number(yParity ?? v);\n const recoveryBit = toRecoveryBit(yParityOrV);\n return new secp256k1.Signature(hexToBigInt(r), hexToBigInt(s)).addRecoveryBit(recoveryBit);\n }\n // typeof signature: `Hex | ByteArray`\n const signatureHex = isHex(signature) ? signature : toHex(signature);\n const yParityOrV = hexToNumber(`0x${signatureHex.slice(130)}`);\n const recoveryBit = toRecoveryBit(yParityOrV);\n return secp256k1.Signature.fromCompact(signatureHex.substring(2, 130)).addRecoveryBit(recoveryBit);\n })();\n const publicKey = signature_\n .recoverPublicKey(hashHex.substring(2))\n .toHex(false);\n return `0x${publicKey}`;\n}\nfunction toRecoveryBit(yParityOrV) {\n if (yParityOrV === 0 || yParityOrV === 1)\n return yParityOrV;\n if (yParityOrV === 27)\n return 0;\n if (yParityOrV === 28)\n return 1;\n throw new Error('Invalid yParityOrV value');\n}\n//# sourceMappingURL=recoverPublicKey.js.map","import { publicKeyToAddress } from '../../accounts/utils/publicKeyToAddress.js';\nimport { recoverPublicKey } from './recoverPublicKey.js';\nexport async function recoverAddress({ hash, signature, }) {\n return publicKeyToAddress(await recoverPublicKey({ hash: hash, signature }));\n}\n//# sourceMappingURL=recoverAddress.js.map","import { BaseError } from './base.js';\nexport class NegativeOffsetError extends BaseError {\n constructor({ offset }) {\n super(`Offset \\`${offset}\\` cannot be negative.`, {\n name: 'NegativeOffsetError',\n });\n }\n}\nexport class PositionOutOfBoundsError extends BaseError {\n constructor({ length, position }) {\n super(`Position \\`${position}\\` is out of bounds (\\`0 < position < ${length}\\`).`, { name: 'PositionOutOfBoundsError' });\n }\n}\nexport class RecursiveReadLimitExceededError extends BaseError {\n constructor({ count, limit }) {\n super(`Recursive read limit of \\`${limit}\\` exceeded (recursive read count: \\`${count}\\`).`, { name: 'RecursiveReadLimitExceededError' });\n }\n}\n//# sourceMappingURL=cursor.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","import { BaseError } from '../../errors/base.js';\nimport { createCursor, } from '../cursor.js';\nimport { hexToBytes } from './toBytes.js';\nimport { bytesToHex } from './toHex.js';\nexport function toRlp(bytes, to = 'hex') {\n const encodable = getEncodable(bytes);\n const cursor = createCursor(new Uint8Array(encodable.length));\n encodable.encode(cursor);\n if (to === 'hex')\n return bytesToHex(cursor.bytes);\n return cursor.bytes;\n}\nexport function bytesToRlp(bytes, to = 'bytes') {\n return toRlp(bytes, to);\n}\nexport function hexToRlp(hex, to = 'hex') {\n return toRlp(hex, to);\n}\nfunction getEncodable(bytes) {\n if (Array.isArray(bytes))\n return getEncodableList(bytes.map((x) => getEncodable(x)));\n return getEncodableBytes(bytes);\n}\nfunction getEncodableList(list) {\n const bodyLength = list.reduce((acc, x) => acc + x.length, 0);\n const sizeOfBodyLength = getSizeOfLength(bodyLength);\n const length = (() => {\n if (bodyLength <= 55)\n return 1 + bodyLength;\n return 1 + sizeOfBodyLength + bodyLength;\n })();\n return {\n length,\n encode(cursor) {\n if (bodyLength <= 55) {\n cursor.pushByte(0xc0 + bodyLength);\n }\n else {\n cursor.pushByte(0xc0 + 55 + sizeOfBodyLength);\n if (sizeOfBodyLength === 1)\n cursor.pushUint8(bodyLength);\n else if (sizeOfBodyLength === 2)\n cursor.pushUint16(bodyLength);\n else if (sizeOfBodyLength === 3)\n cursor.pushUint24(bodyLength);\n else\n cursor.pushUint32(bodyLength);\n }\n for (const { encode } of list) {\n encode(cursor);\n }\n },\n };\n}\nfunction getEncodableBytes(bytesOrHex) {\n const bytes = typeof bytesOrHex === 'string' ? hexToBytes(bytesOrHex) : bytesOrHex;\n const sizeOfBytesLength = getSizeOfLength(bytes.length);\n const length = (() => {\n if (bytes.length === 1 && bytes[0] < 0x80)\n return 1;\n if (bytes.length <= 55)\n return 1 + bytes.length;\n return 1 + sizeOfBytesLength + bytes.length;\n })();\n return {\n length,\n encode(cursor) {\n if (bytes.length === 1 && bytes[0] < 0x80) {\n cursor.pushBytes(bytes);\n }\n else if (bytes.length <= 55) {\n cursor.pushByte(0x80 + bytes.length);\n cursor.pushBytes(bytes);\n }\n else {\n cursor.pushByte(0x80 + 55 + sizeOfBytesLength);\n if (sizeOfBytesLength === 1)\n cursor.pushUint8(bytes.length);\n else if (sizeOfBytesLength === 2)\n cursor.pushUint16(bytes.length);\n else if (sizeOfBytesLength === 3)\n cursor.pushUint24(bytes.length);\n else\n cursor.pushUint32(bytes.length);\n cursor.pushBytes(bytes);\n }\n },\n };\n}\nfunction getSizeOfLength(length) {\n if (length < 2 ** 8)\n return 1;\n if (length < 2 ** 16)\n return 2;\n if (length < 2 ** 24)\n return 3;\n if (length < 2 ** 32)\n return 4;\n throw new BaseError('Length is too large.');\n}\n//# sourceMappingURL=toRlp.js.map","import { concatHex } from '../data/concat.js';\nimport { hexToBytes } from '../encoding/toBytes.js';\nimport { numberToHex } from '../encoding/toHex.js';\nimport { toRlp } from '../encoding/toRlp.js';\nimport { keccak256 } from '../hash/keccak256.js';\n/**\n * Computes an Authorization hash in [EIP-7702 format](https://eips.ethereum.org/EIPS/eip-7702): `keccak256('0x05' || rlp([chain_id, address, nonce]))`.\n */\nexport function hashAuthorization(parameters) {\n const { chainId, nonce, to } = parameters;\n const address = parameters.contractAddress ?? parameters.address;\n const hash = keccak256(concatHex([\n '0x05',\n toRlp([\n chainId ? numberToHex(chainId) : '0x',\n address,\n nonce ? numberToHex(nonce) : '0x',\n ]),\n ]));\n if (to === 'bytes')\n return hexToBytes(hash);\n return hash;\n}\n//# sourceMappingURL=hashAuthorization.js.map","import { recoverAddress, } from '../signature/recoverAddress.js';\nimport { hashAuthorization, } from './hashAuthorization.js';\nexport async function recoverAuthorizationAddress(parameters) {\n const { authorization, signature } = parameters;\n return recoverAddress({\n hash: hashAuthorization(authorization),\n signature: (signature ?? authorization),\n });\n}\n//# sourceMappingURL=recoverAuthorizationAddress.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 name: '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 name: '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 name: 'ChainNotFoundError',\n });\n }\n}\nexport class ClientChainNotConfiguredError extends BaseError {\n constructor() {\n super('No chain was provided to the Client.', {\n name: '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.', { name: 'InvalidChainIdError' });\n }\n}\n//# sourceMappingURL=chain.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","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","/**\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","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","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 name: '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 name: 'FeeCapTooHighError',\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 name: 'FeeCapTooLowError',\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, name: 'NonceTooHighError' });\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, name: 'NonceTooLowError' });\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, name: 'NonceMaxValueError' });\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 name: 'InsufficientFundsError',\n });\n }\n}\nObject.defineProperty(InsufficientFundsError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /insufficient funds|exceeds transaction sender account balance/\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 name: '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 name: '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 name: '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 name: '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 name: 'UnknownNodeError',\n });\n }\n}\n//# sourceMappingURL=node.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 { 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'), { name: 'FeeConflictError' });\n }\n}\nexport class InvalidLegacyVError extends BaseError {\n constructor({ v }) {\n super(`Invalid \\`v\\` value \"${v}\". Expected 27 or 28.`, {\n name: '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 '- an EIP-7702 Transaction with `authorizationList`, or',\n '- a Legacy Transaction with `gasPrice`',\n ],\n name: 'InvalidSerializableTransactionError',\n });\n }\n}\nexport class InvalidSerializedTransactionTypeError extends BaseError {\n constructor({ serializedType }) {\n super(`Serialized transaction type \"${serializedType}\" is invalid.`, {\n name: '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 name: '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.`, { name: 'InvalidStorageKeySizeError' });\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 name: 'TransactionExecutionError',\n });\n Object.defineProperty(this, \"cause\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\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 name: '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 name: '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.`, { name: 'WaitForTransactionReceiptTimeoutError' });\n }\n}\n//# sourceMappingURL=transaction.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","export const getContractAddress = (address) => address;\nexport const getUrl = (url) => url;\n//# sourceMappingURL=utils.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, cause, details, headers, status, url, }) {\n super('HTTP request failed.', {\n cause,\n details,\n metaMessages: [\n status && `Status: ${status}`,\n `URL: ${getUrl(url)}`,\n body && `Request body: ${stringify(body)}`,\n ].filter(Boolean),\n name: '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, cause, details, url, }) {\n super('WebSocket request failed.', {\n cause,\n details,\n metaMessages: [\n `URL: ${getUrl(url)}`,\n body && `Request body: ${stringify(body)}`,\n ].filter(Boolean),\n name: '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 name: 'RpcRequestError',\n });\n Object.defineProperty(this, \"code\", {\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 this.code = error.code;\n this.data = error.data;\n }\n}\nexport class SocketClosedError extends BaseError {\n constructor({ url, } = {}) {\n super('The socket has been closed.', {\n metaMessages: [url && `URL: ${getUrl(url)}`].filter(Boolean),\n name: 'SocketClosedError',\n });\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 name: '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, name, shortMessage, }) {\n super(shortMessage, {\n cause,\n docsPath,\n metaMessages: metaMessages || cause?.metaMessages,\n name: name || 'RpcError',\n });\n Object.defineProperty(this, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.name = 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, \"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 name: 'ParseRpcError',\n shortMessage: 'Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text.',\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 name: 'InvalidRequestRpcError',\n shortMessage: 'JSON is not a valid request object.',\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, { method } = {}) {\n super(cause, {\n code: MethodNotFoundRpcError.code,\n name: 'MethodNotFoundRpcError',\n shortMessage: `The method${method ? ` \"${method}\"` : ''} does not exist / is not available.`,\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 name: 'InvalidParamsRpcError',\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 }\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 name: 'InternalRpcError',\n shortMessage: 'An internal error was received.',\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 name: 'InvalidInputRpcError',\n shortMessage: [\n 'Missing or invalid parameters.',\n 'Double check you have provided the correct parameters.',\n ].join('\\n'),\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 name: 'ResourceNotFoundRpcError',\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 name: 'ResourceUnavailableRpcError',\n shortMessage: 'Requested resource not available.',\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 name: 'TransactionRejectedRpcError',\n shortMessage: 'Transaction creation failed.',\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, { method } = {}) {\n super(cause, {\n code: MethodNotSupportedRpcError.code,\n name: 'MethodNotSupportedRpcError',\n shortMessage: `Method${method ? ` \"${method}\"` : ''} is not supported.`,\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 name: 'LimitExceededRpcError',\n shortMessage: 'Request exceeds defined limit.',\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 name: 'JsonRpcVersionUnsupportedError',\n shortMessage: 'Version of JSON-RPC protocol is not supported.',\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 name: 'UserRejectedRequestError',\n shortMessage: 'User rejected the request.',\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 name: 'UnauthorizedProviderError',\n shortMessage: 'The requested method and/or account has not been authorized by the user.',\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, { method } = {}) {\n super(cause, {\n code: UnsupportedProviderMethodError.code,\n name: 'UnsupportedProviderMethodError',\n shortMessage: `The Provider does not support the requested method${method ? ` \" ${method}\"` : ''}.`,\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 name: 'ProviderDisconnectedError',\n shortMessage: 'The Provider is disconnected from all chains.',\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 name: 'ChainDisconnectedError',\n shortMessage: 'The Provider is not connected to the requested chain.',\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 name: 'SwitchChainError',\n shortMessage: 'An error occurred when attempting to switch chain.',\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 name: 'UnknownRpcError',\n shortMessage: 'An unknown RPC error occurred.',\n });\n }\n}\n//# sourceMappingURL=rpc.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 ===\n ExecutionRevertedError.code)\n : err;\n if (executionRevertedError instanceof BaseError)\n return new ExecutionRevertedError({\n cause: err,\n message: executionRevertedError.details,\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 { 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","/**\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","export function defineFormatter(type, format) {\n return ({ exclude, format: overrides, }) => {\n return {\n exclude,\n format: (args) => {\n const formatted = format(args);\n if (exclude) {\n for (const key of exclude) {\n delete formatted[key];\n }\n }\n return {\n ...formatted,\n ...overrides(args),\n };\n },\n type,\n };\n };\n}\n//# sourceMappingURL=formatter.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 eip7702: '0x4',\n};\nexport function formatTransactionRequest(request) {\n const rpcRequest = {};\n if (typeof request.authorizationList !== 'undefined')\n rpcRequest.authorizationList = formatAuthorizationList(request.authorizationList);\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//////////////////////////////////////////////////////////////////////////////\nfunction formatAuthorizationList(authorizationList) {\n return authorizationList.map((authorization) => ({\n address: authorization.address,\n r: authorization.r\n ? numberToHex(BigInt(authorization.r))\n : authorization.r,\n s: authorization.s\n ? numberToHex(BigInt(authorization.s))\n : authorization.s,\n chainId: numberToHex(authorization.chainId),\n nonce: numberToHex(authorization.nonce),\n ...(typeof authorization.yParity !== 'undefined'\n ? { yParity: numberToHex(authorization.yParity) }\n : {}),\n ...(typeof authorization.v !== 'undefined' &&\n typeof authorization.yParity === 'undefined'\n ? { v: numberToHex(authorization.v) }\n : {}),\n }));\n}\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, actionFn, \n// Some minifiers drop `Function.prototype.name`, or replace it with short letters,\n// meaning that `actionFn.name` will not always work. For that case, the consumer\n// needs to pass the name explicitly.\nname) {\n const action_implicit = client[actionFn.name];\n if (typeof action_implicit === 'function')\n return action_implicit;\n const action_explicit = client[name];\n if (typeof action_explicit === 'function')\n return action_explicit;\n return (params) => actionFn(client, params);\n}\n//# sourceMappingURL=getAction.js.map","export const maxInt8 = 2n ** (8n - 1n) - 1n;\nexport const maxInt16 = 2n ** (16n - 1n) - 1n;\nexport const maxInt24 = 2n ** (24n - 1n) - 1n;\nexport const maxInt32 = 2n ** (32n - 1n) - 1n;\nexport const maxInt40 = 2n ** (40n - 1n) - 1n;\nexport const maxInt48 = 2n ** (48n - 1n) - 1n;\nexport const maxInt56 = 2n ** (56n - 1n) - 1n;\nexport const maxInt64 = 2n ** (64n - 1n) - 1n;\nexport const maxInt72 = 2n ** (72n - 1n) - 1n;\nexport const maxInt80 = 2n ** (80n - 1n) - 1n;\nexport const maxInt88 = 2n ** (88n - 1n) - 1n;\nexport const maxInt96 = 2n ** (96n - 1n) - 1n;\nexport const maxInt104 = 2n ** (104n - 1n) - 1n;\nexport const maxInt112 = 2n ** (112n - 1n) - 1n;\nexport const maxInt120 = 2n ** (120n - 1n) - 1n;\nexport const maxInt128 = 2n ** (128n - 1n) - 1n;\nexport const maxInt136 = 2n ** (136n - 1n) - 1n;\nexport const maxInt144 = 2n ** (144n - 1n) - 1n;\nexport const maxInt152 = 2n ** (152n - 1n) - 1n;\nexport const maxInt160 = 2n ** (160n - 1n) - 1n;\nexport const maxInt168 = 2n ** (168n - 1n) - 1n;\nexport const maxInt176 = 2n ** (176n - 1n) - 1n;\nexport const maxInt184 = 2n ** (184n - 1n) - 1n;\nexport const maxInt192 = 2n ** (192n - 1n) - 1n;\nexport const maxInt200 = 2n ** (200n - 1n) - 1n;\nexport const maxInt208 = 2n ** (208n - 1n) - 1n;\nexport const maxInt216 = 2n ** (216n - 1n) - 1n;\nexport const maxInt224 = 2n ** (224n - 1n) - 1n;\nexport const maxInt232 = 2n ** (232n - 1n) - 1n;\nexport const maxInt240 = 2n ** (240n - 1n) - 1n;\nexport const maxInt248 = 2n ** (248n - 1n) - 1n;\nexport const maxInt256 = 2n ** (256n - 1n) - 1n;\nexport const minInt8 = -(2n ** (8n - 1n));\nexport const minInt16 = -(2n ** (16n - 1n));\nexport const minInt24 = -(2n ** (24n - 1n));\nexport const minInt32 = -(2n ** (32n - 1n));\nexport const minInt40 = -(2n ** (40n - 1n));\nexport const minInt48 = -(2n ** (48n - 1n));\nexport const minInt56 = -(2n ** (56n - 1n));\nexport const minInt64 = -(2n ** (64n - 1n));\nexport const minInt72 = -(2n ** (72n - 1n));\nexport const minInt80 = -(2n ** (80n - 1n));\nexport const minInt88 = -(2n ** (88n - 1n));\nexport const minInt96 = -(2n ** (96n - 1n));\nexport const minInt104 = -(2n ** (104n - 1n));\nexport const minInt112 = -(2n ** (112n - 1n));\nexport const minInt120 = -(2n ** (120n - 1n));\nexport const minInt128 = -(2n ** (128n - 1n));\nexport const minInt136 = -(2n ** (136n - 1n));\nexport const minInt144 = -(2n ** (144n - 1n));\nexport const minInt152 = -(2n ** (152n - 1n));\nexport const minInt160 = -(2n ** (160n - 1n));\nexport const minInt168 = -(2n ** (168n - 1n));\nexport const minInt176 = -(2n ** (176n - 1n));\nexport const minInt184 = -(2n ** (184n - 1n));\nexport const minInt192 = -(2n ** (192n - 1n));\nexport const minInt200 = -(2n ** (200n - 1n));\nexport const minInt208 = -(2n ** (208n - 1n));\nexport const minInt216 = -(2n ** (216n - 1n));\nexport const minInt224 = -(2n ** (224n - 1n));\nexport const minInt232 = -(2n ** (232n - 1n));\nexport const minInt240 = -(2n ** (240n - 1n));\nexport const minInt248 = -(2n ** (248n - 1n));\nexport const minInt256 = -(2n ** (256n - 1n));\nexport const maxUint8 = 2n ** 8n - 1n;\nexport const maxUint16 = 2n ** 16n - 1n;\nexport const maxUint24 = 2n ** 24n - 1n;\nexport const maxUint32 = 2n ** 32n - 1n;\nexport const maxUint40 = 2n ** 40n - 1n;\nexport const maxUint48 = 2n ** 48n - 1n;\nexport const maxUint56 = 2n ** 56n - 1n;\nexport const maxUint64 = 2n ** 64n - 1n;\nexport const maxUint72 = 2n ** 72n - 1n;\nexport const maxUint80 = 2n ** 80n - 1n;\nexport const maxUint88 = 2n ** 88n - 1n;\nexport const maxUint96 = 2n ** 96n - 1n;\nexport const maxUint104 = 2n ** 104n - 1n;\nexport const maxUint112 = 2n ** 112n - 1n;\nexport const maxUint120 = 2n ** 120n - 1n;\nexport const maxUint128 = 2n ** 128n - 1n;\nexport const maxUint136 = 2n ** 136n - 1n;\nexport const maxUint144 = 2n ** 144n - 1n;\nexport const maxUint152 = 2n ** 152n - 1n;\nexport const maxUint160 = 2n ** 160n - 1n;\nexport const maxUint168 = 2n ** 168n - 1n;\nexport const maxUint176 = 2n ** 176n - 1n;\nexport const maxUint184 = 2n ** 184n - 1n;\nexport const maxUint192 = 2n ** 192n - 1n;\nexport const maxUint200 = 2n ** 200n - 1n;\nexport const maxUint208 = 2n ** 208n - 1n;\nexport const maxUint216 = 2n ** 216n - 1n;\nexport const maxUint224 = 2n ** 224n - 1n;\nexport const maxUint232 = 2n ** 232n - 1n;\nexport const maxUint240 = 2n ** 240n - 1n;\nexport const maxUint248 = 2n ** 248n - 1n;\nexport const maxUint256 = 2n ** 256n - 1n;\n//# sourceMappingURL=number.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { maxUint256 } from '../../constants/number.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 > maxUint256)\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","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","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 name: 'BaseFeeScalarError',\n });\n }\n}\nexport class Eip1559FeesNotSupportedError extends BaseError {\n constructor() {\n super('Chain does not support EIP-1559 fees.', {\n name: 'Eip1559FeesNotSupportedError',\n });\n }\n}\nexport class MaxFeePerGasTooLowError extends BaseError {\n constructor({ maxPriorityFeePerGas }) {\n super(`\\`maxFeePerGas\\` cannot be less than the \\`maxPriorityFeePerGas\\` (${formatGwei(maxPriorityFeePerGas)} gwei).`, { name: 'MaxFeePerGasTooLowError' });\n }\n}\n//# sourceMappingURL=fee.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.`, { name: 'BlockNotFoundError' });\n }\n}\n//# sourceMappingURL=block.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 '0x4': 'eip7702',\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 if (transaction.authorizationList)\n transaction_.authorizationList = formatAuthorizationList(transaction.authorizationList);\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//////////////////////////////////////////////////////////////////////////////\nfunction formatAuthorizationList(authorizationList) {\n return authorizationList.map((authorization) => ({\n address: authorization.address,\n chainId: Number(authorization.chainId),\n nonce: Number(authorization.nonce),\n r: authorization.r,\n s: authorization.s,\n yParity: Number(authorization.yParity),\n }));\n}\n//# sourceMappingURL=transaction.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","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","/**\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 { 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 try {\n const maxPriorityFeePerGas = chain?.fees?.maxPriorityFeePerGas ?? chain?.fees?.defaultPriorityFee;\n if (typeof maxPriorityFeePerGas === 'function') {\n const block = block_ || (await getAction(client, getBlock, 'getBlock')({}));\n const maxPriorityFeePerGas_ = await maxPriorityFeePerGas({\n block,\n client,\n request,\n });\n if (maxPriorityFeePerGas_ === null)\n throw new Error();\n return maxPriorityFeePerGas_;\n }\n if (typeof maxPriorityFeePerGas !== 'undefined')\n return maxPriorityFeePerGas;\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 { 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 name: 'EstimateGasExecutionError',\n });\n Object.defineProperty(this, \"cause\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.cause = cause;\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 { BaseError } from './base.js';\nexport class AccountStateConflictError extends BaseError {\n constructor({ address }) {\n super(`State for account \"${address}\" is set multiple times.`, {\n name: 'AccountStateConflictError',\n });\n }\n}\nexport class StateAssignmentConflictError extends BaseError {\n constructor() {\n super('state and stateDiff are set on the same account.', {\n name: '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 { 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","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","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { BaseError } from '../../errors/base.js';\nimport { recoverAuthorizationAddress, } from '../../utils/authorization/recoverAuthorizationAddress.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';\nimport { getBalance } from './getBalance.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: account_ = client.account } = args;\n const account = account_ ? parseAccount(account_) : undefined;\n try {\n const { accessList, authorizationList, blobs, blobVersionedHashes, blockNumber, blockTag, data, gas, gasPrice, maxFeePerBlobGas, maxFeePerGas, maxPriorityFeePerGas, nonce, 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 const to = await (async () => {\n // If `to` exists on the parameters, use that.\n if (rest.to)\n return rest.to;\n // If no `to` exists, and we are sending a EIP-7702 transaction, use the\n // address of the first authorization in the list.\n if (authorizationList && authorizationList.length > 0)\n return await recoverAuthorizationAddress({\n authorization: authorizationList[0],\n }).catch(() => {\n throw new BaseError('`to` is required. Could not infer from `authorizationList`');\n });\n // Otherwise, we are sending a deployment transaction.\n return undefined;\n })();\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 authorizationList,\n blobs,\n blobVersionedHashes,\n data,\n gas,\n gasPrice,\n maxFeePerBlobGas,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value,\n });\n function estimateGas_rpc(parameters) {\n const { block, request, rpcStateOverride } = parameters;\n return client.request({\n method: 'eth_estimateGas',\n params: rpcStateOverride\n ? [request, block ?? 'latest', rpcStateOverride]\n : block\n ? [request, block]\n : [request],\n });\n }\n let estimate = BigInt(await estimateGas_rpc({ block, request, rpcStateOverride }));\n // TODO(7702): Remove this once https://github.com/ethereum/execution-apis/issues/561 is resolved.\n // Authorization list schema is not implemented on JSON-RPC spec yet, so we need to\n // manually estimate the gas.\n if (authorizationList) {\n const value = await getBalance(client, { address: request.from });\n const estimates = await Promise.all(authorizationList.map(async (authorization) => {\n const { address } = authorization;\n const estimate = await estimateGas_rpc({\n block,\n request: {\n authorizationList: undefined,\n data,\n from: account?.address,\n to: address,\n value: numberToHex(value),\n },\n rpcStateOverride,\n }).catch(() => 100000n);\n return 2n * BigInt(estimate);\n }));\n estimate += estimates.reduce((acc, curr) => acc + curr, 0n);\n }\n return estimate;\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 { 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 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","/**\n * Internal Merkle-Damgard hash utils.\n * @module\n */\nimport { aexists, aoutput } from './_assert.js';\nimport { Hash, createView, toBytes } from './utils.js';\n/** Polyfill for Safari 14. https://caniuse.com/mdn-javascript_builtins_dataview_setbiguint64 */\nexport function setBigUint64(view, byteOffset, value, isLE) {\n if (typeof view.setBigUint64 === 'function')\n return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\n/** Choice: a ? b : c */\nexport function Chi(a, b, c) {\n return (a & b) ^ (~a & c);\n}\n/** Majority function, true if any two inputs is true. */\nexport function Maj(a, b, c) {\n return (a & b) ^ (a & c) ^ (b & c);\n}\n/**\n * Merkle-Damgard hash construction base class.\n * Could be used to create MD5, RIPEMD, SHA1, SHA2.\n */\nexport class HashMD extends Hash {\n constructor(blockLen, outputLen, padOffset, isLE) {\n super();\n this.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 aexists(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 aexists(this);\n aoutput(out, this);\n this.finished = true;\n // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n const { buffer, view, blockLen, isLE } = this;\n let { pos } = this;\n // append the bit '1' to the message\n buffer[pos++] = 0b10000000;\n this.buffer.subarray(pos).fill(0);\n // we have less than padOffset left in buffer, so we cannot put length in\n // current block, need process it and pad again\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n pos = 0;\n }\n // Pad until full block byte with zeros\n for (let i = pos; i < blockLen; i++)\n buffer[i] = 0;\n // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n // So we just write lowest 64 bits of that value.\n setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n this.process(view, 0);\n const oview = createView(out);\n const len = this.outputLen;\n // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT\n if (len % 4)\n throw new Error('_sha2: outputLen should be aligned to 32bit');\n const outLen = len / 4;\n const state = this.get();\n if (outLen > state.length)\n throw new Error('_sha2: outputLen bigger than state');\n for (let i = 0; i < outLen; i++)\n oview.setUint32(4 * i, state[i], isLE);\n }\n digest() {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneInto(to) {\n to || (to = new this.constructor());\n to.set(...this.get());\n const { blockLen, buffer, length, finished, destroyed, pos } = this;\n to.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=_md.js.map","/**\n * SHA2-256 a.k.a. sha256. In JS, it is the fastest hash, even faster than Blake3.\n *\n * To break sha256 using birthday attack, attackers need to try 2^128 hashes.\n * BTC network is doing 2^70 hashes/sec (2^95 hashes/year) as per 2025.\n *\n * Check out [FIPS 180-4](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf).\n * @module\n */\nimport { Chi, HashMD, Maj } from './_md.js';\nimport { rotr, wrapConstructor } from './utils.js';\n/** Round constants: first 32 bits of 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 fractional parts of the square roots of the first 8 primes 2..19. */\n// prettier-ignore\nconst SHA256_IV = /* @__PURE__ */ new Uint32Array([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n]);\n/**\n * Temporary buffer, not used to store anything between runs.\n * Named this way because it matches specification.\n */\nconst SHA256_W = /* @__PURE__ */ new Uint32Array(64);\nexport class SHA256 extends HashMD {\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 = SHA256_IV[0] | 0;\n this.B = SHA256_IV[1] | 0;\n this.C = SHA256_IV[2] | 0;\n this.D = SHA256_IV[3] | 0;\n this.E = SHA256_IV[4] | 0;\n this.F = SHA256_IV[5] | 0;\n this.G = SHA256_IV[6] | 0;\n this.H = SHA256_IV[7] | 0;\n }\n get() {\n const { A, B, C, D, E, F, G, H } = this;\n return [A, B, C, D, E, F, G, H];\n }\n // prettier-ignore\n set(A, B, C, D, E, F, G, H) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n this.F = F | 0;\n this.G = G | 0;\n this.H = H | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4)\n SHA256_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 64; i++) {\n const W15 = SHA256_W[i - 15];\n const W2 = SHA256_W[i - 2];\n const s0 = rotr(W15, 7) ^ rotr(W15, 18) ^ (W15 >>> 3);\n const s1 = rotr(W2, 17) ^ rotr(W2, 19) ^ (W2 >>> 10);\n SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n }\n // Compression function main loop, 64 rounds\n let { A, B, C, D, E, F, G, H } = this;\n for (let i = 0; i < 64; i++) {\n const sigma1 = rotr(E, 6) ^ rotr(E, 11) ^ rotr(E, 25);\n const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const sigma0 = rotr(A, 2) ^ rotr(A, 13) ^ rotr(A, 22);\n const T2 = (sigma0 + Maj(A, B, C)) | 0;\n H = G;\n G = F;\n F = E;\n E = (D + T1) | 0;\n D = C;\n C = B;\n B = A;\n A = (T1 + T2) | 0;\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n F = (F + this.F) | 0;\n G = (G + this.G) | 0;\n H = (H + this.H) | 0;\n this.set(A, B, C, D, E, F, G, H);\n }\n roundClean() {\n 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/**\n * Constants taken from https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf.\n */\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/** SHA2-256 hash function */\nexport const sha256 = /* @__PURE__ */ wrapConstructor(() => new SHA256());\n/** SHA2-224 hash function */\nexport const sha224 = /* @__PURE__ */ wrapConstructor(() => new SHA224());\n//# sourceMappingURL=sha256.js.map","import { sha256 as noble_sha256 } from '@noble/hashes/sha256';\nimport { isHex } from '../data/isHex.js';\nimport { toBytes } from '../encoding/toBytes.js';\nimport { toHex } from '../encoding/toHex.js';\nexport function sha256(value, to_) {\n const to = to_ || 'hex';\n const bytes = noble_sha256(isHex(value, { strict: false }) ? toBytes(value) : value);\n if (to === 'bytes')\n return bytes;\n return toHex(bytes);\n}\n//# sourceMappingURL=sha256.js.map","import { bytesToHex } from '../encoding/toHex.js';\nimport { sha256 } from '../hash/sha256.js';\n/**\n * Transform a commitment to it's versioned hash.\n *\n * @example\n * ```ts\n * import {\n * blobsToCommitments,\n * commitmentToVersionedHash,\n * toBlobs\n * } from 'viem'\n * import { kzg } from './kzg'\n *\n * const blobs = toBlobs({ data: '0x1234' })\n * const [commitment] = blobsToCommitments({ blobs, kzg })\n * const versionedHash = commitmentToVersionedHash({ commitment })\n * ```\n */\nexport function commitmentToVersionedHash(parameters) {\n const { commitment, version = 1 } = parameters;\n const to = parameters.to ?? (typeof commitment === 'string' ? 'hex' : 'bytes');\n const versionedHash = sha256(commitment, 'bytes');\n versionedHash.set([version], 0);\n return (to === 'bytes' ? versionedHash : bytesToHex(versionedHash));\n}\n//# sourceMappingURL=commitmentToVersionedHash.js.map","import { commitmentToVersionedHash, } from './commitmentToVersionedHash.js';\n/**\n * Transform a list of commitments to their versioned hashes.\n *\n * @example\n * ```ts\n * import {\n * blobsToCommitments,\n * commitmentsToVersionedHashes,\n * toBlobs\n * } from 'viem'\n * import { kzg } from './kzg'\n *\n * const blobs = toBlobs({ data: '0x1234' })\n * const commitments = blobsToCommitments({ blobs, kzg })\n * const versionedHashes = commitmentsToVersionedHashes({ commitments })\n * ```\n */\nexport function commitmentsToVersionedHashes(parameters) {\n const { commitments, version } = parameters;\n const to = parameters.to ?? (typeof commitments[0] === 'string' ? 'hex' : 'bytes');\n const hashes = [];\n for (const commitment of commitments) {\n hashes.push(commitmentToVersionedHash({\n commitment,\n to,\n version,\n }));\n }\n return hashes;\n}\n//# sourceMappingURL=commitmentsToVersionedHashes.js.map","// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md#parameters\n/** Blob limit per transaction. */\nconst blobsPerTransaction = 6;\n/** The number of bytes in a BLS scalar field element. */\nexport const bytesPerFieldElement = 32;\n/** The number of field elements in a blob. */\nexport const fieldElementsPerBlob = 4096;\n/** The number of bytes in a blob. */\nexport const bytesPerBlob = bytesPerFieldElement * fieldElementsPerBlob;\n/** Blob bytes limit per transaction. */\nexport const maxBytesPerTransaction = bytesPerBlob * blobsPerTransaction -\n // terminator byte (0x80).\n 1 -\n // zero byte (0x00) appended to each field element.\n 1 * fieldElementsPerBlob * blobsPerTransaction;\n//# sourceMappingURL=blob.js.map","// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md#parameters\nexport const versionedHashVersionKzg = 1;\n//# sourceMappingURL=kzg.js.map","import { versionedHashVersionKzg } from '../constants/kzg.js';\nimport { BaseError } from './base.js';\nexport class BlobSizeTooLargeError extends BaseError {\n constructor({ maxSize, size }) {\n super('Blob size is too large.', {\n metaMessages: [`Max: ${maxSize} bytes`, `Given: ${size} bytes`],\n name: 'BlobSizeTooLargeError',\n });\n }\n}\nexport class EmptyBlobError extends BaseError {\n constructor() {\n super('Blob data must not be empty.', { name: 'EmptyBlobError' });\n }\n}\nexport class InvalidVersionedHashSizeError extends BaseError {\n constructor({ hash, size, }) {\n super(`Versioned hash \"${hash}\" size is invalid.`, {\n metaMessages: ['Expected: 32', `Received: ${size}`],\n name: 'InvalidVersionedHashSizeError',\n });\n }\n}\nexport class InvalidVersionedHashVersionError extends BaseError {\n constructor({ hash, version, }) {\n super(`Versioned hash \"${hash}\" version is invalid.`, {\n metaMessages: [\n `Expected: ${versionedHashVersionKzg}`,\n `Received: ${version}`,\n ],\n name: 'InvalidVersionedHashVersionError',\n });\n }\n}\n//# sourceMappingURL=blob.js.map","import { bytesPerBlob, bytesPerFieldElement, fieldElementsPerBlob, maxBytesPerTransaction, } from '../../constants/blob.js';\nimport { BlobSizeTooLargeError, EmptyBlobError, } from '../../errors/blob.js';\nimport { createCursor } from '../cursor.js';\nimport { size } from '../data/size.js';\nimport { hexToBytes } from '../encoding/toBytes.js';\nimport { bytesToHex } from '../encoding/toHex.js';\n/**\n * Transforms arbitrary data to blobs.\n *\n * @example\n * ```ts\n * import { toBlobs, stringToHex } from 'viem'\n *\n * const blobs = toBlobs({ data: stringToHex('hello world') })\n * ```\n */\nexport function toBlobs(parameters) {\n const to = parameters.to ?? (typeof parameters.data === 'string' ? 'hex' : 'bytes');\n const data = (typeof parameters.data === 'string'\n ? hexToBytes(parameters.data)\n : parameters.data);\n const size_ = size(data);\n if (!size_)\n throw new EmptyBlobError();\n if (size_ > maxBytesPerTransaction)\n throw new BlobSizeTooLargeError({\n maxSize: maxBytesPerTransaction,\n size: size_,\n });\n const blobs = [];\n let active = true;\n let position = 0;\n while (active) {\n const blob = createCursor(new Uint8Array(bytesPerBlob));\n let size = 0;\n while (size < fieldElementsPerBlob) {\n const bytes = data.slice(position, position + (bytesPerFieldElement - 1));\n // Push a zero byte so the field element doesn't overflow the BLS modulus.\n blob.pushByte(0x00);\n // Push the current segment of data bytes.\n blob.pushBytes(bytes);\n // If we detect that the current segment of data bytes is less than 31 bytes,\n // we can stop processing and push a terminator byte to indicate the end of the blob.\n if (bytes.length < 31) {\n blob.pushByte(0x80);\n active = false;\n break;\n }\n size++;\n position += 31;\n }\n blobs.push(blob);\n }\n return (to === 'bytes'\n ? blobs.map((x) => x.bytes)\n : blobs.map((x) => bytesToHex(x.bytes)));\n}\n//# sourceMappingURL=toBlobs.js.map","import { blobsToCommitments, } from './blobsToCommitments.js';\nimport { blobsToProofs } from './blobsToProofs.js';\nimport { toBlobs } from './toBlobs.js';\n/**\n * Transforms arbitrary data (or blobs, commitments, & proofs) into a sidecar array.\n *\n * @example\n * ```ts\n * import { toBlobSidecars, stringToHex } from 'viem'\n *\n * const sidecars = toBlobSidecars({ data: stringToHex('hello world') })\n * ```\n *\n * @example\n * ```ts\n * import {\n * blobsToCommitments,\n * toBlobs,\n * blobsToProofs,\n * toBlobSidecars,\n * stringToHex\n * } from 'viem'\n *\n * const blobs = toBlobs({ data: stringToHex('hello world') })\n * const commitments = blobsToCommitments({ blobs, kzg })\n * const proofs = blobsToProofs({ blobs, commitments, kzg })\n *\n * const sidecars = toBlobSidecars({ blobs, commitments, proofs })\n * ```\n */\nexport function toBlobSidecars(parameters) {\n const { data, kzg, to } = parameters;\n const blobs = parameters.blobs ?? toBlobs({ data: data, to });\n const commitments = parameters.commitments ?? blobsToCommitments({ blobs, kzg: kzg, to });\n const proofs = parameters.proofs ?? blobsToProofs({ blobs, commitments, kzg: kzg, to });\n const sidecars = [];\n for (let i = 0; i < blobs.length; i++)\n sidecars.push({\n blob: blobs[i],\n commitment: commitments[i],\n proof: proofs[i],\n });\n return sidecars;\n}\n//# sourceMappingURL=toBlobSidecars.js.map","import { InvalidSerializableTransactionError, } from '../../errors/transaction.js';\nexport function getTransactionType(transaction) {\n if (transaction.type)\n return transaction.type;\n if (typeof transaction.authorizationList !== 'undefined')\n return 'eip7702';\n if (typeof transaction.blobs !== 'undefined' ||\n typeof transaction.blobVersionedHashes !== 'undefined' ||\n typeof transaction.maxFeePerBlobGas !== 'undefined' ||\n typeof transaction.sidecars !== 'undefined')\n return 'eip4844';\n if (typeof transaction.maxFeePerGas !== 'undefined' ||\n typeof transaction.maxPriorityFeePerGas !== 'undefined') {\n return 'eip1559';\n }\n if (typeof transaction.gasPrice !== 'undefined') {\n if (typeof transaction.accessList !== 'undefined')\n return 'eip2930';\n return 'legacy';\n }\n throw new InvalidSerializableTransactionError({ transaction });\n}\n//# sourceMappingURL=getTransactionType.js.map","import { 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/** @internal */\nexport const eip1559NetworkCache = /*#__PURE__*/ new Map();\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, nonceManager, parameters = defaultParameters, type, } = args;\n const account = account_ ? parseAccount(account_) : account_;\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('nonce') && typeof nonce === 'undefined' && account) {\n if (nonceManager) {\n const chainId = await getChainId();\n request.nonce = await 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('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('fees') || parameters.includes('type')) &&\n typeof type === 'undefined') {\n try {\n request.type = getTransactionType(request);\n }\n catch {\n let isEip1559Network = eip1559NetworkCache.get(client.uid);\n if (typeof isEip1559Network === 'undefined') {\n const block = await getBlock();\n isEip1559Network = typeof block?.baseFeePerGas === 'bigint';\n eip1559NetworkCache.set(client.uid, isEip1559Network);\n }\n request.type = isEip1559Network ? '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 if (typeof args.gasPrice === 'undefined') {\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 }\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 : account,\n });\n assertRequest(request);\n delete request.parameters;\n return request;\n}\n//# sourceMappingURL=prepareTransactionRequest.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 { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { AccountNotFoundError, AccountTypeNotSupportedError, } from '../../errors/account.js';\nimport { BaseError } from '../../errors/base.js';\nimport { recoverAuthorizationAddress, } from '../../utils/authorization/recoverAuthorizationAddress.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 { LruMap } from '../../utils/lru.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';\nconst supportsWalletNamespace = new LruMap(128);\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, authorizationList, blobs, data, gas, gasPrice, maxFeePerBlobGas, maxFeePerGas, maxPriorityFeePerGas, nonce, value, ...rest } = parameters;\n if (typeof account_ === 'undefined')\n throw new AccountNotFoundError({\n docsPath: '/docs/actions/wallet/sendTransaction',\n });\n const account = account_ ? parseAccount(account_) : null;\n try {\n assertRequest(parameters);\n const to = await (async () => {\n // If `to` exists on the parameters, use that.\n if (parameters.to)\n return parameters.to;\n // If `to` is null, we are sending a deployment transaction.\n if (parameters.to === null)\n return undefined;\n // If no `to` exists, and we are sending a EIP-7702 transaction, use the\n // address of the first authorization in the list.\n if (authorizationList && authorizationList.length > 0)\n return await recoverAuthorizationAddress({\n authorization: authorizationList[0],\n }).catch(() => {\n throw new BaseError('`to` is required. Could not infer from `authorizationList`.');\n });\n // Otherwise, we are sending a deployment transaction.\n return undefined;\n })();\n if (account?.type === 'json-rpc' || account === null) {\n let chainId;\n if (chain !== null) {\n chainId = await getAction(client, getChainId, 'getChainId')({});\n assertCurrentChain({\n currentChainId: chainId,\n chain,\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 authorizationList,\n blobs,\n chainId,\n data,\n from: account?.address,\n gas,\n gasPrice,\n maxFeePerBlobGas,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value,\n });\n const isWalletNamespaceSupported = supportsWalletNamespace.get(client.uid);\n const method = isWalletNamespaceSupported\n ? 'wallet_sendTransaction'\n : 'eth_sendTransaction';\n try {\n return await client.request({\n method,\n params: [request],\n }, { retryCount: 0 });\n }\n catch (e) {\n if (isWalletNamespaceSupported === false)\n throw e;\n const error = e;\n // If the transport does not support the method or input, attempt to use the\n // `wallet_sendTransaction` method.\n if (error.name === 'InvalidInputRpcError' ||\n error.name === 'InvalidParamsRpcError' ||\n error.name === 'MethodNotFoundRpcError' ||\n error.name === 'MethodNotSupportedRpcError') {\n return await client\n .request({\n method: 'wallet_sendTransaction',\n params: [request],\n }, { retryCount: 0 })\n .then((hash) => {\n supportsWalletNamespace.set(client.uid, true);\n return hash;\n })\n .catch((e) => {\n const walletNamespaceError = e;\n if (walletNamespaceError.name === 'MethodNotFoundRpcError' ||\n walletNamespaceError.name === 'MethodNotSupportedRpcError') {\n supportsWalletNamespace.set(client.uid, false);\n throw error;\n }\n throw walletNamespaceError;\n });\n }\n throw error;\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 authorizationList,\n blobs,\n chain,\n data,\n gas,\n gasPrice,\n maxFeePerBlobGas,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n nonceManager: account.nonceManager,\n parameters: [...defaultParameters, 'sidecars'],\n value,\n ...rest,\n to,\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 if (account?.type === 'smart')\n throw new AccountTypeNotSupportedError({\n metaMessages: [\n 'Consider using the `sendUserOperation` Action instead.',\n ],\n docsPath: '/docs/actions/bundler/sendUserOperation',\n type: 'smart',\n });\n throw new AccountTypeNotSupportedError({\n docsPath: '/docs/actions/wallet/sendTransaction',\n type: account?.type,\n });\n }\n catch (err) {\n if (err instanceof AccountTypeNotSupportedError)\n throw err;\n throw getTransactionError(err, {\n ...parameters,\n account,\n chain: parameters.chain || undefined,\n });\n }\n}\n//# sourceMappingURL=sendTransaction.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 name: '_signer',\n type: 'address',\n },\n {\n name: '_hash',\n type: 'bytes32',\n },\n {\n name: '_signature',\n type: 'bytes',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n inputs: [\n {\n name: '_signer',\n type: 'address',\n },\n {\n name: '_hash',\n type: 'bytes32',\n },\n {\n name: '_signature',\n type: 'bytes',\n },\n ],\n outputs: [\n {\n type: 'bool',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n name: 'isValidSig',\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","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 { 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","export const version = '1.0.8';\n//# sourceMappingURL=version.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","// 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","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 { 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 if (abiItem.type === 'event')\n return `event ${abiItem.name}(${formatAbiParameters(abiItem.inputs)})`;\n if (abiItem.type === 'error')\n return `error ${abiItem.name}(${formatAbiParameters(abiItem.inputs)})`;\n if (abiItem.type === 'constructor')\n return `constructor(${formatAbiParameters(abiItem.inputs)})${abiItem.stateMutability === 'payable' ? ' payable' : ''}`;\n if (abiItem.type === 'fallback')\n return `fallback() external${abiItem.stateMutability === 'payable' ? ' payable' : ''}`;\n return 'receive() external payable';\n}\n//# sourceMappingURL=formatAbiItem.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/7srtn\nconst fallbackSignatureRegex = /^fallback\\(\\) external(?:\\s(?payable{1}))?$/;\nexport function isFallbackSignature(signature) {\n return fallbackSignatureRegex.test(signature);\n}\nexport function execFallbackSignature(signature) {\n return execTyped(fallbackSignatureRegex, 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 { 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, structs) {\n let structKey = '';\n if (structs)\n for (const struct of Object.entries(structs)) {\n if (!struct)\n continue;\n let propertyKey = '';\n for (const property of struct[1]) {\n propertyKey += `[${property.type}${property.name ? `:${property.name}` : ''}]`;\n }\n structKey += `(${struct[0]}{${propertyKey}})`;\n }\n if (type)\n return `${type}:${param}${structKey}`;\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, execFallbackSignature, execFunctionSignature, functionModifiers, isConstructorSignature, isErrorSignature, isEventSignature, isFallbackSignature, isFunctionSignature, isReceiveSignature, } from './signatures.js';\nexport function parseSignature(signature, structs = {}) {\n if (isFunctionSignature(signature))\n return parseFunctionSignature(signature, structs);\n if (isEventSignature(signature))\n return parseEventSignature(signature, structs);\n if (isErrorSignature(signature))\n return parseErrorSignature(signature, structs);\n if (isConstructorSignature(signature))\n return parseConstructorSignature(signature, structs);\n if (isFallbackSignature(signature))\n return parseFallbackSignature(signature);\n if (isReceiveSignature(signature))\n return {\n type: 'receive',\n stateMutability: 'payable',\n };\n throw new UnknownSignatureError({ signature });\n}\nexport function parseFunctionSignature(signature, structs = {}) {\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}\nexport function parseEventSignature(signature, structs = {}) {\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 return { name: match.name, type: 'event', inputs: abiParameters };\n}\nexport function parseErrorSignature(signature, structs = {}) {\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 return { name: match.name, type: 'error', inputs: abiParameters };\n}\nexport function parseConstructorSignature(signature, structs = {}) {\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 return {\n type: 'constructor',\n stateMutability: match.stateMutability ?? 'nonpayable',\n inputs: abiParameters,\n };\n}\nexport function parseFallbackSignature(signature) {\n const match = execFallbackSignature(signature);\n if (!match)\n throw new InvalidSignatureError({ signature, type: 'fallback' });\n return {\n type: 'fallback',\n stateMutability: match.stateMutability ?? 'nonpayable',\n };\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, options?.structs);\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 { InvalidAbiItemError } from './errors/abiItem.js';\nimport { isStructSignature } from './runtime/signatures.js';\nimport { parseStructs } from './runtime/structs.js';\nimport { parseSignature } from './runtime/utils.js';\n/**\n * Parses human-readable ABI item (e.g. error, event, function) into {@link Abi} item\n *\n * @param signature - Human-readable ABI item\n * @returns Parsed {@link Abi} item\n *\n * @example\n * const abiItem = parseAbiItem('function balanceOf(address owner) view returns (uint256)')\n * // ^? const abiItem: { name: \"balanceOf\"; type: \"function\"; stateMutability: \"view\";...\n *\n * @example\n * const abiItem = parseAbiItem([\n * // ^? const abiItem: { name: \"foo\"; type: \"function\"; stateMutability: \"view\"; inputs:...\n * 'function foo(Baz bar) view returns (string)',\n * 'struct Baz { string name; }',\n * ])\n */\nexport function parseAbiItem(signature) {\n let abiItem;\n if (typeof signature === 'string')\n abiItem = parseSignature(signature);\n else {\n const structs = parseStructs(signature);\n const length = signature.length;\n for (let i = 0; i < length; i++) {\n const signature_ = signature[i];\n if (isStructSignature(signature_))\n continue;\n abiItem = parseSignature(signature_, structs);\n break;\n }\n }\n if (!abiItem)\n throw new InvalidAbiItemError({ signature });\n return abiItem;\n}\n//# sourceMappingURL=parseAbiItem.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 { 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 { 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","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 { 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 { 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 { 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 { 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","// 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","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 { 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 name: 'CallExecutionError',\n });\n Object.defineProperty(this, \"cause\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\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 prettyArgs && 'Contract Call:',\n prettyArgs,\n ].filter(Boolean),\n name: 'ContractFunctionExecutionError',\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 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 name: '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, \"raw\", {\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.raw = data;\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 name: '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 name: 'CounterfactualDeploymentFailedError',\n });\n }\n}\nexport class RawContractError extends BaseError {\n constructor({ data, message, }) {\n super(message || '', { name: 'RawContractError' });\n Object.defineProperty(this, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 3\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 { 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","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 { 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","import { AbiDecodingZeroDataError } from '../../errors/abi.js';\nimport { BaseError } from '../../errors/base.js';\nimport { ContractFunctionExecutionError, ContractFunctionRevertedError, ContractFunctionZeroDataError, RawContractError, } from '../../errors/contract.js';\nimport { RpcRequestError } from '../../errors/request.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 error = (err instanceof RawContractError\n ? err\n : err instanceof BaseError\n ? err.walk((err) => 'data' in err) || err.walk()\n : {});\n const { code, data, details, message, shortMessage } = error;\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 || details || message || shortMessage)) {\n return new ContractFunctionRevertedError({\n abi,\n data: typeof data === 'object' ? data.data : data,\n functionName,\n message: error instanceof RpcRequestError\n ? details\n : (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","export const aggregate3Signature = '0x82ad56cb';\n//# sourceMappingURL=contract.js.map","export const deploylessCallViaBytecodeBytecode = '0x608060405234801561001057600080fd5b5060405161018e38038061018e83398101604081905261002f91610124565b6000808351602085016000f59050803b61004857600080fd5b6000808351602085016000855af16040513d6000823e81610067573d81fd5b3d81f35b634e487b7160e01b600052604160045260246000fd5b600082601f83011261009257600080fd5b81516001600160401b038111156100ab576100ab61006b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100d9576100d961006b565b6040528181528382016020018510156100f157600080fd5b60005b82811015610110576020818601810151838301820152016100f4565b506000918101602001919091529392505050565b6000806040838503121561013757600080fd5b82516001600160401b0381111561014d57600080fd5b61015985828601610081565b602085015190935090506001600160401b0381111561017757600080fd5b61018385828601610081565b915050925092905056fe';\nexport const deploylessCallViaFactoryBytecode = '0x608060405234801561001057600080fd5b506040516102c03803806102c083398101604081905261002f916101e6565b836001600160a01b03163b6000036100e457600080836001600160a01b03168360405161005c9190610270565b6000604051808303816000865af19150503d8060008114610099576040519150601f19603f3d011682016040523d82523d6000602084013e61009e565b606091505b50915091508115806100b857506001600160a01b0386163b155b156100e1578060405163101bb98d60e01b81526004016100d8919061028c565b60405180910390fd5b50505b6000808451602086016000885af16040513d6000823e81610103573d81fd5b3d81f35b80516001600160a01b038116811461011e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561015457818101518382015260200161013c565b50506000910152565b600082601f83011261016e57600080fd5b81516001600160401b0381111561018757610187610123565b604051601f8201601f19908116603f011681016001600160401b03811182821017156101b5576101b5610123565b6040528181528382016020018510156101cd57600080fd5b6101de826020830160208701610139565b949350505050565b600080600080608085870312156101fc57600080fd5b61020585610107565b60208601519094506001600160401b0381111561022157600080fd5b61022d8782880161015d565b93505061023c60408601610107565b60608601519092506001600160401b0381111561025857600080fd5b6102648782880161015d565b91505092959194509250565b60008251610282818460208701610139565b9190910192915050565b60208152600082518060208401526102ab816040850160208701610139565b601f01601f1916919091016040019291505056fe';\nexport const universalSignatureValidatorByteCode = '0x608060405234801561001057600080fd5b5060405161069438038061069483398101604081905261002f9161051e565b600061003c848484610048565b9050806000526001601ff35b60007f64926492649264926492649264926492649264926492649264926492649264926100748361040c565b036101e7576000606080848060200190518101906100929190610577565b60405192955090935091506000906001600160a01b038516906100b69085906105dd565b6000604051808303816000865af19150503d80600081146100f3576040519150601f19603f3d011682016040523d82523d6000602084013e6100f8565b606091505b50509050876001600160a01b03163b60000361016057806101605760405162461bcd60e51b815260206004820152601e60248201527f5369676e617475726556616c696461746f723a206465706c6f796d656e74000060448201526064015b60405180910390fd5b604051630b135d3f60e11b808252906001600160a01b038a1690631626ba7e90610190908b9087906004016105f9565b602060405180830381865afa1580156101ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d19190610633565b6001600160e01b03191614945050505050610405565b6001600160a01b0384163b1561027a57604051630b135d3f60e11b808252906001600160a01b03861690631626ba7e9061022790879087906004016105f9565b602060405180830381865afa158015610244573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102689190610633565b6001600160e01b031916149050610405565b81516041146102df5760405162461bcd60e51b815260206004820152603a602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e6174757265206c656e6774680000000000006064820152608401610157565b6102e7610425565b5060208201516040808401518451859392600091859190811061030c5761030c61065d565b016020015160f81c9050601b811480159061032b57508060ff16601c14155b1561038c5760405162461bcd60e51b815260206004820152603b602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e617475726520762076616c756500000000006064820152608401610157565b60408051600081526020810180835289905260ff83169181019190915260608101849052608081018390526001600160a01b0389169060019060a0016020604051602081039080840390855afa1580156103ea573d6000803e3d6000fd5b505050602060405103516001600160a01b0316149450505050505b9392505050565b600060208251101561041d57600080fd5b508051015190565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b038116811461045857600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561048c578181015183820152602001610474565b50506000910152565b600082601f8301126104a657600080fd5b81516001600160401b038111156104bf576104bf61045b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156104ed576104ed61045b565b60405281815283820160200185101561050557600080fd5b610516826020830160208701610471565b949350505050565b60008060006060848603121561053357600080fd5b835161053e81610443565b6020850151604086015191945092506001600160401b0381111561056157600080fd5b61056d86828701610495565b9150509250925092565b60008060006060848603121561058c57600080fd5b835161059781610443565b60208501519093506001600160401b038111156105b357600080fd5b6105bf86828701610495565b604086015190935090506001600160401b0381111561056157600080fd5b600082516105ef818460208701610471565b9190910192915050565b828152604060208201526000825180604084015261061e816060850160208701610471565b601f01601f1916919091016060019392505050565b60006020828403121561064557600080fd5b81516001600160e01b03198116811461040557600080fd5b634e487b7160e01b600052603260045260246000fdfe5369676e617475726556616c696461746f72237265636f7665725369676e6572';\n//# sourceMappingURL=contracts.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","/** @internal */\nexport function withResolvers() {\n let resolve = () => undefined;\n let reject = () => undefined;\n const promise = new Promise((resolve_, reject_) => {\n resolve = resolve_;\n reject = reject_;\n });\n return { promise, resolve, reject };\n}\n//# sourceMappingURL=withResolvers.js.map","import { withResolvers } from './withResolvers.js';\nconst 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 { resolve } = scheduler[i];\n resolve?.([data[i], data]);\n }\n })\n .catch((err) => {\n for (let i = 0; i < scheduler.length; i++) {\n const { reject } = scheduler[i];\n 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 { promise, resolve, reject } = withResolvers();\n const split = shouldSplitBatch?.([...getBatchedArgs(), args]);\n if (split)\n exec();\n const hasActiveScheduler = getScheduler().length > 0;\n if (hasActiveScheduler) {\n setScheduler({ args, resolve, reject });\n return promise;\n }\n setScheduler({ args, resolve, reject });\n setTimeout(exec, wait);\n return promise;\n },\n };\n}\n//# sourceMappingURL=createBatchScheduler.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","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 name: 'EnsAvatarInvalidMetadataError',\n });\n }\n}\nexport class EnsAvatarInvalidNftUriError extends BaseError {\n constructor({ reason }) {\n super(`ENS NFT avatar URI is invalid. ${reason}`, {\n name: '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.`, { name: 'EnsAvatarUriResolutionError' });\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\".`, { name: 'EnsAvatarUnsupportedNamespaceError' });\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","import { parseAccount, } from '../../accounts/utils/parseAccount.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 { assertRequest } from '../../utils/transaction/assertRequest.js';\n/**\n * Creates an EIP-2930 access list.\n *\n * - Docs: https://viem.sh/docs/actions/public/createAccessList\n * - JSON-RPC Methods: `eth_createAccessList`\n *\n * @param client - Client to use\n * @param parameters - {@link CreateAccessListParameters}\n * @returns The access list. {@link CreateAccessListReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createAccessList } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const data = await createAccessList(client, {\n * account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\n * data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * })\n */\nexport async function createAccessList(client, args) {\n const { account: account_ = client.account, blockNumber, blockTag = 'latest', blobs, data, gas, gasPrice, maxFeePerBlobGas, maxFeePerGas, maxPriorityFeePerGas, to, value, ...rest } = args;\n const account = account_ ? parseAccount(account_) : undefined;\n try {\n assertRequest(args);\n const blockNumberHex = blockNumber ? numberToHex(blockNumber) : undefined;\n const block = blockNumberHex || blockTag;\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 blobs,\n data,\n gas,\n gasPrice,\n maxFeePerBlobGas,\n maxFeePerGas,\n maxPriorityFeePerGas,\n to,\n value,\n });\n const response = await client.request({\n method: 'eth_createAccessList',\n params: [request, block],\n });\n return {\n accessList: response.accessList,\n gasUsed: BigInt(response.gasUsed),\n };\n }\n catch (err) {\n throw getCallError(err, {\n ...args,\n account,\n chain: client.chain,\n });\n }\n}\n//# sourceMappingURL=createAccessList.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 name: '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) => {\n if (Array.isArray(args_[i]))\n return args_[i].map((_, j) => encodeArg({ param, value: args_[i][j] }));\n return typeof args_[i] !== 'undefined' && args_[i] !== null\n ? encodeArg({ param, value: args_[i] })\n : null;\n }) ?? [];\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 const encoded = events.flatMap((event) => encodeEventTopics({\n abi: [event],\n eventName: event.name,\n args,\n }));\n // TODO: Clean up type casting\n topics = [encoded];\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, dataSuffix, ...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: `${data}${dataSuffix ? dataSuffix.replace('0x', '') : ''}`,\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","/**\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 { 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","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 = (() => {\n if (abi.length === 1)\n return abi[0];\n return abi.find((x) => x.type === 'event' &&\n signature === toEventSelector(formatAbiItem(x)));\n })();\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 { isAddressEqual } from '../address/isAddressEqual.js';\nimport { toBytes } from '../encoding/toBytes.js';\nimport { keccak256 } from '../hash/keccak256.js';\nimport { toEventSelector } from '../hash/toEventSelector.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(parameters) {\n const { abi, args, logs, strict = true } = parameters;\n const eventName = (() => {\n if (!parameters.eventName)\n return undefined;\n if (Array.isArray(parameters.eventName))\n return parameters.eventName;\n return [parameters.eventName];\n })();\n return logs\n .map((log) => {\n try {\n const abiItem = abi.find((abiItem) => abiItem.type === 'event' &&\n log.topics[0] === toEventSelector(abiItem));\n if (!abiItem)\n return null;\n const event = decodeEventLog({\n ...log,\n abi: [abiItem],\n strict,\n });\n // Check that the decoded event name matches the provided event name.\n if (eventName && !eventName.includes(event.eventName))\n return null;\n // Check that the decoded event args match the provided args.\n if (!includesArgs({\n args: event.args,\n inputs: abiItem.inputs,\n matchArgs: args,\n }))\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}\nfunction includesArgs(parameters) {\n const { args, inputs, matchArgs } = parameters;\n if (!matchArgs)\n return true;\n if (!args)\n return false;\n function isEqual(input, value, arg) {\n try {\n if (input.type === 'address')\n return isAddressEqual(value, arg);\n if (input.type === 'string' || input.type === 'bytes')\n return keccak256(toBytes(value)) === arg;\n return value === arg;\n }\n catch {\n return false;\n }\n }\n if (Array.isArray(args) && Array.isArray(matchArgs)) {\n return matchArgs.every((value, index) => {\n if (value === null || value === undefined)\n return true;\n const input = inputs[index];\n if (!input)\n return false;\n const value_ = Array.isArray(value) ? value : [value];\n return value_.some((value) => isEqual(input, value, args[index]));\n });\n }\n if (typeof args === 'object' &&\n !Array.isArray(args) &&\n typeof matchArgs === 'object' &&\n !Array.isArray(matchArgs))\n return Object.entries(matchArgs).every(([key, value]) => {\n if (value === null || value === undefined)\n return true;\n const input = inputs.find((input) => input.name === key);\n if (!input)\n return false;\n const value_ = Array.isArray(value) ? value : [value];\n return value_.some((value) => isEqual(input, value, args[key]));\n });\n return false;\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/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 const encoded = events.flatMap((event) => encodeEventTopics({\n abi: [event],\n eventName: event.name,\n args: events_ ? undefined : args,\n }));\n // TODO: Clean up type casting\n topics = [encoded];\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 args: args,\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/contract/getContractEvents#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 name: '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","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 { 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","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';\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","/**\n * Hex, bytes and number utilities.\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// 100 lines of code in the file are duplicated from noble-hashes (utils).\n// This is OK: `abstract` directory does not use noble-hashes.\n// User may opt-in into using different hashing library. This way, noble-hashes\n// won't be included into their bundle.\nconst _0n = /* @__PURE__ */ BigInt(0);\nconst _1n = /* @__PURE__ */ BigInt(1);\nconst _2n = /* @__PURE__ */ BigInt(2);\nexport function isBytes(a) {\n return a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array');\n}\nexport function abytes(item) {\n if (!isBytes(item))\n throw new Error('Uint8Array expected');\n}\nexport function abool(title, value) {\n if (typeof value !== 'boolean')\n throw new Error(title + ' boolean expected, got ' + value);\n}\n// 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 */\nexport function bytesToHex(bytes) {\n abytes(bytes);\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\nexport function numberToHexUnpadded(num) {\n const hex = num.toString(16);\n return hex.length & 1 ? '0' + hex : hex;\n}\nexport function hexToNumber(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n return hex === '' ? _0n : BigInt('0x' + hex); // Big Endian\n}\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, A: 65, F: 70, a: 97, f: 102 };\nfunction asciiToBase16(ch) {\n if (ch >= asciis._0 && ch <= asciis._9)\n return ch - asciis._0; // '2' => 50-48\n if (ch >= asciis.A && ch <= asciis.F)\n return ch - (asciis.A - 10); // 'B' => 66-(65-10)\n if (ch >= asciis.a && ch <= asciis.f)\n return ch - (asciis.a - 10); // 'b' => 98-(97-10)\n return;\n}\n/**\n * @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 hl = hex.length;\n const al = hl / 2;\n if (hl % 2)\n throw new Error('hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi));\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2; // multiply first octet, e.g. 'a3' => 10*16+3 => 160 + 3 => 163\n }\n return array;\n}\n// BE: Big Endian, LE: Little Endian\nexport function bytesToNumberBE(bytes) {\n return hexToNumber(bytesToHex(bytes));\n}\nexport function bytesToNumberLE(bytes) {\n abytes(bytes);\n return hexToNumber(bytesToHex(Uint8Array.from(bytes).reverse()));\n}\nexport function numberToBytesBE(n, len) {\n return hexToBytes(n.toString(16).padStart(len * 2, '0'));\n}\nexport function numberToBytesLE(n, len) {\n return numberToBytesBE(n, len).reverse();\n}\n// Unpadded, rarely used\nexport function numberToVarBytesBE(n) {\n return hexToBytes(numberToHexUnpadded(n));\n}\n/**\n * Takes hex string or Uint8Array, converts to Uint8Array.\n * Validates output length.\n * Will throw error for other types.\n * @param title descriptive title for an error e.g. 'private key'\n * @param hex hex string or Uint8Array\n * @param expectedLength optional, will compare to result array's length\n * @returns\n */\nexport function ensureBytes(title, hex, expectedLength) {\n let res;\n if (typeof hex === 'string') {\n try {\n res = hexToBytes(hex);\n }\n catch (e) {\n throw new Error(title + ' must be hex string or Uint8Array, cause: ' + e);\n }\n }\n else if (isBytes(hex)) {\n // Uint8Array.from() instead of hash.slice() because node.js Buffer\n // is instance of Uint8Array, and its slice() creates **mutable** copy\n res = Uint8Array.from(hex);\n }\n else {\n throw new Error(title + ' must be hex string or Uint8Array');\n }\n const len = res.length;\n if (typeof expectedLength === 'number' && len !== expectedLength)\n throw new Error(title + ' of length ' + expectedLength + ' expected, got ' + len);\n return res;\n}\n/**\n * Copies several Uint8Arrays into one.\n */\nexport function concatBytes(...arrays) {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n abytes(a);\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\n// Compares 2 u8a-s in kinda constant time\nexport function equalBytes(a, b) {\n if (a.length !== b.length)\n return false;\n let diff = 0;\n for (let i = 0; i < a.length; i++)\n diff |= a[i] ^ b[i];\n return diff === 0;\n}\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nexport function utf8ToBytes(str) {\n if (typeof str !== 'string')\n throw new Error('string expected');\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n// Is positive bigint\nconst isPosBig = (n) => typeof n === 'bigint' && _0n <= n;\nexport function inRange(n, min, max) {\n return isPosBig(n) && isPosBig(min) && isPosBig(max) && min <= n && n < max;\n}\n/**\n * Asserts min <= n < max. NOTE: It's < max and not <= max.\n * @example\n * aInRange('x', x, 1n, 256n); // would assume x is in (1n..255n)\n */\nexport function aInRange(title, n, min, max) {\n // Why min <= n < max and not a (min < n < max) OR b (min <= n <= max)?\n // consider P=256n, min=0n, max=P\n // - a for min=0 would require -1: `inRange('x', x, -1n, P)`\n // - b would commonly require subtraction: `inRange('x', x, 0n, P - 1n)`\n // - our way is the cleanest: `inRange('x', x, 0n, P)\n if (!inRange(n, min, max))\n throw new Error('expected valid ' + title + ': ' + min + ' <= n < ' + max + ', got ' + n);\n}\n// Bit operations\n/**\n * Calculates amount of bits in a bigint.\n * Same as `n.toString(2).length`\n */\nexport function bitLen(n) {\n let len;\n for (len = 0; n > _0n; n >>= _1n, len += 1)\n ;\n return len;\n}\n/**\n * Gets single bit at position.\n * NOTE: first bit position is 0 (same as arrays)\n * Same as `!!+Array.from(n.toString(2)).reverse()[pos]`\n */\nexport function bitGet(n, pos) {\n return (n >> BigInt(pos)) & _1n;\n}\n/**\n * Sets single bit at position.\n */\nexport function bitSet(n, pos, value) {\n return n | ((value ? _1n : _0n) << BigInt(pos));\n}\n/**\n * Calculate mask for N bits. Not using ** operator with bigints because of old engines.\n * Same as BigInt(`0b${Array(i).fill('1').join('')}`)\n */\nexport const bitMask = (n) => (_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' || isBytes(val),\n isSafeInteger: (val) => Number.isSafeInteger(val),\n array: (val) => Array.isArray(val),\n field: (val, object) => object.Fp.isValid(val),\n hash: (val) => typeof val === 'function' && Number.isSafeInteger(val.outputLen),\n};\n// type Record = { [P in K]: T; }\nexport function validateObject(object, validators, optValidators = {}) {\n const checkField = (fieldName, type, isOptional) => {\n const checkVal = validatorFns[type];\n if (typeof checkVal !== 'function')\n throw new Error('invalid validator function');\n const val = object[fieldName];\n if (isOptional && val === undefined)\n return;\n if (!checkVal(val, object)) {\n throw new Error('param ' + String(fieldName) + ' is invalid. Expected ' + type + ', got ' + val);\n }\n };\n for (const [fieldName, type] of Object.entries(validators))\n checkField(fieldName, type, false);\n for (const [fieldName, type] of Object.entries(optValidators))\n checkField(fieldName, type, true);\n return object;\n}\n// validate type tests\n// const o: { a: number; b: number; c: number } = { a: 1, b: 5, c: 6 };\n// const z0 = validateObject(o, { a: 'isSafeInteger' }, { c: 'bigint' }); // Ok!\n// // Should fail type-check\n// const z1 = validateObject(o, { a: 'tmp' }, { c: 'zz' });\n// const z2 = validateObject(o, { a: 'isSafeInteger' }, { c: 'zz' });\n// const z3 = validateObject(o, { test: 'boolean', z: 'bug' });\n// const z4 = validateObject(o, { a: 'boolean', z: 'bug' });\n/**\n * throws not implemented error\n */\nexport const notImplemented = () => {\n throw new Error('not implemented');\n};\n/**\n * Memoizes (caches) computation result.\n * Uses WeakMap: the value is going auto-cleaned by GC after last reference is removed.\n */\nexport function memoized(fn) {\n const map = new WeakMap();\n return (arg, ...args) => {\n const val = map.get(arg);\n if (val !== undefined)\n return val;\n const computed = fn(arg, ...args);\n map.set(arg, computed);\n return computed;\n };\n}\n//# sourceMappingURL=utils.js.map","/** @internal */\nexport const version = '0.1.1';\n//# sourceMappingURL=version.js.map","import { version } from '../version.js';\n/** @internal */\nexport function getUrl(url) {\n return url;\n}\n/** @internal */\nexport function getVersion() {\n return version;\n}\n/** @internal */\nexport function prettyPrint(args) {\n if (!args)\n return '';\n const entries = Object.entries(args)\n .map(([key, value]) => {\n if (value === undefined || value === false)\n return null;\n return [key, value];\n })\n .filter(Boolean);\n const maxLength = entries.reduce((acc, [key]) => Math.max(acc, key.length), 0);\n return entries\n .map(([key, value]) => ` ${`${key}:`.padEnd(maxLength + 1)} ${value}`)\n .join('\\n');\n}\n//# sourceMappingURL=errors.js.map","import { getVersion } from './internal/errors.js';\n/**\n * Base error class inherited by all errors thrown by ox.\n *\n * @example\n * ```ts\n * import { Errors } from 'ox'\n * throw new Errors.BaseError('An error occurred')\n * ```\n */\nexport class BaseError extends Error {\n constructor(shortMessage, options = {}) {\n const details = (() => {\n if (options.cause instanceof BaseError) {\n if (options.cause.details)\n return options.cause.details;\n if (options.cause.shortMessage)\n return options.cause.shortMessage;\n }\n if (options.cause?.message)\n return options.cause.message;\n return options.details;\n })();\n const docsPath = (() => {\n if (options.cause instanceof BaseError)\n return options.cause.docsPath || options.docsPath;\n return options.docsPath;\n })();\n const docsBaseUrl = 'https://oxlib.sh';\n const docs = `${docsBaseUrl}${docsPath ?? ''}`;\n const message = [\n shortMessage || 'An error occurred.',\n ...(options.metaMessages ? ['', ...options.metaMessages] : []),\n ...(details || docsPath\n ? [\n '',\n details ? `Details: ${details}` : undefined,\n docsPath ? `See: ${docs}` : undefined,\n ]\n : []),\n ]\n .filter((x) => typeof x === 'string')\n .join('\\n');\n super(message, options.cause ? { cause: options.cause } : undefined);\n Object.defineProperty(this, \"details\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"docs\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"docsPath\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"shortMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"cause\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'BaseError'\n });\n Object.defineProperty(this, \"version\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: `ox@${getVersion()}`\n });\n this.cause = options.cause;\n this.details = details;\n this.docs = docs;\n this.docsPath = docsPath;\n this.shortMessage = shortMessage;\n }\n walk(fn) {\n return walk(this, fn);\n }\n}\n/** @internal */\nfunction walk(err, fn) {\n if (fn?.(err))\n return err;\n if (err && typeof err === 'object' && 'cause' in err && err.cause)\n return walk(err.cause, fn);\n return fn ? null : err;\n}\n//# sourceMappingURL=Errors.js.map","const bigIntSuffix = '#__bigint';\n/**\n * Parses a JSON string, with support for `bigint`.\n *\n * @example\n * ```ts twoslash\n * import { Json } from 'ox'\n *\n * const json = Json.parse('{\"foo\":\"bar\",\"baz\":\"69420694206942069420694206942069420694206942069420#__bigint\"}')\n * // @log: {\n * // @log: foo: 'bar',\n * // @log: baz: 69420694206942069420694206942069420694206942069420n\n * // @log: }\n * ```\n *\n * @param string - The value to parse.\n * @param reviver - A function that transforms the results.\n * @returns The parsed value.\n */\nexport function parse(string, reviver) {\n return JSON.parse(string, (key, value_) => {\n const value = value_;\n if (typeof value === 'string' && value.endsWith(bigIntSuffix))\n return BigInt(value.slice(0, -bigIntSuffix.length));\n return typeof reviver === 'function' ? reviver(key, value) : value;\n });\n}\n/**\n * Stringifies a value to its JSON representation, with support for `bigint`.\n *\n * @example\n * ```ts twoslash\n * import { Json } from 'ox'\n *\n * const json = Json.stringify({\n * foo: 'bar',\n * baz: 69420694206942069420694206942069420694206942069420n,\n * })\n * // @log: '{\"foo\":\"bar\",\"baz\":\"69420694206942069420694206942069420694206942069420#__bigint\"}'\n * ```\n *\n * @param value - The value to stringify.\n * @param replacer - A function that transforms the results. It is passed the key and value of the property, and must return the value to be used in the JSON string. If this function returns `undefined`, the property is not included in the resulting JSON string.\n * @param space - A string or number that determines the indentation of the JSON string. If it is a number, it indicates the number of spaces to use as indentation; if it is a string (e.g. `'\\t'`), it uses the string as the indentation character.\n * @returns The JSON string.\n */\nexport function stringify(value, replacer, space) {\n return JSON.stringify(value, (key, value) => {\n if (typeof replacer === 'function')\n return replacer(key, value);\n if (typeof value === 'bigint')\n return value.toString() + bigIntSuffix;\n return value;\n }, space);\n}\n//# sourceMappingURL=Json.js.map","import * as Bytes from '../Bytes.js';\n/** @internal */\nexport function assertSize(bytes, size_) {\n if (Bytes.size(bytes) > size_)\n throw new Bytes.SizeOverflowError({\n givenSize: Bytes.size(bytes),\n maxSize: size_,\n });\n}\n/** @internal */\nexport function assertStartOffset(value, start) {\n if (typeof start === 'number' && start > 0 && start > Bytes.size(value) - 1)\n throw new Bytes.SliceOffsetOutOfBoundsError({\n offset: start,\n position: 'start',\n size: Bytes.size(value),\n });\n}\n/** @internal */\nexport function assertEndOffset(value, start, end) {\n if (typeof start === 'number' &&\n typeof end === 'number' &&\n Bytes.size(value) !== end - start) {\n throw new Bytes.SliceOffsetOutOfBoundsError({\n offset: end,\n position: 'end',\n size: Bytes.size(value),\n });\n }\n}\n/** @internal */\nexport const charCodeMap = {\n zero: 48,\n nine: 57,\n A: 65,\n F: 70,\n a: 97,\n f: 102,\n};\n/** @internal */\nexport function charCodeToBase16(char) {\n if (char >= charCodeMap.zero && char <= charCodeMap.nine)\n return char - charCodeMap.zero;\n if (char >= charCodeMap.A && char <= charCodeMap.F)\n return char - (charCodeMap.A - 10);\n if (char >= charCodeMap.a && char <= charCodeMap.f)\n return char - (charCodeMap.a - 10);\n return undefined;\n}\n/** @internal */\nexport function pad(bytes, options = {}) {\n const { dir, size = 32 } = options;\n if (size === 0)\n return bytes;\n if (bytes.length > size)\n throw new Bytes.SizeExceedsPaddingSizeError({\n size: bytes.length,\n targetSize: size,\n type: 'Bytes',\n });\n const paddedBytes = new Uint8Array(size);\n for (let i = 0; i < size; i++) {\n const padEnd = dir === 'right';\n paddedBytes[padEnd ? i : size - i - 1] =\n bytes[padEnd ? i : bytes.length - i - 1];\n }\n return paddedBytes;\n}\n/** @internal */\nexport function trim(value, options = {}) {\n const { dir = 'left' } = options;\n let data = value;\n let sliceLength = 0;\n for (let i = 0; i < data.length - 1; i++) {\n if (data[dir === 'left' ? i : data.length - i - 1].toString() === '0')\n sliceLength++;\n else\n break;\n }\n data =\n dir === 'left'\n ? data.slice(sliceLength)\n : data.slice(0, data.length - sliceLength);\n return data;\n}\n//# sourceMappingURL=bytes.js.map","import * as Hex from '../Hex.js';\n/** @internal */\nexport function assertSize(hex, size_) {\n if (Hex.size(hex) > size_)\n throw new Hex.SizeOverflowError({\n givenSize: Hex.size(hex),\n maxSize: size_,\n });\n}\n/** @internal */\nexport function assertStartOffset(value, start) {\n if (typeof start === 'number' && start > 0 && start > Hex.size(value) - 1)\n throw new Hex.SliceOffsetOutOfBoundsError({\n offset: start,\n position: 'start',\n size: Hex.size(value),\n });\n}\n/** @internal */\nexport function assertEndOffset(value, start, end) {\n if (typeof start === 'number' &&\n typeof end === 'number' &&\n Hex.size(value) !== end - start) {\n throw new Hex.SliceOffsetOutOfBoundsError({\n offset: end,\n position: 'end',\n size: Hex.size(value),\n });\n }\n}\n/** @internal */\nexport function pad(hex_, options = {}) {\n const { dir, size = 32 } = options;\n if (size === 0)\n return hex_;\n const hex = hex_.replace('0x', '');\n if (hex.length > size * 2)\n throw new Hex.SizeExceedsPaddingSizeError({\n size: Math.ceil(hex.length / 2),\n targetSize: size,\n type: 'Hex',\n });\n return `0x${hex[dir === 'right' ? 'padEnd' : 'padStart'](size * 2, '0')}`;\n}\n/** @internal */\nexport function trim(value, options = {}) {\n const { dir = 'left' } = options;\n let data = value.replace('0x', '');\n let sliceLength = 0;\n for (let i = 0; i < data.length - 1; i++) {\n if (data[dir === 'left' ? i : data.length - i - 1].toString() === '0')\n sliceLength++;\n else\n break;\n }\n data =\n dir === 'left'\n ? data.slice(sliceLength)\n : data.slice(0, data.length - sliceLength);\n if (data === '0')\n return '0x';\n if (dir === 'right' && data.length % 2 === 1)\n return `0x${data}0`;\n return `0x${data}`;\n}\n//# sourceMappingURL=hex.js.map","import { equalBytes } from '@noble/curves/abstract/utils';\nimport * as Errors from './Errors.js';\nimport * as Hex from './Hex.js';\nimport * as Json from './Json.js';\nimport * as internal from './internal/bytes.js';\nimport * as internal_hex from './internal/hex.js';\nconst decoder = /*#__PURE__*/ new TextDecoder();\nconst encoder = /*#__PURE__*/ new TextEncoder();\n/**\n * Asserts if the given value is {@link ox#Bytes.Bytes}.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.assert('abc')\n * // @error: Bytes.InvalidBytesTypeError:\n * // @error: Value `\"abc\"` of type `string` is an invalid Bytes value.\n * // @error: Bytes values must be of type `Uint8Array`.\n * ```\n *\n * @param value - Value to assert.\n */\nexport function assert(value) {\n if (value instanceof Uint8Array)\n return;\n if (!value)\n throw new InvalidBytesTypeError(value);\n if (typeof value !== 'object')\n throw new InvalidBytesTypeError(value);\n if (!('BYTES_PER_ELEMENT' in value))\n throw new InvalidBytesTypeError(value);\n if (value.BYTES_PER_ELEMENT !== 1 || value.constructor.name !== 'Uint8Array')\n throw new InvalidBytesTypeError(value);\n}\n/**\n * Concatenates two or more {@link ox#Bytes.Bytes}.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * const bytes = Bytes.concat(\n * Bytes.from([1]),\n * Bytes.from([69]),\n * Bytes.from([420, 69]),\n * )\n * // @log: Uint8Array [ 1, 69, 420, 69 ]\n * ```\n *\n * @param values - Values to concatenate.\n * @returns Concatenated {@link ox#Bytes.Bytes}.\n */\nexport function concat(...values) {\n let length = 0;\n for (const arr of values) {\n length += arr.length;\n }\n const result = new Uint8Array(length);\n for (let i = 0, index = 0; i < values.length; i++) {\n const arr = values[i];\n result.set(arr, index);\n index += arr.length;\n }\n return result;\n}\n/**\n * Instantiates a {@link ox#Bytes.Bytes} value from a `Uint8Array`, a hex string, or an array of unsigned 8-bit integers.\n *\n * :::tip\n *\n * To instantiate from a **Boolean**, **String**, or **Number**, use one of the following:\n *\n * - `Bytes.fromBoolean`\n *\n * - `Bytes.fromString`\n *\n * - `Bytes.fromNumber`\n *\n * :::\n *\n * @example\n * ```ts twoslash\n * // @noErrors\n * import { Bytes } from 'ox'\n *\n * const data = Bytes.from([255, 124, 5, 4])\n * // @log: Uint8Array([255, 124, 5, 4])\n *\n * const data = Bytes.from('0xdeadbeef')\n * // @log: Uint8Array([222, 173, 190, 239])\n * ```\n *\n * @param value - Value to convert.\n * @returns A {@link ox#Bytes.Bytes} instance.\n */\nexport function from(value) {\n if (value instanceof Uint8Array)\n return value;\n if (typeof value === 'string')\n return fromHex(value);\n return fromArray(value);\n}\n/**\n * Converts an array of unsigned 8-bit integers into {@link ox#Bytes.Bytes}.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * const data = Bytes.fromArray([255, 124, 5, 4])\n * // @log: Uint8Array([255, 124, 5, 4])\n * ```\n *\n * @param value - Value to convert.\n * @returns A {@link ox#Bytes.Bytes} instance.\n */\nexport function fromArray(value) {\n return value instanceof Uint8Array ? value : new Uint8Array(value);\n}\n/**\n * Encodes a boolean value into {@link ox#Bytes.Bytes}.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * const data = Bytes.fromBoolean(true)\n * // @log: Uint8Array([1])\n * ```\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * const data = Bytes.fromBoolean(true, { size: 32 })\n * // @log: Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1])\n * ```\n *\n * @param value - Boolean value to encode.\n * @param options - Encoding options.\n * @returns Encoded {@link ox#Bytes.Bytes}.\n */\nexport function fromBoolean(value, options = {}) {\n const { size } = options;\n const bytes = new Uint8Array(1);\n bytes[0] = Number(value);\n if (typeof size === 'number') {\n internal.assertSize(bytes, size);\n return padLeft(bytes, size);\n }\n return bytes;\n}\n/**\n * Encodes a {@link ox#Hex.Hex} value into {@link ox#Bytes.Bytes}.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * const data = Bytes.fromHex('0x48656c6c6f20776f726c6421')\n * // @log: Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\n * ```\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * const data = Bytes.fromHex('0x48656c6c6f20776f726c6421', { size: 32 })\n * // @log: Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])\n * ```\n *\n * @param value - {@link ox#Hex.Hex} value to encode.\n * @param options - Encoding options.\n * @returns Encoded {@link ox#Bytes.Bytes}.\n */\nexport function fromHex(value, options = {}) {\n const { size } = options;\n let hex = value;\n if (size) {\n internal_hex.assertSize(value, size);\n hex = Hex.padRight(value, size);\n }\n let hexString = hex.slice(2);\n if (hexString.length % 2)\n hexString = `0${hexString}`;\n const length = hexString.length / 2;\n const bytes = new Uint8Array(length);\n for (let index = 0, j = 0; index < length; index++) {\n const nibbleLeft = internal.charCodeToBase16(hexString.charCodeAt(j++));\n const nibbleRight = internal.charCodeToBase16(hexString.charCodeAt(j++));\n if (nibbleLeft === undefined || nibbleRight === undefined) {\n throw new Errors.BaseError(`Invalid byte sequence (\"${hexString[j - 2]}${hexString[j - 1]}\" in \"${hexString}\").`);\n }\n bytes[index] = nibbleLeft * 16 + nibbleRight;\n }\n return bytes;\n}\n/**\n * Encodes a number value into {@link ox#Bytes.Bytes}.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * const data = Bytes.fromNumber(420)\n * // @log: Uint8Array([1, 164])\n * ```\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * const data = Bytes.fromNumber(420, { size: 4 })\n * // @log: Uint8Array([0, 0, 1, 164])\n * ```\n *\n * @param value - Number value to encode.\n * @param options - Encoding options.\n * @returns Encoded {@link ox#Bytes.Bytes}.\n */\nexport function fromNumber(value, options) {\n const hex = Hex.fromNumber(value, options);\n return fromHex(hex);\n}\n/**\n * Encodes a string into {@link ox#Bytes.Bytes}.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * const data = Bytes.fromString('Hello world!')\n * // @log: Uint8Array([72, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100, 33])\n * ```\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * const data = Bytes.fromString('Hello world!', { size: 32 })\n * // @log: Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])\n * ```\n *\n * @param value - String to encode.\n * @param options - Encoding options.\n * @returns Encoded {@link ox#Bytes.Bytes}.\n */\nexport function fromString(value, options = {}) {\n const { size } = options;\n const bytes = encoder.encode(value);\n if (typeof size === 'number') {\n internal.assertSize(bytes, size);\n return padRight(bytes, size);\n }\n return bytes;\n}\n/**\n * Checks if two {@link ox#Bytes.Bytes} values are equal.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.isEqual(Bytes.from([1]), Bytes.from([1]))\n * // @log: true\n *\n * Bytes.isEqual(Bytes.from([1]), Bytes.from([2]))\n * // @log: false\n * ```\n *\n * @param bytesA - First {@link ox#Bytes.Bytes} value.\n * @param bytesB - Second {@link ox#Bytes.Bytes} value.\n * @returns `true` if the two values are equal, otherwise `false`.\n */\nexport function isEqual(bytesA, bytesB) {\n return equalBytes(bytesA, bytesB);\n}\n/**\n * Pads a {@link ox#Bytes.Bytes} value to the left with zero bytes until it reaches the given `size` (default: 32 bytes).\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.padLeft(Bytes.from([1]), 4)\n * // @log: Uint8Array([0, 0, 0, 1])\n * ```\n *\n * @param value - {@link ox#Bytes.Bytes} value to pad.\n * @param size - Size to pad the {@link ox#Bytes.Bytes} value to.\n * @returns Padded {@link ox#Bytes.Bytes} value.\n */\nexport function padLeft(value, size) {\n return internal.pad(value, { dir: 'left', size });\n}\n/**\n * Pads a {@link ox#Bytes.Bytes} value to the right with zero bytes until it reaches the given `size` (default: 32 bytes).\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.padRight(Bytes.from([1]), 4)\n * // @log: Uint8Array([1, 0, 0, 0])\n * ```\n *\n * @param value - {@link ox#Bytes.Bytes} value to pad.\n * @param size - Size to pad the {@link ox#Bytes.Bytes} value to.\n * @returns Padded {@link ox#Bytes.Bytes} value.\n */\nexport function padRight(value, size) {\n return internal.pad(value, { dir: 'right', size });\n}\n/**\n * Generates random {@link ox#Bytes.Bytes} of the specified length.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * const bytes = Bytes.random(32)\n * // @log: Uint8Array([... x32])\n * ```\n *\n * @param length - Length of the random {@link ox#Bytes.Bytes} to generate.\n * @returns Random {@link ox#Bytes.Bytes} of the specified length.\n */\nexport function random(length) {\n return crypto.getRandomValues(new Uint8Array(length));\n}\n/**\n * Retrieves the size of a {@link ox#Bytes.Bytes} value.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.size(Bytes.from([1, 2, 3, 4]))\n * // @log: 4\n * ```\n *\n * @param value - {@link ox#Bytes.Bytes} value.\n * @returns Size of the {@link ox#Bytes.Bytes} value.\n */\nexport function size(value) {\n return value.length;\n}\n/**\n * Returns a section of a {@link ox#Bytes.Bytes} value given a start/end bytes offset.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.slice(\n * Bytes.from([1, 2, 3, 4, 5, 6, 7, 8, 9]),\n * 1,\n * 4,\n * )\n * // @log: Uint8Array([2, 3, 4])\n * ```\n *\n * @param value - The {@link ox#Bytes.Bytes} value.\n * @param start - Start offset.\n * @param end - End offset.\n * @param options - Slice options.\n * @returns Sliced {@link ox#Bytes.Bytes} value.\n */\nexport function slice(value, start, end, options = {}) {\n const { strict } = options;\n internal.assertStartOffset(value, start);\n const value_ = value.slice(start, end);\n if (strict)\n internal.assertEndOffset(value_, start, end);\n return value_;\n}\n/**\n * Decodes a {@link ox#Bytes.Bytes} into a bigint.\n *\n * @example\n * ```ts\n * import { Bytes } from 'ox'\n *\n * Bytes.toBigInt(Bytes.from([1, 164]))\n * // @log: 420n\n * ```\n *\n * @param bytes - The {@link ox#Bytes.Bytes} to decode.\n * @param options - Decoding options.\n * @returns Decoded bigint.\n */\nexport function toBigInt(bytes, options = {}) {\n const { size } = options;\n if (typeof size !== 'undefined')\n internal.assertSize(bytes, size);\n const hex = Hex.fromBytes(bytes, options);\n return Hex.toBigInt(hex, options);\n}\n/**\n * Decodes a {@link ox#Bytes.Bytes} into a boolean.\n *\n * @example\n * ```ts\n * import { Bytes } from 'ox'\n *\n * Bytes.toBoolean(Bytes.from([1]))\n * // @log: true\n * ```\n *\n * @param bytes - The {@link ox#Bytes.Bytes} to decode.\n * @param options - Decoding options.\n * @returns Decoded boolean.\n */\nexport function toBoolean(bytes, options = {}) {\n const { size } = options;\n let bytes_ = bytes;\n if (typeof size !== 'undefined') {\n internal.assertSize(bytes_, size);\n bytes_ = trimLeft(bytes_);\n }\n if (bytes_.length > 1 || bytes_[0] > 1)\n throw new InvalidBytesBooleanError(bytes_);\n return Boolean(bytes_[0]);\n}\n/**\n * Encodes a {@link ox#Bytes.Bytes} value into a {@link ox#Hex.Hex} value.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.toHex(Bytes.from([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]))\n * // '0x48656c6c6f20576f726c6421'\n * ```\n *\n * @param value - The {@link ox#Bytes.Bytes} to decode.\n * @param options - Options.\n * @returns Decoded {@link ox#Hex.Hex} value.\n */\nexport function toHex(value, options = {}) {\n return Hex.fromBytes(value, options);\n}\n/**\n * Decodes a {@link ox#Bytes.Bytes} into a number.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.toNumber(Bytes.from([1, 164]))\n * // @log: 420\n * ```\n */\nexport function toNumber(bytes, options = {}) {\n const { size } = options;\n if (typeof size !== 'undefined')\n internal.assertSize(bytes, size);\n const hex = Hex.fromBytes(bytes, options);\n return Hex.toNumber(hex, options);\n}\n/**\n * Decodes a {@link ox#Bytes.Bytes} into a string.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * const data = Bytes.toString(Bytes.from([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]))\n * // @log: 'Hello world'\n * ```\n *\n * @param bytes - The {@link ox#Bytes.Bytes} to decode.\n * @param options - Options.\n * @returns Decoded string.\n */\nexport function toString(bytes, options = {}) {\n const { size } = options;\n let bytes_ = bytes;\n if (typeof size !== 'undefined') {\n internal.assertSize(bytes_, size);\n bytes_ = trimRight(bytes_);\n }\n return decoder.decode(bytes_);\n}\n/**\n * Trims leading zeros from a {@link ox#Bytes.Bytes} value.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.trimLeft(Bytes.from([0, 0, 0, 0, 1, 2, 3]))\n * // @log: Uint8Array([1, 2, 3])\n * ```\n *\n * @param value - {@link ox#Bytes.Bytes} value.\n * @returns Trimmed {@link ox#Bytes.Bytes} value.\n */\nexport function trimLeft(value) {\n return internal.trim(value, { dir: 'left' });\n}\n/**\n * Trims trailing zeros from a {@link ox#Bytes.Bytes} value.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.trimRight(Bytes.from([1, 2, 3, 0, 0, 0, 0]))\n * // @log: Uint8Array([1, 2, 3])\n * ```\n *\n * @param value - {@link ox#Bytes.Bytes} value.\n * @returns Trimmed {@link ox#Bytes.Bytes} value.\n */\nexport function trimRight(value) {\n return internal.trim(value, { dir: 'right' });\n}\n/**\n * Checks if the given value is {@link ox#Bytes.Bytes}.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.validate('0x')\n * // @log: false\n *\n * Bytes.validate(Bytes.from([1, 2, 3]))\n * // @log: true\n * ```\n *\n * @param value - Value to check.\n * @returns `true` if the value is {@link ox#Bytes.Bytes}, otherwise `false`.\n */\nexport function validate(value) {\n try {\n assert(value);\n return true;\n }\n catch {\n return false;\n }\n}\n/**\n * Thrown when the bytes value cannot be represented as a boolean.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.toBoolean(Bytes.from([5]))\n * // @error: Bytes.InvalidBytesBooleanError: Bytes value `[5]` is not a valid boolean.\n * // @error: The bytes array must contain a single byte of either a `0` or `1` value.\n * ```\n */\nexport class InvalidBytesBooleanError extends Errors.BaseError {\n constructor(bytes) {\n super(`Bytes value \\`${bytes}\\` is not a valid boolean.`, {\n metaMessages: [\n 'The bytes array must contain a single byte of either a `0` or `1` value.',\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Bytes.InvalidBytesBooleanError'\n });\n }\n}\n/**\n * Thrown when a value cannot be converted to bytes.\n *\n * @example\n * ```ts twoslash\n * // @noErrors\n * import { Bytes } from 'ox'\n *\n * Bytes.from('foo')\n * // @error: Bytes.InvalidBytesTypeError: Value `foo` of type `string` is an invalid Bytes value.\n * ```\n */\nexport class InvalidBytesTypeError extends Errors.BaseError {\n constructor(value) {\n super(`Value \\`${typeof value === 'object' ? Json.stringify(value) : value}\\` of type \\`${typeof value}\\` is an invalid Bytes value.`, {\n metaMessages: ['Bytes values must be of type `Bytes`.'],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Bytes.InvalidBytesTypeError'\n });\n }\n}\n/**\n * Thrown when a size exceeds the maximum allowed size.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.fromString('Hello World!', { size: 8 })\n * // @error: Bytes.SizeOverflowError: Size cannot exceed `8` bytes. Given size: `12` bytes.\n * ```\n */\nexport class SizeOverflowError extends Errors.BaseError {\n constructor({ givenSize, maxSize }) {\n super(`Size cannot exceed \\`${maxSize}\\` bytes. Given size: \\`${givenSize}\\` bytes.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Bytes.SizeOverflowError'\n });\n }\n}\n/**\n * Thrown when a slice offset is out-of-bounds.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.slice(Bytes.from([1, 2, 3]), 4)\n * // @error: Bytes.SliceOffsetOutOfBoundsError: Slice starting at offset `4` is out-of-bounds (size: `3`).\n * ```\n */\nexport class SliceOffsetOutOfBoundsError extends Errors.BaseError {\n constructor({ offset, position, size, }) {\n super(`Slice ${position === 'start' ? 'starting' : 'ending'} at offset \\`${offset}\\` is out-of-bounds (size: \\`${size}\\`).`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Bytes.SliceOffsetOutOfBoundsError'\n });\n }\n}\n/**\n * Thrown when a the padding size exceeds the maximum allowed size.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.padLeft(Bytes.fromString('Hello World!'), 8)\n * // @error: [Bytes.SizeExceedsPaddingSizeError: Bytes size (`12`) exceeds padding size (`8`).\n * ```\n */\nexport class SizeExceedsPaddingSizeError extends Errors.BaseError {\n constructor({ size, targetSize, type, }) {\n super(`${type.charAt(0).toUpperCase()}${type\n .slice(1)\n .toLowerCase()} size (\\`${size}\\`) exceeds padding size (\\`${targetSize}\\`).`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Bytes.SizeExceedsPaddingSizeError'\n });\n }\n}\n//# sourceMappingURL=Bytes.js.map","import { equalBytes } from '@noble/curves/abstract/utils';\nimport * as Bytes from './Bytes.js';\nimport * as Errors from './Errors.js';\nimport * as Json from './Json.js';\nimport * as internal_bytes from './internal/bytes.js';\nimport * as internal from './internal/hex.js';\nconst encoder = /*#__PURE__*/ new TextEncoder();\nconst hexes = /*#__PURE__*/ Array.from({ length: 256 }, (_v, i) => i.toString(16).padStart(2, '0'));\n/**\n * Asserts if the given value is {@link ox#Hex.Hex}.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.assert('abc')\n * // @error: InvalidHexValueTypeError:\n * // @error: Value `\"abc\"` of type `string` is an invalid hex type.\n * // @error: Hex types must be represented as `\"0x\\${string}\"`.\n * ```\n *\n * @param value - The value to assert.\n * @param options - Options.\n */\nexport function assert(value, options = {}) {\n const { strict = false } = options;\n if (!value)\n throw new InvalidHexTypeError(value);\n if (typeof value !== 'string')\n throw new InvalidHexTypeError(value);\n if (strict) {\n if (!/^0x[0-9a-fA-F]*$/.test(value))\n throw new InvalidHexValueError(value);\n }\n if (!value.startsWith('0x'))\n throw new InvalidHexValueError(value);\n}\n/**\n * Concatenates two or more {@link ox#Hex.Hex}.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.concat('0x123', '0x456')\n * // @log: '0x123456'\n * ```\n *\n * @param values - The {@link ox#Hex.Hex} values to concatenate.\n * @returns The concatenated {@link ox#Hex.Hex} value.\n */\nexport function concat(...values) {\n return `0x${values.reduce((acc, x) => acc + x.replace('0x', ''), '')}`;\n}\n/**\n * Instantiates a {@link ox#Hex.Hex} value from a hex string or {@link ox#Bytes.Bytes} value.\n *\n * :::tip\n *\n * To instantiate from a **Boolean**, **String**, or **Number**, use one of the following:\n *\n * - `Hex.fromBoolean`\n *\n * - `Hex.fromString`\n *\n * - `Hex.fromNumber`\n *\n * :::\n *\n * @example\n * ```ts twoslash\n * import { Bytes, Hex } from 'ox'\n *\n * Hex.from('0x48656c6c6f20576f726c6421')\n * // @log: '0x48656c6c6f20576f726c6421'\n *\n * Hex.from(Bytes.from([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]))\n * // @log: '0x48656c6c6f20576f726c6421'\n * ```\n *\n * @param value - The {@link ox#Bytes.Bytes} value to encode.\n * @returns The encoded {@link ox#Hex.Hex} value.\n */\nexport function from(value) {\n if (value instanceof Uint8Array)\n return fromBytes(value);\n if (Array.isArray(value))\n return fromBytes(new Uint8Array(value));\n return value;\n}\n/**\n * Encodes a boolean into a {@link ox#Hex.Hex} value.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.fromBoolean(true)\n * // @log: '0x1'\n *\n * Hex.fromBoolean(false)\n * // @log: '0x0'\n *\n * Hex.fromBoolean(true, { size: 32 })\n * // @log: '0x0000000000000000000000000000000000000000000000000000000000000001'\n * ```\n *\n * @param value - The boolean value to encode.\n * @param options - Options.\n * @returns The encoded {@link ox#Hex.Hex} value.\n */\nexport function fromBoolean(value, options = {}) {\n const hex = `0x${Number(value)}`;\n if (typeof options.size === 'number') {\n internal.assertSize(hex, options.size);\n return padLeft(hex, options.size);\n }\n return hex;\n}\n/**\n * Encodes a {@link ox#Bytes.Bytes} value into a {@link ox#Hex.Hex} value.\n *\n * @example\n * ```ts twoslash\n * import { Bytes, Hex } from 'ox'\n *\n * Hex.fromBytes(Bytes.from([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]))\n * // @log: '0x48656c6c6f20576f726c6421'\n * ```\n *\n * @param value - The {@link ox#Bytes.Bytes} value to encode.\n * @param options - Options.\n * @returns The encoded {@link ox#Hex.Hex} value.\n */\nexport function fromBytes(value, options = {}) {\n let string = '';\n for (let i = 0; i < value.length; i++)\n string += hexes[value[i]];\n const hex = `0x${string}`;\n if (typeof options.size === 'number') {\n internal.assertSize(hex, options.size);\n return padRight(hex, options.size);\n }\n return hex;\n}\n/**\n * Encodes a number or bigint into a {@link ox#Hex.Hex} value.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.fromNumber(420)\n * // @log: '0x1a4'\n *\n * Hex.fromNumber(420, { size: 32 })\n * // @log: '0x00000000000000000000000000000000000000000000000000000000000001a4'\n * ```\n *\n * @param value - The number or bigint value to encode.\n * @param options - Options.\n * @returns The encoded {@link ox#Hex.Hex} value.\n */\nexport function fromNumber(value, options = {}) {\n const { signed, size } = options;\n const value_ = BigInt(value);\n let maxValue;\n if (size) {\n if (signed)\n maxValue = (1n << (BigInt(size) * 8n - 1n)) - 1n;\n else\n maxValue = 2n ** (BigInt(size) * 8n) - 1n;\n }\n else if (typeof value === 'number') {\n maxValue = BigInt(Number.MAX_SAFE_INTEGER);\n }\n const minValue = typeof maxValue === 'bigint' && signed ? -maxValue - 1n : 0;\n if ((maxValue && value_ > maxValue) || value_ < minValue) {\n const suffix = typeof value === 'bigint' ? 'n' : '';\n throw new IntegerOutOfRangeError({\n max: maxValue ? `${maxValue}${suffix}` : undefined,\n min: `${minValue}${suffix}`,\n signed,\n size,\n value: `${value}${suffix}`,\n });\n }\n const stringValue = (signed && value_ < 0 ? (1n << BigInt(size * 8)) + BigInt(value_) : value_).toString(16);\n const hex = `0x${stringValue}`;\n if (size)\n return padLeft(hex, size);\n return hex;\n}\n/**\n * Encodes a string into a {@link ox#Hex.Hex} value.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n * Hex.fromString('Hello World!')\n * // '0x48656c6c6f20576f726c6421'\n *\n * Hex.fromString('Hello World!', { size: 32 })\n * // '0x48656c6c6f20576f726c64210000000000000000000000000000000000000000'\n * ```\n *\n * @param value - The string value to encode.\n * @param options - Options.\n * @returns The encoded {@link ox#Hex.Hex} value.\n */\nexport function fromString(value, options = {}) {\n return fromBytes(encoder.encode(value), options);\n}\n/**\n * Checks if two {@link ox#Hex.Hex} values are equal.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.isEqual('0xdeadbeef', '0xdeadbeef')\n * // @log: true\n *\n * Hex.isEqual('0xda', '0xba')\n * // @log: false\n * ```\n *\n * @param hexA - The first {@link ox#Hex.Hex} value.\n * @param hexB - The second {@link ox#Hex.Hex} value.\n * @returns `true` if the two {@link ox#Hex.Hex} values are equal, `false` otherwise.\n */\nexport function isEqual(hexA, hexB) {\n return equalBytes(Bytes.fromHex(hexA), Bytes.fromHex(hexB));\n}\n/**\n * Pads a {@link ox#Hex.Hex} value to the left with zero bytes until it reaches the given `size` (default: 32 bytes).\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.padLeft('0x1234', 4)\n * // @log: '0x00001234'\n * ```\n *\n * @param value - The {@link ox#Hex.Hex} value to pad.\n * @param size - The size (in bytes) of the output hex value.\n * @returns The padded {@link ox#Hex.Hex} value.\n */\nexport function padLeft(value, size) {\n return internal.pad(value, { dir: 'left', size });\n}\n/**\n * Pads a {@link ox#Hex.Hex} value to the right with zero bytes until it reaches the given `size` (default: 32 bytes).\n *\n * @example\n * ```ts\n * import { Hex } from 'ox'\n *\n * Hex.padRight('0x1234', 4)\n * // @log: '0x12340000'\n * ```\n *\n * @param value - The {@link ox#Hex.Hex} value to pad.\n * @param size - The size (in bytes) of the output hex value.\n * @returns The padded {@link ox#Hex.Hex} value.\n */\nexport function padRight(value, size) {\n return internal.pad(value, { dir: 'right', size });\n}\n/**\n * Generates a random {@link ox#Hex.Hex} value of the specified length.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * const hex = Hex.random(32)\n * // @log: '0x...'\n * ```\n *\n * @returns Random {@link ox#Hex.Hex} value.\n */\nexport function random(length) {\n return fromBytes(Bytes.random(length));\n}\n/**\n * Returns a section of a {@link ox#Bytes.Bytes} value given a start/end bytes offset.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.slice('0x0123456789', 1, 4)\n * // @log: '0x234567'\n * ```\n *\n * @param value - The {@link ox#Hex.Hex} value to slice.\n * @param start - The start offset (in bytes).\n * @param end - The end offset (in bytes).\n * @param options - Options.\n * @returns The sliced {@link ox#Hex.Hex} value.\n */\nexport function slice(value, start, end, options = {}) {\n const { strict } = options;\n internal.assertStartOffset(value, start);\n const value_ = `0x${value\n .replace('0x', '')\n .slice((start ?? 0) * 2, (end ?? value.length) * 2)}`;\n if (strict)\n internal.assertEndOffset(value_, start, end);\n return value_;\n}\n/**\n * Retrieves the size of a {@link ox#Hex.Hex} value (in bytes).\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.size('0xdeadbeef')\n * // @log: 4\n * ```\n *\n * @param value - The {@link ox#Hex.Hex} value to get the size of.\n * @returns The size of the {@link ox#Hex.Hex} value (in bytes).\n */\nexport function size(value) {\n return Math.ceil((value.length - 2) / 2);\n}\n/**\n * Trims leading zeros from a {@link ox#Hex.Hex} value.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.trimLeft('0x00000000deadbeef')\n * // @log: '0xdeadbeef'\n * ```\n *\n * @param value - The {@link ox#Hex.Hex} value to trim.\n * @returns The trimmed {@link ox#Hex.Hex} value.\n */\nexport function trimLeft(value) {\n return internal.trim(value, { dir: 'left' });\n}\n/**\n * Trims trailing zeros from a {@link ox#Hex.Hex} value.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.trimRight('0xdeadbeef00000000')\n * // @log: '0xdeadbeef'\n * ```\n *\n * @param value - The {@link ox#Hex.Hex} value to trim.\n * @returns The trimmed {@link ox#Hex.Hex} value.\n */\nexport function trimRight(value) {\n return internal.trim(value, { dir: 'right' });\n}\n/**\n * Decodes a {@link ox#Hex.Hex} value into a BigInt.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.toBigInt('0x1a4')\n * // @log: 420n\n *\n * Hex.toBigInt('0x00000000000000000000000000000000000000000000000000000000000001a4', { size: 32 })\n * // @log: 420n\n * ```\n *\n * @param hex - The {@link ox#Hex.Hex} value to decode.\n * @param options - Options.\n * @returns The decoded BigInt.\n */\nexport function toBigInt(hex, options = {}) {\n const { signed } = options;\n if (options.size)\n internal.assertSize(hex, options.size);\n const value = BigInt(hex);\n if (!signed)\n return value;\n const size = (hex.length - 2) / 2;\n const max_unsigned = (1n << (BigInt(size) * 8n)) - 1n;\n const max_signed = max_unsigned >> 1n;\n if (value <= max_signed)\n return value;\n return value - max_unsigned - 1n;\n}\n/**\n * Decodes a {@link ox#Hex.Hex} value into a boolean.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.toBoolean('0x01')\n * // @log: true\n *\n * Hex.toBoolean('0x0000000000000000000000000000000000000000000000000000000000000001', { size: 32 })\n * // @log: true\n * ```\n *\n * @param hex - The {@link ox#Hex.Hex} value to decode.\n * @param options - Options.\n * @returns The decoded boolean.\n */\nexport function toBoolean(hex, options = {}) {\n if (options.size)\n internal.assertSize(hex, options.size);\n const hex_ = trimLeft(hex);\n if (hex_ === '0x')\n return false;\n if (hex_ === '0x1')\n return true;\n throw new InvalidHexBooleanError(hex);\n}\n/**\n * Decodes a {@link ox#Hex.Hex} value into a {@link ox#Bytes.Bytes}.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * const data = Hex.toBytes('0x48656c6c6f20776f726c6421')\n * // @log: Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\n * ```\n *\n * @param hex - The {@link ox#Hex.Hex} value to decode.\n * @param options - Options.\n * @returns The decoded {@link ox#Bytes.Bytes}.\n */\nexport function toBytes(hex, options = {}) {\n return Bytes.fromHex(hex, options);\n}\n/**\n * Decodes a {@link ox#Hex.Hex} value into a number.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.toNumber('0x1a4')\n * // @log: 420\n *\n * Hex.toNumber('0x00000000000000000000000000000000000000000000000000000000000001a4', { size: 32 })\n * // @log: 420\n * ```\n *\n * @param hex - The {@link ox#Hex.Hex} value to decode.\n * @param options - Options.\n * @returns The decoded number.\n */\nexport function toNumber(hex, options = {}) {\n const { signed, size } = options;\n if (!signed && !size)\n return Number(hex);\n return Number(toBigInt(hex, options));\n}\n/**\n * Decodes a {@link ox#Hex.Hex} value into a string.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.toString('0x48656c6c6f20576f726c6421')\n * // @log: 'Hello world!'\n *\n * Hex.toString('0x48656c6c6f20576f726c64210000000000000000000000000000000000000000', {\n * size: 32,\n * })\n * // @log: 'Hello world'\n * ```\n *\n * @param hex - The {@link ox#Hex.Hex} value to decode.\n * @param options - Options.\n * @returns The decoded string.\n */\nexport function toString(hex, options = {}) {\n const { size } = options;\n let bytes = Bytes.fromHex(hex);\n if (size) {\n internal_bytes.assertSize(bytes, size);\n bytes = Bytes.trimRight(bytes);\n }\n return new TextDecoder().decode(bytes);\n}\n/**\n * Checks if the given value is {@link ox#Hex.Hex}.\n *\n * @example\n * ```ts twoslash\n * import { Bytes, Hex } from 'ox'\n *\n * Hex.validate('0xdeadbeef')\n * // @log: true\n *\n * Hex.validate(Bytes.from([1, 2, 3]))\n * // @log: false\n * ```\n *\n * @param value - The value to check.\n * @param options - Options.\n * @returns `true` if the value is a {@link ox#Hex.Hex}, `false` otherwise.\n */\nexport function validate(value, options = {}) {\n const { strict = false } = options;\n try {\n assert(value, { strict });\n return true;\n }\n catch {\n return false;\n }\n}\n/**\n * Thrown when the provided integer is out of range, and cannot be represented as a hex value.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.fromNumber(420182738912731283712937129)\n * // @error: Hex.IntegerOutOfRangeError: Number \\`4.2018273891273126e+26\\` is not in safe unsigned integer range (`0` to `9007199254740991`)\n * ```\n */\nexport class IntegerOutOfRangeError extends Errors.BaseError {\n constructor({ max, min, signed, size, value, }) {\n super(`Number \\`${value}\\` is not in safe${size ? ` ${size * 8}-bit` : ''}${signed ? ' signed' : ' unsigned'} integer range ${max ? `(\\`${min}\\` to \\`${max}\\`)` : `(above \\`${min}\\`)`}`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Hex.IntegerOutOfRangeError'\n });\n }\n}\n/**\n * Thrown when the provided hex value cannot be represented as a boolean.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.toBoolean('0xa')\n * // @error: Hex.InvalidHexBooleanError: Hex value `\"0xa\"` is not a valid boolean.\n * // @error: The hex value must be `\"0x0\"` (false) or `\"0x1\"` (true).\n * ```\n */\nexport class InvalidHexBooleanError extends Errors.BaseError {\n constructor(hex) {\n super(`Hex value \\`\"${hex}\"\\` is not a valid boolean.`, {\n metaMessages: [\n 'The hex value must be `\"0x0\"` (false) or `\"0x1\"` (true).',\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Hex.InvalidHexBooleanError'\n });\n }\n}\n/**\n * Thrown when the provided value is not a valid hex type.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.assert(1)\n * // @error: Hex.InvalidHexTypeError: Value `1` of type `number` is an invalid hex type.\n * ```\n */\nexport class InvalidHexTypeError extends Errors.BaseError {\n constructor(value) {\n super(`Value \\`${typeof value === 'object' ? Json.stringify(value) : value}\\` of type \\`${typeof value}\\` is an invalid hex type.`, {\n metaMessages: ['Hex types must be represented as `\"0x${string}\"`.'],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Hex.InvalidHexTypeError'\n });\n }\n}\n/**\n * Thrown when the provided hex value is invalid.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.assert('0x0123456789abcdefg')\n * // @error: Hex.InvalidHexValueError: Value `0x0123456789abcdefg` is an invalid hex value.\n * // @error: Hex values must start with `\"0x\"` and contain only hexadecimal characters (0-9, a-f, A-F).\n * ```\n */\nexport class InvalidHexValueError extends Errors.BaseError {\n constructor(value) {\n super(`Value \\`${value}\\` is an invalid hex value.`, {\n metaMessages: [\n 'Hex values must start with `\"0x\"` and contain only hexadecimal characters (0-9, a-f, A-F).',\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Hex.InvalidHexValueError'\n });\n }\n}\n/**\n * Thrown when the provided hex value is an odd length.\n *\n * @example\n * ```ts twoslash\n * import { Bytes } from 'ox'\n *\n * Bytes.fromHex('0xabcde')\n * // @error: Hex.InvalidLengthError: Hex value `\"0xabcde\"` is an odd length (5 nibbles).\n * ```\n */\nexport class InvalidLengthError extends Errors.BaseError {\n constructor(value) {\n super(`Hex value \\`\"${value}\"\\` is an odd length (${value.length - 2} nibbles).`, {\n metaMessages: ['It must be an even length.'],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Hex.InvalidLengthError'\n });\n }\n}\n/**\n * Thrown when the size of the value exceeds the expected max size.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.fromString('Hello World!', { size: 8 })\n * // @error: Hex.SizeOverflowError: Size cannot exceed `8` bytes. Given size: `12` bytes.\n * ```\n */\nexport class SizeOverflowError extends Errors.BaseError {\n constructor({ givenSize, maxSize }) {\n super(`Size cannot exceed \\`${maxSize}\\` bytes. Given size: \\`${givenSize}\\` bytes.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Hex.SizeOverflowError'\n });\n }\n}\n/**\n * Thrown when the slice offset exceeds the bounds of the value.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.slice('0x0123456789', 6)\n * // @error: Hex.SliceOffsetOutOfBoundsError: Slice starting at offset `6` is out-of-bounds (size: `5`).\n * ```\n */\nexport class SliceOffsetOutOfBoundsError extends Errors.BaseError {\n constructor({ offset, position, size, }) {\n super(`Slice ${position === 'start' ? 'starting' : 'ending'} at offset \\`${offset}\\` is out-of-bounds (size: \\`${size}\\`).`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Hex.SliceOffsetOutOfBoundsError'\n });\n }\n}\n/**\n * Thrown when the size of the value exceeds the pad size.\n *\n * @example\n * ```ts twoslash\n * import { Hex } from 'ox'\n *\n * Hex.padLeft('0x1a4e12a45a21323123aaa87a897a897a898a6567a578a867a98778a667a85a875a87a6a787a65a675a6a9', 32)\n * // @error: Hex.SizeExceedsPaddingSizeError: Hex size (`43`) exceeds padding size (`32`).\n * ```\n */\nexport class SizeExceedsPaddingSizeError extends Errors.BaseError {\n constructor({ size, targetSize, type, }) {\n super(`${type.charAt(0).toUpperCase()}${type\n .slice(1)\n .toLowerCase()} size (\\`${size}\\`) exceeds padding size (\\`${targetSize}\\`).`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Hex.SizeExceedsPaddingSizeError'\n });\n }\n}\n//# sourceMappingURL=Hex.js.map","import * as Hex from './Hex.js';\n/**\n * Converts a {@link ox#Withdrawal.Rpc} to an {@link ox#Withdrawal.Withdrawal}.\n *\n * @example\n * ```ts twoslash\n * import { Withdrawal } from 'ox'\n *\n * const withdrawal = Withdrawal.fromRpc({\n * address: '0x00000000219ab540356cBB839Cbe05303d7705Fa',\n * amount: '0x620323',\n * index: '0x0',\n * validatorIndex: '0x1',\n * })\n * // @log: {\n * // @log: address: '0x00000000219ab540356cBB839Cbe05303d7705Fa',\n * // @log: amount: 6423331n,\n * // @log: index: 0,\n * // @log: validatorIndex: 1\n * // @log: }\n * ```\n *\n * @param withdrawal - The RPC withdrawal to convert.\n * @returns An instantiated {@link ox#Withdrawal.Withdrawal}.\n */\nexport function fromRpc(withdrawal) {\n return {\n ...withdrawal,\n amount: BigInt(withdrawal.amount),\n index: Number(withdrawal.index),\n validatorIndex: Number(withdrawal.validatorIndex),\n };\n}\n/**\n * Converts a {@link ox#Withdrawal.Withdrawal} to an {@link ox#Withdrawal.Rpc}.\n *\n * @example\n * ```ts twoslash\n * import { Withdrawal } from 'ox'\n *\n * const withdrawal = Withdrawal.toRpc({\n * address: '0x00000000219ab540356cBB839Cbe05303d7705Fa',\n * amount: 6423331n,\n * index: 0,\n * validatorIndex: 1,\n * })\n * // @log: {\n * // @log: address: '0x00000000219ab540356cBB839Cbe05303d7705Fa',\n * // @log: amount: '0x620323',\n * // @log: index: '0x0',\n * // @log: validatorIndex: '0x1',\n * // @log: }\n * ```\n *\n * @param withdrawal - The Withdrawal to convert.\n * @returns An RPC Withdrawal.\n */\nexport function toRpc(withdrawal) {\n return {\n address: withdrawal.address,\n amount: Hex.fromNumber(withdrawal.amount),\n index: Hex.fromNumber(withdrawal.index),\n validatorIndex: Hex.fromNumber(withdrawal.validatorIndex),\n };\n}\n//# sourceMappingURL=Withdrawal.js.map","import * as Hex from './Hex.js';\nimport * as Withdrawal from './Withdrawal.js';\n/**\n * Converts an {@link ox#BlockOverrides.Rpc} to an {@link ox#BlockOverrides.BlockOverrides}.\n *\n * @example\n * ```ts twoslash\n * import { BlockOverrides } from 'ox'\n *\n * const blockOverrides = BlockOverrides.fromRpc({\n * baseFeePerGas: '0x1',\n * blobBaseFee: '0x2',\n * feeRecipient: '0x0000000000000000000000000000000000000000',\n * gasLimit: '0x4',\n * number: '0x5',\n * prevRandao: '0x6',\n * time: '0x1234567890',\n * withdrawals: [\n * {\n * address: '0x0000000000000000000000000000000000000000',\n * amount: '0x1',\n * index: '0x0',\n * validatorIndex: '0x1',\n * },\n * ],\n * })\n * ```\n *\n * @param rpcBlockOverrides - The RPC block overrides to convert.\n * @returns An instantiated {@link ox#BlockOverrides.BlockOverrides}.\n */\nexport function fromRpc(rpcBlockOverrides) {\n return {\n ...(rpcBlockOverrides.baseFeePerGas && {\n baseFeePerGas: BigInt(rpcBlockOverrides.baseFeePerGas),\n }),\n ...(rpcBlockOverrides.blobBaseFee && {\n blobBaseFee: BigInt(rpcBlockOverrides.blobBaseFee),\n }),\n ...(rpcBlockOverrides.feeRecipient && {\n feeRecipient: rpcBlockOverrides.feeRecipient,\n }),\n ...(rpcBlockOverrides.gasLimit && {\n gasLimit: BigInt(rpcBlockOverrides.gasLimit),\n }),\n ...(rpcBlockOverrides.number && {\n number: BigInt(rpcBlockOverrides.number),\n }),\n ...(rpcBlockOverrides.prevRandao && {\n prevRandao: BigInt(rpcBlockOverrides.prevRandao),\n }),\n ...(rpcBlockOverrides.time && {\n time: BigInt(rpcBlockOverrides.time),\n }),\n ...(rpcBlockOverrides.withdrawals && {\n withdrawals: rpcBlockOverrides.withdrawals.map(Withdrawal.fromRpc),\n }),\n };\n}\n/**\n * Converts an {@link ox#BlockOverrides.BlockOverrides} to an {@link ox#BlockOverrides.Rpc}.\n *\n * @example\n * ```ts twoslash\n * import { BlockOverrides } from 'ox'\n *\n * const blockOverrides = BlockOverrides.toRpc({\n * baseFeePerGas: 1n,\n * blobBaseFee: 2n,\n * feeRecipient: '0x0000000000000000000000000000000000000000',\n * gasLimit: 4n,\n * number: 5n,\n * prevRandao: 6n,\n * time: 78187493520n,\n * withdrawals: [\n * {\n * address: '0x0000000000000000000000000000000000000000',\n * amount: 1n,\n * index: 0,\n * validatorIndex: 1,\n * },\n * ],\n * })\n * ```\n *\n * @param blockOverrides - The block overrides to convert.\n * @returns An instantiated {@link ox#BlockOverrides.Rpc}.\n */\nexport function toRpc(blockOverrides) {\n return {\n ...(typeof blockOverrides.baseFeePerGas === 'bigint' && {\n baseFeePerGas: Hex.fromNumber(blockOverrides.baseFeePerGas),\n }),\n ...(typeof blockOverrides.blobBaseFee === 'bigint' && {\n blobBaseFee: Hex.fromNumber(blockOverrides.blobBaseFee),\n }),\n ...(typeof blockOverrides.feeRecipient === 'string' && {\n feeRecipient: blockOverrides.feeRecipient,\n }),\n ...(typeof blockOverrides.gasLimit === 'bigint' && {\n gasLimit: Hex.fromNumber(blockOverrides.gasLimit),\n }),\n ...(typeof blockOverrides.number === 'bigint' && {\n number: Hex.fromNumber(blockOverrides.number),\n }),\n ...(typeof blockOverrides.prevRandao === 'bigint' && {\n prevRandao: Hex.fromNumber(blockOverrides.prevRandao),\n }),\n ...(typeof blockOverrides.time === 'bigint' && {\n time: Hex.fromNumber(blockOverrides.time),\n }),\n ...(blockOverrides.withdrawals && {\n withdrawals: blockOverrides.withdrawals.map(Withdrawal.toRpc),\n }),\n };\n}\n//# sourceMappingURL=BlockOverrides.js.map","import * as BlockOverrides from 'ox/BlockOverrides';\nimport { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { AbiDecodingZeroDataError } from '../../errors/abi.js';\nimport { RawContractError } from '../../errors/contract.js';\nimport { UnknownNodeError } from '../../errors/node.js';\nimport { decodeFunctionResult, } from '../../utils/abi/decodeFunctionResult.js';\nimport { encodeFunctionData, } from '../../utils/abi/encodeFunctionData.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { getContractError } from '../../utils/errors/getContractError.js';\nimport { getNodeError, } from '../../utils/errors/getNodeError.js';\nimport { formatBlock, } from '../../utils/formatters/block.js';\nimport { formatLog } from '../../utils/formatters/log.js';\nimport { formatTransactionRequest, } from '../../utils/formatters/transactionRequest.js';\nimport { serializeStateOverride, } from '../../utils/stateOverride.js';\nimport { assertRequest, } from '../../utils/transaction/assertRequest.js';\n/**\n * Simulates a set of calls on block(s) with optional block and state overrides.\n *\n * @example\n * ```ts\n * import { createClient, http, parseEther } from 'viem'\n * import { simulate } from 'viem/actions'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createClient({\n * chain: mainnet,\n * transport: http(),\n * })\n *\n * const result = await simulate(client, {\n * blocks: [{\n * blockOverrides: {\n * number: 69420n,\n * },\n * calls: [{\n * {\n * account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\n * data: '0xdeadbeef',\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * },\n * {\n * account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * value: parseEther('1'),\n * },\n * }],\n * stateOverrides: [{\n * address: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\n * balance: parseEther('10'),\n * }],\n * }]\n * })\n * ```\n *\n * @param client - Client to use.\n * @param parameters - {@link SimulateBlocksParameters}\n * @returns Simulated blocks. {@link SimulateBlocksReturnType}\n */\nexport async function simulateBlocks(client, parameters) {\n const { blockNumber, blockTag = 'latest', blocks, returnFullTransactions, traceTransfers, validation, } = parameters;\n try {\n const blockStateCalls = [];\n for (const block of blocks) {\n const blockOverrides = block.blockOverrides\n ? BlockOverrides.toRpc(block.blockOverrides)\n : undefined;\n const calls = block.calls.map((call_) => {\n const call = call_;\n const account = call.account ? parseAccount(call.account) : undefined;\n const request = {\n ...call,\n data: call.abi ? encodeFunctionData(call) : call.data,\n from: call.from ?? account?.address,\n };\n assertRequest(request);\n return formatTransactionRequest(request);\n });\n const stateOverrides = block.stateOverrides\n ? serializeStateOverride(block.stateOverrides)\n : undefined;\n blockStateCalls.push({\n blockOverrides,\n calls,\n stateOverrides,\n });\n }\n const blockNumberHex = blockNumber ? numberToHex(blockNumber) : undefined;\n const block = blockNumberHex || blockTag;\n const result = await client.request({\n method: 'eth_simulateV1',\n params: [\n { blockStateCalls, returnFullTransactions, traceTransfers, validation },\n block,\n ],\n });\n return result.map((block, i) => ({\n ...formatBlock(block),\n calls: block.calls.map((call, j) => {\n const { abi, args, functionName, to } = blocks[i].calls[j];\n const data = call.error?.data ?? call.returnData;\n const gasUsed = BigInt(call.gasUsed);\n const logs = call.logs?.map((log) => formatLog(log));\n const status = call.status === '0x1' ? 'success' : 'failure';\n const result = abi && status === 'success' && data !== '0x'\n ? decodeFunctionResult({\n abi,\n data,\n functionName,\n })\n : null;\n const error = (() => {\n if (status === 'success')\n return undefined;\n let error = undefined;\n if (call.error?.data === '0x')\n error = new AbiDecodingZeroDataError();\n else if (call.error)\n error = new RawContractError(call.error);\n if (!error)\n return undefined;\n return getContractError(error, {\n abi: (abi ?? []),\n address: to,\n args,\n functionName: functionName ?? '',\n });\n })();\n return {\n data,\n gasUsed,\n logs,\n status,\n ...(status === 'success'\n ? {\n result,\n }\n : {\n error,\n }),\n };\n }),\n }));\n }\n catch (e) {\n const cause = e;\n const error = getNodeError(cause, {});\n if (error instanceof UnknownNodeError)\n throw cause;\n throw error;\n }\n}\n//# sourceMappingURL=simulateBlocks.js.map","import { ripemd160 as noble_ripemd160 } from '@noble/hashes/ripemd160';\nimport { keccak_256 as noble_keccak256 } from '@noble/hashes/sha3';\nimport { sha256 as noble_sha256 } from '@noble/hashes/sha256';\nimport * as Bytes from './Bytes.js';\nimport * as Hex from './Hex.js';\n/**\n * Calculates the [Keccak256](https://en.wikipedia.org/wiki/SHA-3) hash of a {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.\n *\n * This function is a re-export of `keccak_256` from [`@noble/hashes`](https://github.com/paulmillr/noble-hashes), an audited & minimal JS hashing library.\n *\n * @example\n * ```ts twoslash\n * import { Hash } from 'ox'\n *\n * Hash.keccak256('0xdeadbeef')\n * // @log: '0xd4fd4e189132273036449fc9e11198c739161b4c0116a9a2dccdfa1c492006f1'\n * ```\n *\n * @example\n * ### Calculate Hash of a String\n *\n * ```ts twoslash\n * import { Hash, Hex } from 'ox'\n *\n * Hash.keccak256(Hex.fromString('hello world'))\n * // @log: '0x3ea2f1d0abf3fc66cf29eebb70cbd4e7fe762ef8a09bcc06c8edf641230afec0'\n * ```\n *\n * @example\n * ### Configure Return Type\n *\n * ```ts twoslash\n * import { Hash } from 'ox'\n *\n * Hash.keccak256('0xdeadbeef', { as: 'Bytes' })\n * // @log: Uint8Array [...]\n * ```\n *\n * @param value - {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.\n * @param options - Options.\n * @returns Keccak256 hash.\n */\nexport function keccak256(value, options = {}) {\n const { as = typeof value === 'string' ? 'Hex' : 'Bytes' } = options;\n const bytes = noble_keccak256(Bytes.from(value));\n if (as === 'Bytes')\n return bytes;\n return Hex.fromBytes(bytes);\n}\n/**\n * Calculates the [Ripemd160](https://en.wikipedia.org/wiki/RIPEMD) hash of a {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.\n *\n * This function is a re-export of `ripemd160` from [`@noble/hashes`](https://github.com/paulmillr/noble-hashes), an audited & minimal JS hashing library.\n *\n * @example\n * ```ts twoslash\n * import { Hash } from 'ox'\n *\n * Hash.ripemd160('0xdeadbeef')\n * // '0x226821c2f5423e11fe9af68bd285c249db2e4b5a'\n * ```\n *\n * @param value - {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.\n * @param options - Options.\n * @returns Ripemd160 hash.\n */\nexport function ripemd160(value, options = {}) {\n const { as = typeof value === 'string' ? 'Hex' : 'Bytes' } = options;\n const bytes = noble_ripemd160(Bytes.from(value));\n if (as === 'Bytes')\n return bytes;\n return Hex.fromBytes(bytes);\n}\n/**\n * Calculates the [Sha256](https://en.wikipedia.org/wiki/SHA-256) hash of a {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.\n *\n * This function is a re-export of `sha256` from [`@noble/hashes`](https://github.com/paulmillr/noble-hashes), an audited & minimal JS hashing library.\n *\n * @example\n * ```ts twoslash\n * import { Hash } from 'ox'\n *\n * Hash.sha256('0xdeadbeef')\n * // '0x5f78c33274e43fa9de5659265c1d917e25c03722dcb0b8d27db8d5feaa813953'\n * ```\n *\n * @param value - {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.\n * @param options - Options.\n * @returns Sha256 hash.\n */\nexport function sha256(value, options = {}) {\n const { as = typeof value === 'string' ? 'Hex' : 'Bytes' } = options;\n const bytes = noble_sha256(Bytes.from(value));\n if (as === 'Bytes')\n return bytes;\n return Hex.fromBytes(bytes);\n}\n/**\n * Checks if a string is a valid hash value.\n *\n * @example\n * ```ts twoslash\n * import { Hash } from 'ox'\n *\n * Hash.validate('0x')\n * // @log: false\n *\n * Hash.validate('0x3ea2f1d0abf3fc66cf29eebb70cbd4e7fe762ef8a09bcc06c8edf641230afec0')\n * // @log: true\n * ```\n *\n * @param value - Value to check.\n * @returns Whether the value is a valid hash.\n */\nexport function validate(value) {\n return Hex.validate(value) && Hex.size(value) === 32;\n}\n//# sourceMappingURL=Hash.js.map","/**\n * @internal\n *\n * Map with a LRU (Least recently used) policy.\n * @see https://en.wikipedia.org/wiki/Cache_replacement_policies#LRU\n */\nexport class LruMap extends Map {\n constructor(size) {\n super();\n Object.defineProperty(this, \"maxSize\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.maxSize = size;\n }\n get(key) {\n const value = super.get(key);\n if (super.has(key) && value !== undefined) {\n this.delete(key);\n super.set(key, value);\n }\n return value;\n }\n set(key, value) {\n super.set(key, value);\n if (this.maxSize && this.size > this.maxSize) {\n const firstKey = this.keys().next().value;\n if (firstKey)\n this.delete(firstKey);\n }\n return this;\n }\n}\n//# sourceMappingURL=lru.js.map","import { LruMap } from './internal/lru.js';\nconst caches = {\n checksum: /*#__PURE__*/ new LruMap(8192),\n};\nexport const checksum = caches.checksum;\n/**\n * Clears all global caches.\n *\n * @example\n * ```ts\n * import { Caches } from 'ox'\n * Caches.clear()\n * ```\n */\nexport function clear() {\n for (const cache of Object.values(caches))\n cache.clear();\n}\n//# sourceMappingURL=Caches.js.map","import * as Bytes from './Bytes.js';\nimport * as Caches from './Caches.js';\nimport * as Errors from './Errors.js';\nimport * as Hash from './Hash.js';\nimport * as PublicKey from './PublicKey.js';\nconst addressRegex = /*#__PURE__*/ /^0x[a-fA-F0-9]{40}$/;\n/**\n * Asserts that the given value is a valid {@link ox#Address.Address}.\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.assert('0xA0Cf798816D4b9b9866b5330EEa46a18382f251e')\n * ```\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.assert('0xdeadbeef')\n * // @error: InvalidAddressError: Address \"0xdeadbeef\" is invalid.\n * ```\n *\n * @param value - Value to assert if it is a valid address.\n * @param options - Assertion options.\n */\nexport function assert(value, options = {}) {\n const { strict = true } = options;\n if (!addressRegex.test(value))\n throw new InvalidAddressError({\n address: value,\n cause: new InvalidInputError(),\n });\n if (strict) {\n if (value.toLowerCase() === value)\n return;\n if (checksum(value) !== value)\n throw new InvalidAddressError({\n address: value,\n cause: new InvalidChecksumError(),\n });\n }\n}\n/**\n * Computes the checksum address for the given {@link ox#Address.Address}.\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.checksum('0xa0cf798816d4b9b9866b5330eea46a18382f251e')\n * // @log: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'\n * ```\n *\n * @param address - The address to compute the checksum for.\n * @returns The checksummed address.\n */\nexport function checksum(address) {\n if (Caches.checksum.has(address))\n return Caches.checksum.get(address);\n assert(address, { strict: false });\n const hexAddress = address.substring(2).toLowerCase();\n const hash = Hash.keccak256(Bytes.fromString(hexAddress), { as: 'Bytes' });\n const characters = hexAddress.split('');\n for (let i = 0; i < 40; i += 2) {\n if (hash[i >> 1] >> 4 >= 8 && characters[i]) {\n characters[i] = characters[i].toUpperCase();\n }\n if ((hash[i >> 1] & 0x0f) >= 8 && characters[i + 1]) {\n characters[i + 1] = characters[i + 1].toUpperCase();\n }\n }\n const result = `0x${characters.join('')}`;\n Caches.checksum.set(address, result);\n return result;\n}\n/**\n * Converts a stringified address to a typed (checksummed) {@link ox#Address.Address}.\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.from('0xa0cf798816d4b9b9866b5330eea46a18382f251e')\n * // @log: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'\n * ```\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.from('0xa0cf798816d4b9b9866b5330eea46a18382f251e', {\n * checksum: false\n * })\n * // @log: '0xa0cf798816d4b9b9866b5330eea46a18382f251e'\n * ```\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.from('hello')\n * // @error: InvalidAddressError: Address \"0xa\" is invalid.\n * ```\n *\n * @param address - An address string to convert to a typed Address.\n * @param options - Conversion options.\n * @returns The typed Address.\n */\nexport function from(address, options = {}) {\n const { checksum: checksumVal = false } = options;\n assert(address);\n if (checksumVal)\n return checksum(address);\n return address;\n}\n/**\n * Converts an ECDSA public key to an {@link ox#Address.Address}.\n *\n * @example\n * ```ts twoslash\n * import { Address, PublicKey } from 'ox'\n *\n * const publicKey = PublicKey.from(\n * '0x048318535b54105d4a7aae60c08fc45f9687181b4fdfc625bd1a753fa7397fed753547f11ca8696646f2f3acb08e31016afac23e630c5d11f59f61fef57b0d2aa5',\n * )\n * const address = Address.fromPublicKey(publicKey)\n * // @log: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\n * ```\n *\n * @param publicKey - The ECDSA public key to convert to an {@link ox#Address.Address}.\n * @param options - Conversion options.\n * @returns The {@link ox#Address.Address} corresponding to the public key.\n */\nexport function fromPublicKey(publicKey, options = {}) {\n const address = Hash.keccak256(`0x${PublicKey.toHex(publicKey).slice(4)}`).substring(26);\n return from(`0x${address}`, options);\n}\n/**\n * Checks if two {@link ox#Address.Address} are equal.\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.isEqual(\n * '0xa0cf798816d4b9b9866b5330eea46a18382f251e',\n * '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'\n * )\n * // @log: true\n * ```\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.isEqual(\n * '0xa0cf798816d4b9b9866b5330eea46a18382f251e',\n * '0xA0Cf798816D4b9b9866b5330EEa46a18382f251f'\n * )\n * // @log: false\n * ```\n *\n * @param addressA - The first address to compare.\n * @param addressB - The second address to compare.\n * @returns Whether the addresses are equal.\n */\nexport function isEqual(addressA, addressB) {\n assert(addressA, { strict: false });\n assert(addressB, { strict: false });\n return addressA.toLowerCase() === addressB.toLowerCase();\n}\n/**\n * Checks if the given address is a valid {@link ox#Address.Address}.\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.validate('0xA0Cf798816D4b9b9866b5330EEa46a18382f251e')\n * // @log: true\n * ```\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.validate('0xdeadbeef')\n * // @log: false\n * ```\n *\n * @param address - Value to check if it is a valid address.\n * @param options - Check options.\n * @returns Whether the address is a valid address.\n */\nexport function validate(address, options = {}) {\n const { strict = true } = options ?? {};\n try {\n assert(address, { strict });\n return true;\n }\n catch {\n return false;\n }\n}\n/**\n * Thrown when an address is invalid.\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.from('0x123')\n * // @error: Address.InvalidAddressError: Address `0x123` is invalid.\n * ```\n */\nexport class InvalidAddressError extends Errors.BaseError {\n constructor({ address, cause }) {\n super(`Address \"${address}\" is invalid.`, {\n cause,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Address.InvalidAddressError'\n });\n }\n}\n/** Thrown when an address is not a 20 byte (40 hexadecimal character) value. */\nexport class InvalidInputError extends Errors.BaseError {\n constructor() {\n super('Address is not a 20 byte (40 hexadecimal character) value.');\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Address.InvalidInputError'\n });\n }\n}\n/** Thrown when an address does not match its checksum counterpart. */\nexport class InvalidChecksumError extends Errors.BaseError {\n constructor() {\n super('Address does not match its checksum counterpart.');\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Address.InvalidChecksumError'\n });\n }\n}\n//# sourceMappingURL=Address.js.map","import * as Address from '../Address.js';\nimport * as Errors from '../Errors.js';\n/** @internal */\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', 'error', ''].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 Errors.BaseError('Unable to normalize signature.');\n return result;\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 Address.validate(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 Address.validate(args[parameterIndex], {\n strict: false,\n });\n if (types.includes('address') && types.includes('bytes'))\n return Address.validate(args[parameterIndex], {\n strict: false,\n });\n return false;\n })();\n if (ambiguous)\n return types;\n }\n return;\n}\n//# sourceMappingURL=abiItem.js.map","import * as abitype from 'abitype';\nimport * as Errors from './Errors.js';\nimport * as Hash from './Hash.js';\nimport * as Hex from './Hex.js';\nimport * as internal from './internal/abiItem.js';\n/**\n * Formats an {@link ox#AbiItem.AbiItem} into a **Human Readable ABI Item**.\n *\n * @example\n * ```ts twoslash\n * import { AbiItem } from 'ox'\n *\n * const formatted = AbiItem.format({\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: [{ type: 'bool' }],\n * })\n *\n * formatted\n * // ^?\n *\n *\n * ```\n *\n * @param abiItem - The ABI Item to format.\n * @returns The formatted ABI Item .\n */\nexport function format(abiItem) {\n return abitype.formatAbiItem(abiItem);\n}\n/**\n * Parses an arbitrary **JSON ABI Item** or **Human Readable ABI Item** into a typed {@link ox#AbiItem.AbiItem}.\n *\n * @example\n * ### JSON ABIs\n *\n * ```ts twoslash\n * import { AbiItem } from 'ox'\n *\n * const abiItem = AbiItem.from({\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: [{ type: 'bool' }],\n * })\n *\n * abiItem\n * //^?\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n * @example\n * ### Human Readable ABIs\n *\n * A Human Readable ABI can be parsed into a typed ABI object:\n *\n * ```ts twoslash\n * import { AbiItem } from 'ox'\n *\n * const abiItem = AbiItem.from(\n * 'function approve(address spender, uint256 amount) returns (bool)' // [!code hl]\n * )\n *\n * abiItem\n * //^?\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n * @example\n * It is possible to specify `struct`s along with your definitions:\n *\n * ```ts twoslash\n * import { AbiItem } from 'ox'\n *\n * const abiItem = AbiItem.from([\n * 'struct Foo { address spender; uint256 amount; }', // [!code hl]\n * 'function approve(Foo foo) returns (bool)',\n * ])\n *\n * abiItem\n * //^?\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n *\n *\n * @param abiItem - The ABI Item to parse.\n * @returns The typed ABI Item.\n */\nexport function from(abiItem, options = {}) {\n const { prepare = true } = options;\n const item = (() => {\n if (Array.isArray(abiItem))\n return abitype.parseAbiItem(abiItem);\n if (typeof abiItem === 'string')\n return abitype.parseAbiItem(abiItem);\n return abiItem;\n })();\n return {\n ...item,\n ...(prepare ? { hash: getSignatureHash(item) } : {}),\n };\n}\n/**\n * Extracts an {@link ox#AbiItem.AbiItem} from an {@link ox#Abi.Abi} given a name and optional arguments.\n *\n * @example\n * ABI Items can be extracted by their name using the `name` option:\n *\n * ```ts twoslash\n * import { Abi, AbiItem } from 'ox'\n *\n * const abi = Abi.from([\n * 'function foo()',\n * 'event Transfer(address owner, address to, uint256 tokenId)',\n * 'function bar(string a) returns (uint256 x)',\n * ])\n *\n * const item = AbiItem.fromAbi(abi, 'Transfer') // [!code focus]\n * // ^?\n *\n *\n *\n *\n *\n *\n * ```\n *\n * @example\n * ### Extracting by Selector\n *\n * ABI Items can be extract by their selector when {@link ox#Hex.Hex} is provided to `name`.\n *\n * ```ts twoslash\n * import { Abi, AbiItem } from 'ox'\n *\n * const abi = Abi.from([\n * 'function foo()',\n * 'event Transfer(address owner, address to, uint256 tokenId)',\n * 'function bar(string a) returns (uint256 x)',\n * ])\n * const item = AbiItem.fromAbi(abi, '0x095ea7b3') // [!code focus]\n * // ^?\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n * :::note\n *\n * Extracting via a hex selector is useful when extracting an ABI Item from an `eth_call` RPC response,\n * a Transaction `input`, or from Event Log `topics`.\n *\n * :::\n *\n * @param abi - The ABI to extract from.\n * @param name - The name (or selector) of the ABI item to extract.\n * @param options - Extraction options.\n * @returns The ABI item.\n */\nexport function fromAbi(abi, name, options) {\n const { args = [], prepare = true } = (options ??\n {});\n const isSelector = Hex.validate(name, { strict: false });\n const abiItems = abi.filter((abiItem) => {\n if (isSelector) {\n if (abiItem.type === 'function' || abiItem.type === 'error')\n return getSelector(abiItem) === Hex.slice(name, 0, 4);\n if (abiItem.type === 'event')\n return getSignatureHash(abiItem) === name;\n return false;\n }\n return 'name' in abiItem && abiItem.name === name;\n });\n if (abiItems.length === 0)\n throw new NotFoundError({ name: name });\n if (abiItems.length === 1)\n return {\n ...abiItems[0],\n ...(prepare ? { hash: getSignatureHash(abiItems[0]) } : {}),\n };\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 {\n ...abiItem,\n ...(prepare ? { hash: getSignatureHash(abiItem) } : {}),\n };\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 internal.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 = internal.getAmbiguousTypes(abiItem.inputs, matchedAbiItem.inputs, args);\n if (ambiguousTypes)\n throw new AmbiguityError({\n abiItem,\n type: ambiguousTypes[0],\n }, {\n abiItem: matchedAbiItem,\n type: ambiguousTypes[1],\n });\n }\n matchedAbiItem = abiItem;\n }\n }\n const abiItem = (() => {\n if (matchedAbiItem)\n return matchedAbiItem;\n const [abiItem, ...overloads] = abiItems;\n return { ...abiItem, overloads };\n })();\n if (!abiItem)\n throw new NotFoundError({ name: name });\n return {\n ...abiItem,\n ...(prepare ? { hash: getSignatureHash(abiItem) } : {}),\n };\n}\n/**\n * Computes the [4-byte selector](https://solidity-by-example.org/function-selector/) for an {@link ox#AbiItem.AbiItem}.\n *\n * Useful for computing function selectors for calldata.\n *\n * @example\n * ```ts twoslash\n * import { AbiItem } from 'ox'\n *\n * const selector = AbiItem.getSelector('function ownerOf(uint256 tokenId)')\n * // @log: '0x6352211e'\n * ```\n *\n * @example\n * ```ts twoslash\n * import { AbiItem } from 'ox'\n *\n * const selector = AbiItem.getSelector({\n * inputs: [{ type: 'uint256' }],\n * name: 'ownerOf',\n * outputs: [],\n * stateMutability: 'view',\n * type: 'function'\n * })\n * // @log: '0x6352211e'\n * ```\n *\n * @param abiItem - The ABI item to compute the selector for. Can be a signature or an ABI item for an error, event, function, etc.\n * @returns The first 4 bytes of the {@link ox#Hash.(keccak256:function)} hash of the function signature.\n */\nexport function getSelector(abiItem) {\n return Hex.slice(getSignatureHash(abiItem), 0, 4);\n}\n/**\n * Computes the stringified signature for a given {@link ox#AbiItem.AbiItem}.\n *\n * @example\n * ```ts twoslash\n * import { AbiItem } from 'ox'\n *\n * const signature = AbiItem.getSignature('function ownerOf(uint256 tokenId)')\n * // @log: 'ownerOf(uint256)'\n * ```\n *\n * @example\n * ```ts twoslash\n * import { AbiItem } from 'ox'\n *\n * const signature = AbiItem.getSignature({\n * name: 'ownerOf',\n * type: 'function',\n * inputs: [{ name: 'tokenId', type: 'uint256' }],\n * outputs: [],\n * stateMutability: 'view',\n * })\n * // @log: 'ownerOf(uint256)'\n * ```\n *\n * @param abiItem - The ABI Item to compute the signature for.\n * @returns The stringified signature of the ABI Item.\n */\nexport function getSignature(abiItem) {\n const signature = (() => {\n if (typeof abiItem === 'string')\n return abiItem;\n return abitype.formatAbiItem(abiItem);\n })();\n return internal.normalizeSignature(signature);\n}\n/**\n * Computes the signature hash for an {@link ox#AbiItem.AbiItem}.\n *\n * Useful for computing Event Topic values.\n *\n * @example\n * ```ts twoslash\n * import { AbiItem } from 'ox'\n *\n * const hash = AbiItem.getSignatureHash('event Transfer(address indexed from, address indexed to, uint256 amount)')\n * // @log: '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef'\n * ```\n *\n * @example\n * ```ts twoslash\n * import { AbiItem } from 'ox'\n *\n * const hash = AbiItem.getSignatureHash({\n * name: 'Transfer',\n * type: 'event',\n * inputs: [\n * { name: 'from', type: 'address', indexed: true },\n * { name: 'to', type: 'address', indexed: true },\n * { name: 'amount', type: 'uint256', indexed: false },\n * ],\n * })\n * // @log: '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef'\n * ```\n *\n * @param abiItem - The ABI Item to compute the signature hash for.\n * @returns The {@link ox#Hash.(keccak256:function)} hash of the ABI item's signature.\n */\nexport function getSignatureHash(abiItem) {\n if (typeof abiItem !== 'string' && 'hash' in abiItem && abiItem.hash)\n return abiItem.hash;\n return Hash.keccak256(Hex.fromString(getSignature(abiItem)));\n}\n/**\n * Throws when ambiguous types are found on overloaded ABI items.\n *\n * @example\n * ```ts twoslash\n * import { Abi, AbiFunction } from 'ox'\n *\n * const foo = Abi.from(['function foo(address)', 'function foo(bytes20)'])\n * AbiFunction.fromAbi(foo, 'foo', {\n * args: ['0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'],\n * })\n * // @error: AbiItem.AmbiguityError: Found ambiguous types in overloaded ABI Items.\n * // @error: `bytes20` in `foo(bytes20)`, and\n * // @error: `address` in `foo(address)`\n * // @error: These types encode differently and cannot be distinguished at runtime.\n * // @error: Remove one of the ambiguous items in the ABI.\n * ```\n *\n * ### Solution\n *\n * Remove one of the ambiguous types from the ABI.\n *\n * ```ts twoslash\n * import { Abi, AbiFunction } from 'ox'\n *\n * const foo = Abi.from([\n * 'function foo(address)',\n * 'function foo(bytes20)' // [!code --]\n * ])\n * AbiFunction.fromAbi(foo, 'foo', {\n * args: ['0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'],\n * })\n * // @error: AbiItem.AmbiguityError: Found ambiguous types in overloaded ABI Items.\n * // @error: `bytes20` in `foo(bytes20)`, and\n * // @error: `address` in `foo(address)`\n * // @error: These types encode differently and cannot be distinguished at runtime.\n * // @error: Remove one of the ambiguous items in the ABI.\n * ```\n */\nexport class AmbiguityError extends Errors.BaseError {\n constructor(x, y) {\n super('Found ambiguous types in overloaded ABI Items.', {\n metaMessages: [\n // TODO: abitype to add support for signature-formatted ABI items.\n `\\`${x.type}\\` in \\`${internal.normalizeSignature(abitype.formatAbiItem(x.abiItem))}\\`, and`,\n `\\`${y.type}\\` in \\`${internal.normalizeSignature(abitype.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: 'AbiItem.AmbiguityError'\n });\n }\n}\n/**\n * Throws when an ABI item is not found in the ABI.\n *\n * @example\n * ```ts twoslash\n * // @noErrors\n * import { Abi, AbiFunction } from 'ox'\n *\n * const foo = Abi.from([\n * 'function foo(address)',\n * 'function bar(uint)'\n * ])\n * AbiFunction.fromAbi(foo, 'baz')\n * // @error: AbiItem.NotFoundError: ABI function with name \"baz\" not found.\n * ```\n *\n * ### Solution\n *\n * Ensure the ABI item exists on the ABI.\n *\n * ```ts twoslash\n * // @noErrors\n * import { Abi, AbiFunction } from 'ox'\n *\n * const foo = Abi.from([\n * 'function foo(address)',\n * 'function bar(uint)',\n * 'function baz(bool)' // [!code ++]\n * ])\n * AbiFunction.fromAbi(foo, 'baz')\n * ```\n */\nexport class NotFoundError extends Errors.BaseError {\n constructor({ name, data, type = 'item', }) {\n const selector = (() => {\n if (name)\n return ` with name \"${name}\"`;\n if (data)\n return ` with data \"${data}\"`;\n return '';\n })();\n super(`ABI ${type}${selector} not found.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiItem.NotFoundError'\n });\n }\n}\n/**\n * Throws when the selector size is invalid.\n *\n * @example\n * ```ts twoslash\n * import { Abi, AbiFunction } from 'ox'\n *\n * const foo = Abi.from([\n * 'function foo(address)',\n * 'function bar(uint)'\n * ])\n * AbiFunction.fromAbi(foo, '0xaaa')\n * // @error: AbiItem.InvalidSelectorSizeError: Selector size is invalid. Expected 4 bytes. Received 2 bytes (\"0xaaa\").\n * ```\n *\n * ### Solution\n *\n * Ensure the selector size is 4 bytes.\n *\n * ```ts twoslash\n * // @noErrors\n * import { Abi, AbiFunction } from 'ox'\n *\n * const foo = Abi.from([\n * 'function foo(address)',\n * 'function bar(uint)'\n * ])\n * AbiFunction.fromAbi(foo, '0x7af82b1a')\n * ```\n */\nexport class InvalidSelectorSizeError extends Errors.BaseError {\n constructor({ data }) {\n super(`Selector size is invalid. Expected 4 bytes. Received ${Hex.size(data)} bytes (\"${data}\").`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiItem.InvalidSelectorSizeError'\n });\n }\n}\n//# sourceMappingURL=AbiItem.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)?$/;\nexport const maxInt8 = 2n ** (8n - 1n) - 1n;\nexport const maxInt16 = 2n ** (16n - 1n) - 1n;\nexport const maxInt24 = 2n ** (24n - 1n) - 1n;\nexport const maxInt32 = 2n ** (32n - 1n) - 1n;\nexport const maxInt40 = 2n ** (40n - 1n) - 1n;\nexport const maxInt48 = 2n ** (48n - 1n) - 1n;\nexport const maxInt56 = 2n ** (56n - 1n) - 1n;\nexport const maxInt64 = 2n ** (64n - 1n) - 1n;\nexport const maxInt72 = 2n ** (72n - 1n) - 1n;\nexport const maxInt80 = 2n ** (80n - 1n) - 1n;\nexport const maxInt88 = 2n ** (88n - 1n) - 1n;\nexport const maxInt96 = 2n ** (96n - 1n) - 1n;\nexport const maxInt104 = 2n ** (104n - 1n) - 1n;\nexport const maxInt112 = 2n ** (112n - 1n) - 1n;\nexport const maxInt120 = 2n ** (120n - 1n) - 1n;\nexport const maxInt128 = 2n ** (128n - 1n) - 1n;\nexport const maxInt136 = 2n ** (136n - 1n) - 1n;\nexport const maxInt144 = 2n ** (144n - 1n) - 1n;\nexport const maxInt152 = 2n ** (152n - 1n) - 1n;\nexport const maxInt160 = 2n ** (160n - 1n) - 1n;\nexport const maxInt168 = 2n ** (168n - 1n) - 1n;\nexport const maxInt176 = 2n ** (176n - 1n) - 1n;\nexport const maxInt184 = 2n ** (184n - 1n) - 1n;\nexport const maxInt192 = 2n ** (192n - 1n) - 1n;\nexport const maxInt200 = 2n ** (200n - 1n) - 1n;\nexport const maxInt208 = 2n ** (208n - 1n) - 1n;\nexport const maxInt216 = 2n ** (216n - 1n) - 1n;\nexport const maxInt224 = 2n ** (224n - 1n) - 1n;\nexport const maxInt232 = 2n ** (232n - 1n) - 1n;\nexport const maxInt240 = 2n ** (240n - 1n) - 1n;\nexport const maxInt248 = 2n ** (248n - 1n) - 1n;\nexport const maxInt256 = 2n ** (256n - 1n) - 1n;\nexport const minInt8 = -(2n ** (8n - 1n));\nexport const minInt16 = -(2n ** (16n - 1n));\nexport const minInt24 = -(2n ** (24n - 1n));\nexport const minInt32 = -(2n ** (32n - 1n));\nexport const minInt40 = -(2n ** (40n - 1n));\nexport const minInt48 = -(2n ** (48n - 1n));\nexport const minInt56 = -(2n ** (56n - 1n));\nexport const minInt64 = -(2n ** (64n - 1n));\nexport const minInt72 = -(2n ** (72n - 1n));\nexport const minInt80 = -(2n ** (80n - 1n));\nexport const minInt88 = -(2n ** (88n - 1n));\nexport const minInt96 = -(2n ** (96n - 1n));\nexport const minInt104 = -(2n ** (104n - 1n));\nexport const minInt112 = -(2n ** (112n - 1n));\nexport const minInt120 = -(2n ** (120n - 1n));\nexport const minInt128 = -(2n ** (128n - 1n));\nexport const minInt136 = -(2n ** (136n - 1n));\nexport const minInt144 = -(2n ** (144n - 1n));\nexport const minInt152 = -(2n ** (152n - 1n));\nexport const minInt160 = -(2n ** (160n - 1n));\nexport const minInt168 = -(2n ** (168n - 1n));\nexport const minInt176 = -(2n ** (176n - 1n));\nexport const minInt184 = -(2n ** (184n - 1n));\nexport const minInt192 = -(2n ** (192n - 1n));\nexport const minInt200 = -(2n ** (200n - 1n));\nexport const minInt208 = -(2n ** (208n - 1n));\nexport const minInt216 = -(2n ** (216n - 1n));\nexport const minInt224 = -(2n ** (224n - 1n));\nexport const minInt232 = -(2n ** (232n - 1n));\nexport const minInt240 = -(2n ** (240n - 1n));\nexport const minInt248 = -(2n ** (248n - 1n));\nexport const minInt256 = -(2n ** (256n - 1n));\nexport const maxUint8 = 2n ** 8n - 1n;\nexport const maxUint16 = 2n ** 16n - 1n;\nexport const maxUint24 = 2n ** 24n - 1n;\nexport const maxUint32 = 2n ** 32n - 1n;\nexport const maxUint40 = 2n ** 40n - 1n;\nexport const maxUint48 = 2n ** 48n - 1n;\nexport const maxUint56 = 2n ** 56n - 1n;\nexport const maxUint64 = 2n ** 64n - 1n;\nexport const maxUint72 = 2n ** 72n - 1n;\nexport const maxUint80 = 2n ** 80n - 1n;\nexport const maxUint88 = 2n ** 88n - 1n;\nexport const maxUint96 = 2n ** 96n - 1n;\nexport const maxUint104 = 2n ** 104n - 1n;\nexport const maxUint112 = 2n ** 112n - 1n;\nexport const maxUint120 = 2n ** 120n - 1n;\nexport const maxUint128 = 2n ** 128n - 1n;\nexport const maxUint136 = 2n ** 136n - 1n;\nexport const maxUint144 = 2n ** 144n - 1n;\nexport const maxUint152 = 2n ** 152n - 1n;\nexport const maxUint160 = 2n ** 160n - 1n;\nexport const maxUint168 = 2n ** 168n - 1n;\nexport const maxUint176 = 2n ** 176n - 1n;\nexport const maxUint184 = 2n ** 184n - 1n;\nexport const maxUint192 = 2n ** 192n - 1n;\nexport const maxUint200 = 2n ** 200n - 1n;\nexport const maxUint208 = 2n ** 208n - 1n;\nexport const maxUint216 = 2n ** 216n - 1n;\nexport const maxUint224 = 2n ** 224n - 1n;\nexport const maxUint232 = 2n ** 232n - 1n;\nexport const maxUint240 = 2n ** 240n - 1n;\nexport const maxUint248 = 2n ** 248n - 1n;\nexport const maxUint256 = 2n ** 256n - 1n;\n//# sourceMappingURL=Solidity.js.map","import * as AbiParameters from '../AbiParameters.js';\nimport * as Address from '../Address.js';\nimport * as Bytes from '../Bytes.js';\nimport * as Errors from '../Errors.js';\nimport * as Hex from '../Hex.js';\nimport { integerRegex } from '../Solidity.js';\n/** @internal */\nexport function decodeParameter(cursor, param, options) {\n const { checksumAddress, staticPosition } = options;\n const arrayComponents = getArrayComponents(param.type);\n if (arrayComponents) {\n const [length, type] = arrayComponents;\n return decodeArray(cursor, { ...param, type }, { checksumAddress, length, staticPosition });\n }\n if (param.type === 'tuple')\n return decodeTuple(cursor, param, {\n checksumAddress,\n staticPosition,\n });\n if (param.type === 'address')\n return decodeAddress(cursor, { checksum: checksumAddress });\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 AbiParameters.InvalidTypeError(param.type);\n}\nconst sizeOfLength = 32;\nconst sizeOfOffset = 32;\n/** @internal */\nexport function decodeAddress(cursor, options = {}) {\n const { checksum = false } = options;\n const value = cursor.readBytes(32);\n const wrap = (address) => checksum ? Address.checksum(address) : address;\n return [wrap(Hex.fromBytes(Bytes.slice(value, -20))), 32];\n}\n/** @internal */\nexport function decodeArray(cursor, param, options) {\n const { checksumAddress, length, staticPosition } = options;\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 = Bytes.toNumber(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 = Bytes.toNumber(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 checksumAddress,\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 = Bytes.toNumber(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 checksumAddress,\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 checksumAddress,\n staticPosition: staticPosition + consumed,\n });\n consumed += consumed_;\n value.push(data);\n }\n return [value, consumed];\n}\n/** @internal */\nexport function decodeBool(cursor) {\n return [Bytes.toBoolean(cursor.readBytes(32), { size: 32 }), 32];\n}\n/** @internal */\nexport function 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 = Bytes.toNumber(cursor.readBytes(32));\n // Set position of the cursor to start of bytes data.\n cursor.setPosition(staticPosition + offset);\n const length = Bytes.toNumber(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 [Hex.fromBytes(data), 32];\n }\n const value = Hex.fromBytes(cursor.readBytes(Number.parseInt(size), 32));\n return [value, 32];\n}\n/** @internal */\nexport function 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 ? Bytes.toBigInt(value, { signed })\n : Bytes.toNumber(value, { signed }),\n 32,\n ];\n}\n/** @internal */\nexport function decodeTuple(cursor, param, options) {\n const { checksumAddress, staticPosition } = options;\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 = Bytes.toNumber(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 checksumAddress,\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 checksumAddress,\n staticPosition,\n });\n value[hasUnnamedChild ? i : component?.name] = data;\n consumed += consumed_;\n }\n return [value, consumed];\n}\n/** @internal */\nexport function decodeString(cursor, { staticPosition }) {\n // Get offset to start of string data.\n const offset = Bytes.toNumber(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 = Bytes.toNumber(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 = Bytes.toString(Bytes.trimLeft(data));\n // As we have gone wondering, restore to the original position + next slot.\n cursor.setPosition(staticPosition + 32);\n return [value, 32];\n}\n/** @internal */\nexport function prepareParameters({ checksumAddress, parameters, values, }) {\n const preparedParameters = [];\n for (let i = 0; i < parameters.length; i++) {\n preparedParameters.push(prepareParameter({\n checksumAddress,\n parameter: parameters[i],\n value: values[i],\n }));\n }\n return preparedParameters;\n}\n/** @internal */\nexport function prepareParameter({ checksumAddress = false, parameter: parameter_, value, }) {\n const parameter = parameter_;\n const arrayComponents = getArrayComponents(parameter.type);\n if (arrayComponents) {\n const [length, type] = arrayComponents;\n return encodeArray(value, {\n checksumAddress,\n length,\n parameter: {\n ...parameter,\n type,\n },\n });\n }\n if (parameter.type === 'tuple') {\n return encodeTuple(value, {\n checksumAddress,\n parameter: parameter,\n });\n }\n if (parameter.type === 'address') {\n return encodeAddress(value, {\n checksum: checksumAddress,\n });\n }\n if (parameter.type === 'bool') {\n return encodeBoolean(value);\n }\n if (parameter.type.startsWith('uint') || parameter.type.startsWith('int')) {\n const signed = parameter.type.startsWith('int');\n const [, , size = '256'] = integerRegex.exec(parameter.type) ?? [];\n return encodeNumber(value, {\n signed,\n size: Number(size),\n });\n }\n if (parameter.type.startsWith('bytes')) {\n return encodeBytes(value, { type: parameter.type });\n }\n if (parameter.type === 'string') {\n return encodeString(value);\n }\n throw new AbiParameters.InvalidTypeError(parameter.type);\n}\n/** @internal */\nexport function encode(preparedParameters) {\n // 1. Compute the size of the static part of the parameters.\n let staticSize = 0;\n for (let i = 0; i < preparedParameters.length; i++) {\n const { dynamic, encoded } = preparedParameters[i];\n if (dynamic)\n staticSize += 32;\n else\n staticSize += Hex.size(encoded);\n }\n // 2. Split the parameters into static and dynamic parts.\n const staticParameters = [];\n const dynamicParameters = [];\n let dynamicSize = 0;\n for (let i = 0; i < preparedParameters.length; i++) {\n const { dynamic, encoded } = preparedParameters[i];\n if (dynamic) {\n staticParameters.push(Hex.fromNumber(staticSize + dynamicSize, { size: 32 }));\n dynamicParameters.push(encoded);\n dynamicSize += Hex.size(encoded);\n }\n else {\n staticParameters.push(encoded);\n }\n }\n // 3. Concatenate static and dynamic parts.\n return Hex.concat(...staticParameters, ...dynamicParameters);\n}\n/** @internal */\nexport function encodeAddress(value, options) {\n const { checksum = false } = options;\n Address.assert(value, { strict: checksum });\n return {\n dynamic: false,\n encoded: Hex.padLeft(value.toLowerCase()),\n };\n}\n/** @internal */\nexport function encodeArray(value, options) {\n const { checksumAddress, length, parameter } = options;\n const dynamic = length === null;\n if (!Array.isArray(value))\n throw new AbiParameters.InvalidArrayError(value);\n if (!dynamic && value.length !== length)\n throw new AbiParameters.ArrayLengthMismatchError({\n expectedLength: length,\n givenLength: value.length,\n type: `${parameter.type}[${length}]`,\n });\n let dynamicChild = false;\n const preparedParameters = [];\n for (let i = 0; i < value.length; i++) {\n const preparedParam = prepareParameter({\n checksumAddress,\n parameter,\n value: value[i],\n });\n if (preparedParam.dynamic)\n dynamicChild = true;\n preparedParameters.push(preparedParam);\n }\n if (dynamic || dynamicChild) {\n const data = encode(preparedParameters);\n if (dynamic) {\n const length = Hex.fromNumber(preparedParameters.length, { size: 32 });\n return {\n dynamic: true,\n encoded: preparedParameters.length > 0 ? Hex.concat(length, data) : length,\n };\n }\n if (dynamicChild)\n return { dynamic: true, encoded: data };\n }\n return {\n dynamic: false,\n encoded: Hex.concat(...preparedParameters.map(({ encoded }) => encoded)),\n };\n}\n/** @internal */\nexport function encodeBytes(value, { type }) {\n const [, parametersize] = type.split('bytes');\n const bytesSize = Hex.size(value);\n if (!parametersize) {\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_ = Hex.padRight(value_, Math.ceil((value.length - 2) / 2 / 32) * 32);\n return {\n dynamic: true,\n encoded: Hex.concat(Hex.padLeft(Hex.fromNumber(bytesSize, { size: 32 })), value_),\n };\n }\n if (bytesSize !== Number.parseInt(parametersize))\n throw new AbiParameters.BytesSizeMismatchError({\n expectedSize: Number.parseInt(parametersize),\n value,\n });\n return { dynamic: false, encoded: Hex.padRight(value) };\n}\n/** @internal */\nexport function encodeBoolean(value) {\n if (typeof value !== 'boolean')\n throw new Errors.BaseError(`Invalid boolean value: \"${value}\" (type: ${typeof value}). Expected: \\`true\\` or \\`false\\`.`);\n return { dynamic: false, encoded: Hex.padLeft(Hex.fromBoolean(value)) };\n}\n/** @internal */\nexport function encodeNumber(value, { signed, size }) {\n if (typeof size === 'number') {\n const max = 2n ** (BigInt(size) - (signed ? 1n : 0n)) - 1n;\n const min = signed ? -max - 1n : 0n;\n if (value > max || value < min)\n throw new Hex.IntegerOutOfRangeError({\n max: max.toString(),\n min: min.toString(),\n signed,\n size: size / 8,\n value: value.toString(),\n });\n }\n return {\n dynamic: false,\n encoded: Hex.fromNumber(value, {\n size: 32,\n signed,\n }),\n };\n}\n/** @internal */\nexport function encodeString(value) {\n const hexValue = Hex.fromString(value);\n const partsLength = Math.ceil(Hex.size(hexValue) / 32);\n const parts = [];\n for (let i = 0; i < partsLength; i++) {\n parts.push(Hex.padRight(Hex.slice(hexValue, i * 32, (i + 1) * 32)));\n }\n return {\n dynamic: true,\n encoded: Hex.concat(Hex.padRight(Hex.fromNumber(Hex.size(hexValue), { size: 32 })), ...parts),\n };\n}\n/** @internal */\nexport function encodeTuple(value, options) {\n const { checksumAddress, parameter } = options;\n let dynamic = false;\n const preparedParameters = [];\n for (let i = 0; i < parameter.components.length; i++) {\n const param_ = parameter.components[i];\n const index = Array.isArray(value) ? i : param_.name;\n const preparedParam = prepareParameter({\n checksumAddress,\n parameter: param_,\n value: value[index],\n });\n preparedParameters.push(preparedParam);\n if (preparedParam.dynamic)\n dynamic = true;\n }\n return {\n dynamic,\n encoded: dynamic\n ? encode(preparedParameters)\n : Hex.concat(...preparedParameters.map(({ encoded }) => encoded)),\n };\n}\n/** @internal */\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/** @internal */\nexport function 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({\n ...param,\n type: arrayComponents[1],\n }))\n return true;\n return false;\n}\n//# sourceMappingURL=abiParameters.js.map","import * as abitype from 'abitype';\nimport * as Address from './Address.js';\nimport * as Bytes from './Bytes.js';\nimport * as Errors from './Errors.js';\nimport * as Hex from './Hex.js';\nimport * as Solidity from './Solidity.js';\nimport * as internal from './internal/abiParameters.js';\nimport * as Cursor from './internal/cursor.js';\n// eslint-disable-next-line jsdoc/require-jsdoc\nexport function decode(parameters, data, options = {}) {\n const { as = 'Array', checksumAddress = false } = options;\n const bytes = typeof data === 'string' ? Bytes.fromHex(data) : data;\n const cursor = Cursor.create(bytes);\n if (Bytes.size(bytes) === 0 && parameters.length > 0)\n throw new ZeroDataError();\n if (Bytes.size(bytes) && Bytes.size(bytes) < 32)\n throw new DataSizeTooSmallError({\n data: typeof data === 'string' ? data : Hex.fromBytes(data),\n parameters: parameters,\n size: Bytes.size(bytes),\n });\n let consumed = 0;\n const values = as === 'Array' ? [] : {};\n for (let i = 0; i < parameters.length; ++i) {\n const param = parameters[i];\n cursor.setPosition(consumed);\n const [data, consumed_] = internal.decodeParameter(cursor, param, {\n checksumAddress,\n staticPosition: 0,\n });\n consumed += consumed_;\n if (as === 'Array')\n values.push(data);\n else\n values[param.name ?? i] = data;\n }\n return values;\n}\n/**\n * Encodes primitive values into ABI encoded data as per the [Application Binary Interface (ABI) Specification](https://docs.soliditylang.org/en/latest/abi-spec).\n *\n * @example\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * const data = AbiParameters.encode(\n * AbiParameters.from(['string', 'uint', 'bool']),\n * ['wagmi', 420n, true],\n * )\n * ```\n *\n * @example\n * ### JSON Parameters\n *\n * Specify **JSON ABI** Parameters as schema:\n *\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * const data = AbiParameters.encode(\n * [\n * { type: 'string', name: 'name' },\n * { type: 'uint', name: 'age' },\n * { type: 'bool', name: 'isOwner' },\n * ],\n * ['wagmi', 420n, true],\n * )\n * ```\n *\n * @param parameters - The set of ABI parameters to encode, in the shape of the `inputs` or `outputs` attribute of an ABI Item. These parameters must include valid [ABI types](https://docs.soliditylang.org/en/latest/types.html).\n * @param values - The set of primitive values that correspond to the ABI types defined in `parameters`.\n * @returns ABI encoded data.\n */\nexport function encode(parameters, values, options) {\n const { checksumAddress = false } = options ?? {};\n if (parameters.length !== values.length)\n throw new LengthMismatchError({\n expectedLength: parameters.length,\n givenLength: values.length,\n });\n // Prepare the parameters to determine dynamic types to encode.\n const preparedParameters = internal.prepareParameters({\n checksumAddress,\n parameters: parameters,\n values: values,\n });\n const data = internal.encode(preparedParameters);\n if (data.length === 0)\n return '0x';\n return data;\n}\n/**\n * Encodes an array of primitive values to a [packed ABI encoding](https://docs.soliditylang.org/en/latest/abi-spec.html#non-standard-packed-mode).\n *\n * @example\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * const encoded = AbiParameters.encodePacked(\n * ['address', 'string'],\n * ['0xd8da6bf26964af9d7eed9e03e53415d37aa96045', 'hello world'],\n * )\n * // @log: '0xd8da6bf26964af9d7eed9e03e53415d37aa9604568656c6c6f20776f726c64'\n * ```\n *\n * @param types - Set of ABI types to pack encode.\n * @param values - The set of primitive values that correspond to the ABI types defined in `types`.\n * @returns The encoded packed data.\n */\nexport function encodePacked(types, values) {\n if (types.length !== values.length)\n throw new LengthMismatchError({\n expectedLength: types.length,\n givenLength: values.length,\n });\n const data = [];\n for (let i = 0; i < types.length; i++) {\n const type = types[i];\n const value = values[i];\n data.push(encodePacked.encode(type, value));\n }\n return Hex.concat(...data);\n}\n(function (encodePacked) {\n // eslint-disable-next-line jsdoc/require-jsdoc\n function encode(type, value, isArray = false) {\n if (type === 'address') {\n const address = value;\n Address.assert(address);\n return Hex.padLeft(address.toLowerCase(), isArray ? 32 : 0);\n }\n if (type === 'string')\n return Hex.fromString(value);\n if (type === 'bytes')\n return value;\n if (type === 'bool')\n return Hex.padLeft(Hex.fromBoolean(value), isArray ? 32 : 1);\n const intMatch = type.match(Solidity.integerRegex);\n if (intMatch) {\n const [_type, baseType, bits = '256'] = intMatch;\n const size = Number.parseInt(bits) / 8;\n return Hex.fromNumber(value, {\n size: isArray ? 32 : size,\n signed: baseType === 'int',\n });\n }\n const bytesMatch = type.match(Solidity.bytesRegex);\n if (bytesMatch) {\n const [_type, size] = bytesMatch;\n if (Number.parseInt(size) !== (value.length - 2) / 2)\n throw new BytesSizeMismatchError({\n expectedSize: Number.parseInt(size),\n value: value,\n });\n return Hex.padRight(value, isArray ? 32 : 0);\n }\n const arrayMatch = type.match(Solidity.arrayRegex);\n if (arrayMatch && Array.isArray(value)) {\n const [_type, childType] = arrayMatch;\n const data = [];\n for (let i = 0; i < value.length; i++) {\n data.push(encode(childType, value[i], true));\n }\n if (data.length === 0)\n return '0x';\n return Hex.concat(...data);\n }\n throw new InvalidTypeError(type);\n }\n encodePacked.encode = encode;\n})(encodePacked || (encodePacked = {}));\n/**\n * Formats {@link ox#AbiParameters.AbiParameters} into **Human Readable ABI Parameters**.\n *\n * @example\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * const formatted = AbiParameters.format([\n * {\n * name: 'spender',\n * type: 'address',\n * },\n * {\n * name: 'amount',\n * type: 'uint256',\n * },\n * ])\n *\n * formatted\n * // ^?\n *\n *\n * ```\n *\n * @param parameters - The ABI Parameters to format.\n * @returns The formatted ABI Parameters .\n */\nexport function format(parameters) {\n return abitype.formatAbiParameters(parameters);\n}\n/**\n * Parses arbitrary **JSON ABI Parameters** or **Human Readable ABI Parameters** into typed {@link ox#AbiParameters.AbiParameters}.\n *\n * @example\n * ### JSON Parameters\n *\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * const parameters = AbiParameters.from([\n * {\n * name: 'spender',\n * type: 'address',\n * },\n * {\n * name: 'amount',\n * type: 'uint256',\n * },\n * ])\n *\n * parameters\n * //^?\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n * @example\n * ### Human Readable Parameters\n *\n * Human Readable ABI Parameters can be parsed into a typed {@link ox#AbiParameters.AbiParameters}:\n *\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * const parameters = AbiParameters.from('address spender, uint256 amount')\n *\n * parameters\n * //^?\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n * @example\n * It is possible to specify `struct`s along with your definitions:\n *\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * const parameters = AbiParameters.from([\n * 'struct Foo { address spender; uint256 amount; }', // [!code hl]\n * 'Foo foo, address bar',\n * ])\n *\n * parameters\n * //^?\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n *\n *\n * @param parameters - The ABI Parameters to parse.\n * @returns The typed ABI Parameters.\n */\nexport function from(parameters) {\n if (Array.isArray(parameters) && typeof parameters[0] === 'string')\n return abitype.parseAbiParameters(parameters);\n if (typeof parameters === 'string')\n return abitype.parseAbiParameters(parameters);\n return parameters;\n}\n/**\n * Throws when the data size is too small for the given parameters.\n *\n * @example\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * AbiParameters.decode([{ type: 'uint256' }], '0x010f')\n * // ↑ ❌ 2 bytes\n * // @error: AbiParameters.DataSizeTooSmallError: Data size of 2 bytes is too small for given parameters.\n * // @error: Params: (uint256)\n * // @error: Data: 0x010f (2 bytes)\n * ```\n *\n * ### Solution\n *\n * Pass a valid data size.\n *\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * AbiParameters.decode([{ type: 'uint256' }], '0x00000000000000000000000000000000000000000000000000000000000010f')\n * // ↑ ✅ 32 bytes\n * ```\n */\nexport class DataSizeTooSmallError extends Errors.BaseError {\n constructor({ data, parameters, size, }) {\n super(`Data size of ${size} bytes is too small for given parameters.`, {\n metaMessages: [\n `Params: (${abitype.formatAbiParameters(parameters)})`,\n `Data: ${data} (${size} bytes)`,\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiParameters.DataSizeTooSmallError'\n });\n }\n}\n/**\n * Throws when zero data is provided, but data is expected.\n *\n * @example\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * AbiParameters.decode([{ type: 'uint256' }], '0x')\n * // ↑ ❌ zero data\n * // @error: AbiParameters.DataSizeTooSmallError: Data size of 2 bytes is too small for given parameters.\n * // @error: Params: (uint256)\n * // @error: Data: 0x010f (2 bytes)\n * ```\n *\n * ### Solution\n *\n * Pass valid data.\n *\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * AbiParameters.decode([{ type: 'uint256' }], '0x00000000000000000000000000000000000000000000000000000000000010f')\n * // ↑ ✅ 32 bytes\n * ```\n */\nexport class ZeroDataError extends Errors.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: 'AbiParameters.ZeroDataError'\n });\n }\n}\n/**\n * The length of the array value does not match the length specified in the corresponding ABI parameter.\n *\n * ### Example\n *\n * ```ts twoslash\n * // @noErrors\n * import { AbiParameters } from 'ox'\n * // ---cut---\n * AbiParameters.encode(AbiParameters.from('uint256[3]'), [[69n, 420n]])\n * // ↑ expected: 3 ↑ ❌ length: 2\n * // @error: AbiParameters.ArrayLengthMismatchError: ABI encoding array length mismatch\n * // @error: for type `uint256[3]`. Expected: `3`. Given: `2`.\n * ```\n *\n * ### Solution\n *\n * Pass an array of the correct length.\n *\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n * // ---cut---\n * AbiParameters.encode(AbiParameters.from(['uint256[3]']), [[69n, 420n, 69n]])\n * // ↑ ✅ length: 3\n * ```\n */\nexport class ArrayLengthMismatchError extends Errors.BaseError {\n constructor({ expectedLength, givenLength, type, }) {\n super(`Array length mismatch for type \\`${type}\\`. Expected: \\`${expectedLength}\\`. Given: \\`${givenLength}\\`.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiParameters.ArrayLengthMismatchError'\n });\n }\n}\n/**\n * The size of the bytes value does not match the size specified in the corresponding ABI parameter.\n *\n * ### Example\n *\n * ```ts twoslash\n * // @noErrors\n * import { AbiParameters } from 'ox'\n * // ---cut---\n * AbiParameters.encode(AbiParameters.from('bytes8'), [['0xdeadbeefdeadbeefdeadbeef']])\n * // ↑ expected: 8 bytes ↑ ❌ size: 12 bytes\n * // @error: BytesSizeMismatchError: Size of bytes \"0xdeadbeefdeadbeefdeadbeef\"\n * // @error: (bytes12) does not match expected size (bytes8).\n * ```\n *\n * ### Solution\n *\n * Pass a bytes value of the correct size.\n *\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n * // ---cut---\n * AbiParameters.encode(AbiParameters.from(['bytes8']), ['0xdeadbeefdeadbeef'])\n * // ↑ ✅ size: 8 bytes\n * ```\n */\nexport class BytesSizeMismatchError extends Errors.BaseError {\n constructor({ expectedSize, value, }) {\n super(`Size of bytes \"${value}\" (bytes${Hex.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: 'AbiParameters.BytesSizeMismatchError'\n });\n }\n}\n/**\n * The length of the values to encode does not match the length of the ABI parameters.\n *\n * ### Example\n *\n * ```ts twoslash\n * // @noErrors\n * import { AbiParameters } from 'ox'\n * // ---cut---\n * AbiParameters.encode(AbiParameters.from(['string', 'uint256']), ['hello'])\n * // @error: LengthMismatchError: ABI encoding params/values length mismatch.\n * // @error: Expected length (params): 2\n * // @error: Given length (values): 1\n * ```\n *\n * ### Solution\n *\n * Pass the correct number of values to encode.\n *\n * ### Solution\n *\n * Pass a [valid ABI type](https://docs.soliditylang.org/en/develop/abi-spec.html#types).\n */\nexport class LengthMismatchError extends Errors.BaseError {\n constructor({ expectedLength, givenLength, }) {\n super([\n 'ABI encoding parameters/values length mismatch.',\n `Expected length (parameters): ${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: 'AbiParameters.LengthMismatchError'\n });\n }\n}\n/**\n * The value provided is not a valid array as specified in the corresponding ABI parameter.\n *\n * ### Example\n *\n * ```ts twoslash\n * // @noErrors\n * import { AbiParameters } from 'ox'\n * // ---cut---\n * AbiParameters.encode(AbiParameters.from(['uint256[3]']), [69])\n * ```\n *\n * ### Solution\n *\n * Pass an array value.\n */\nexport class InvalidArrayError extends Errors.BaseError {\n constructor(value) {\n super(`Value \\`${value}\\` is not a valid array.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiParameters.InvalidArrayError'\n });\n }\n}\n/**\n * Throws when the ABI parameter type is invalid.\n *\n * @example\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * AbiParameters.decode([{ type: 'lol' }], '0x00000000000000000000000000000000000000000000000000000000000010f')\n * // ↑ ❌ invalid type\n * // @error: AbiParameters.InvalidTypeError: Type `lol` is not a valid ABI Type.\n * ```\n */\nexport class InvalidTypeError extends Errors.BaseError {\n constructor(type) {\n super(`Type \\`${type}\\` is not a valid ABI Type.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiParameters.InvalidTypeError'\n });\n }\n}\n//# sourceMappingURL=AbiParameters.js.map","import * as abitype from 'abitype';\nimport * as AbiItem from './AbiItem.js';\nimport * as AbiParameters from './AbiParameters.js';\nimport * as Hex from './Hex.js';\n/** @internal */\nexport function decode(abiConstructor, options) {\n const { bytecode } = options;\n if (abiConstructor.inputs.length === 0)\n return undefined;\n const data = options.data.replace(bytecode, '0x');\n return AbiParameters.decode(abiConstructor.inputs, data);\n}\n/**\n * ABI-encodes the provided constructor input (`inputs`).\n *\n * @example\n * ```ts twoslash\n * import { AbiConstructor } from 'ox'\n *\n * const constructor = AbiConstructor.from('constructor(address, uint256)')\n *\n * const data = AbiConstructor.encode(constructor, {\n * bytecode: '0x...',\n * args: ['0xd8da6bf26964af9d7eed9e03e53415d37aa96045', 123n],\n * })\n * ```\n *\n * @example\n * ### End-to-end\n *\n * Below is an end-to-end example of using `AbiConstructor.encode` to encode the constructor of a contract and deploy it.\n *\n * ```ts twoslash\n * import 'ox/window'\n * import { AbiConstructor, Hex } from 'ox'\n *\n * // 1. Instantiate the ABI Constructor.\n * const constructor = AbiConstructor.from(\n * 'constructor(address owner, uint256 amount)',\n * )\n *\n * // 2. Encode the ABI Constructor.\n * const data = AbiConstructor.encode(constructor, {\n * bytecode: '0x...',\n * args: ['0xd8da6bf26964af9d7eed9e03e53415d37aa96045', 123n],\n * })\n *\n * // 3. Deploy the contract.\n * const hash = await window.ethereum!.request({\n * method: 'eth_sendTransaction',\n * params: [{ data }],\n * })\n * ```\n *\n * :::note\n *\n * For simplicity, the above example uses `window.ethereum.request`, but you can use any\n * type of JSON-RPC interface.\n *\n * :::\n *\n * @param abiConstructor - The ABI Constructor to encode.\n * @param options - Encoding options.\n * @returns The encoded constructor.\n */\nexport function encode(abiConstructor, options) {\n const { bytecode, args } = options;\n return Hex.concat(bytecode, abiConstructor.inputs?.length && args?.length\n ? AbiParameters.encode(abiConstructor.inputs, args)\n : '0x');\n}\n/** @internal */\nexport function format(abiConstructor) {\n return abitype.formatAbiItem(abiConstructor);\n}\n/** @internal */\nexport function from(abiConstructor) {\n return AbiItem.from(abiConstructor);\n}\n/** @internal */\nexport function fromAbi(abi) {\n const item = abi.find((item) => item.type === 'constructor');\n if (!item)\n throw new AbiItem.NotFoundError({ name: 'constructor' });\n return item;\n}\n//# sourceMappingURL=AbiConstructor.js.map","import * as abitype from 'abitype';\nimport * as AbiItem from './AbiItem.js';\nimport * as AbiParameters from './AbiParameters.js';\nimport * as Hex from './Hex.js';\n/**\n * ABI-decodes function arguments according to the ABI Item's input types (`inputs`).\n *\n * @example\n * ```ts twoslash\n * import { AbiFunction } from 'ox'\n *\n * const approve = AbiFunction.from('function approve(address, uint256)')\n *\n * const data = AbiFunction.encodeData(\n * approve,\n * ['0xd8da6bf26964af9d7eed9e03e53415d37aa96045', 69420n]\n * )\n * // '0x095ea7b3000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa960450000000000000000000000000000000000000000000000000000000000010f2c'\n *\n * const input = AbiFunction.decodeData(approve, data) // [!code focus]\n * // @log: ['0xd8da6bf26964af9d7eed9e03e53415d37aa96045', 69420n]\n * ```\n *\n * @param abiFunction - The ABI Item to decode.\n * @param data - The data to decode.\n */\nexport function decodeData(abiFunction, data) {\n const { overloads } = abiFunction;\n if (Hex.size(data) < 4)\n throw new AbiItem.InvalidSelectorSizeError({ data });\n if (abiFunction.inputs.length === 0)\n return undefined;\n const item = overloads\n ? fromAbi([abiFunction, ...overloads], data)\n : abiFunction;\n if (Hex.size(data) <= 4)\n return undefined;\n return AbiParameters.decode(item.inputs, Hex.slice(data, 4));\n}\n/**\n * ABI-decodes a function's result according to the ABI Item's output types (`outputs`).\n *\n * :::tip\n *\n * This function is typically used to decode contract function return values (e.g. the response of an `eth_call` or the `input` property of a Transaction).\n *\n * See the [End-to-end Example](#end-to-end).\n *\n * :::\n *\n * @example\n * ```ts twoslash\n * import { AbiFunction } from 'ox'\n *\n * const data = '0x000000000000000000000000000000000000000000000000000000000000002a'\n *\n * const totalSupply = AbiFunction.from('function totalSupply() returns (uint256)')\n *\n * const output = AbiFunction.decodeResult(totalSupply, data)\n * // @log: 42n\n * ```\n *\n * @example\n * You can extract an ABI Function from a JSON ABI with {@link ox#AbiFunction.(fromAbi:function)}:\n *\n * ```ts twoslash\n * // @noErrors\n * import { Abi, AbiFunction } from 'ox'\n *\n * const data = '0x000000000000000000000000000000000000000000000000000000000000002a'\n *\n * const erc20Abi = Abi.from([...]) // [!code hl]\n * const totalSupply = AbiFunction.fromAbi(erc20Abi, 'totalSupply') // [!code hl]\n *\n * const output = AbiFunction.decodeResult(totalSupply, data)\n * // @log: 42n\n * ```\n *\n * @example\n * ### End-to-end\n *\n * Below is an end-to-end example of using `AbiFunction.decodeResult` to decode the result of a `balanceOf` contract call on the [Wagmi Mint Example contract](https://etherscan.io/address/0xfba3912ca04dd458c843e2ee08967fc04f3579c2).\n *\n * ```ts twoslash\n * import 'ox/window'\n * import { Abi, AbiFunction } from 'ox'\n *\n * // 1. Extract the Function from the Contract's ABI.\n * const abi = Abi.from([\n * // ...\n * {\n * name: 'balanceOf',\n * type: 'function',\n * inputs: [{ name: 'account', type: 'address' }],\n * outputs: [{ name: 'balance', type: 'uint256' }],\n * stateMutability: 'view',\n * },\n * // ...\n * ])\n * const balanceOf = AbiFunction.fromAbi(abi, 'balanceOf')\n *\n * // 2. Encode the Function Input.\n * const data = AbiFunction.encodeData(\n * balanceOf,\n * ['0xd2135CfB216b74109775236E36d4b433F1DF507B']\n * )\n *\n * // 3. Perform the Contract Call.\n * const response = await window.ethereum!.request({\n * method: 'eth_call',\n * params: [\n * {\n * data,\n * to: '0xfba3912ca04dd458c843e2ee08967fc04f3579c2',\n * },\n * ],\n * })\n *\n * // 4. Decode the Function Output. // [!code focus]\n * const balance = AbiFunction.decodeResult(balanceOf, response) // [!code focus]\n * // @log: 42n\n * ```\n *\n * :::note\n *\n * For simplicity, the above example uses `window.ethereum.request`, but you can use any\n * type of JSON-RPC interface.\n *\n * :::\n *\n * @param abiFunction - ABI Function to decode\n * @param data - ABI-encoded function output\n * @param options - Decoding options\n * @returns Decoded function output\n */\nexport function decodeResult(abiFunction, data, options = {}) {\n const values = AbiParameters.decode(abiFunction.outputs, data, options);\n if (values && Object.keys(values).length === 0)\n return undefined;\n if (values && Object.keys(values).length === 1) {\n if (Array.isArray(values))\n return values[0];\n return Object.values(values)[0];\n }\n return values;\n}\n/**\n * ABI-encodes function arguments (`inputs`), prefixed with the 4 byte function selector.\n *\n * :::tip\n *\n * This function is typically used to encode a contract function and its arguments for contract calls (e.g. `data` parameter of an `eth_call` or `eth_sendTransaction`).\n *\n * See the [End-to-end Example](#end-to-end).\n *\n * :::\n *\n * @example\n * ```ts twoslash\n * import { AbiFunction } from 'ox'\n *\n * const approve = AbiFunction.from('function approve(address, uint256)')\n *\n * const data = AbiFunction.encodeData( // [!code focus]\n * approve, // [!code focus]\n * ['0xd8da6bf26964af9d7eed9e03e53415d37aa96045', 69420n] // [!code focus]\n * ) // [!code focus]\n * // @log: '0x095ea7b3000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa960450000000000000000000000000000000000000000000000000000000000010f2c'\n * ```\n *\n * @example\n * You can extract an ABI Function from a JSON ABI with {@link ox#AbiFunction.(fromAbi:function)}:\n *\n * ```ts twoslash\n * // @noErrors\n * import { Abi, AbiFunction } from 'ox'\n *\n * const erc20Abi = Abi.from([...]) // [!code hl]\n * const approve = AbiFunction.fromAbi(erc20Abi, 'approve') // [!code hl]\n *\n * const data = AbiFunction.encodeData(\n * approve,\n * ['0xd8da6bf26964af9d7eed9e03e53415d37aa96045', 69420n]\n * )\n * // @log: '0x095ea7b3000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa960450000000000000000000000000000000000000000000000000000000000010f2c'\n * ```\n *\n * @example\n * ### End-to-end\n *\n * Below is an end-to-end example of using `AbiFunction.encodeData` to encode the input of a `balanceOf` contract call on the [Wagmi Mint Example contract](https://etherscan.io/address/0xfba3912ca04dd458c843e2ee08967fc04f3579c2).\n *\n * ```ts twoslash\n * import 'ox/window'\n * import { Abi, AbiFunction } from 'ox'\n *\n * // 1. Extract the Function from the Contract's ABI.\n * const abi = Abi.from([\n * // ...\n * {\n * name: 'balanceOf',\n * type: 'function',\n * inputs: [{ name: 'account', type: 'address' }],\n * outputs: [{ name: 'balance', type: 'uint256' }],\n * stateMutability: 'view',\n * },\n * // ...\n * ])\n * const balanceOf = AbiFunction.fromAbi(abi, 'balanceOf')\n *\n * // 2. Encode the Function Input. // [!code focus]\n * const data = AbiFunction.encodeData( // [!code focus]\n * balanceOf, // [!code focus]\n * ['0xd2135CfB216b74109775236E36d4b433F1DF507B'] // [!code focus]\n * ) // [!code focus]\n *\n * // 3. Perform the Contract Call.\n * const response = await window.ethereum!.request({\n * method: 'eth_call',\n * params: [\n * {\n * data,\n * to: '0xfba3912ca04dd458c843e2ee08967fc04f3579c2',\n * },\n * ],\n * })\n *\n * // 4. Decode the Function Output.\n * const balance = AbiFunction.decodeResult(balanceOf, response)\n * ```\n *\n * :::note\n *\n * For simplicity, the above example uses `window.ethereum.request`, but you can use any\n * type of JSON-RPC interface.\n *\n * :::\n *\n * @param abiFunction - ABI Function to encode\n * @param args - Function arguments\n * @returns ABI-encoded function name and arguments\n */\nexport function encodeData(abiFunction, ...args) {\n const { overloads } = abiFunction;\n const item = overloads\n ? fromAbi([abiFunction, ...overloads], abiFunction.name, {\n args: args[0],\n })\n : abiFunction;\n const selector = getSelector(item);\n const data = args.length > 0\n ? AbiParameters.encode(item.inputs, args[0])\n : undefined;\n return data ? Hex.concat(selector, data) : selector;\n}\n/**\n * ABI-encodes a function's result (`outputs`).\n *\n * @example\n * ```ts twoslash\n * import { AbiFunction } from 'ox'\n *\n * const totalSupply = AbiFunction.from('function totalSupply() returns (uint256)')\n * const output = AbiFunction.decodeResult(totalSupply, '0x000000000000000000000000000000000000000000000000000000000000002a')\n * // 42n\n *\n * const data = AbiFunction.encodeResult(totalSupply, 42n) // [!code focus]\n * // @log: '0x000000000000000000000000000000000000000000000000000000000000002a'\n * ```\n *\n * @param abiFunction - The ABI item to encode the function output for.\n * @param output - The function output to encode.\n * @param options - Encoding options.\n * @returns The encoded function output.\n */\nexport function encodeResult(abiFunction, output, options = {}) {\n const { as = 'Array' } = options;\n const values = (() => {\n if (abiFunction.outputs.length === 1)\n return [output];\n if (Array.isArray(output))\n return output;\n if (as === 'Object')\n return Object.values(output);\n return [output];\n })();\n return AbiParameters.encode(abiFunction.outputs, values);\n}\n/**\n * Formats an {@link ox#AbiFunction.AbiFunction} into a **Human Readable ABI Function**.\n *\n * @example\n * ```ts twoslash\n * import { AbiFunction } from 'ox'\n *\n * const formatted = AbiFunction.format({\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: [{ type: 'bool' }],\n * })\n *\n * formatted\n * // ^?\n *\n *\n * ```\n *\n * @param abiFunction - The ABI Function to format.\n * @returns The formatted ABI Function.\n */\nexport function format(abiFunction) {\n return abitype.formatAbiItem(abiFunction);\n}\n/**\n * Parses an arbitrary **JSON ABI Function** or **Human Readable ABI Function** into a typed {@link ox#AbiFunction.AbiFunction}.\n *\n * @example\n * ### JSON ABIs\n *\n * ```ts twoslash\n * import { AbiFunction } from 'ox'\n *\n * const approve = AbiFunction.from({\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: [{ type: 'bool' }],\n * })\n *\n * approve\n * //^?\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n * @example\n * ### Human Readable ABIs\n *\n * A Human Readable ABI can be parsed into a typed ABI object:\n *\n * ```ts twoslash\n * import { AbiFunction } from 'ox'\n *\n * const approve = AbiFunction.from(\n * 'function approve(address spender, uint256 amount) returns (bool)' // [!code hl]\n * )\n *\n * approve\n * //^?\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n * @example\n * It is possible to specify `struct`s along with your definitions:\n *\n * ```ts twoslash\n * import { AbiFunction } from 'ox'\n *\n * const approve = AbiFunction.from([\n * 'struct Foo { address spender; uint256 amount; }', // [!code hl]\n * 'function approve(Foo foo) returns (bool)',\n * ])\n *\n * approve\n * //^?\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n *\n *\n * @param abiFunction - The ABI Function to parse.\n * @returns Typed ABI Function.\n */\nexport function from(abiFunction, options = {}) {\n return AbiItem.from(abiFunction, options);\n}\n/**\n * Extracts an {@link ox#AbiFunction.AbiFunction} from an {@link ox#Abi.Abi} given a name and optional arguments.\n *\n * @example\n * ### Extracting by Name\n *\n * ABI Functions can be extracted by their name using the `name` option:\n *\n * ```ts twoslash\n * import { Abi, AbiFunction } from 'ox'\n *\n * const abi = Abi.from([\n * 'function foo()',\n * 'event Transfer(address owner, address to, uint256 tokenId)',\n * 'function bar(string a) returns (uint256 x)',\n * ])\n *\n * const item = AbiFunction.fromAbi(abi, 'foo') // [!code focus]\n * // ^?\n *\n *\n *\n *\n *\n *\n * ```\n *\n * @example\n * ### Extracting by Selector\n *\n * ABI Functions can be extract by their selector when {@link ox#Hex.Hex} is provided to `name`.\n *\n * ```ts twoslash\n * import { Abi, AbiFunction } from 'ox'\n *\n * const abi = Abi.from([\n * 'function foo()',\n * 'event Transfer(address owner, address to, uint256 tokenId)',\n * 'function bar(string a) returns (uint256 x)',\n * ])\n * const item = AbiFunction.fromAbi(abi, '0x095ea7b3') // [!code focus]\n * // ^?\n *\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n * :::note\n *\n * Extracting via a hex selector is useful when extracting an ABI Function from an `eth_call` RPC response or\n * from a Transaction `input`.\n *\n * :::\n *\n * @param abi - The ABI to extract from.\n * @param name - The name (or selector) of the ABI item to extract.\n * @param options - Extraction options.\n * @returns The ABI item.\n */\nexport function fromAbi(abi, name, options) {\n const item = AbiItem.fromAbi(abi, name, options);\n if (item.type !== 'function')\n throw new AbiItem.NotFoundError({ name, type: 'function' });\n return item;\n}\n/**\n * Computes the [4-byte selector](https://solidity-by-example.org/function-selector/) for an {@link ox#AbiFunction.AbiFunction}.\n *\n * Useful for computing function selectors for calldata.\n *\n * @example\n * ```ts twoslash\n * import { AbiFunction } from 'ox'\n *\n * const selector = AbiFunction.getSelector('function ownerOf(uint256 tokenId)')\n * // @log: '0x6352211e'\n * ```\n *\n * @example\n * ```ts twoslash\n * import { AbiFunction } from 'ox'\n *\n * const selector = AbiFunction.getSelector({\n * inputs: [{ type: 'uint256' }],\n * name: 'ownerOf',\n * outputs: [],\n * stateMutability: 'view',\n * type: 'function'\n * })\n * // @log: '0x6352211e'\n * ```\n *\n * @param abiItem - The ABI item to compute the selector for.\n * @returns The first 4 bytes of the {@link ox#Hash.(keccak256:function)} hash of the function signature.\n */\nexport function getSelector(abiItem) {\n return AbiItem.getSelector(abiItem);\n}\n//# sourceMappingURL=AbiFunction.js.map","export const entryPoint06Address = '0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789';\nexport const entryPoint07Address = '0x0000000071727De22E5E9d8BAf0edAc6f37da032';\nexport const ethAddress = '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee';\nexport const zeroAddress = '0x0000000000000000000000000000000000000000';\n//# sourceMappingURL=address.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","export async function wait(time) {\n return new Promise((res) => setTimeout(res, time));\n}\n//# sourceMappingURL=wait.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 { 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 { 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, methods, retryDelay = 150, retryCount = 3, uid, } = {\n ...options,\n ...overrideOptions,\n };\n const { method } = args;\n if (methods?.exclude?.includes(method))\n throw new MethodNotSupportedRpcError(new Error('method not supported'), {\n method,\n });\n if (methods?.include && !methods.include.includes(method))\n throw new MethodNotSupportedRpcError(new Error('method not supported'), {\n method,\n });\n const requestId = dedupe\n ? 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, { method: args.method });\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 method: args.method,\n });\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 { stringify } from '../utils/stringify.js';\nimport { BaseError } from './base.js';\nimport { getUrl } from './utils.js';\nexport class OffchainLookupError extends BaseError {\n constructor({ callbackSelector, cause, data, extraData, sender, urls, }) {\n super(cause.shortMessage ||\n 'An error occurred while fetching for an offchain result.', {\n cause,\n metaMessages: [\n ...(cause.metaMessages || []),\n cause.metaMessages?.length ? '' : [],\n 'Offchain Gateway Call:',\n urls && [\n ' Gateway URL(s):',\n ...urls.map((url) => ` ${getUrl(url)}`),\n ],\n ` Sender: ${sender}`,\n ` Data: ${data}`,\n ` Callback selector: ${callbackSelector}`,\n ` Extra data: ${extraData}`,\n ].flat(),\n name: 'OffchainLookupError',\n });\n }\n}\nexport class OffchainLookupResponseMalformedError extends BaseError {\n constructor({ result, url }) {\n super('Offchain gateway response is malformed. Response data must be a hex value.', {\n metaMessages: [\n `Gateway URL: ${getUrl(url)}`,\n `Response: ${stringify(result)}`,\n ],\n name: 'OffchainLookupResponseMalformedError',\n });\n }\n}\nexport class OffchainLookupSenderMismatchError extends BaseError {\n constructor({ sender, to }) {\n super('Reverted sender address does not match target contract address (`to`).', {\n metaMessages: [\n `Contract address: ${to}`,\n `OffchainLookup sender address: ${sender}`,\n ],\n name: 'OffchainLookupSenderMismatchError',\n });\n }\n}\n//# sourceMappingURL=ccip.js.map","import { call } from '../actions/public/call.js';\nimport { OffchainLookupError, OffchainLookupResponseMalformedError, OffchainLookupSenderMismatchError, } from '../errors/ccip.js';\nimport { HttpRequestError, } from '../errors/request.js';\nimport { decodeErrorResult } from './abi/decodeErrorResult.js';\nimport { encodeAbiParameters } from './abi/encodeAbiParameters.js';\nimport { isAddressEqual } from './address/isAddressEqual.js';\nimport { concat } from './data/concat.js';\nimport { isHex } from './data/isHex.js';\nimport { stringify } from './stringify.js';\nexport const offchainLookupSignature = '0x556f1830';\nexport const offchainLookupAbiItem = {\n name: 'OffchainLookup',\n type: 'error',\n inputs: [\n {\n name: 'sender',\n type: 'address',\n },\n {\n name: 'urls',\n type: 'string[]',\n },\n {\n name: 'callData',\n type: 'bytes',\n },\n {\n name: 'callbackFunction',\n type: 'bytes4',\n },\n {\n name: 'extraData',\n type: 'bytes',\n },\n ],\n};\nexport async function offchainLookup(client, { blockNumber, blockTag, data, to, }) {\n const { args } = decodeErrorResult({\n data,\n abi: [offchainLookupAbiItem],\n });\n const [sender, urls, callData, callbackSelector, extraData] = args;\n const { ccipRead } = client;\n const ccipRequest_ = ccipRead && typeof ccipRead?.request === 'function'\n ? ccipRead.request\n : ccipRequest;\n try {\n if (!isAddressEqual(to, sender))\n throw new OffchainLookupSenderMismatchError({ sender, to });\n const result = await ccipRequest_({ data: callData, sender, urls });\n const { data: data_ } = await call(client, {\n blockNumber,\n blockTag,\n data: concat([\n callbackSelector,\n encodeAbiParameters([{ type: 'bytes' }, { type: 'bytes' }], [result, extraData]),\n ]),\n to,\n });\n return data_;\n }\n catch (err) {\n throw new OffchainLookupError({\n callbackSelector,\n cause: err,\n data,\n extraData,\n sender,\n urls,\n });\n }\n}\nexport async function ccipRequest({ data, sender, urls, }) {\n let error = new Error('An unknown error occurred.');\n for (let i = 0; i < urls.length; i++) {\n const url = urls[i];\n const method = url.includes('{data}') ? 'GET' : 'POST';\n const body = method === 'POST' ? { data, sender } : undefined;\n const headers = method === 'POST' ? { 'Content-Type': 'application/json' } : {};\n try {\n const response = await fetch(url.replace('{sender}', sender.toLowerCase()).replace('{data}', data), {\n body: JSON.stringify(body),\n headers,\n method,\n });\n let result;\n if (response.headers.get('Content-Type')?.startsWith('application/json')) {\n result = (await response.json()).data;\n }\n else {\n result = (await response.text());\n }\n if (!response.ok) {\n error = new HttpRequestError({\n body,\n details: result?.error\n ? stringify(result.error)\n : response.statusText,\n headers: response.headers,\n status: response.status,\n url,\n });\n continue;\n }\n if (!isHex(result)) {\n error = new OffchainLookupResponseMalformedError({\n result,\n url,\n });\n continue;\n }\n return result;\n }\n catch (err) {\n error = new HttpRequestError({\n body,\n details: err.message,\n url,\n });\n }\n }\n throw error;\n}\n//# sourceMappingURL=ccip.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","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 { 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 'Content-Type': 'application/json',\n ...headers,\n },\n method: method || 'POST',\n signal: signal_ || (timeout > 0 ? signal : null),\n };\n const request = new Request(url, init);\n const args = (await onRequest?.(request, init)) ?? { ...init, url };\n const response = await fetch(args.url ?? url, args);\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 try {\n data = JSON.parse(data || '{}');\n }\n catch (err) {\n if (response.ok)\n throw err;\n data = { error: data };\n }\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 cause: err,\n url,\n });\n }\n },\n };\n}\n//# sourceMappingURL=http.js.map","import { stringify } from '../utils/stringify.js';\nimport { BaseError } from './base.js';\nexport class InvalidDomainError extends BaseError {\n constructor({ domain }) {\n super(`Invalid domain \"${stringify(domain)}\".`, {\n metaMessages: ['Must be a valid EIP-712 domain.'],\n });\n }\n}\nexport class InvalidPrimaryTypeError extends BaseError {\n constructor({ primaryType, types, }) {\n super(`Invalid primary type \\`${primaryType}\\` must be one of \\`${JSON.stringify(Object.keys(types))}\\`.`, {\n docsPath: '/api/glossary/Errors#typeddatainvalidprimarytypeerror',\n metaMessages: ['Check that the primary type is a key in `types`.'],\n });\n }\n}\nexport class InvalidStructTypeError extends BaseError {\n constructor({ type }) {\n super(`Struct type \"${type}\" is invalid.`, {\n metaMessages: ['Struct type must not be a Solidity type.'],\n name: 'InvalidStructTypeError',\n });\n }\n}\n//# sourceMappingURL=typedData.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}\nexport function 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}\nexport function 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 { BytesSizeMismatchError } from '../errors/abi.js';\nimport { InvalidAddressError } from '../errors/address.js';\nimport { InvalidDomainError, InvalidPrimaryTypeError, InvalidStructTypeError, } from '../errors/typedData.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 validateReference(type);\n validateData(struct, value);\n }\n }\n };\n // Validate domain types.\n if (types.EIP712Domain && domain) {\n if (typeof domain !== 'object')\n throw new InvalidDomainError({ domain });\n validateData(types.EIP712Domain, domain);\n }\n // Validate message types.\n if (primaryType !== 'EIP712Domain') {\n if (types[primaryType])\n validateData(types[primaryType], message);\n else\n throw new InvalidPrimaryTypeError({ primaryType, types });\n }\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 typeof domain?.chainId === 'bigint') && {\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/** @internal */\nfunction validateReference(type) {\n // Struct type must not be a Solidity type.\n if (type === 'address' ||\n type === 'bool' ||\n type === 'string' ||\n type.startsWith('bytes') ||\n type.startsWith('uint') ||\n type.startsWith('int'))\n throw new InvalidStructTypeError({ type });\n}\n//# sourceMappingURL=typedData.js.map","import { versionedHashVersionKzg } from '../../constants/kzg.js';\nimport { maxUint256 } from '../../constants/number.js';\nimport { InvalidAddressError, } from '../../errors/address.js';\nimport { BaseError } from '../../errors/base.js';\nimport { EmptyBlobError, InvalidVersionedHashSizeError, InvalidVersionedHashVersionError, } from '../../errors/blob.js';\nimport { InvalidChainIdError, } from '../../errors/chain.js';\nimport { FeeCapTooHighError, TipAboveFeeCapError, } from '../../errors/node.js';\nimport { isAddress } from '../address/isAddress.js';\nimport { size } from '../data/size.js';\nimport { slice } from '../data/slice.js';\nimport { hexToNumber } from '../encoding/fromHex.js';\nexport function assertTransactionEIP7702(transaction) {\n const { authorizationList } = transaction;\n if (authorizationList) {\n for (const authorization of authorizationList) {\n const { chainId } = authorization;\n const address = authorization.address;\n if (!isAddress(address))\n throw new InvalidAddressError({ address });\n if (chainId < 0)\n throw new InvalidChainIdError({ chainId });\n }\n }\n assertTransactionEIP1559(transaction);\n}\nexport function assertTransactionEIP4844(transaction) {\n const { blobVersionedHashes } = transaction;\n if (blobVersionedHashes) {\n if (blobVersionedHashes.length === 0)\n throw new EmptyBlobError();\n for (const hash of blobVersionedHashes) {\n const size_ = size(hash);\n const version = hexToNumber(slice(hash, 0, 1));\n if (size_ !== 32)\n throw new InvalidVersionedHashSizeError({ hash, size: size_ });\n if (version !== versionedHashVersionKzg)\n throw new InvalidVersionedHashVersionError({\n hash,\n version,\n });\n }\n }\n assertTransactionEIP1559(transaction);\n}\nexport function assertTransactionEIP1559(transaction) {\n const { chainId, maxPriorityFeePerGas, maxFeePerGas, to } = transaction;\n if (chainId <= 0)\n throw new InvalidChainIdError({ chainId });\n if (to && !isAddress(to))\n throw new InvalidAddressError({ address: to });\n if (maxFeePerGas && maxFeePerGas > maxUint256)\n throw new FeeCapTooHighError({ maxFeePerGas });\n if (maxPriorityFeePerGas &&\n maxFeePerGas &&\n maxPriorityFeePerGas > maxFeePerGas)\n throw new TipAboveFeeCapError({ maxFeePerGas, maxPriorityFeePerGas });\n}\nexport function assertTransactionEIP2930(transaction) {\n const { chainId, maxPriorityFeePerGas, gasPrice, maxFeePerGas, to } = transaction;\n if (chainId <= 0)\n throw new InvalidChainIdError({ chainId });\n if (to && !isAddress(to))\n throw new InvalidAddressError({ address: to });\n if (maxPriorityFeePerGas || maxFeePerGas)\n throw new BaseError('`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute.');\n if (gasPrice && gasPrice > maxUint256)\n throw new FeeCapTooHighError({ maxFeePerGas: gasPrice });\n}\nexport function assertTransactionLegacy(transaction) {\n const { chainId, maxPriorityFeePerGas, gasPrice, maxFeePerGas, to } = transaction;\n if (to && !isAddress(to))\n throw new InvalidAddressError({ address: to });\n if (typeof chainId !== 'undefined' && chainId <= 0)\n throw new InvalidChainIdError({ chainId });\n if (maxPriorityFeePerGas || maxFeePerGas)\n throw new BaseError('`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.');\n if (gasPrice && gasPrice > maxUint256)\n throw new FeeCapTooHighError({ maxFeePerGas: gasPrice });\n}\n//# sourceMappingURL=assertTransaction.js.map","import { InvalidAddressError, } from '../../errors/address.js';\nimport { InvalidStorageKeySizeError, } from '../../errors/transaction.js';\nimport { isAddress } from '../address/isAddress.js';\n/*\n * Serialize an EIP-2930 access list\n * @remarks\n * Use to create a transaction serializer with support for EIP-2930 access lists\n *\n * @param accessList - Array of objects of address and arrays of Storage Keys\n * @throws InvalidAddressError, InvalidStorageKeySizeError\n * @returns Array of hex strings\n */\nexport function serializeAccessList(accessList) {\n if (!accessList || accessList.length === 0)\n return [];\n const serializedAccessList = [];\n for (let i = 0; i < accessList.length; i++) {\n const { address, storageKeys } = accessList[i];\n for (let j = 0; j < storageKeys.length; j++) {\n if (storageKeys[j].length - 2 !== 64) {\n throw new InvalidStorageKeySizeError({ storageKey: storageKeys[j] });\n }\n }\n if (!isAddress(address, { strict: false })) {\n throw new InvalidAddressError({ address });\n }\n serializedAccessList.push([address, storageKeys]);\n }\n return serializedAccessList;\n}\n//# sourceMappingURL=serializeAccessList.js.map","import { InvalidLegacyVError, } from '../../errors/transaction.js';\nimport { serializeAuthorizationList, } from '../authorization/serializeAuthorizationList.js';\nimport { blobsToCommitments, } from '../blob/blobsToCommitments.js';\nimport { blobsToProofs, } from '../blob/blobsToProofs.js';\nimport { commitmentsToVersionedHashes, } from '../blob/commitmentsToVersionedHashes.js';\nimport { toBlobSidecars, } from '../blob/toBlobSidecars.js';\nimport { concatHex } from '../data/concat.js';\nimport { trim } from '../data/trim.js';\nimport { bytesToHex, toHex } from '../encoding/toHex.js';\nimport { toRlp } from '../encoding/toRlp.js';\nimport { assertTransactionEIP1559, assertTransactionEIP2930, assertTransactionEIP4844, assertTransactionEIP7702, assertTransactionLegacy, } from './assertTransaction.js';\nimport { getTransactionType, } from './getTransactionType.js';\nimport { serializeAccessList, } from './serializeAccessList.js';\nexport function serializeTransaction(transaction, signature) {\n const type = getTransactionType(transaction);\n if (type === 'eip1559')\n return serializeTransactionEIP1559(transaction, signature);\n if (type === 'eip2930')\n return serializeTransactionEIP2930(transaction, signature);\n if (type === 'eip4844')\n return serializeTransactionEIP4844(transaction, signature);\n if (type === 'eip7702')\n return serializeTransactionEIP7702(transaction, signature);\n return serializeTransactionLegacy(transaction, signature);\n}\nfunction serializeTransactionEIP7702(transaction, signature) {\n const { authorizationList, chainId, gas, nonce, to, value, maxFeePerGas, maxPriorityFeePerGas, accessList, data, } = transaction;\n assertTransactionEIP7702(transaction);\n const serializedAccessList = serializeAccessList(accessList);\n const serializedAuthorizationList = serializeAuthorizationList(authorizationList);\n return concatHex([\n '0x04',\n toRlp([\n toHex(chainId),\n nonce ? toHex(nonce) : '0x',\n maxPriorityFeePerGas ? toHex(maxPriorityFeePerGas) : '0x',\n maxFeePerGas ? toHex(maxFeePerGas) : '0x',\n gas ? toHex(gas) : '0x',\n to ?? '0x',\n value ? toHex(value) : '0x',\n data ?? '0x',\n serializedAccessList,\n serializedAuthorizationList,\n ...toYParitySignatureArray(transaction, signature),\n ]),\n ]);\n}\nfunction serializeTransactionEIP4844(transaction, signature) {\n const { chainId, gas, nonce, to, value, maxFeePerBlobGas, maxFeePerGas, maxPriorityFeePerGas, accessList, data, } = transaction;\n assertTransactionEIP4844(transaction);\n let blobVersionedHashes = transaction.blobVersionedHashes;\n let sidecars = transaction.sidecars;\n // If `blobs` are passed, we will need to compute the KZG commitments & proofs.\n if (transaction.blobs &&\n (typeof blobVersionedHashes === 'undefined' ||\n typeof sidecars === 'undefined')) {\n const blobs = (typeof transaction.blobs[0] === 'string'\n ? transaction.blobs\n : transaction.blobs.map((x) => bytesToHex(x)));\n const kzg = transaction.kzg;\n const commitments = blobsToCommitments({\n blobs,\n kzg,\n });\n if (typeof blobVersionedHashes === 'undefined')\n blobVersionedHashes = commitmentsToVersionedHashes({\n commitments,\n });\n if (typeof sidecars === 'undefined') {\n const proofs = blobsToProofs({ blobs, commitments, kzg });\n sidecars = toBlobSidecars({ blobs, commitments, proofs });\n }\n }\n const serializedAccessList = serializeAccessList(accessList);\n const serializedTransaction = [\n toHex(chainId),\n nonce ? toHex(nonce) : '0x',\n maxPriorityFeePerGas ? toHex(maxPriorityFeePerGas) : '0x',\n maxFeePerGas ? toHex(maxFeePerGas) : '0x',\n gas ? toHex(gas) : '0x',\n to ?? '0x',\n value ? toHex(value) : '0x',\n data ?? '0x',\n serializedAccessList,\n maxFeePerBlobGas ? toHex(maxFeePerBlobGas) : '0x',\n blobVersionedHashes ?? [],\n ...toYParitySignatureArray(transaction, signature),\n ];\n const blobs = [];\n const commitments = [];\n const proofs = [];\n if (sidecars)\n for (let i = 0; i < sidecars.length; i++) {\n const { blob, commitment, proof } = sidecars[i];\n blobs.push(blob);\n commitments.push(commitment);\n proofs.push(proof);\n }\n return concatHex([\n '0x03',\n sidecars\n ? // If sidecars are enabled, envelope turns into a \"wrapper\":\n toRlp([serializedTransaction, blobs, commitments, proofs])\n : // If sidecars are disabled, standard envelope is used:\n toRlp(serializedTransaction),\n ]);\n}\nfunction serializeTransactionEIP1559(transaction, signature) {\n const { chainId, gas, nonce, to, value, maxFeePerGas, maxPriorityFeePerGas, accessList, data, } = transaction;\n assertTransactionEIP1559(transaction);\n const serializedAccessList = serializeAccessList(accessList);\n const serializedTransaction = [\n toHex(chainId),\n nonce ? toHex(nonce) : '0x',\n maxPriorityFeePerGas ? toHex(maxPriorityFeePerGas) : '0x',\n maxFeePerGas ? toHex(maxFeePerGas) : '0x',\n gas ? toHex(gas) : '0x',\n to ?? '0x',\n value ? toHex(value) : '0x',\n data ?? '0x',\n serializedAccessList,\n ...toYParitySignatureArray(transaction, signature),\n ];\n return concatHex([\n '0x02',\n toRlp(serializedTransaction),\n ]);\n}\nfunction serializeTransactionEIP2930(transaction, signature) {\n const { chainId, gas, data, nonce, to, value, accessList, gasPrice } = transaction;\n assertTransactionEIP2930(transaction);\n const serializedAccessList = serializeAccessList(accessList);\n const serializedTransaction = [\n toHex(chainId),\n nonce ? toHex(nonce) : '0x',\n gasPrice ? toHex(gasPrice) : '0x',\n gas ? toHex(gas) : '0x',\n to ?? '0x',\n value ? toHex(value) : '0x',\n data ?? '0x',\n serializedAccessList,\n ...toYParitySignatureArray(transaction, signature),\n ];\n return concatHex([\n '0x01',\n toRlp(serializedTransaction),\n ]);\n}\nfunction serializeTransactionLegacy(transaction, signature) {\n const { chainId = 0, gas, data, nonce, to, value, gasPrice } = transaction;\n assertTransactionLegacy(transaction);\n let serializedTransaction = [\n nonce ? toHex(nonce) : '0x',\n gasPrice ? toHex(gasPrice) : '0x',\n gas ? toHex(gas) : '0x',\n to ?? '0x',\n value ? toHex(value) : '0x',\n data ?? '0x',\n ];\n if (signature) {\n const v = (() => {\n // EIP-155 (inferred chainId)\n if (signature.v >= 35n) {\n const inferredChainId = (signature.v - 35n) / 2n;\n if (inferredChainId > 0)\n return signature.v;\n return 27n + (signature.v === 35n ? 0n : 1n);\n }\n // EIP-155 (explicit chainId)\n if (chainId > 0)\n return BigInt(chainId * 2) + BigInt(35n + signature.v - 27n);\n // Pre-EIP-155 (no chainId)\n const v = 27n + (signature.v === 27n ? 0n : 1n);\n if (signature.v !== v)\n throw new InvalidLegacyVError({ v: signature.v });\n return v;\n })();\n const r = trim(signature.r);\n const s = trim(signature.s);\n serializedTransaction = [\n ...serializedTransaction,\n toHex(v),\n r === '0x00' ? '0x' : r,\n s === '0x00' ? '0x' : s,\n ];\n }\n else if (chainId > 0) {\n serializedTransaction = [\n ...serializedTransaction,\n toHex(chainId),\n '0x',\n '0x',\n ];\n }\n return toRlp(serializedTransaction);\n}\nexport function toYParitySignatureArray(transaction, signature_) {\n const signature = signature_ ?? transaction;\n const { v, yParity } = signature;\n if (typeof signature.r === 'undefined')\n return [];\n if (typeof signature.s === 'undefined')\n return [];\n if (typeof v === 'undefined' && typeof yParity === 'undefined')\n return [];\n const r = trim(signature.r);\n const s = trim(signature.s);\n const yParity_ = (() => {\n if (typeof yParity === 'number')\n return yParity ? toHex(1) : '0x';\n if (v === 0n)\n return '0x';\n if (v === 1n)\n return toHex(1);\n return v === 27n ? '0x' : toHex(1);\n })();\n return [yParity_, r === '0x00' ? '0x' : r, s === '0x00' ? '0x' : s];\n}\n//# sourceMappingURL=serializeTransaction.js.map","import { toHex } from '../encoding/toHex.js';\nimport { toYParitySignatureArray } from '../transaction/serializeTransaction.js';\n/*\n * Serializes an EIP-7702 authorization list.\n */\nexport function serializeAuthorizationList(authorizationList) {\n if (!authorizationList || authorizationList.length === 0)\n return [];\n const serializedAuthorizationList = [];\n for (const authorization of authorizationList) {\n const { chainId, nonce, ...signature } = authorization;\n const contractAddress = authorization.address;\n serializedAuthorizationList.push([\n chainId ? toHex(chainId) : '0x',\n contractAddress,\n nonce ? toHex(nonce) : '0x',\n ...toYParitySignatureArray({}, signature),\n ]);\n }\n return serializedAuthorizationList;\n}\n//# sourceMappingURL=serializeAuthorizationList.js.map","export const presignMessagePrefix = '\\x19Ethereum Signed Message:\\n';\n//# sourceMappingURL=strings.js.map","import { presignMessagePrefix } from '../../constants/strings.js';\nimport { concat } from '../data/concat.js';\nimport { size } from '../data/size.js';\nimport { bytesToHex, stringToHex, } from '../encoding/toHex.js';\nexport function toPrefixedMessage(message_) {\n const message = (() => {\n if (typeof message_ === 'string')\n return stringToHex(message_);\n if (typeof message_.raw === 'string')\n return message_.raw;\n return bytesToHex(message_.raw);\n })();\n const prefix = stringToHex(`${presignMessagePrefix}${size(message)}`);\n return concat([prefix, message]);\n}\n//# sourceMappingURL=toPrefixedMessage.js.map","import { keccak256 } from '../hash/keccak256.js';\nimport { toPrefixedMessage } from './toPrefixedMessage.js';\nexport function hashMessage(message, to_) {\n return keccak256(toPrefixedMessage(message), to_);\n}\n//# sourceMappingURL=hashMessage.js.map","export const erc6492MagicBytes = '0x6492649264926492649264926492649264926492649264926492649264926492';\nexport const zeroHash = '0x0000000000000000000000000000000000000000000000000000000000000000';\n//# sourceMappingURL=bytes.js.map","import { erc6492MagicBytes } from '../../constants/bytes.js';\nimport { sliceHex } from '../data/slice.js';\n/** Whether or not the signature is an ERC-6492 formatted signature. */\nexport function isErc6492Signature(signature) {\n return sliceHex(signature, -32) === erc6492MagicBytes;\n}\n//# sourceMappingURL=isErc6492Signature.js.map","import { erc6492MagicBytes } from '../../constants/bytes.js';\nimport { encodeAbiParameters } from '../abi/encodeAbiParameters.js';\nimport { concatHex } from '../data/concat.js';\nimport { hexToBytes } from '../encoding/toBytes.js';\n/**\n * @description Serializes a ERC-6492 flavoured signature into hex format.\n *\n * @param signature ERC-6492 signature in object format.\n * @returns ERC-6492 signature in hex format.\n *\n * @example\n * serializeSignature({ address: '0x...', data: '0x...', signature: '0x...' })\n * // '0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492'\n */\nexport function serializeErc6492Signature(parameters) {\n const { address, data, signature, to = 'hex' } = parameters;\n const signature_ = concatHex([\n encodeAbiParameters([{ type: 'address' }, { type: 'bytes' }, { type: 'bytes' }], [address, data, signature]),\n erc6492MagicBytes,\n ]);\n if (to === 'hex')\n return signature_;\n return hexToBytes(signature_);\n}\n//# sourceMappingURL=serializeErc6492Signature.js.map","import { BaseError } from './base.js';\nexport class InvalidDecimalNumberError extends BaseError {\n constructor({ value }) {\n super(`Number \\`${value}\\` is not a valid decimal number.`, {\n name: 'InvalidDecimalNumberError',\n });\n }\n}\n//# sourceMappingURL=unit.js.map","import { InvalidDecimalNumberError } from '../../errors/unit.js';\n/**\n * Multiplies a string representation of a number by a given exponent of base 10 (10exponent).\n *\n * - Docs: https://viem.sh/docs/utilities/parseUnits\n *\n * @example\n * import { parseUnits } from 'viem'\n *\n * parseUnits('420', 9)\n * // 420000000000n\n */\nexport function parseUnits(value, decimals) {\n if (!/^(-?)([0-9]*)\\.?([0-9]*)$/.test(value))\n throw new InvalidDecimalNumberError({ value });\n let [integer, fraction = '0'] = value.split('.');\n const negative = integer.startsWith('-');\n if (negative)\n integer = integer.slice(1);\n // trim trailing zeros.\n fraction = fraction.replace(/(0+)$/, '');\n // round off if the fraction is larger than the number of decimals.\n if (decimals === 0) {\n if (Math.round(Number(`.${fraction}`)) === 1)\n integer = `${BigInt(integer) + 1n}`;\n fraction = '';\n }\n else if (fraction.length > decimals) {\n const [left, unit, right] = [\n fraction.slice(0, decimals - 1),\n fraction.slice(decimals - 1, decimals),\n fraction.slice(decimals),\n ];\n const rounded = Math.round(Number(`${unit}.${right}`));\n if (rounded > 9)\n fraction = `${BigInt(left) + BigInt(1)}0`.padStart(left.length + 1, '0');\n else\n fraction = `${left}${rounded}`;\n if (fraction.length > decimals) {\n fraction = fraction.slice(1);\n integer = `${BigInt(integer) + 1n}`;\n }\n fraction = fraction.slice(0, decimals);\n }\n else {\n fraction = fraction.padEnd(decimals, '0');\n }\n return BigInt(`${negative ? '-' : ''}${integer}${fraction}`);\n}\n//# sourceMappingURL=parseUnits.js.map","import { etherUnits } from '../../constants/unit.js';\nimport { parseUnits } from './parseUnits.js';\n/**\n * Converts a string representation of ether to numerical wei.\n *\n * - Docs: https://viem.sh/docs/utilities/parseEther\n *\n * @example\n * import { parseEther } from 'viem'\n *\n * parseEther('420')\n * // 420000000000000000000n\n */\nexport function parseEther(ether, unit = 'wei') {\n return parseUnits(ether, etherUnits[unit]);\n}\n//# sourceMappingURL=parseEther.js.map","import * as AbiConstructor from 'ox/AbiConstructor';\nimport * as AbiFunction from 'ox/AbiFunction';\nimport { parseAccount } from '../../accounts/utils/parseAccount.js';\nimport { ethAddress, zeroAddress } from '../../constants/address.js';\nimport { deploylessCallViaBytecodeBytecode } from '../../constants/contracts.js';\nimport { BaseError } from '../../errors/base.js';\nimport { encodeFunctionData, } from '../../utils/abi/encodeFunctionData.js';\nimport { hexToBigInt } from '../../utils/index.js';\nimport { createAccessList, } from './createAccessList.js';\nimport { simulateBlocks, } from './simulateBlocks.js';\nconst getBalanceCode = '0x6080604052348015600e575f80fd5b5061016d8061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063f8b2cb4f1461002d575b5f80fd5b610047600480360381019061004291906100db565b61005d565b604051610054919061011e565b60405180910390f35b5f8173ffffffffffffffffffffffffffffffffffffffff16319050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100aa82610081565b9050919050565b6100ba816100a0565b81146100c4575f80fd5b50565b5f813590506100d5816100b1565b92915050565b5f602082840312156100f0576100ef61007d565b5b5f6100fd848285016100c7565b91505092915050565b5f819050919050565b61011881610106565b82525050565b5f6020820190506101315f83018461010f565b9291505056fea26469706673582212203b9fe929fe995c7cf9887f0bdba8a36dd78e8b73f149b17d2d9ad7cd09d2dc6264736f6c634300081a0033';\n/**\n * Simulates execution of a batch of calls.\n *\n * @param client - Client to use\n * @param parameters - {@link SimulateCallsParameters}\n * @returns Results. {@link SimulateCallsReturnType}\n *\n * @example\n * ```ts\n * import { createPublicClient, http, parseEther } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { simulateCalls } from 'viem/actions'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n *\n * const result = await simulateCalls(client, {\n * account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\n * calls: [{\n * {\n * data: '0xdeadbeef',\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * },\n * {\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * value: parseEther('1'),\n * },\n * ]\n * })\n * ```\n */\nexport async function simulateCalls(client, parameters) {\n const { blockNumber, blockTag, calls, stateOverrides, traceAssetChanges, traceTransfers, validation, } = parameters;\n const account = parameters.account\n ? parseAccount(parameters.account)\n : undefined;\n if (traceAssetChanges && !account)\n throw new BaseError('`account` is required when `traceAssetChanges` is true');\n // Derive bytecode to extract ETH balance via a contract call.\n const getBalanceData = account\n ? AbiConstructor.encode(AbiConstructor.from('constructor(bytes, bytes)'), {\n bytecode: deploylessCallViaBytecodeBytecode,\n args: [\n getBalanceCode,\n AbiFunction.encodeData(AbiFunction.from('function getBalance(address)'), [account.address]),\n ],\n })\n : undefined;\n // Fetch ERC20/721 addresses that were \"touched\" from the calls.\n const assetAddresses = traceAssetChanges\n ? await Promise.all(parameters.calls.map(async (call) => {\n if (!call.data && !call.abi)\n return;\n const { accessList } = await createAccessList(client, {\n account: account.address,\n ...call,\n data: call.abi ? encodeFunctionData(call) : call.data,\n });\n return accessList.map(({ address, storageKeys }) => storageKeys.length > 0 ? address : null);\n })).then((x) => x.flat().filter(Boolean))\n : [];\n const resultsStateOverrides = stateOverrides?.map((override) => {\n if (override.address === account?.address)\n return {\n ...override,\n nonce: 0,\n };\n return override;\n });\n const blocks = await simulateBlocks(client, {\n blockNumber,\n blockTag: blockTag,\n blocks: [\n ...(traceAssetChanges\n ? [\n // ETH pre balances\n {\n calls: [{ data: getBalanceData }],\n stateOverrides,\n },\n // Asset pre balances\n {\n calls: assetAddresses.map((address, i) => ({\n abi: [\n AbiFunction.from('function balanceOf(address) returns (uint256)'),\n ],\n functionName: 'balanceOf',\n args: [account.address],\n to: address,\n from: zeroAddress,\n nonce: i,\n })),\n stateOverrides: [\n {\n address: zeroAddress,\n nonce: 0,\n },\n ],\n },\n ]\n : []),\n {\n calls: [...calls, {}].map((call, index) => ({\n ...call,\n from: account?.address,\n nonce: index,\n })),\n stateOverrides: resultsStateOverrides,\n },\n ...(traceAssetChanges\n ? [\n // ETH post balances\n {\n calls: [{ data: getBalanceData }],\n },\n // Asset post balances\n {\n calls: assetAddresses.map((address, i) => ({\n abi: [\n AbiFunction.from('function balanceOf(address) returns (uint256)'),\n ],\n functionName: 'balanceOf',\n args: [account.address],\n to: address,\n from: zeroAddress,\n nonce: i,\n })),\n stateOverrides: [\n {\n address: zeroAddress,\n nonce: 0,\n },\n ],\n },\n // Decimals\n {\n calls: assetAddresses.map((address, i) => ({\n to: address,\n abi: [\n AbiFunction.from('function decimals() returns (uint256)'),\n ],\n functionName: 'decimals',\n from: zeroAddress,\n nonce: i,\n })),\n stateOverrides: [\n {\n address: zeroAddress,\n nonce: 0,\n },\n ],\n },\n // Token URI\n {\n calls: assetAddresses.map((address, i) => ({\n to: address,\n abi: [\n AbiFunction.from('function tokenURI(uint256) returns (string)'),\n ],\n functionName: 'tokenURI',\n args: [0n],\n from: zeroAddress,\n nonce: i,\n })),\n stateOverrides: [\n {\n address: zeroAddress,\n nonce: 0,\n },\n ],\n },\n // Symbols\n {\n calls: assetAddresses.map((address, i) => ({\n to: address,\n abi: [AbiFunction.from('function symbol() returns (string)')],\n functionName: 'symbol',\n from: zeroAddress,\n nonce: i,\n })),\n stateOverrides: [\n {\n address: zeroAddress,\n nonce: 0,\n },\n ],\n },\n ]\n : []),\n ],\n traceTransfers,\n validation,\n });\n const block_results = traceAssetChanges ? blocks[2] : blocks[0];\n const [block_ethPre, block_assetsPre, , block_ethPost, block_assetsPost, block_decimals, block_tokenURI, block_symbols,] = traceAssetChanges ? blocks : [];\n // Extract call results from the simulation.\n const { calls: block_calls, ...block } = block_results;\n const results = block_calls.slice(0, -1) ?? [];\n // Extract pre-execution ETH and asset balances.\n const ethPre = block_ethPre?.calls ?? [];\n const assetsPre = block_assetsPre?.calls ?? [];\n const balancesPre = [...ethPre, ...assetsPre].map((call) => call.status === 'success' ? hexToBigInt(call.data) : null);\n // Extract post-execution ETH and asset balances.\n const ethPost = block_ethPost?.calls ?? [];\n const assetsPost = block_assetsPost?.calls ?? [];\n const balancesPost = [...ethPost, ...assetsPost].map((call) => call.status === 'success' ? hexToBigInt(call.data) : null);\n // Extract asset symbols & decimals.\n const decimals = (block_decimals?.calls ?? []).map((x) => x.status === 'success' ? x.result : null);\n const symbols = (block_symbols?.calls ?? []).map((x) => x.status === 'success' ? x.result : null);\n const tokenURI = (block_tokenURI?.calls ?? []).map((x) => x.status === 'success' ? x.result : null);\n const changes = [];\n for (const [i, balancePost] of balancesPost.entries()) {\n const balancePre = balancesPre[i];\n if (typeof balancePost !== 'bigint')\n continue;\n if (typeof balancePre !== 'bigint')\n continue;\n const decimals_ = decimals[i - 1];\n const symbol_ = symbols[i - 1];\n const tokenURI_ = tokenURI[i - 1];\n const token = (() => {\n if (i === 0)\n return {\n address: ethAddress,\n decimals: 18,\n symbol: 'ETH',\n };\n return {\n address: assetAddresses[i - 1],\n decimals: tokenURI_ || decimals_ ? Number(decimals_ ?? 1) : undefined,\n symbol: symbol_ ?? undefined,\n };\n })();\n if (changes.some((change) => change.token.address === token.address))\n continue;\n changes.push({\n token,\n value: {\n pre: balancePre,\n post: balancePost,\n diff: balancePost - balancePre,\n },\n });\n }\n return {\n assetChanges: changes,\n block,\n results,\n };\n}\n//# sourceMappingURL=simulateCalls.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 listeners = getListeners();\n if (!listeners.some((cb) => cb.id === callbackId))\n return;\n const cleanup = cleanupCache.get(observerId);\n if (listeners.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 { 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 emitFetched = true;\n let unsubscribe = () => (active = false);\n (async () => {\n try {\n if (emitOnBegin) {\n getAction(client, getBlock, 'getBlock')({\n blockTag,\n includeTransactions,\n }).then((block) => {\n if (!active)\n return;\n if (!emitFetched)\n return;\n onBlock(block, undefined);\n emitFetched = false;\n });\n }\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 async onData(data) {\n if (!active)\n return;\n const block = (await getAction(client, getBlock, 'getBlock')({\n blockNumber: data.blockNumber,\n includeTransactions,\n }).catch(() => { }));\n if (!active)\n return;\n onBlock(block, prevBlock);\n emitFetched = false;\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 { 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","/**\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 { 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 // Reinitialize 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 const encoded = events_.flatMap((event) => encodeEventTopics({\n abi: [event],\n eventName: event.name,\n args,\n }));\n // TODO: Clean up type casting\n topics = [encoded];\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 { 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';\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 { 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 { withResolvers } from '../../utils/promise/withResolvers.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 = 180_000, }) {\n const observerId = stringify(['waitForTransactionReceipt', client.uid, hash]);\n let transaction;\n let replacedTransaction;\n let receipt;\n let retrying = false;\n const { promise, resolve, reject } = withResolvers();\n const timer = timeout\n ? setTimeout(() => reject(new WaitForTransactionReceiptTimeoutError({ hash })), timeout)\n : undefined;\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 clearTimeout(timer);\n _unwatch();\n fn();\n _unobserve();\n };\n let blockNumber = blockNumber_;\n if (retrying)\n return;\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 replacementTransaction.input === replacedTransaction.input) {\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 },\n });\n });\n return promise;\n}\n//# sourceMappingURL=waitForTransactionReceipt.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.signMessage)\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 { 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 * HMAC: RFC2104 message authentication code.\n * @module\n */\nimport { abytes, aexists, ahash } from './_assert.js';\nimport { Hash, toBytes } from './utils.js';\nexport class HMAC extends Hash {\n constructor(hash, _key) {\n super();\n this.finished = false;\n this.destroyed = false;\n ahash(hash);\n const key = toBytes(_key);\n this.iHash = hash.create();\n if (typeof this.iHash.update !== 'function')\n throw new Error('Expected instance of class which extends utils.Hash');\n this.blockLen = this.iHash.blockLen;\n this.outputLen = this.iHash.outputLen;\n const blockLen = this.blockLen;\n const pad = new Uint8Array(blockLen);\n // blockLen can be bigger than outputLen\n pad.set(key.length > blockLen ? hash.create().update(key).digest() : key);\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36;\n this.iHash.update(pad);\n // By doing update (processing of first block) of outer hash here we can re-use it between multiple calls via clone\n this.oHash = hash.create();\n // Undo internal XOR && apply outer XOR\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36 ^ 0x5c;\n this.oHash.update(pad);\n pad.fill(0);\n }\n update(buf) {\n aexists(this);\n this.iHash.update(buf);\n return this;\n }\n digestInto(out) {\n aexists(this);\n abytes(out, this.outputLen);\n this.finished = true;\n this.iHash.digestInto(out);\n this.oHash.update(out);\n this.oHash.digestInto(out);\n this.destroy();\n }\n digest() {\n const out = new Uint8Array(this.oHash.outputLen);\n this.digestInto(out);\n return out;\n }\n _cloneInto(to) {\n // Create new instance without calling constructor since key already in state and we don't know it.\n to || (to = Object.create(Object.getPrototypeOf(this), {}));\n const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this;\n to = to;\n to.finished = finished;\n to.destroyed = destroyed;\n to.blockLen = blockLen;\n to.outputLen = outputLen;\n to.oHash = oHash._cloneInto(to.oHash);\n to.iHash = iHash._cloneInto(to.iHash);\n return to;\n }\n destroy() {\n this.destroyed = true;\n this.oHash.destroy();\n this.iHash.destroy();\n }\n}\n/**\n * HMAC: RFC2104 message authentication code.\n * @param hash - function that would be used e.g. sha256\n * @param key - message key\n * @param message - message data\n * @example\n * import { hmac } from '@noble/hashes/hmac';\n * import { sha256 } from '@noble/hashes/sha2';\n * const mac1 = hmac(sha256, 'key', 'message');\n */\nexport const hmac = (hash, key, message) => new HMAC(hash, key).update(message).digest();\nhmac.create = (hash, key) => new HMAC(hash, key);\n//# sourceMappingURL=hmac.js.map","/**\n * Utils for modular division and finite fields.\n * A finite field over 11 is integer number operations `mod 11`.\n * There is no division: it is replaced by modular multiplicative inverse.\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { bitMask, bytesToNumberBE, bytesToNumberLE, ensureBytes, numberToBytesBE, numberToBytesLE, validateObject, } from './utils.js';\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = /* @__PURE__ */ BigInt(2), _3n = /* @__PURE__ */ BigInt(3);\n// prettier-ignore\nconst _4n = /* @__PURE__ */ BigInt(4), _5n = /* @__PURE__ */ BigInt(5), _8n = /* @__PURE__ */ BigInt(8);\n// prettier-ignore\nconst _9n = /* @__PURE__ */ BigInt(9), _16n = /* @__PURE__ */ 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 * @todo use field version && remove\n * @example\n * pow(2n, 6n, 11n) // 64n % 11n == 9n\n */\nexport function pow(num, power, modulo) {\n if (power < _0n)\n throw new Error('invalid exponent, negatives unsupported');\n if (modulo <= _0n)\n throw new Error('invalid modulus');\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/**\n * Inverses number over modulo.\n * Implemented using [Euclidean GCD](https://brilliant.org/wiki/extended-euclidean-algorithm/).\n */\nexport function invert(number, modulo) {\n if (number === _0n)\n throw new Error('invert: expected non-zero number');\n if (modulo <= _0n)\n throw new Error('invert: expected positive modulus, got ' + modulo);\n // Fermat's little theorem \"CT-like\" version inv(n) = n^(m-2) mod m is 30x slower.\n let a = mod(number, modulo);\n let b = modulo;\n // prettier-ignore\n let x = _0n, y = _1n, u = _1n, v = _0n;\n while (a !== _0n) {\n // JIT applies optimization if those two lines follow each other\n const q = b / a;\n const r = b % a;\n const m = x - u * q;\n const n = y - v * q;\n // prettier-ignore\n b = a, a = r, x = u, y = v, u = m, v = n;\n }\n const gcd = b;\n if (gcd !== _1n)\n throw new Error('invert: does not exist');\n return mod(x, modulo);\n}\n/**\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 // Crash instead of infinity loop, we cannot reasonable count until P.\n if (Z > 1000)\n throw new Error('Cannot find square root: likely non-prime P');\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}\n/**\n * Square root for a finite field. It will try to check if optimizations are applicable and fall back to 4:\n *\n * 1. P ≡ 3 (mod 4)\n * 2. P ≡ 5 (mod 8)\n * 3. P ≡ 9 (mod 16)\n * 4. Tonelli-Shanks algorithm\n *\n * Different algorithms can give different roots, it is up to user to decide which one they want.\n * For example there is FpSqrtOdd/FpSqrtEven to choice root based on oddness (used for hash-to-curve).\n */\nexport function FpSqrt(P) {\n // P ≡ 3 (mod 4)\n // √n = 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('invalid exponent, negatives unsupported');\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/**\n * Legendre symbol.\n * * (a | p) ≡ 1 if a is a square (mod p), quadratic residue\n * * (a | p) ≡ -1 if a is not a square (mod p), quadratic non residue\n * * (a | p) ≡ 0 if a ≡ 0 (mod p)\n */\nexport function FpLegendre(order) {\n const legendreConst = (order - _1n) / _2n; // Integer arithmetic\n return (f, x) => f.pow(x, legendreConst);\n}\n// This function returns True whenever the value x is a square in the field F.\nexport function FpIsSquare(f) {\n const legendre = FpLegendre(f.ORDER);\n return (x) => {\n const p = legendre(f, x);\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.\n * Major performance optimizations:\n * * a) denormalized operations like mulN instead of mul\n * * b) same object shape: never add or remove keys\n * * c) Object.freeze\n * Fragile: always run a benchmark on a change.\n * Security note: operations don't check 'isValid' for all elements for performance reasons,\n * it is caller responsibility to check this.\n * This is low-level code, please make sure you know what you're doing.\n * @param ORDER prime positive bigint\n * @param bitLen how many bits the field consumes\n * @param isLE (def: false) if encoding / decoding should be in little-endian\n * @param redef optional faster redefinitions of sqrt and other methods\n */\nexport function Field(ORDER, bitLen, isLE = false, redef = {}) {\n if (ORDER <= _0n)\n throw new Error('invalid field: expected ORDER > 0, got ' + ORDER);\n const { nBitLength: BITS, nByteLength: BYTES } = nLength(ORDER, bitLen);\n if (BYTES > 2048)\n throw new Error('invalid field: expected ORDER of <= 2048 bytes');\n let sqrtP; // cached sqrtP\n const f = Object.freeze({\n ORDER,\n isLE,\n BITS,\n BYTES,\n MASK: bitMask(BITS),\n ZERO: _0n,\n ONE: _1n,\n create: (num) => mod(num, ORDER),\n isValid: (num) => {\n if (typeof num !== 'bigint')\n throw new Error('invalid field element: expected bigint, got ' + typeof num);\n return _0n <= num && num < ORDER; // 0 is valid element, but it's not invertible\n },\n is0: (num) => num === _0n,\n isOdd: (num) => (num & _1n) === _1n,\n neg: (num) => mod(-num, ORDER),\n eql: (lhs, rhs) => lhs === rhs,\n sqr: (num) => mod(num * num, ORDER),\n add: (lhs, rhs) => mod(lhs + rhs, ORDER),\n sub: (lhs, rhs) => mod(lhs - rhs, ORDER),\n mul: (lhs, rhs) => mod(lhs * rhs, ORDER),\n pow: (num, power) => FpPow(f, num, power),\n div: (lhs, rhs) => mod(lhs * invert(rhs, ORDER), ORDER),\n // Same as above, but doesn't normalize\n sqrN: (num) => num * num,\n addN: (lhs, rhs) => lhs + rhs,\n subN: (lhs, rhs) => lhs - rhs,\n mulN: (lhs, rhs) => lhs * rhs,\n inv: (num) => invert(num, ORDER),\n sqrt: redef.sqrt ||\n ((n) => {\n if (!sqrtP)\n sqrtP = FpSqrt(ORDER);\n return sqrtP(f, n);\n }),\n 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('Field.fromBytes: expected ' + BYTES + ' 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 ? bytesToNumberLE(key) : bytesToNumberBE(key);\n // `mod(x, 11)` can sometimes produce 0. `mod(x, 10) + 1` is the same, but no 0\n const reduced = mod(num, fieldOrder - _1n) + _1n;\n return isLE ? numberToBytesLE(reduced, fieldLen) : numberToBytesBE(reduced, fieldLen);\n}\n//# sourceMappingURL=modular.js.map","/**\n * Methods for elliptic curve multiplication by scalars.\n * Contains wNAF, pippenger\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { nLength, validateField } from './modular.js';\nimport { bitLen, validateObject } from './utils.js';\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nfunction constTimeNegate(condition, item) {\n const neg = item.negate();\n return condition ? neg : item;\n}\nfunction validateW(W, bits) {\n if (!Number.isSafeInteger(W) || W <= 0 || W > bits)\n throw new Error('invalid window size, expected [1..' + bits + '], got W=' + W);\n}\nfunction calcWOpts(W, bits) {\n validateW(W, bits);\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}\nfunction validateMSMPoints(points, c) {\n if (!Array.isArray(points))\n throw new Error('array expected');\n points.forEach((p, i) => {\n if (!(p instanceof c))\n throw new Error('invalid point at index ' + i);\n });\n}\nfunction validateMSMScalars(scalars, field) {\n if (!Array.isArray(scalars))\n throw new Error('array of scalars expected');\n scalars.forEach((s, i) => {\n if (!field.isValid(s))\n throw new Error('invalid scalar at index ' + i);\n });\n}\n// Since points in different groups cannot be equal (different object constructor),\n// we can have single place to store precomputes\nconst pointPrecomputes = new WeakMap();\nconst pointWindowSizes = new WeakMap(); // This allows use make points immutable (nothing changes inside)\nfunction getW(P) {\n return pointWindowSizes.get(P) || 1;\n}\n/**\n * Elliptic curve multiplication of Point by scalar. Fragile.\n * Scalars should always be less than curve order: this should be checked inside of a curve itself.\n * Creates precomputation tables for fast multiplication:\n * - private scalar is split by fixed size windows of W bits\n * - every window point is collected from window's table & added to accumulator\n * - since windows are different, same point inside tables won't be accessed more than once per calc\n * - each multiplication is 'Math.ceil(CURVE_ORDER / 𝑊) + 1' point additions (fixed for any scalar)\n * - +1 window is neccessary for wNAF\n * - wNAF reduces table size: 2x less memory + 2x faster generation, but 10% slower multiplication\n *\n * @todo Research returning 2d JS array of windows, instead of a single window.\n * This would allow windows to be in different memory locations\n */\nexport function wNAF(c, bits) {\n return {\n constTimeNegate,\n hasPrecomputes(elm) {\n return getW(elm) !== 1;\n },\n // non-const time multiplication ladder\n unsafeLadder(elm, n, p = c.ZERO) {\n let d = elm;\n while (n > _0n) {\n if (n & _1n)\n p = p.add(d);\n d = d.double();\n n >>= _1n;\n }\n return p;\n },\n /**\n * Creates a wNAF precomputation window. Used for caching.\n * Default window size is set by `utils.precompute()` and is equal to 8.\n * Number of precomputed points depends on the curve size:\n * 2^(𝑊−1) * (Math.ceil(𝑛 / 𝑊) + 1), where:\n * - 𝑊 is the window size\n * - 𝑛 is the bitlength of the curve order.\n * For a 256-bit curve and window size 8, the number of precomputed points is 128 * 33 = 4224.\n * @param elm Point instance\n * @param W window size\n * @returns precomputed point tables flattened to a single array\n */\n precomputeWindow(elm, W) {\n const { windows, windowSize } = calcWOpts(W, bits);\n const points = [];\n let p = elm;\n let base = p;\n for (let window = 0; window < windows; window++) {\n base = p;\n points.push(base);\n // =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 } = calcWOpts(W, bits);\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 /**\n * Implements ec unsafe (non const-time) multiplication using precomputed tables and w-ary non-adjacent form.\n * @param W window size\n * @param precomputes precomputed tables\n * @param n scalar (we don't check here, but should be less than curve order)\n * @param acc accumulator point to add result of multiplication\n * @returns point\n */\n wNAFUnsafe(W, precomputes, n, acc = c.ZERO) {\n const { windows, windowSize } = calcWOpts(W, bits);\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 if (n === _0n)\n break; // No need to go over empty scalar\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 if (wbits === 0)\n continue;\n let curr = precomputes[offset + Math.abs(wbits) - 1]; // -1 because we skip zero\n if (wbits < 0)\n curr = curr.negate();\n // NOTE: by re-using acc, we can save a lot of additions in case of MSM\n acc = acc.add(curr);\n }\n return acc;\n },\n getPrecomputes(W, P, transform) {\n // Calculate precomputes on a first run, reuse them after\n let comp = pointPrecomputes.get(P);\n if (!comp) {\n comp = this.precomputeWindow(P, W);\n if (W !== 1)\n pointPrecomputes.set(P, transform(comp));\n }\n return comp;\n },\n wNAFCached(P, n, transform) {\n const W = getW(P);\n return this.wNAF(W, this.getPrecomputes(W, P, transform), n);\n },\n wNAFCachedUnsafe(P, n, transform, prev) {\n const W = getW(P);\n if (W === 1)\n return this.unsafeLadder(P, n, prev); // For W=1 ladder is ~x2 faster\n return this.wNAFUnsafe(W, this.getPrecomputes(W, P, transform), n, prev);\n },\n // We calculate precomputes for elliptic curve point multiplication\n // using windowed method. This specifies window size and\n // stores precomputed values. Usually only base point would be precomputed.\n setWindowSize(P, W) {\n validateW(W, bits);\n pointWindowSizes.set(P, W);\n pointPrecomputes.delete(P);\n },\n };\n}\n/**\n * Pippenger algorithm for multi-scalar multiplication (MSM, Pa + Qb + Rc + ...).\n * 30x faster vs naive addition on L=4096, 10x faster with precomputes.\n * For N=254bit, L=1, it does: 1024 ADD + 254 DBL. For L=5: 1536 ADD + 254 DBL.\n * Algorithmically constant-time (for same L), even when 1 point + scalar, or when scalar = 0.\n * @param c Curve Point constructor\n * @param fieldN field over CURVE.N - important that it's not over CURVE.P\n * @param points array of L curve points\n * @param scalars array of L scalars (aka private keys / bigints)\n */\nexport function pippenger(c, fieldN, points, scalars) {\n // If we split scalars by some window (let's say 8 bits), every chunk will only\n // take 256 buckets even if there are 4096 scalars, also re-uses double.\n // TODO:\n // - https://eprint.iacr.org/2024/750.pdf\n // - https://tches.iacr.org/index.php/TCHES/article/view/10287\n // 0 is accepted in scalars\n validateMSMPoints(points, c);\n validateMSMScalars(scalars, fieldN);\n if (points.length !== scalars.length)\n throw new Error('arrays of points and scalars must have equal length');\n const zero = c.ZERO;\n const wbits = bitLen(BigInt(points.length));\n const windowSize = wbits > 12 ? wbits - 3 : wbits > 4 ? wbits - 2 : wbits ? 2 : 1; // in bits\n const MASK = (1 << windowSize) - 1;\n const buckets = new Array(MASK + 1).fill(zero); // +1 for zero array\n const lastBits = Math.floor((fieldN.BITS - 1) / windowSize) * windowSize;\n let sum = zero;\n for (let i = lastBits; i >= 0; i -= windowSize) {\n buckets.fill(zero);\n for (let j = 0; j < scalars.length; j++) {\n const scalar = scalars[j];\n const wbits = Number((scalar >> BigInt(i)) & BigInt(MASK));\n buckets[wbits] = buckets[wbits].add(points[j]);\n }\n let resI = zero; // not using this will do small speed-up, but will lose ct\n // Skip first bucket, because it is zero\n for (let j = buckets.length - 1, sumI = zero; j > 0; j--) {\n sumI = sumI.add(buckets[j]);\n resI = resI.add(sumI);\n }\n sum = sum.add(resI);\n if (i !== 0)\n for (let j = 0; j < windowSize; j++)\n sum = sum.double();\n }\n return sum;\n}\n/**\n * Precomputed multi-scalar multiplication (MSM, Pa + Qb + Rc + ...).\n * @param c Curve Point constructor\n * @param fieldN field over CURVE.N - important that it's not over CURVE.P\n * @param points array of L curve points\n * @returns function which multiplies points with scaars\n */\nexport function precomputeMSMUnsafe(c, fieldN, points, windowSize) {\n /**\n * Performance Analysis of Window-based Precomputation\n *\n * Base Case (256-bit scalar, 8-bit window):\n * - Standard precomputation requires:\n * - 31 additions per scalar × 256 scalars = 7,936 ops\n * - Plus 255 summary additions = 8,191 total ops\n * Note: Summary additions can be optimized via accumulator\n *\n * Chunked Precomputation Analysis:\n * - Using 32 chunks requires:\n * - 255 additions per chunk\n * - 256 doublings\n * - Total: (255 × 32) + 256 = 8,416 ops\n *\n * Memory Usage Comparison:\n * Window Size | Standard Points | Chunked Points\n * ------------|-----------------|---------------\n * 4-bit | 520 | 15\n * 8-bit | 4,224 | 255\n * 10-bit | 13,824 | 1,023\n * 16-bit | 557,056 | 65,535\n *\n * Key Advantages:\n * 1. Enables larger window sizes due to reduced memory overhead\n * 2. More efficient for smaller scalar counts:\n * - 16 chunks: (16 × 255) + 256 = 4,336 ops\n * - ~2x faster than standard 8,191 ops\n *\n * Limitations:\n * - Not suitable for plain precomputes (requires 256 constant doublings)\n * - Performance degrades with larger scalar counts:\n * - Optimal for ~256 scalars\n * - Less efficient for 4096+ scalars (Pippenger preferred)\n */\n validateW(windowSize, fieldN.BITS);\n validateMSMPoints(points, c);\n const zero = c.ZERO;\n const tableSize = 2 ** windowSize - 1; // table size (without zero)\n const chunks = Math.ceil(fieldN.BITS / windowSize); // chunks of item\n const MASK = BigInt((1 << windowSize) - 1);\n const tables = points.map((p) => {\n const res = [];\n for (let i = 0, acc = p; i < tableSize; i++) {\n res.push(acc);\n acc = acc.add(p);\n }\n return res;\n });\n return (scalars) => {\n validateMSMScalars(scalars, fieldN);\n if (scalars.length > points.length)\n throw new Error('array of scalars must be smaller than array of points');\n let res = zero;\n for (let i = 0; i < chunks; i++) {\n // No need to double if accumulator is still zero.\n if (res !== zero)\n for (let j = 0; j < windowSize; j++)\n res = res.double();\n const shiftBy = BigInt(chunks * windowSize - (i + 1) * windowSize);\n for (let j = 0; j < scalars.length; j++) {\n const n = scalars[j];\n const curr = Number((n >> shiftBy) & MASK);\n if (!curr)\n continue; // skip zero scalars chunks\n res = res.add(tables[j][curr - 1]);\n }\n }\n return res;\n };\n}\nexport function validateBasic(curve) {\n validateField(curve.Fp);\n validateObject(curve, {\n n: 'bigint',\n h: 'bigint',\n Gx: 'field',\n Gy: 'field',\n }, {\n nBitLength: 'isSafeInteger',\n nByteLength: 'isSafeInteger',\n });\n // Set defaults\n return Object.freeze({\n ...nLength(curve.n, curve.nBitLength),\n ...curve,\n ...{ p: curve.Fp.ORDER },\n });\n}\n//# sourceMappingURL=curve.js.map","/**\n * Short Weierstrass curve methods. The formula is: y² = x³ + ax + b.\n *\n * ### Design rationale for types\n *\n * * Interaction between classes from different curves should fail:\n * `k256.Point.BASE.add(p256.Point.BASE)`\n * * For this purpose we want to use `instanceof` operator, which is fast and works during runtime\n * * Different calls of `curve()` would return different classes -\n * `curve(params) !== curve(params)`: if somebody decided to monkey-patch their curve,\n * it won't affect others\n *\n * TypeScript can't infer types for classes created inside a function. Classes is one instance\n * of nominative types in TypeScript and interfaces only check for shape, so it's hard to create\n * unique type for every function call.\n *\n * We can use generic types via some param, like curve opts, but that would:\n * 1. Enable interaction between `curve(params)` and `curve(params)` (curves of same params)\n * which is hard to debug.\n * 2. Params can be generic and we can't enforce them to be constant value:\n * if somebody creates curve from non-constant params,\n * it would be allowed to interact with other curves with non-constant params\n *\n * @todo https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-7.html#unique-symbol\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { pippenger, validateBasic, wNAF, } from './curve.js';\nimport { Field, getMinHashLength, invert, mapHashToField, mod, validateField, } from './modular.js';\nimport * as ut from './utils.js';\nimport { abool, ensureBytes, memoized } from './utils.js';\nfunction validateSigVerOpts(opts) {\n if (opts.lowS !== undefined)\n abool('lowS', opts.lowS);\n if (opts.prehash !== undefined)\n abool('prehash', opts.prehash);\n}\nfunction validatePointOpts(curve) {\n const opts = validateBasic(curve);\n 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('invalid 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('invalid endomorphism, expected beta: bigint and splitScalar: function');\n }\n }\n return Object.freeze({ ...opts });\n}\nconst { bytesToNumberBE: b2n, hexToBytes: h2b } = ut;\nexport class DERErr extends Error {\n constructor(m = '') {\n super(m);\n }\n}\n/**\n * ASN.1 DER encoding utilities. ASN is very complex & fragile. Format:\n *\n * [0x30 (SEQUENCE), bytelength, 0x02 (INTEGER), intLength, R, 0x02 (INTEGER), intLength, S]\n *\n * Docs: https://letsencrypt.org/docs/a-warm-welcome-to-asn1-and-der/, https://luca.ntop.org/Teaching/Appunti/asn1.html\n */\nexport const DER = {\n // asn.1 DER encoding utils\n Err: DERErr,\n // Basic building block is TLV (Tag-Length-Value)\n _tlv: {\n encode: (tag, data) => {\n const { Err: E } = DER;\n if (tag < 0 || tag > 256)\n throw new E('tlv.encode: wrong tag');\n if (data.length & 1)\n throw new E('tlv.encode: unpadded data');\n const dataLen = data.length / 2;\n const len = ut.numberToHexUnpadded(dataLen);\n if ((len.length / 2) & 128)\n throw new E('tlv.encode: long form length too big');\n // length of length with long form flag\n const lenLen = dataLen > 127 ? ut.numberToHexUnpadded((len.length / 2) | 128) : '';\n const t = ut.numberToHexUnpadded(tag);\n return t + lenLen + len + data;\n },\n // v - value, l - left bytes (unparsed)\n decode(tag, data) {\n const { Err: E } = DER;\n let pos = 0;\n if (tag < 0 || tag > 256)\n throw new E('tlv.encode: wrong tag');\n if (data.length < 2 || data[pos++] !== tag)\n throw new E('tlv.decode: wrong tlv');\n const first = data[pos++];\n const isLong = !!(first & 128); // First bit of first length byte is flag for short/long form\n let length = 0;\n if (!isLong)\n length = first;\n else {\n // Long form: [longFlag(1bit), lengthLength(7bit), length (BE)]\n const lenLen = first & 127;\n if (!lenLen)\n throw new E('tlv.decode(long): indefinite length not supported');\n if (lenLen > 4)\n throw new E('tlv.decode(long): byte length is too big'); // this will overflow u32 in js\n const lengthBytes = data.subarray(pos, pos + lenLen);\n if (lengthBytes.length !== lenLen)\n throw new E('tlv.decode: length bytes not complete');\n if (lengthBytes[0] === 0)\n throw new E('tlv.decode(long): zero leftmost byte');\n for (const b of lengthBytes)\n length = (length << 8) | b;\n pos += lenLen;\n if (length < 128)\n throw new E('tlv.decode(long): not minimal encoding');\n }\n const v = data.subarray(pos, pos + length);\n if (v.length !== length)\n throw new E('tlv.decode: wrong value length');\n return { v, l: data.subarray(pos + length) };\n },\n },\n // https://crypto.stackexchange.com/a/57734 Leftmost bit of first byte is 'negative' flag,\n // since we always use positive integers here. It must always be empty:\n // - add zero byte if exists\n // - if next byte doesn't have a flag, leading zero is not allowed (minimal encoding)\n _int: {\n encode(num) {\n const { Err: E } = DER;\n if (num < _0n)\n throw new E('integer: negative integers are not allowed');\n let hex = ut.numberToHexUnpadded(num);\n // Pad with zero byte if negative flag is present\n if (Number.parseInt(hex[0], 16) & 0b1000)\n hex = '00' + hex;\n if (hex.length & 1)\n throw new E('unexpected DER parsing assertion: unpadded hex');\n return hex;\n },\n decode(data) {\n const { Err: E } = DER;\n if (data[0] & 128)\n throw new E('invalid signature integer: negative');\n if (data[0] === 0x00 && !(data[1] & 128))\n throw new E('invalid signature integer: unnecessary leading zero');\n return b2n(data);\n },\n },\n toSig(hex) {\n // parse DER signature\n const { Err: E, _int: int, _tlv: tlv } = DER;\n const data = typeof hex === 'string' ? h2b(hex) : hex;\n ut.abytes(data);\n const { v: seqBytes, l: seqLeftBytes } = tlv.decode(0x30, data);\n if (seqLeftBytes.length)\n throw new E('invalid signature: left bytes after parsing');\n const { v: rBytes, l: rLeftBytes } = tlv.decode(0x02, seqBytes);\n const { v: sBytes, l: sLeftBytes } = tlv.decode(0x02, rLeftBytes);\n if (sLeftBytes.length)\n throw new E('invalid signature: left bytes after parsing');\n return { r: int.decode(rBytes), s: int.decode(sBytes) };\n },\n hexFromSig(sig) {\n const { _tlv: tlv, _int: int } = DER;\n const rs = tlv.encode(0x02, int.encode(sig.r));\n const ss = tlv.encode(0x02, int.encode(sig.s));\n const seq = rs + ss;\n return tlv.encode(0x30, seq);\n },\n};\n// Be friendly to bad ECMAScript parsers by not using bigint literals\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = BigInt(2), _3n = BigInt(3), _4n = BigInt(4);\nexport function weierstrassPoints(opts) {\n const CURVE = validatePointOpts(opts);\n const { Fp } = CURVE; // All curves has same field / group length as for now, but they can differ\n const Fn = Field(CURVE.n, CURVE.nBitLength);\n const toBytes = CURVE.toBytes ||\n ((_c, point, _isCompressed) => {\n const a = point.toAffine();\n return 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 ut.inRange(num, _1n, CURVE.n);\n }\n // Validates if priv key is valid and converts it to bigint.\n // Supports options allowedPrivateKeyLengths and wrapPrivateKey.\n function normPrivateKeyToScalar(key) {\n const { allowedPrivateKeyLengths: lengths, nByteLength, wrapPrivateKey, n: N } = CURVE;\n if (lengths && typeof key !== 'bigint') {\n if (ut.isBytes(key))\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 private 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('invalid private key, expected hex or ' + nByteLength + ' bytes, got ' + typeof key);\n }\n if (wrapPrivateKey)\n num = mod(num, N); // disabled by default, enabled for BLS\n ut.aInRange('private key', num, _1n, N); // num in range [1..N-1]\n return num;\n }\n function assertPrjPoint(other) {\n if (!(other instanceof Point))\n throw new Error('ProjectivePoint expected');\n }\n // Memoized toAffine / validity check. They are heavy. Points are immutable.\n // Converts Projective point to affine (x, y) coordinates.\n // Can accept precomputed Z^-1 - for example, from invertBatch.\n // (x, y, z) ∋ (x=x/z, y=y/z)\n const toAffineMemo = memoized((p, iz) => {\n const { px: x, py: y, pz: z } = p;\n // Fast-path for normalized points\n if (Fp.eql(z, Fp.ONE))\n return { x, y };\n const is0 = p.is0();\n // If invZ was 0, we return zero point. However we still want to execute\n // all operations, so we replace invZ with a random number, 1.\n if (iz == null)\n iz = is0 ? Fp.ONE : Fp.inv(z);\n const ax = Fp.mul(x, iz);\n const ay = Fp.mul(y, iz);\n const zz = Fp.mul(z, iz);\n if (is0)\n return { x: Fp.ZERO, y: Fp.ZERO };\n if (!Fp.eql(zz, Fp.ONE))\n throw new Error('invZ was invalid');\n return { x: ax, y: ay };\n });\n // NOTE: on exception this will crash 'cached' and no value will be set.\n // Otherwise true will be return\n const assertValidMemo = memoized((p) => {\n if (p.is0()) {\n // (0, 1, 0) aka ZERO is invalid in most contexts.\n // In BLS, ZERO can be serialized, so we allow it.\n // (0, 0, 0) is invalid representation of ZERO.\n if (CURVE.allowInfinityPoint && !Fp.is0(p.py))\n return;\n throw new Error('bad point: ZERO');\n }\n // Some 3rd-party test vectors require different wording between here & `fromCompressedHex`\n const { x, y } = p.toAffine();\n // Check if x, y are valid field elements\n if (!Fp.isValid(x) || !Fp.isValid(y))\n throw new Error('bad point: x or y not FE');\n 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 (!p.isTorsionFree())\n throw new Error('bad point: not in prime-order subgroup');\n return true;\n });\n /**\n * Projective Point works in 3d / projective (homogeneous) coordinates: (x, y, z) ∋ (x=x/z, y=y/z)\n * Default Point works in 2d / affine coordinates: (x, y)\n * We're doing calculations in projective, because its operations don't require costly inversion.\n */\n class Point {\n constructor(px, py, pz) {\n 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 Object.freeze(this);\n }\n // Does not validate if the point is on-curve.\n // Use fromHex instead, or call assertValidity() later.\n static fromAffine(p) {\n const { x, y } = p || {};\n if (!p || !Fp.isValid(x) || !Fp.isValid(y))\n throw new Error('invalid affine point');\n if (p instanceof Point)\n throw new Error('projective point not allowed');\n const is0 = (i) => Fp.eql(i, Fp.ZERO);\n // fromAffine(x:0, y:0) would produce (x:0, y:0, z:1), but we need (x:0, y:1, z:0)\n if (is0(x) && is0(y))\n return Point.ZERO;\n return new Point(x, y, Fp.ONE);\n }\n get x() {\n return this.toAffine().x;\n }\n get y() {\n return this.toAffine().y;\n }\n /**\n * Takes a bunch of Projective Points but executes only one\n * inversion on all of them. Inversion is very slow operation,\n * so this improves performance massively.\n * Optimization: converts a list of projective points to a list of identical points with Z=1.\n */\n static normalizeZ(points) {\n const toInv = 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 // Multiscalar Multiplication\n static msm(points, scalars) {\n return pippenger(Point, Fn, points, scalars);\n }\n // \"Private method\", don't use it directly\n _setWindowSize(windowSize) {\n wnaf.setWindowSize(this, windowSize);\n }\n // A point on curve is valid if it conforms to equation.\n assertValidity() {\n assertValidMemo(this);\n }\n hasEvenY() {\n const { y } = this.toAffine();\n if (Fp.isOdd)\n return !Fp.isOdd(y);\n throw new Error(\"Field doesn't support isOdd\");\n }\n /**\n * Compare one point to another.\n */\n equals(other) {\n 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, n, Point.normalizeZ);\n }\n /**\n * Non-constant-time multiplication. Uses double-and-add algorithm.\n * It's faster, but should only be used when you don't care about\n * an exposed private key e.g. sig verification, which works over *public* keys.\n */\n multiplyUnsafe(sc) {\n const { endo, n: N } = CURVE;\n ut.aInRange('scalar', sc, _0n, N);\n const I = Point.ZERO;\n if (sc === _0n)\n return I;\n if (this.is0() || sc === _1n)\n return this;\n // Case a: no endomorphism. Case b: has precomputes.\n if (!endo || wnaf.hasPrecomputes(this))\n return wnaf.wNAFCachedUnsafe(this, sc, Point.normalizeZ);\n // Case c: endomorphism\n let { k1neg, k1, k2neg, k2 } = endo.splitScalar(sc);\n let k1p = I;\n let k2p = I;\n let d = this;\n while (k1 > _0n || k2 > _0n) {\n if (k1 & _1n)\n k1p = k1p.add(d);\n if (k2 & _1n)\n k2p = k2p.add(d);\n d = d.double();\n k1 >>= _1n;\n k2 >>= _1n;\n }\n if (k1neg)\n k1p = k1p.negate();\n if (k2neg)\n k2p = k2p.negate();\n k2p = new Point(Fp.mul(k2p.px, endo.beta), k2p.py, k2p.pz);\n return k1p.add(k2p);\n }\n /**\n * Constant time multiplication.\n * Uses wNAF method. Windowed method may be 10% faster,\n * but takes 2x longer to generate and consumes 2x memory.\n * Uses precomputes when available.\n * Uses endomorphism for Koblitz curves.\n * @param scalar by which the point would be multiplied\n * @returns New point\n */\n multiply(scalar) {\n const { endo, n: N } = CURVE;\n ut.aInRange('scalar', scalar, _1n, N);\n let point, fake; // Fake point is used to const-time mult\n if (endo) {\n const { k1neg, k1, k2neg, k2 } = endo.splitScalar(scalar);\n let { p: k1p, f: f1p } = this.wNAF(k1);\n let { p: k2p, f: f2p } = this.wNAF(k2);\n k1p = wnaf.constTimeNegate(k1neg, k1p);\n k2p = wnaf.constTimeNegate(k2neg, k2p);\n k2p = new Point(Fp.mul(k2p.px, endo.beta), k2p.py, k2p.pz);\n point = k1p.add(k2p);\n fake = f1p.add(f2p);\n }\n else {\n const { p, f } = this.wNAF(scalar);\n point = p;\n fake = f;\n }\n // Normalize `z` for both points, but return only real one\n return Point.normalizeZ([point, fake])[0];\n }\n /**\n * Efficiently calculate `aP + bQ`. Unsafe, can expose private key, if used incorrectly.\n * Not using Strauss-Shamir trick: precomputation tables are faster.\n * The trick could be useful if both P and Q are not G (not in our case).\n * @returns non-zero affine point\n */\n multiplyAndAddUnsafe(Q, a, b) {\n const G = Point.BASE; // No Strauss-Shamir trick: we have 10% faster G precomputes\n const mul = (P, a // Select faster multiply() method\n ) => (a === _0n || a === _1n || !P.equals(G) ? P.multiplyUnsafe(a) : P.multiply(a));\n const sum = mul(this, a).add(mul(Q, b));\n return sum.is0() ? undefined : sum;\n }\n // Converts Projective point to affine (x, y) coordinates.\n // Can accept precomputed Z^-1 - for example, from invertBatch.\n // (x, y, z) ∋ (x=x/z, y=y/z)\n toAffine(iz) {\n return toAffineMemo(this, iz);\n }\n isTorsionFree() {\n const { h: cofactor, isTorsionFree } = CURVE;\n if (cofactor === _1n)\n return true; // No subgroups, always torsion-free\n if (isTorsionFree)\n return isTorsionFree(Point, this);\n throw new Error('isTorsionFree() has not been declared for the elliptic curve');\n }\n clearCofactor() {\n const { h: cofactor, clearCofactor } = CURVE;\n if (cofactor === _1n)\n return this; // Fast-path\n if (clearCofactor)\n return clearCofactor(Point, this);\n return this.multiplyUnsafe(CURVE.h);\n }\n toRawBytes(isCompressed = true) {\n abool('isCompressed', isCompressed);\n this.assertValidity();\n return toBytes(Point, this, isCompressed);\n }\n toHex(isCompressed = true) {\n abool('isCompressed', isCompressed);\n return 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}\n/**\n * Creates short weierstrass curve and ECDSA signature methods for it.\n * @example\n * import { Field } from '@noble/curves/abstract/modular';\n * // Before that, define BigInt-s: a, b, p, n, Gx, Gy\n * const curve = weierstrass({ a, b, Fp: Field(p), n, Gx, Gy, h: 1n })\n */\nexport function weierstrass(curveDef) {\n const CURVE = validateOpts(curveDef);\n const { Fp, n: CURVE_ORDER } = CURVE;\n const compressedLen = Fp.BYTES + 1; // e.g. 33 for 32\n const uncompressedLen = 2 * Fp.BYTES + 1; // e.g. 65 for 32\n function modN(a) {\n return mod(a, CURVE_ORDER);\n }\n function invN(a) {\n return invert(a, CURVE_ORDER);\n }\n const { ProjectivePoint: Point, normPrivateKeyToScalar, weierstrassEquation, isWithinCurveOrder, } = weierstrassPoints({\n ...CURVE,\n toBytes(_c, point, isCompressed) {\n const a = point.toAffine();\n const x = Fp.toBytes(a.x);\n const cat = ut.concatBytes;\n abool('isCompressed', isCompressed);\n if (isCompressed) {\n return cat(Uint8Array.from([point.hasEvenY() ? 0x02 : 0x03]), x);\n }\n else {\n return cat(Uint8Array.from([0x04]), x, Fp.toBytes(a.y));\n }\n },\n fromBytes(bytes) {\n const len = bytes.length;\n const head = bytes[0];\n const tail = bytes.subarray(1);\n // this.assertValidity() is done inside of fromHex\n if (len === compressedLen && (head === 0x02 || head === 0x03)) {\n const x = ut.bytesToNumberBE(tail);\n if (!ut.inRange(x, _1n, Fp.ORDER))\n throw new Error('Point is not on curve');\n const y2 = weierstrassEquation(x); // y² = x³ + ax + b\n let y;\n try {\n y = Fp.sqrt(y2); // y = y² ^ (p+1)/4\n }\n catch (sqrtError) {\n const suffix = sqrtError instanceof Error ? ': ' + sqrtError.message : '';\n throw new Error('Point is not on curve' + suffix);\n }\n const isYOdd = (y & _1n) === _1n;\n // ECDSA\n const isHeadOdd = (head & 1) === 1;\n if (isHeadOdd !== isYOdd)\n y = Fp.neg(y);\n return { x, y };\n }\n else if (len === uncompressedLen && head === 0x04) {\n const x = Fp.fromBytes(tail.subarray(0, Fp.BYTES));\n const y = Fp.fromBytes(tail.subarray(Fp.BYTES, 2 * Fp.BYTES));\n return { x, y };\n }\n else {\n const cl = compressedLen;\n const ul = uncompressedLen;\n throw new Error('invalid Point, expected length of ' + cl + ', or uncompressed ' + ul + ', got ' + len);\n }\n },\n });\n 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 ut.aInRange('r', this.r, _1n, CURVE_ORDER); // r in [1..N]\n ut.aInRange('s', this.s, _1n, CURVE_ORDER); // s in [1..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 = getMinHashLength(CURVE.n);\n return mapHashToField(CURVE.randomBytes(length), CURVE.n);\n },\n /**\n * Creates precompute table for an arbitrary EC point. Makes point \"cached\".\n * Allows to massively speed-up `point.multiply(scalar)`.\n * @returns cached point\n * @example\n * const fast = utils.precompute(8, ProjectivePoint.fromHex(someonesPubKey));\n * fast.multiply(privKey); // much faster ECDH now\n */\n precompute(windowSize = 8, point = Point.BASE) {\n point._setWindowSize(windowSize);\n point.multiply(BigInt(3)); // 3 is arbitrary, just need any number here\n return point;\n },\n };\n /**\n * Computes public key for a private key. Checks for validity of the private key.\n * @param privateKey private key\n * @param isCompressed whether to return compact (default), or full key\n * @returns Public key, full when isCompressed=false; short when isCompressed=true\n */\n function getPublicKey(privateKey, isCompressed = true) {\n return Point.fromPrivateKey(privateKey).toRawBytes(isCompressed);\n }\n /**\n * Quick and dirty check for item being public key. Does not validate hex, or being on-curve.\n */\n function isProbPub(item) {\n const arr = ut.isBytes(item);\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 // Our custom check \"just in case\"\n if (bytes.length > 8192)\n throw new Error('input is too large');\n // For curves with nBitLength % 8 !== 0: bits2octets(bits2octets(m)) !== bits2octets(m)\n // for some cases, since bytes.length * 8 is not actual bitLength.\n const num = 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 ut.aInRange('num < 2^' + CURVE.nBitLength, num, _0n, ORDER_MASK);\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,\n // this will be invalid at least for P521. Also it can be bigger for P224 + SHA256\n function prepSig(msgHash, privateKey, opts = defaultSigOpts) {\n if (['recovered', 'canonical'].some((k) => k in opts))\n throw new Error('sign() legacy options not supported');\n const { hash, randomBytes } = CURVE;\n let { lowS, prehash, extraEntropy: ent } = opts; // generates low-s sigs by default\n if (lowS == null)\n lowS = true; // RFC6979 3.2: we skip step A, because we already provide hash\n msgHash = ensureBytes('msgHash', msgHash);\n validateSigVerOpts(opts);\n if (prehash)\n msgHash = ensureBytes('prehashed msgHash', hash(msgHash));\n // We can't later call bits2octets, since nested bits2int is broken for curves\n // with nBitLength % 8 !== 0. Because of that, we unwrap it here as int2octets call.\n // const bits2octets = (bits) => int2octets(bits2int_modN(bits))\n const h1int = bits2int_modN(msgHash);\n const d = normPrivateKeyToScalar(privateKey); // validate private key, convert to bigint\n const seedArgs = [int2octets(d), int2octets(h1int)];\n // extraEntropy. RFC6979 3.6: additional k' (optional).\n if (ent != null && ent !== false) {\n // K = HMAC_K(V || 0x00 || int2octets(x) || bits2octets(h1) || k')\n const e = ent === true ? randomBytes(Fp.BYTES) : ent; // generate random bytes OR pass as-is\n seedArgs.push(ensureBytes('extraEntropy', e)); // check for being bytes\n }\n const seed = 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 const { lowS, prehash, format } = opts;\n // Verify opts, deduce signature format\n validateSigVerOpts(opts);\n if ('strict' in opts)\n throw new Error('options.strict was renamed to lowS');\n if (format !== undefined && format !== 'compact' && format !== 'der')\n throw new Error('format must be compact or der');\n const isHex = typeof sg === 'string' || ut.isBytes(sg);\n const isObj = !isHex &&\n !format &&\n typeof sg === 'object' &&\n sg !== null &&\n typeof sg.r === 'bigint' &&\n typeof sg.s === 'bigint';\n if (!isHex && !isObj)\n throw new Error('invalid signature, expected Uint8Array, hex string or Signature instance');\n let _sig = undefined;\n let P;\n try {\n if (isObj)\n _sig = new Signature(sg.r, sg.s);\n if (isHex) {\n // Signature can be represented in 2 ways: compact (2*nByteLength) & DER (variable-length).\n // Since DER can also be 2*nByteLength bytes, we check for it first.\n try {\n if (format !== 'compact')\n _sig = Signature.fromDER(sg);\n }\n catch (derError) {\n if (!(derError instanceof DER.Err))\n throw derError;\n }\n if (!_sig && format !== 'der')\n _sig = Signature.fromCompact(sg);\n }\n P = Point.fromHex(publicKey);\n }\n catch (error) {\n return false;\n }\n if (!_sig)\n return false;\n if (lowS && _sig.hasHighS())\n return false;\n if (prehash)\n msgHash = CURVE.hash(msgHash);\n const { r, s } = _sig;\n const h = bits2int_modN(msgHash); // Cannot use fields methods, since it is group element\n const is = invN(s); // s^-1\n const u1 = modN(h * is); // u1 = hs^-1 mod n\n const u2 = modN(r * is); // u2 = rs^-1 mod n\n const R = Point.BASE.multiplyAndAddUnsafe(P, u1, u2)?.toAffine(); // R = u1⋅G + u2⋅P\n if (!R)\n return false;\n const v = modN(R.x);\n return v === r;\n }\n return {\n CURVE,\n getPublicKey,\n getSharedSecret,\n sign,\n verify,\n ProjectivePoint: Point,\n Signature,\n utils,\n };\n}\n/**\n * Implementation of the Shallue and van de Woestijne method for any weierstrass curve.\n * TODO: check if there is a way to merge this with uvRatio in Edwards; move to modular.\n * b = True and y = sqrt(u / v) if (u / v) is square in F, and\n * b = False and y = sqrt(Z * (u / v)) otherwise.\n * @param Fp\n * @param Z\n * @returns\n */\nexport function SWUFpSqrtRatio(Fp, Z) {\n // Generic implementation\n const q = Fp.ORDER;\n let l = _0n;\n for (let o = q - _1n; o % _2n === _0n; o /= _2n)\n l += _1n;\n const c1 = l; // 1. c1, the largest integer such that 2^c1 divides q - 1.\n // We need 2n ** c1 and 2n ** (c1-1). We can't use **; but we can use <<.\n // 2n ** c1 == 2n << (c1-1)\n const _2n_pow_c1_1 = _2n << (c1 - _1n - _1n);\n const _2n_pow_c1 = _2n_pow_c1_1 * _2n;\n const c2 = (q - _1n) / _2n_pow_c1; // 2. c2 = (q - 1) / (2^c1) # Integer arithmetic\n const c3 = (c2 - _1n) / _2n; // 3. c3 = (c2 - 1) / 2 # Integer arithmetic\n const c4 = _2n_pow_c1 - _1n; // 4. c4 = 2^c1 - 1 # Integer arithmetic\n const c5 = _2n_pow_c1_1; // 5. c5 = 2^(c1 - 1) # Integer arithmetic\n const c6 = Fp.pow(Z, c2); // 6. c6 = Z^c2\n const c7 = Fp.pow(Z, (c2 + _1n) / _2n); // 7. c7 = Z^((c2 + 1) / 2)\n let sqrtRatio = (u, v) => {\n let tv1 = c6; // 1. tv1 = c6\n let tv2 = Fp.pow(v, c4); // 2. tv2 = v^c4\n let tv3 = Fp.sqr(tv2); // 3. tv3 = tv2^2\n tv3 = Fp.mul(tv3, v); // 4. tv3 = tv3 * v\n let tv5 = Fp.mul(u, tv3); // 5. tv5 = u * tv3\n tv5 = Fp.pow(tv5, c3); // 6. tv5 = tv5^c3\n tv5 = Fp.mul(tv5, tv2); // 7. tv5 = tv5 * tv2\n tv2 = Fp.mul(tv5, v); // 8. tv2 = tv5 * v\n tv3 = Fp.mul(tv5, u); // 9. tv3 = tv5 * u\n let tv4 = Fp.mul(tv3, tv2); // 10. tv4 = tv3 * tv2\n tv5 = Fp.pow(tv4, c5); // 11. tv5 = tv4^c5\n let isQR = Fp.eql(tv5, Fp.ONE); // 12. isQR = tv5 == 1\n tv2 = Fp.mul(tv3, c7); // 13. tv2 = tv3 * c7\n tv5 = Fp.mul(tv4, tv1); // 14. tv5 = tv4 * tv1\n tv3 = Fp.cmov(tv2, tv3, isQR); // 15. tv3 = CMOV(tv2, tv3, isQR)\n tv4 = Fp.cmov(tv5, tv4, isQR); // 16. tv4 = CMOV(tv5, tv4, isQR)\n // 17. for i in (c1, c1 - 1, ..., 2):\n for (let i = c1; i > _1n; i--) {\n let tv5 = i - _2n; // 18. tv5 = i - 2\n tv5 = _2n << (tv5 - _1n); // 19. tv5 = 2^tv5\n let tvv5 = Fp.pow(tv4, tv5); // 20. tv5 = tv4^tv5\n const e1 = Fp.eql(tvv5, Fp.ONE); // 21. e1 = tv5 == 1\n tv2 = Fp.mul(tv3, tv1); // 22. tv2 = tv3 * tv1\n tv1 = Fp.mul(tv1, tv1); // 23. tv1 = tv1 * tv1\n tvv5 = Fp.mul(tv4, tv1); // 24. tv5 = tv4 * tv1\n tv3 = Fp.cmov(tv2, tv3, e1); // 25. tv3 = CMOV(tv2, tv3, e1)\n tv4 = Fp.cmov(tvv5, tv4, e1); // 26. tv4 = CMOV(tv5, tv4, e1)\n }\n return { isValid: isQR, value: tv3 };\n };\n if (Fp.ORDER % _4n === _3n) {\n // sqrt_ratio_3mod4(u, v)\n const c1 = (Fp.ORDER - _3n) / _4n; // 1. c1 = (q - 3) / 4 # Integer arithmetic\n const c2 = Fp.sqrt(Fp.neg(Z)); // 2. c2 = sqrt(-Z)\n sqrtRatio = (u, v) => {\n let tv1 = Fp.sqr(v); // 1. tv1 = v^2\n const tv2 = Fp.mul(u, v); // 2. tv2 = u * v\n tv1 = Fp.mul(tv1, tv2); // 3. tv1 = tv1 * tv2\n let y1 = Fp.pow(tv1, c1); // 4. y1 = tv1^c1\n y1 = Fp.mul(y1, tv2); // 5. y1 = y1 * tv2\n const y2 = Fp.mul(y1, c2); // 6. y2 = y1 * c2\n const tv3 = Fp.mul(Fp.sqr(y1), v); // 7. tv3 = y1^2; 8. tv3 = tv3 * v\n const isQR = Fp.eql(tv3, u); // 9. isQR = tv3 == u\n let y = Fp.cmov(y2, y1, isQR); // 10. y = CMOV(y2, y1, isQR)\n return { isValid: isQR, value: y }; // 11. return (isQR, y) isQR ? y : y*c2\n };\n }\n // No curves uses that\n // if (Fp.ORDER % _8n === _5n) // sqrt_ratio_5mod8\n return sqrtRatio;\n}\n/**\n * Simplified Shallue-van de Woestijne-Ulas Method\n * https://www.rfc-editor.org/rfc/rfc9380#section-6.6.2\n */\nexport function mapToCurveSimpleSWU(Fp, opts) {\n validateField(Fp);\n if (!Fp.isValid(opts.A) || !Fp.isValid(opts.B) || !Fp.isValid(opts.Z))\n throw new Error('mapToCurveSimpleSWU: invalid opts');\n const sqrtRatio = SWUFpSqrtRatio(Fp, opts.Z);\n if (!Fp.isOdd)\n throw new Error('Fp.isOdd is not implemented!');\n // Input: u, an element of F.\n // Output: (x, y), a point on E.\n return (u) => {\n // prettier-ignore\n let tv1, tv2, tv3, tv4, tv5, tv6, x, y;\n tv1 = Fp.sqr(u); // 1. tv1 = u^2\n tv1 = Fp.mul(tv1, opts.Z); // 2. tv1 = Z * tv1\n tv2 = Fp.sqr(tv1); // 3. tv2 = tv1^2\n tv2 = Fp.add(tv2, tv1); // 4. tv2 = tv2 + tv1\n tv3 = Fp.add(tv2, Fp.ONE); // 5. tv3 = tv2 + 1\n tv3 = Fp.mul(tv3, opts.B); // 6. tv3 = B * tv3\n tv4 = Fp.cmov(opts.Z, Fp.neg(tv2), !Fp.eql(tv2, Fp.ZERO)); // 7. tv4 = CMOV(Z, -tv2, tv2 != 0)\n tv4 = Fp.mul(tv4, opts.A); // 8. tv4 = A * tv4\n tv2 = Fp.sqr(tv3); // 9. tv2 = tv3^2\n tv6 = Fp.sqr(tv4); // 10. tv6 = tv4^2\n tv5 = Fp.mul(tv6, opts.A); // 11. tv5 = A * tv6\n tv2 = Fp.add(tv2, tv5); // 12. tv2 = tv2 + tv5\n tv2 = Fp.mul(tv2, tv3); // 13. tv2 = tv2 * tv3\n tv6 = Fp.mul(tv6, tv4); // 14. tv6 = tv6 * tv4\n tv5 = Fp.mul(tv6, opts.B); // 15. tv5 = B * tv6\n tv2 = Fp.add(tv2, tv5); // 16. tv2 = tv2 + tv5\n x = Fp.mul(tv1, tv3); // 17. x = tv1 * tv3\n const { isValid, value } = sqrtRatio(tv2, tv6); // 18. (is_gx1_square, y1) = sqrt_ratio(tv2, tv6)\n y = Fp.mul(tv1, u); // 19. y = tv1 * u -> Z * u^3 * y1\n y = Fp.mul(y, value); // 20. y = y * y1\n x = Fp.cmov(x, tv3, isValid); // 21. x = CMOV(x, tv3, is_gx1_square)\n y = Fp.cmov(y, value, isValid); // 22. y = CMOV(y, y1, is_gx1_square)\n const e1 = Fp.isOdd(u) === Fp.isOdd(y); // 23. e1 = sgn0(u) == sgn0(y)\n y = Fp.cmov(Fp.neg(y), y, e1); // 24. y = CMOV(-y, y, e1)\n x = Fp.div(x, tv4); // 25. x = x / tv4\n return { x, y };\n };\n}\n//# sourceMappingURL=weierstrass.js.map","/**\n * Utilities for short weierstrass curves, combined with noble-hashes.\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { hmac } from '@noble/hashes/hmac';\nimport { concatBytes, randomBytes } from '@noble/hashes/utils';\nimport { weierstrass } from './abstract/weierstrass.js';\n/** connects noble-curves to noble-hashes */\nexport function getHash(hash) {\n return {\n hash,\n hmac: (key, ...msgs) => hmac(hash, key, concatBytes(...msgs)),\n randomBytes,\n };\n}\nexport function createCurve(curveDef, defHash) {\n const create = (hash) => weierstrass({ ...curveDef, ...getHash(hash) });\n return { ...create(defHash), create };\n}\n//# sourceMappingURL=_shortw_utils.js.map","/**\n * NIST secp256k1. See [pdf](https://www.secg.org/sec2-v2.pdf).\n *\n * Seems to be rigid (not backdoored)\n * [as per discussion](https://bitcointalk.org/index.php?topic=289795.msg3183975#msg3183975).\n *\n * secp256k1 belongs to Koblitz curves: it has efficiently computable endomorphism.\n * Endomorphism uses 2x less RAM, speeds up precomputation by 2x and ECDH / key recovery by 20%.\n * For precomputed wNAF it trades off 1/2 init time & 1/3 ram for 20% perf hit.\n * [See explanation](https://gist.github.com/paulmillr/eb670806793e84df628a7c434a873066).\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { sha256 } from '@noble/hashes/sha256';\nimport { randomBytes } from '@noble/hashes/utils';\nimport { createCurve } from './_shortw_utils.js';\nimport { createHasher, isogenyMap } from './abstract/hash-to-curve.js';\nimport { Field, mod, pow2 } from './abstract/modular.js';\nimport { aInRange, bytesToNumberBE, concatBytes, ensureBytes, inRange, numberToBytesBE, } from './abstract/utils.js';\nimport { mapToCurveSimpleSWU } from './abstract/weierstrass.js';\nconst secp256k1P = BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f');\nconst secp256k1N = BigInt('0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141');\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst divNearest = (a, b) => (a + b / _2n) / b;\n/**\n * √n = n^((p+1)/4) for fields p = 3 mod 4. We unwrap the loop and multiply bit-by-bit.\n * (P+1n/4n).toString(2) would produce bits [223x 1, 0, 22x 1, 4x 0, 11, 00]\n */\nfunction sqrtMod(y) {\n const P = secp256k1P;\n // prettier-ignore\n const _3n = BigInt(3), _6n = BigInt(6), _11n = BigInt(11), _22n = BigInt(22);\n // prettier-ignore\n const _23n = BigInt(23), _44n = BigInt(44), _88n = BigInt(88);\n const b2 = (y * y * y) % P; // x^3, 11\n const b3 = (b2 * b2 * y) % P; // x^7\n const b6 = (pow2(b3, _3n, P) * b3) % P;\n const b9 = (pow2(b6, _3n, P) * b3) % P;\n const b11 = (pow2(b9, _2n, P) * b2) % P;\n const b22 = (pow2(b11, _11n, P) * b11) % P;\n const b44 = (pow2(b22, _22n, P) * b22) % P;\n const b88 = (pow2(b44, _44n, P) * b44) % P;\n const b176 = (pow2(b88, _88n, P) * b88) % P;\n const b220 = (pow2(b176, _44n, P) * b44) % P;\n const b223 = (pow2(b220, _3n, P) * b3) % P;\n const t1 = (pow2(b223, _23n, P) * b22) % P;\n const t2 = (pow2(t1, _6n, P) * b2) % P;\n const root = pow2(t2, _2n, P);\n if (!Fpk1.eql(Fpk1.sqr(root), y))\n throw new Error('Cannot find square root');\n return root;\n}\nconst Fpk1 = Field(secp256k1P, undefined, undefined, { sqrt: sqrtMod });\n/**\n * secp256k1 short weierstrass curve and ECDSA signatures over it.\n *\n * @example\n * import { secp256k1 } from '@noble/curves/secp256k1';\n *\n * const priv = secp256k1.utils.randomPrivateKey();\n * const pub = secp256k1.getPublicKey(priv);\n * const msg = new Uint8Array(32).fill(1); // message hash (not message) in ecdsa\n * const sig = secp256k1.sign(msg, priv); // `{prehash: true}` option is available\n * const isValid = secp256k1.verify(sig, msg, pub) === true;\n */\nexport const secp256k1 = createCurve({\n a: BigInt(0), // equation params: a, b\n b: BigInt(7),\n Fp: Fpk1, // Field's prime: 2n**256n - 2n**32n - 2n**9n - 2n**8n - 2n**7n - 2n**6n - 2n**4n - 1n\n n: secp256k1N, // Curve order, total count of valid points in the field\n // Base point (x, y) aka generator point\n Gx: BigInt('55066263022277343669578718895168534326250603453777594175500187360389116729240'),\n Gy: BigInt('32670510020758816978083085130507043184471273380659243275938904335757337482424'),\n h: BigInt(1), // Cofactor\n lowS: true, // Allow only low-S signatures by default in sign() and verify()\n endo: {\n // Endomorphism, see above\n beta: BigInt('0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee'),\n splitScalar: (k) => {\n const n = secp256k1N;\n const a1 = BigInt('0x3086d221a7d46bcde86c90e49284eb15');\n const b1 = -_1n * BigInt('0xe4437ed6010e88286f547fa90abfe4c3');\n const a2 = BigInt('0x114ca50f7a8e2f3f657c1108d9d44cfd8');\n const b2 = a1;\n const POW_2_128 = BigInt('0x100000000000000000000000000000000'); // (2n**128n).toString(16)\n const c1 = divNearest(b2 * k, n);\n const c2 = divNearest(-b1 * k, n);\n let k1 = mod(k - c1 * a1 - c2 * a2, n);\n let k2 = mod(-c1 * b1 - c2 * b2, n);\n const k1neg = k1 > POW_2_128;\n const k2neg = k2 > POW_2_128;\n if (k1neg)\n k1 = n - k1;\n if (k2neg)\n k2 = n - k2;\n if (k1 > POW_2_128 || k2 > POW_2_128) {\n throw new Error('splitScalar: Endomorphism failed, k=' + k);\n }\n return { k1neg, k1, k2neg, k2 };\n },\n },\n}, sha256);\n// Schnorr signatures are superior to ECDSA from above. Below is Schnorr-specific BIP0340 code.\n// https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki\nconst _0n = BigInt(0);\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 aInRange('x', x, _1n, secp256k1P); // Fail if x ≥ p.\n const xx = modP(x * x);\n const c = modP(xx * x + BigInt(7)); // Let c = x³ + 7 mod p.\n let y = sqrtMod(c); // Let y = c^(p+1)/4 mod p.\n if (y % _2n !== _0n)\n y = modP(-y); // Return the unique point P such that x(P) = x and\n const p = new Point(x, y, _1n); // y(P) = y if y mod 2 = 0 or y(P) = p-y otherwise.\n p.assertValidity();\n return p;\n}\nconst num = bytesToNumberBE;\n/**\n * Create tagged hash, convert it to bigint, reduce modulo-n.\n */\nfunction challenge(...args) {\n return modN(num(taggedHash('BIP0340/challenge', ...args)));\n}\n/**\n * Schnorr public key is just `x` coordinate of Point as per BIP340.\n */\nfunction schnorrGetPublicKey(privateKey) {\n return schnorrGetExtPubKey(privateKey).bytes; // d'=int(sk). Fail if d'=0 or d'≥n. Ret bytes(d'⋅G)\n}\n/**\n * Creates Schnorr signature as per BIP340. Verifies itself before returning anything.\n * auxRand is optional and is not the sole source of k generation: bad CSPRNG won't be dangerous.\n */\nfunction schnorrSign(message, privateKey, auxRand = randomBytes(32)) {\n const m = ensureBytes('message', message);\n const { bytes: px, scalar: d } = schnorrGetExtPubKey(privateKey); // checks for isWithinCurveOrder\n const a = ensureBytes('auxRand', auxRand, 32); // Auxiliary random data a: a 32-byte array\n const t = numTo32b(d ^ num(taggedHash('BIP0340/aux', a))); // Let t be the byte-wise xor of bytes(d) and hash/aux(a)\n const rand = taggedHash('BIP0340/nonce', t, px, m); // Let rand = hash/nonce(t || bytes(P) || m)\n const k_ = modN(num(rand)); // Let k' = int(rand) mod n\n if (k_ === _0n)\n throw new Error('sign failed: k is zero'); // Fail if k' = 0.\n const { bytes: rx, scalar: k } = schnorrGetExtPubKey(k_); // Let R = k'⋅G.\n const e = challenge(rx, px, m); // Let e = int(hash/challenge(bytes(R) || bytes(P) || m)) mod n.\n const sig = new Uint8Array(64); // Let sig = bytes(R) || bytes((k + ed) mod n).\n sig.set(rx, 0);\n sig.set(numTo32b(modN(k + e * d)), 32);\n // If Verify(bytes(P), m, sig) (see below) returns failure, abort\n if (!schnorrVerify(sig, m, px))\n throw new Error('sign: Invalid signature produced');\n return sig;\n}\n/**\n * Verifies Schnorr signature.\n * Will swallow errors & return false except for initial type validation of arguments.\n */\nfunction schnorrVerify(signature, message, publicKey) {\n const sig = ensureBytes('signature', signature, 64);\n const m = ensureBytes('message', message);\n const pub = ensureBytes('publicKey', publicKey, 32);\n try {\n const P = lift_x(num(pub)); // P = lift_x(int(pk)); fail if that fails\n const r = num(sig.subarray(0, 32)); // Let r = int(sig[0:32]); fail if r ≥ p.\n if (!inRange(r, _1n, secp256k1P))\n return false;\n const s = num(sig.subarray(32, 64)); // Let s = int(sig[32:64]); fail if s ≥ n.\n if (!inRange(s, _1n, secp256k1N))\n return false;\n const e = challenge(numTo32b(r), pointToBytes(P), m); // int(challenge(bytes(r)||bytes(P)||m))%n\n const R = GmulAdd(P, s, modN(-e)); // R = s⋅G - e⋅P\n if (!R || !R.hasEvenY() || R.toAffine().x !== r)\n return false; // -eP == (n-e)P\n return true; // Fail if is_infinite(R) / not has_even_y(R) / x(R) ≠ r.\n }\n catch (error) {\n return false;\n }\n}\n/**\n * Schnorr signatures over secp256k1.\n * https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki\n * @example\n * import { schnorr } from '@noble/curves/secp256k1';\n * const priv = schnorr.utils.randomPrivateKey();\n * const pub = schnorr.getPublicKey(priv);\n * const msg = new TextEncoder().encode('hello');\n * const sig = schnorr.sign(msg, priv);\n * const isValid = schnorr.verify(sig, msg, pub);\n */\nexport const schnorr = /* @__PURE__ */ (() => ({\n getPublicKey: schnorrGetPublicKey,\n sign: schnorrSign,\n verify: schnorrVerify,\n utils: {\n randomPrivateKey: secp256k1.utils.randomPrivateKey,\n lift_x,\n pointToBytes,\n numberToBytesBE,\n bytesToNumberBE,\n taggedHash,\n mod,\n },\n}))();\nconst isoMap = /* @__PURE__ */ (() => isogenyMap(Fpk1, [\n // xNum\n [\n '0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa8c7',\n '0x7d3d4c80bc321d5b9f315cea7fd44c5d595d2fc0bf63b92dfff1044f17c6581',\n '0x534c328d23f234e6e2a413deca25caece4506144037c40314ecbd0b53d9dd262',\n '0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa88c',\n ],\n // xDen\n [\n '0xd35771193d94918a9ca34ccbb7b640dd86cd409542f8487d9fe6b745781eb49b',\n '0xedadc6f64383dc1df7c4b2d51b54225406d36b641f5e41bbc52a56612a8c6d14',\n '0x0000000000000000000000000000000000000000000000000000000000000001', // LAST 1\n ],\n // yNum\n [\n '0x4bda12f684bda12f684bda12f684bda12f684bda12f684bda12f684b8e38e23c',\n '0xc75e0c32d5cb7c0fa9d0a54b12a0a6d5647ab046d686da6fdffc90fc201d71a3',\n '0x29a6194691f91a73715209ef6512e576722830a201be2018a765e85a9ecee931',\n '0x2f684bda12f684bda12f684bda12f684bda12f684bda12f684bda12f38e38d84',\n ],\n // yDen\n [\n '0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffff93b',\n '0x7a06534bb8bdb49fd5e9e6632722c2989467c1bfc8e8d978dfb425d2685c2573',\n '0x6484aa716545ca2cf3a70c3fa8fe337e0a3d21162f0d6299a7bf8192bfd2a76f',\n '0x0000000000000000000000000000000000000000000000000000000000000001', // LAST 1\n ],\n].map((i) => i.map((j) => BigInt(j)))))();\nconst mapSWU = /* @__PURE__ */ (() => mapToCurveSimpleSWU(Fpk1, {\n A: BigInt('0x3f8731abdd661adca08a5558f0f5d272e953d363cb6f0e5d405447c01a444533'),\n B: BigInt('1771'),\n Z: Fpk1.create(BigInt('-11')),\n}))();\nconst htf = /* @__PURE__ */ (() => createHasher(secp256k1.ProjectivePoint, (scalars) => {\n const { x, y } = mapSWU(Fpk1.create(scalars[0]));\n return isoMap(x, y);\n}, {\n DST: 'secp256k1_XMD:SHA-256_SSWU_RO_',\n encodeDST: 'secp256k1_XMD:SHA-256_SSWU_NU_',\n p: Fpk1.ORDER,\n m: 1,\n k: 128,\n expand: 'xmd',\n hash: sha256,\n}))();\n/** secp256k1 hash-to-curve from [RFC 9380](https://www.rfc-editor.org/rfc/rfc9380). */\nexport const hashToCurve = /* @__PURE__ */ (() => htf.hashToCurve)();\n/** secp256k1 encode-to-curve from [RFC 9380](https://www.rfc-editor.org/rfc/rfc9380). */\nexport const encodeToCurve = /* @__PURE__ */ (() => htf.encodeToCurve)();\n//# sourceMappingURL=secp256k1.js.map","import { secp256k1 } from '@noble/curves/secp256k1';\nimport { hexToBigInt } from '../encoding/fromHex.js';\nimport { hexToBytes } from '../encoding/toBytes.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, to = 'hex', 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 const signature = `0x${new secp256k1.Signature(hexToBigInt(r), hexToBigInt(s)).toCompactHex()}${yParity_ === 0 ? '1b' : '1c'}`;\n if (to === 'hex')\n return signature;\n return hexToBytes(signature);\n}\n//# sourceMappingURL=serializeSignature.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 { getAddress } from '../../utils/address/getAddress.js';\nimport { isAddressEqual } from '../../utils/address/isAddressEqual.js';\nimport { isHex } from '../../utils/data/isHex.js';\nimport { bytesToHex } from '../../utils/encoding/toHex.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { encodeFunctionData, hexToBool } from '../../utils/index.js';\nimport { isErc6492Signature } from '../../utils/signature/isErc6492Signature.js';\nimport { recoverAddress } from '../../utils/signature/recoverAddress.js';\nimport { serializeErc6492Signature } from '../../utils/signature/serializeErc6492Signature.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, parameters) {\n const { address, factory, factoryData, hash, signature, universalSignatureVerifierAddress = client.chain?.contracts\n ?.universalSignatureVerifier?.address, ...rest } = parameters;\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 const wrappedSignature = await (async () => {\n // If no `factory` or `factoryData` is provided, it is assumed that the\n // address is not a Smart Account, or the Smart Account is already deployed.\n if (!factory && !factoryData)\n return signatureHex;\n // If the signature is already wrapped, return the signature.\n if (isErc6492Signature(signatureHex))\n return signatureHex;\n // If the Smart Account is not deployed, wrap the signature with a 6492 wrapper\n // to perform counterfactual validation.\n return serializeErc6492Signature({\n address: factory,\n data: factoryData,\n signature: signatureHex,\n });\n })();\n try {\n const args = universalSignatureVerifierAddress\n ? {\n to: universalSignatureVerifierAddress,\n data: encodeFunctionData({\n abi: universalSignatureValidatorAbi,\n functionName: 'isValidSig',\n args: [address, hash, wrappedSignature],\n }),\n ...rest,\n }\n : {\n data: encodeDeployData({\n abi: universalSignatureValidatorAbi,\n args: [address, hash, wrappedSignature],\n bytecode: universalSignatureValidatorByteCode,\n }),\n ...rest,\n };\n const { data } = await getAction(client, call, 'call')(args);\n return hexToBool(data ?? '0x0');\n }\n catch (error) {\n // Fallback attempt to verify the signature via ECDSA recovery.\n try {\n const verified = isAddressEqual(getAddress(address), await recoverAddress({ hash, signature }));\n if (verified)\n return true;\n }\n catch { }\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 { 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, factory, factoryData, signature, ...callRequest }) {\n const hash = hashMessage(message);\n return verifyHash(client, {\n address,\n factory: factory,\n factoryData: factoryData,\n hash,\n signature,\n ...callRequest,\n });\n}\n//# sourceMappingURL=verifyMessage.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, factory, factoryData, signature, message, primaryType, types, domain, ...callRequest } = parameters;\n const hash = hashTypedData({ message, primaryType, types, domain });\n return verifyHash(client, {\n address,\n factory: factory,\n factoryData: factoryData,\n hash,\n signature,\n ...callRequest,\n });\n}\n//# sourceMappingURL=verifyTypedData.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 // Reinitialize 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 { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { AccountNotFoundError, } from '../../errors/account.js';\nimport { encodeFunctionData, } from '../../utils/abi/encodeFunctionData.js';\nimport { getContractError, } from '../../utils/errors/getContractError.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, account: account_ = client.account, address, args, dataSuffix, functionName, ...request } = parameters;\n if (typeof account_ === 'undefined')\n throw new AccountNotFoundError({\n docsPath: '/docs/contract/writeContract',\n });\n const account = account_ ? parseAccount(account_) : null;\n const data = encodeFunctionData({\n abi,\n args,\n functionName,\n });\n try {\n return await getAction(client, sendTransaction, 'sendTransaction')({\n data: `${data}${dataSuffix ? dataSuffix.replace('0x', '') : ''}`,\n to: address,\n account,\n ...request,\n });\n }\n catch (error) {\n throw getContractError(error, {\n abi,\n address,\n args,\n docsPath: '/docs/contract/writeContract',\n functionName,\n sender: account?.address,\n });\n }\n}\n//# sourceMappingURL=writeContract.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, actionFn, \n// Some minifiers drop `Function.prototype.name`, or replace it with short letters,\n// meaning that `actionFn.name` will not always work. For that case, the consumer\n// needs to pass the name explicitly.\nname) {\n const action_implicit = client[actionFn.name];\n if (typeof action_implicit === 'function')\n return action_implicit;\n const action_explicit = client[name];\n if (typeof action_explicit === 'function')\n return action_explicit;\n return (params) => actionFn(client, params);\n}\n//# sourceMappingURL=getAction.js.map","export const version = '2.16.7';\n//# sourceMappingURL=version.js.map","import { version } from '../version.js';\nexport const getVersion = () => `@wagmi/core@${version}`;\n//# sourceMappingURL=getVersion.js.map","var __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 _BaseError_instances, _BaseError_walk;\nimport { getVersion } from '../utils/getVersion.js';\nexport class BaseError extends Error {\n get docsBaseUrl() {\n return 'https://wagmi.sh/core';\n }\n get version() {\n return getVersion();\n }\n constructor(shortMessage, options = {}) {\n super();\n _BaseError_instances.add(this);\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: 'WagmiCoreError'\n });\n const details = options.cause instanceof BaseError\n ? options.cause.details\n : options.cause?.message\n ? options.cause.message\n : options.details;\n const docsPath = options.cause instanceof BaseError\n ? options.cause.docsPath || options.docsPath\n : options.docsPath;\n this.message = [\n shortMessage || 'An error occurred.',\n '',\n ...(options.metaMessages ? [...options.metaMessages, ''] : []),\n ...(docsPath\n ? [\n `Docs: ${this.docsBaseUrl}${docsPath}.html${options.docsSlug ? `#${options.docsSlug}` : ''}`,\n ]\n : []),\n ...(details ? [`Details: ${details}`] : []),\n `Version: ${this.version}`,\n ].join('\\n');\n if (options.cause)\n this.cause = options.cause;\n this.details = details;\n this.docsPath = docsPath;\n this.metaMessages = options.metaMessages;\n this.shortMessage = shortMessage;\n }\n walk(fn) {\n return __classPrivateFieldGet(this, _BaseError_instances, \"m\", _BaseError_walk).call(this, this, fn);\n }\n}\n_BaseError_instances = new WeakSet(), _BaseError_walk = function _BaseError_walk(err, fn) {\n if (fn?.(err))\n return err;\n if (err.cause)\n return __classPrivateFieldGet(this, _BaseError_instances, \"m\", _BaseError_walk).call(this, err.cause, fn);\n return err;\n};\n//# sourceMappingURL=base.js.map","import { BaseError } from './base.js';\nexport class ChainNotConfiguredError extends BaseError {\n constructor() {\n super('Chain not configured.');\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ChainNotConfiguredError'\n });\n }\n}\nexport class ConnectorAlreadyConnectedError extends BaseError {\n constructor() {\n super('Connector already connected.');\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ConnectorAlreadyConnectedError'\n });\n }\n}\nexport class ConnectorNotConnectedError extends BaseError {\n constructor() {\n super('Connector not connected.');\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ConnectorNotConnectedError'\n });\n }\n}\nexport class ConnectorNotFoundError extends BaseError {\n constructor() {\n super('Connector not found.');\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ConnectorNotFoundError'\n });\n }\n}\nexport class ConnectorAccountNotFoundError extends BaseError {\n constructor({ address, connector, }) {\n super(`Account \"${address}\" not found for connector \"${connector.name}\".`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ConnectorAccountNotFoundError'\n });\n }\n}\nexport class ConnectorChainMismatchError extends BaseError {\n constructor({ connectionChainId, connectorChainId, }) {\n super(`The current chain of the connector (id: ${connectorChainId}) does not match the connection's chain (id: ${connectionChainId}).`, {\n metaMessages: [\n `Current Chain ID: ${connectorChainId}`,\n `Expected Chain ID: ${connectionChainId}`,\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ConnectorChainMismatchError'\n });\n }\n}\nexport class ConnectorUnavailableReconnectingError extends BaseError {\n constructor({ connector }) {\n super(`Connector \"${connector.name}\" unavailable while reconnecting.`, {\n details: [\n 'During the reconnection step, the only connector methods guaranteed to be available are: `id`, `name`, `type`, `uid`.',\n 'All other methods are not guaranteed to be available until reconnection completes and connectors are fully restored.',\n 'This error commonly occurs for connectors that asynchronously inject after reconnection has already started.',\n ].join(' '),\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ConnectorUnavailableReconnectingError'\n });\n }\n}\n//# sourceMappingURL=config.js.map","import { ConnectorAlreadyConnectedError, } from '../errors/config.js';\n/** https://wagmi.sh/core/api/actions/connect */\nexport async function connect(config, parameters) {\n // \"Register\" connector if not already created\n let connector;\n if (typeof parameters.connector === 'function') {\n connector = config._internal.connectors.setup(parameters.connector);\n }\n else\n connector = parameters.connector;\n // Check if connector is already connected\n if (connector.uid === config.state.current)\n throw new ConnectorAlreadyConnectedError();\n try {\n config.setState((x) => ({ ...x, status: 'connecting' }));\n connector.emitter.emit('message', { type: 'connecting' });\n const { connector: _, ...rest } = parameters;\n const data = await connector.connect(rest);\n const accounts = data.accounts;\n connector.emitter.off('connect', config._internal.events.connect);\n connector.emitter.on('change', config._internal.events.change);\n connector.emitter.on('disconnect', config._internal.events.disconnect);\n await config.storage?.setItem('recentConnectorId', connector.id);\n config.setState((x) => ({\n ...x,\n connections: new Map(x.connections).set(connector.uid, {\n accounts,\n chainId: data.chainId,\n connector: connector,\n }),\n current: connector.uid,\n status: 'connected',\n }));\n return { accounts, chainId: data.chainId };\n }\n catch (error) {\n config.setState((x) => ({\n ...x,\n // Keep existing connector connected in case of error\n status: x.current ? 'connected' : 'disconnected',\n }));\n throw error;\n }\n}\n//# sourceMappingURL=connect.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 { 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 { 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, methods, name, request, retryCount = 3, retryDelay = 150, timeout, type, }, value) {\n const uid = uid_();\n return {\n config: {\n key,\n methods,\n name,\n request,\n retryCount,\n retryDelay,\n timeout,\n type,\n },\n request: buildRequest(request, { methods, retryCount, retryDelay, uid }),\n value,\n };\n}\n//# sourceMappingURL=createTransport.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', methods, name = 'Custom Provider', retryDelay, } = config;\n return ({ retryCount: defaultRetryCount }) => createTransport({\n key,\n methods,\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","import { ExecutionRevertedError } from '../../errors/node.js';\nimport { 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, shouldThrow: shouldThrow_ = shouldThrow, 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 let includes;\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 // Check if at least one other transport includes the method\n includes ??= transports.slice(i + 1).some((transport) => {\n const { include, exclude } = transport({ chain }).config.methods || {};\n if (include)\n return include.includes(method);\n if (exclude)\n return !exclude.includes(method);\n return true;\n });\n if (!includes)\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 ping: rankOptions.ping,\n sampleCount: rankOptions.sampleCount,\n timeout: rankOptions.timeout,\n transports,\n weights: rankOptions.weights,\n });\n }\n return transport;\n });\n}\nexport function shouldThrow(error) {\n if ('code' in error && typeof error.code === 'number') {\n if (error.code === TransactionRejectedRpcError.code ||\n error.code === UserRejectedRequestError.code ||\n ExecutionRevertedError.nodeMessage.test(error.message) ||\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, ping, 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 (ping\n ? ping({ transport: transport_ })\n : 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 name: 'UrlRequiredError',\n });\n }\n}\n//# sourceMappingURL=transport.js.map","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', methods, name = 'HTTP JSON-RPC', onFetchRequest, onFetchResponse, retryDelay, raw, } = 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 methods,\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 (raw)\n return { error, result };\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","/**\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 { 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 { 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 { 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 { createAccessList, } from '../../actions/public/createAccessList.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 { simulateBlocks, } from '../../actions/public/simulateBlocks.js';\nimport { simulateCalls, } from '../../actions/public/simulateCalls.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 createAccessList: (args) => createAccessList(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 simulate: (args) => simulateBlocks(client, args),\n simulateBlocks: (args) => simulateBlocks(client, args),\n simulateCalls: (args) => simulateCalls(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 { createClient, custom, } from 'viem';\nimport { getAddress, parseAccount } from 'viem/utils';\nimport { ConnectorAccountNotFoundError, ConnectorChainMismatchError, ConnectorNotConnectedError, ConnectorUnavailableReconnectingError, } from '../errors/config.js';\n/** https://wagmi.sh/core/api/actions/getConnectorClient */\nexport async function getConnectorClient(config, parameters = {}) {\n // Get connection\n let connection;\n if (parameters.connector) {\n const { connector } = parameters;\n if (config.state.status === 'reconnecting' &&\n !connector.getAccounts &&\n !connector.getChainId)\n throw new ConnectorUnavailableReconnectingError({ connector });\n const [accounts, chainId] = await Promise.all([\n connector.getAccounts().catch((e) => {\n if (parameters.account === null)\n return [];\n throw e;\n }),\n connector.getChainId(),\n ]);\n connection = {\n accounts: accounts,\n chainId,\n connector,\n };\n }\n else\n connection = config.state.connections.get(config.state.current);\n if (!connection)\n throw new ConnectorNotConnectedError();\n const chainId = parameters.chainId ?? connection.chainId;\n // Check connector using same chainId as connection\n const connectorChainId = await connection.connector.getChainId();\n if (connectorChainId !== connection.chainId)\n throw new ConnectorChainMismatchError({\n connectionChainId: connection.chainId,\n connectorChainId,\n });\n const connector = connection.connector;\n if (connector.getClient)\n return connector.getClient({ chainId });\n // Default using `custom` transport\n const account = parseAccount(parameters.account ?? connection.accounts[0]);\n if (account)\n account.address = getAddress(account.address); // TODO: Checksum address as part of `parseAccount`?\n // If account was provided, check that it exists on the connector\n if (parameters.account &&\n !connection.accounts.some((x) => x.toLowerCase() === account.address.toLowerCase()))\n throw new ConnectorAccountNotFoundError({\n address: account.address,\n connector,\n });\n const chain = config.chains.find((chain) => chain.id === chainId);\n const provider = (await connection.connector.getProvider({ chainId }));\n return createClient({\n account,\n chain,\n name: 'Connector Client',\n transport: (opts) => custom(provider)({ ...opts, retryCount: 0 }),\n });\n}\n//# sourceMappingURL=getConnectorClient.js.map","/** https://wagmi.sh/core/api/actions/disconnect */\nexport async function disconnect(config, parameters = {}) {\n let connector;\n if (parameters.connector)\n connector = parameters.connector;\n else {\n const { connections, current } = config.state;\n const connection = connections.get(current);\n connector = connection?.connector;\n }\n const connections = config.state.connections;\n if (connector) {\n await connector.disconnect();\n connector.emitter.off('change', config._internal.events.change);\n connector.emitter.off('disconnect', config._internal.events.disconnect);\n connector.emitter.on('connect', config._internal.events.connect);\n connections.delete(connector.uid);\n }\n config.setState((x) => {\n // if no connections exist, move to disconnected state\n if (connections.size === 0)\n return {\n ...x,\n connections: new Map(),\n current: null,\n status: 'disconnected',\n };\n // switch over to another connection\n const nextConnection = connections.values().next().value;\n return {\n ...x,\n connections: new Map(connections),\n current: nextConnection.connector.uid,\n };\n });\n // Set recent connector if exists\n {\n const current = config.state.current;\n if (!current)\n return;\n const connector = config.state.connections.get(current)?.connector;\n if (!connector)\n return;\n await config.storage?.setItem('recentConnectorId', connector.id);\n }\n}\n//# sourceMappingURL=disconnect.js.map","import { estimateGas as viem_estimateGas, } from 'viem/actions';\nimport { getAction } from '../utils/getAction.js';\nimport { getConnectorClient, } from './getConnectorClient.js';\n/** https://wagmi.sh/core/api/actions/estimateGas */\nexport async function estimateGas(config, parameters) {\n const { chainId, connector, ...rest } = parameters;\n let account;\n if (parameters.account)\n account = parameters.account;\n else {\n const connectorClient = await getConnectorClient(config, {\n account: parameters.account,\n chainId,\n connector,\n });\n account = connectorClient.account;\n }\n const client = config.getClient({ chainId });\n const action = getAction(client, viem_estimateGas, 'estimateGas');\n return action({ ...rest, account });\n}\n//# sourceMappingURL=estimateGas.js.map","import { weiUnits } from 'viem';\nexport function 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//# sourceMappingURL=getUnit.js.map","/** https://wagmi.sh/core/api/actions/getAccount */\nexport function getAccount(config) {\n const uid = config.state.current;\n const connection = config.state.connections.get(uid);\n const addresses = connection?.accounts;\n const address = addresses?.[0];\n const chain = config.chains.find((chain) => chain.id === connection?.chainId);\n const status = config.state.status;\n switch (status) {\n case 'connected':\n return {\n address: address,\n addresses: addresses,\n chain,\n chainId: connection?.chainId,\n connector: connection?.connector,\n isConnected: true,\n isConnecting: false,\n isDisconnected: false,\n isReconnecting: false,\n status,\n };\n case 'reconnecting':\n return {\n address,\n addresses,\n chain,\n chainId: connection?.chainId,\n connector: connection?.connector,\n isConnected: !!address,\n isConnecting: false,\n isDisconnected: false,\n isReconnecting: true,\n status,\n };\n case 'connecting':\n return {\n address,\n addresses,\n chain,\n chainId: connection?.chainId,\n connector: connection?.connector,\n isConnected: false,\n isConnecting: true,\n isDisconnected: false,\n isReconnecting: false,\n status,\n };\n case 'disconnected':\n return {\n address: undefined,\n addresses: undefined,\n chain: undefined,\n chainId: undefined,\n connector: undefined,\n isConnected: false,\n isConnecting: false,\n isDisconnected: true,\n isReconnecting: false,\n status,\n };\n }\n}\n//# sourceMappingURL=getAccount.js.map","import { multicall as viem_multicall } from 'viem/actions';\nimport { getAction } from '../utils/getAction.js';\nexport async function multicall(config, parameters) {\n const { allowFailure = true, chainId, contracts, ...rest } = parameters;\n const client = config.getClient({ chainId });\n const action = getAction(client, viem_multicall, 'multicall');\n return action({\n allowFailure,\n contracts,\n ...rest,\n });\n}\n//# sourceMappingURL=multicall.js.map","import { readContract as viem_readContract, } from 'viem/actions';\nimport { getAction } from '../utils/getAction.js';\n/** https://wagmi.sh/core/api/actions/readContract */\nexport function readContract(config, parameters) {\n const { chainId, ...rest } = parameters;\n const client = config.getClient({ chainId });\n const action = getAction(client, viem_readContract, 'readContract');\n return action(rest);\n}\n//# sourceMappingURL=readContract.js.map","import { ContractFunctionExecutionError } from 'viem';\nimport { multicall } from './multicall.js';\nimport { readContract } from './readContract.js';\nexport async function readContracts(config, parameters) {\n const { allowFailure = true, blockNumber, blockTag, ...rest } = parameters;\n const contracts = parameters.contracts;\n try {\n const contractsByChainId = {};\n for (const [index, contract] of contracts.entries()) {\n const chainId = contract.chainId ?? config.state.chainId;\n if (!contractsByChainId[chainId])\n contractsByChainId[chainId] = [];\n contractsByChainId[chainId]?.push({ contract, index });\n }\n const promises = () => Object.entries(contractsByChainId).map(([chainId, contracts]) => multicall(config, {\n ...rest,\n allowFailure,\n blockNumber,\n blockTag,\n chainId: Number.parseInt(chainId),\n contracts: contracts.map(({ contract }) => contract),\n }));\n const multicallResults = (await Promise.all(promises())).flat();\n // Reorder the contract results back to the order they were\n // provided in.\n const resultIndexes = Object.values(contractsByChainId).flatMap((contracts) => contracts.map(({ index }) => index));\n return multicallResults.reduce((results, result, index) => {\n if (results)\n results[resultIndexes[index]] = result;\n return results;\n }, []);\n }\n catch (error) {\n if (error instanceof ContractFunctionExecutionError)\n throw error;\n const promises = () => contracts.map((contract) => readContract(config, { ...contract, blockNumber, blockTag }));\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: undefined, status: 'failure' };\n });\n return (await Promise.all(promises()));\n }\n}\n//# sourceMappingURL=readContracts.js.map","import { formatUnits, hexToString, trim } from 'viem';\nimport { getBalance as viem_getBalance, } from 'viem/actions';\nimport { getAction } from '../utils/getAction.js';\nimport { getUnit } from '../utils/getUnit.js';\nimport { readContracts } from './readContracts.js';\n/** https://wagmi.sh/core/api/actions/getBalance */\nexport async function getBalance(config, parameters) {\n const { address, blockNumber, blockTag, chainId, token: tokenAddress, unit = 'ether', } = parameters;\n if (tokenAddress) {\n try {\n return await getTokenBalance(config, {\n balanceAddress: address,\n chainId,\n symbolType: 'string',\n tokenAddress,\n });\n }\n catch (error) {\n // In the chance that there is an error upon decoding the contract result,\n // it could be likely that the contract data is represented as bytes32 instead\n // of a string.\n if (error.name ===\n 'ContractFunctionExecutionError') {\n const balance = await getTokenBalance(config, {\n balanceAddress: address,\n chainId,\n symbolType: 'bytes32',\n tokenAddress,\n });\n const symbol = hexToString(trim(balance.symbol, { dir: 'right' }));\n return { ...balance, symbol };\n }\n throw error;\n }\n }\n const client = config.getClient({ chainId });\n const action = getAction(client, viem_getBalance, 'getBalance');\n const value = await action(blockNumber ? { address, blockNumber } : { address, blockTag });\n const chain = config.chains.find((x) => x.id === chainId) ?? client.chain;\n return {\n decimals: chain.nativeCurrency.decimals,\n formatted: formatUnits(value, getUnit(unit)),\n symbol: chain.nativeCurrency.symbol,\n value,\n };\n}\nasync function getTokenBalance(config, parameters) {\n const { balanceAddress, chainId, symbolType, tokenAddress, unit } = parameters;\n const contract = {\n abi: [\n {\n type: 'function',\n name: 'balanceOf',\n stateMutability: 'view',\n inputs: [{ type: 'address' }],\n outputs: [{ type: 'uint256' }],\n },\n {\n type: 'function',\n name: 'decimals',\n stateMutability: 'view',\n inputs: [],\n outputs: [{ type: 'uint8' }],\n },\n {\n type: 'function',\n name: 'symbol',\n stateMutability: 'view',\n inputs: [],\n outputs: [{ type: symbolType }],\n },\n ],\n address: tokenAddress,\n };\n const [value, decimals, symbol] = await readContracts(config, {\n allowFailure: false,\n contracts: [\n {\n ...contract,\n functionName: 'balanceOf',\n args: [balanceAddress],\n chainId,\n },\n { ...contract, functionName: 'decimals', chainId },\n { ...contract, functionName: 'symbol', chainId },\n ],\n });\n const formatted = formatUnits(value ?? '0', getUnit(unit ?? decimals));\n return { decimals, formatted, symbol, value };\n}\n//# sourceMappingURL=getBalance.js.map","/** https://wagmi.sh/core/api/actions/getChainId */\nexport function getChainId(config) {\n return config.state.chainId;\n}\n//# sourceMappingURL=getChainId.js.map","/** Forked from https://github.com/epoberezkin/fast-deep-equal */\nexport function 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 // true if both NaN, false otherwise\n // biome-ignore lint/suspicious/noSelfCompare: \n return a !== a && b !== b;\n}\n//# sourceMappingURL=deepEqual.js.map","import { deepEqual } from '../utils/deepEqual.js';\nlet previousChains = [];\n/** https://wagmi.sh/core/api/actions/getChains */\nexport function getChains(config) {\n const chains = config.chains;\n if (deepEqual(previousChains, chains))\n return previousChains;\n previousChains = chains;\n return chains;\n}\n//# sourceMappingURL=getChains.js.map","export function getClient(config, parameters = {}) {\n let client = undefined;\n try {\n client = config.getClient(parameters);\n }\n catch { }\n return client;\n}\n//# sourceMappingURL=getClient.js.map","import { deepEqual } from '../utils/deepEqual.js';\nlet previousConnections = [];\n/** https://wagmi.sh/core/api/actions/getConnections */\nexport function getConnections(config) {\n const connections = [...config.state.connections.values()];\n if (config.state.status === 'reconnecting')\n return previousConnections;\n if (deepEqual(previousConnections, connections))\n return previousConnections;\n previousConnections = connections;\n return connections;\n}\n//# sourceMappingURL=getConnections.js.map","import { getEnsAddress as viem_getEnsAddress, } from 'viem/actions';\nimport { getAction } from '../utils/getAction.js';\n/** https://wagmi.sh/core/api/actions/getEnsAddress */\nexport function getEnsAddress(config, parameters) {\n const { chainId, ...rest } = parameters;\n const client = config.getClient({ chainId });\n const action = getAction(client, viem_getEnsAddress, 'getEnsAddress');\n return action(rest);\n}\n//# sourceMappingURL=getEnsAddress.js.map","import { getEnsAvatar as viem_getEnsAvatar, } from 'viem/actions';\nimport { getAction } from '../utils/getAction.js';\n/** https://wagmi.sh/core/api/actions/getEnsAvatar */\nexport function getEnsAvatar(config, parameters) {\n const { chainId, ...rest } = parameters;\n const client = config.getClient({ chainId });\n const action = getAction(client, viem_getEnsAvatar, 'getEnsAvatar');\n return action(rest);\n}\n//# sourceMappingURL=getEnsAvatar.js.map","import { getEnsName as viem_getEnsName, } from 'viem/actions';\nimport { getAction } from '../utils/getAction.js';\n/** https://wagmi.sh/core/api/actions/getEnsName */\nexport function getEnsName(config, parameters) {\n const { chainId, ...rest } = parameters;\n const client = config.getClient({ chainId });\n const action = getAction(client, viem_getEnsName, 'getEnsName');\n return action(rest);\n}\n//# sourceMappingURL=getEnsName.js.map","import { publicActions } from 'viem';\nimport { getClient } from './getClient.js';\nexport function getPublicClient(config, parameters = {}) {\n const client = getClient(config, parameters);\n return client?.extend(publicActions);\n}\n//# sourceMappingURL=getPublicClient.js.map","import { prepareTransactionRequest as viem_prepareTransactionRequest } from 'viem/actions';\nimport { getAction } from '../utils/getAction.js';\nimport { getAccount } from './getAccount.js';\n/** https://wagmi.sh/core/api/actions/prepareTransactionRequest */\nexport async function prepareTransactionRequest(config, parameters) {\n const { account: account_, chainId, ...rest } = parameters;\n const account = account_ ?? getAccount(config).address;\n const client = config.getClient({ chainId });\n const action = getAction(client, viem_prepareTransactionRequest, 'prepareTransactionRequest');\n return action({\n ...rest,\n ...(account ? { account } : {}),\n });\n}\n//# sourceMappingURL=prepareTransactionRequest.js.map","let isReconnecting = false;\n/** https://wagmi.sh/core/api/actions/reconnect */\nexport async function reconnect(config, parameters = {}) {\n // If already reconnecting, do nothing\n if (isReconnecting)\n return [];\n isReconnecting = true;\n config.setState((x) => ({\n ...x,\n status: x.current ? 'reconnecting' : 'connecting',\n }));\n const connectors = [];\n if (parameters.connectors?.length) {\n for (const connector_ of parameters.connectors) {\n let connector;\n // \"Register\" connector if not already created\n if (typeof connector_ === 'function')\n connector = config._internal.connectors.setup(connector_);\n else\n connector = connector_;\n connectors.push(connector);\n }\n }\n else\n connectors.push(...config.connectors);\n // Try recently-used connectors first\n let recentConnectorId;\n try {\n recentConnectorId = await config.storage?.getItem('recentConnectorId');\n }\n catch { }\n const scores = {};\n for (const [, connection] of config.state.connections) {\n scores[connection.connector.id] = 1;\n }\n if (recentConnectorId)\n scores[recentConnectorId] = 0;\n const sorted = Object.keys(scores).length > 0\n ? // .toSorted()\n [...connectors].sort((a, b) => (scores[a.id] ?? 10) - (scores[b.id] ?? 10))\n : connectors;\n // Iterate through each connector and try to connect\n let connected = false;\n const connections = [];\n const providers = [];\n for (const connector of sorted) {\n const provider = await connector.getProvider().catch(() => undefined);\n if (!provider)\n continue;\n // If we already have an instance of this connector's provider,\n // then we have already checked it (ie. injected connectors can\n // share the same `window.ethereum` instance, so we don't want to\n // connect to it again).\n if (providers.some((x) => x === provider))\n continue;\n const isAuthorized = await connector.isAuthorized();\n if (!isAuthorized)\n continue;\n const data = await connector\n .connect({ isReconnecting: true })\n .catch(() => null);\n if (!data)\n continue;\n connector.emitter.off('connect', config._internal.events.connect);\n connector.emitter.on('change', config._internal.events.change);\n connector.emitter.on('disconnect', config._internal.events.disconnect);\n config.setState((x) => {\n const connections = new Map(connected ? x.connections : new Map()).set(connector.uid, { accounts: data.accounts, chainId: data.chainId, connector });\n return {\n ...x,\n current: connected ? x.current : connector.uid,\n connections,\n };\n });\n connections.push({\n accounts: data.accounts,\n chainId: data.chainId,\n connector,\n });\n providers.push(provider);\n connected = true;\n }\n // Prevent overwriting connected status from race condition\n if (config.state.status === 'reconnecting' ||\n config.state.status === 'connecting') {\n // If connecting didn't succeed, set to disconnected\n if (!connected)\n config.setState((x) => ({\n ...x,\n connections: new Map(),\n current: null,\n status: 'disconnected',\n }));\n else\n config.setState((x) => ({ ...x, status: 'connected' }));\n }\n isReconnecting = false;\n return connections;\n}\n//# sourceMappingURL=reconnect.js.map","import { sendTransaction as viem_sendTransaction } from 'viem/actions';\nimport { getAction } from '../utils/getAction.js';\nimport { getConnectorClient, } from './getConnectorClient.js';\n/** https://wagmi.sh/core/api/actions/sendTransaction */\nexport async function sendTransaction(config, parameters) {\n const { account, chainId, connector, ...rest } = parameters;\n let client;\n if (typeof account === 'object' && account?.type === 'local')\n client = config.getClient({ chainId });\n else\n client = await getConnectorClient(config, {\n account: account ?? undefined,\n chainId,\n connector,\n });\n const action = getAction(client, viem_sendTransaction, 'sendTransaction');\n const hash = await action({\n ...rest,\n ...(account ? { account } : {}),\n chain: chainId ? { id: chainId } : null,\n gas: rest.gas ?? undefined,\n });\n return hash;\n}\n//# sourceMappingURL=sendTransaction.js.map","import { signMessage as viem_signMessage, } from 'viem/actions';\nimport { getAction } from '../utils/getAction.js';\nimport { getConnectorClient, } from './getConnectorClient.js';\n/** https://wagmi.sh/core/api/actions/signMessage */\nexport async function signMessage(config, parameters) {\n const { account, connector, ...rest } = parameters;\n let client;\n if (typeof account === 'object' && account.type === 'local')\n client = config.getClient();\n else\n client = await getConnectorClient(config, { account, connector });\n const action = getAction(client, viem_signMessage, 'signMessage');\n return action({\n ...rest,\n ...(account ? { account } : {}),\n });\n}\n//# sourceMappingURL=signMessage.js.map","import { BaseError } from './base.js';\nexport class ProviderNotFoundError extends BaseError {\n constructor() {\n super('Provider not found.');\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ProviderNotFoundError'\n });\n }\n}\nexport class SwitchChainNotSupportedError extends BaseError {\n constructor({ connector }) {\n super(`\"${connector.name}\" does not support programmatic chain switching.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'SwitchChainNotSupportedError'\n });\n }\n}\n//# sourceMappingURL=connector.js.map","import { ChainNotConfiguredError, } from '../errors/config.js';\nimport { SwitchChainNotSupportedError, } from '../errors/connector.js';\n/** https://wagmi.sh/core/api/actions/switchChain */\nexport async function switchChain(config, parameters) {\n const { addEthereumChainParameter, chainId } = parameters;\n const connection = config.state.connections.get(parameters.connector?.uid ?? config.state.current);\n if (connection) {\n const connector = connection.connector;\n if (!connector.switchChain)\n throw new SwitchChainNotSupportedError({ connector });\n const chain = await connector.switchChain({\n addEthereumChainParameter,\n chainId,\n });\n return chain;\n }\n const chain = config.chains.find((x) => x.id === chainId);\n if (!chain)\n throw new ChainNotConfiguredError();\n config.setState((x) => ({ ...x, chainId }));\n return chain;\n}\n//# sourceMappingURL=switchChain.js.map","import { deepEqual } from '../utils/deepEqual.js';\nimport { getAccount } from './getAccount.js';\n/** https://wagmi.sh/core/api/actions/watchAccount */\nexport function watchAccount(config, parameters) {\n const { onChange } = parameters;\n return config.subscribe(() => getAccount(config), onChange, {\n equalityFn(a, b) {\n const { connector: aConnector, ...aRest } = a;\n const { connector: bConnector, ...bRest } = b;\n return (deepEqual(aRest, bRest) &&\n // check connector separately\n aConnector?.id === bConnector?.id &&\n aConnector?.uid === bConnector?.uid);\n },\n });\n}\n//# sourceMappingURL=watchAccount.js.map","/** https://wagmi.sh/core/api/actions/watchChainId */\nexport function watchChainId(config, parameters) {\n const { onChange } = parameters;\n return config.subscribe((state) => state.chainId, onChange);\n}\n//# sourceMappingURL=watchChainId.js.map","import { deepEqual } from '../utils/deepEqual.js';\nimport { getConnections, } from './getConnections.js';\n/** https://wagmi.sh/core/api/actions/watchConnections */\nexport function watchConnections(config, parameters) {\n const { onChange } = parameters;\n return config.subscribe(() => getConnections(config), onChange, {\n equalityFn: deepEqual,\n });\n}\n//# sourceMappingURL=watchConnections.js.map","/** https://wagmi.sh/core/api/actions/watchConnectors */\nexport function watchConnectors(config, parameters) {\n const { onChange } = parameters;\n return config._internal.connectors.subscribe((connectors, prevConnectors) => {\n onChange(Object.values(connectors), prevConnectors);\n });\n}\n//# sourceMappingURL=watchConnectors.js.map","import { getPublicClient, } from './getPublicClient.js';\n/** https://wagmi.sh/core/api/actions/watchPublicClient */\nexport function watchPublicClient(config, parameters) {\n const { onChange } = parameters;\n return config.subscribe(() => getPublicClient(config), onChange, {\n equalityFn(a, b) {\n return a?.uid === b?.uid;\n },\n });\n}\n//# sourceMappingURL=watchPublicClient.js.map","import { hexToString } from 'viem';\nimport { call, getTransaction, waitForTransactionReceipt as viem_waitForTransactionReceipt, } from 'viem/actions';\nimport { getAction } from '../utils/getAction.js';\nexport async function waitForTransactionReceipt(config, parameters) {\n const { chainId, timeout = 0, ...rest } = parameters;\n const client = config.getClient({ chainId });\n const action = getAction(client, viem_waitForTransactionReceipt, 'waitForTransactionReceipt');\n const receipt = await action({ ...rest, timeout });\n if (receipt.status === 'reverted') {\n const action_getTransaction = getAction(client, getTransaction, 'getTransaction');\n const txn = await action_getTransaction({ hash: receipt.transactionHash });\n const action_call = getAction(client, call, 'call');\n const code = await action_call({\n ...txn,\n data: txn.input,\n gasPrice: txn.type !== 'eip1559' ? txn.gasPrice : undefined,\n maxFeePerGas: txn.type === 'eip1559' ? txn.maxFeePerGas : undefined,\n maxPriorityFeePerGas: txn.type === 'eip1559' ? txn.maxPriorityFeePerGas : undefined,\n });\n const reason = code?.data\n ? hexToString(`0x${code.data.substring(138)}`)\n : 'unknown reason';\n throw new Error(reason);\n }\n return {\n ...receipt,\n chainId: client.chain.id,\n };\n}\n//# sourceMappingURL=waitForTransactionReceipt.js.map","import { writeContract as viem_writeContract, } from 'viem/actions';\nimport { getAction } from '../utils/getAction.js';\nimport { getConnectorClient, } from './getConnectorClient.js';\n/** https://wagmi.sh/core/api/actions/writeContract */\nexport async function writeContract(config, parameters) {\n const { account, chainId, connector, ...request } = parameters;\n let client;\n if (typeof account === 'object' && account?.type === 'local')\n client = config.getClient({ chainId });\n else\n client = await getConnectorClient(config, {\n account: account ?? undefined,\n chainId,\n connector,\n });\n const action = getAction(client, viem_writeContract, 'writeContract');\n const hash = await action({\n ...request,\n ...(account ? { account } : {}),\n chain: chainId ? { id: chainId } : null,\n });\n return hash;\n}\n//# sourceMappingURL=writeContract.js.map","import { ResourceUnavailableRpcError, SwitchChainError, UserRejectedRequestError, getAddress, numberToHex, withRetry, withTimeout, } from 'viem';\nimport { ChainNotConfiguredError } from '../errors/config.js';\nimport { ProviderNotFoundError } from '../errors/connector.js';\nimport { createConnector } from './createConnector.js';\ninjected.type = 'injected';\nexport function injected(parameters = {}) {\n const { shimDisconnect = true, unstable_shimAsyncInject } = parameters;\n function getTarget() {\n const target = parameters.target;\n if (typeof target === 'function') {\n const result = target();\n if (result)\n return result;\n }\n if (typeof target === 'object')\n return target;\n if (typeof target === 'string')\n return {\n ...(targetMap[target] ?? {\n id: target,\n name: `${target[0].toUpperCase()}${target.slice(1)}`,\n provider: `is${target[0].toUpperCase()}${target.slice(1)}`,\n }),\n };\n return {\n id: 'injected',\n name: 'Injected',\n provider(window) {\n return window?.ethereum;\n },\n };\n }\n let accountsChanged;\n let chainChanged;\n let connect;\n let disconnect;\n return createConnector((config) => ({\n get icon() {\n return getTarget().icon;\n },\n get id() {\n return getTarget().id;\n },\n get name() {\n return getTarget().name;\n },\n /** @deprecated */\n get supportsSimulation() {\n return true;\n },\n type: injected.type,\n async setup() {\n const provider = await this.getProvider();\n // Only start listening for events if `target` is set, otherwise `injected()` will also receive events\n if (provider?.on && parameters.target) {\n if (!connect) {\n connect = this.onConnect.bind(this);\n provider.on('connect', connect);\n }\n // We shouldn't need to listen for `'accountsChanged'` here since the `'connect'` event should suffice (and wallet shouldn't be connected yet).\n // Some wallets, like MetaMask, do not implement the `'connect'` event and overload `'accountsChanged'` instead.\n if (!accountsChanged) {\n accountsChanged = this.onAccountsChanged.bind(this);\n provider.on('accountsChanged', accountsChanged);\n }\n }\n },\n async connect({ chainId, isReconnecting } = {}) {\n const provider = await this.getProvider();\n if (!provider)\n throw new ProviderNotFoundError();\n let accounts = [];\n if (isReconnecting)\n accounts = await this.getAccounts().catch(() => []);\n else if (shimDisconnect) {\n // Attempt to show another prompt for selecting account if `shimDisconnect` flag is enabled\n try {\n const permissions = await provider.request({\n method: 'wallet_requestPermissions',\n params: [{ eth_accounts: {} }],\n });\n accounts = permissions[0]?.caveats?.[0]?.value?.map((x) => getAddress(x));\n // `'wallet_requestPermissions'` can return a different order of accounts than `'eth_accounts'`\n // switch to `'eth_accounts'` ordering if more than one account is connected\n // https://github.com/wevm/wagmi/issues/4140\n if (accounts.length > 0) {\n const sortedAccounts = await this.getAccounts();\n accounts = sortedAccounts;\n }\n }\n catch (err) {\n const error = err;\n // Not all injected providers support `wallet_requestPermissions` (e.g. MetaMask iOS).\n // Only bubble up error if user rejects request\n if (error.code === UserRejectedRequestError.code)\n throw new UserRejectedRequestError(error);\n // Or prompt is already open\n if (error.code === ResourceUnavailableRpcError.code)\n throw error;\n }\n }\n try {\n if (!accounts?.length && !isReconnecting) {\n const requestedAccounts = await provider.request({\n method: 'eth_requestAccounts',\n });\n accounts = requestedAccounts.map((x) => getAddress(x));\n }\n // Manage EIP-1193 event listeners\n // https://eips.ethereum.org/EIPS/eip-1193#events\n if (connect) {\n provider.removeListener('connect', connect);\n connect = undefined;\n }\n if (!accountsChanged) {\n accountsChanged = this.onAccountsChanged.bind(this);\n provider.on('accountsChanged', accountsChanged);\n }\n if (!chainChanged) {\n chainChanged = this.onChainChanged.bind(this);\n provider.on('chainChanged', chainChanged);\n }\n if (!disconnect) {\n disconnect = this.onDisconnect.bind(this);\n provider.on('disconnect', disconnect);\n }\n // Switch to chain if provided\n let currentChainId = await this.getChainId();\n if (chainId && currentChainId !== chainId) {\n const chain = await this.switchChain({ chainId }).catch((error) => {\n if (error.code === UserRejectedRequestError.code)\n throw error;\n return { id: currentChainId };\n });\n currentChainId = chain?.id ?? currentChainId;\n }\n // Remove disconnected shim if it exists\n if (shimDisconnect)\n await config.storage?.removeItem(`${this.id}.disconnected`);\n // Add connected shim if no target exists\n if (!parameters.target)\n await config.storage?.setItem('injected.connected', true);\n return { accounts, chainId: currentChainId };\n }\n catch (err) {\n const error = err;\n if (error.code === UserRejectedRequestError.code)\n throw new UserRejectedRequestError(error);\n if (error.code === ResourceUnavailableRpcError.code)\n throw new ResourceUnavailableRpcError(error);\n throw error;\n }\n },\n async disconnect() {\n const provider = await this.getProvider();\n if (!provider)\n throw new ProviderNotFoundError();\n // Manage EIP-1193 event listeners\n if (chainChanged) {\n provider.removeListener('chainChanged', chainChanged);\n chainChanged = undefined;\n }\n if (disconnect) {\n provider.removeListener('disconnect', disconnect);\n disconnect = undefined;\n }\n if (!connect) {\n connect = this.onConnect.bind(this);\n provider.on('connect', connect);\n }\n // Experimental support for MetaMask disconnect\n // https://github.com/MetaMask/metamask-improvement-proposals/blob/main/MIPs/mip-2.md\n try {\n // Adding timeout as not all wallets support this method and can hang\n // https://github.com/wevm/wagmi/issues/4064\n await withTimeout(() => \n // TODO: Remove explicit type for viem@3\n provider.request({\n // `'wallet_revokePermissions'` added in `viem@2.10.3`\n method: 'wallet_revokePermissions',\n params: [{ eth_accounts: {} }],\n }), { timeout: 100 });\n }\n catch { }\n // Add shim signalling connector is disconnected\n if (shimDisconnect) {\n await config.storage?.setItem(`${this.id}.disconnected`, true);\n }\n if (!parameters.target)\n await config.storage?.removeItem('injected.connected');\n },\n async getAccounts() {\n const provider = await this.getProvider();\n if (!provider)\n throw new ProviderNotFoundError();\n const accounts = await provider.request({ method: 'eth_accounts' });\n return accounts.map((x) => getAddress(x));\n },\n async getChainId() {\n const provider = await this.getProvider();\n if (!provider)\n throw new ProviderNotFoundError();\n const hexChainId = await provider.request({ method: 'eth_chainId' });\n return Number(hexChainId);\n },\n async getProvider() {\n if (typeof window === 'undefined')\n return undefined;\n let provider;\n const target = getTarget();\n if (typeof target.provider === 'function')\n provider = target.provider(window);\n else if (typeof target.provider === 'string')\n provider = findProvider(window, target.provider);\n else\n provider = target.provider;\n // Some wallets do not conform to EIP-1193 (e.g. Trust Wallet)\n // https://github.com/wevm/wagmi/issues/3526#issuecomment-1912683002\n if (provider && !provider.removeListener) {\n // Try using `off` handler if it exists, otherwise noop\n if ('off' in provider && typeof provider.off === 'function')\n provider.removeListener =\n provider.off;\n else\n provider.removeListener = () => { };\n }\n return provider;\n },\n async isAuthorized() {\n try {\n const isDisconnected = shimDisconnect &&\n // If shim exists in storage, connector is disconnected\n (await config.storage?.getItem(`${this.id}.disconnected`));\n if (isDisconnected)\n return false;\n // Don't allow injected connector to connect if no target is set and it hasn't already connected\n // (e.g. flag in storage is not set). This prevents a targetless injected connector from connecting\n // automatically whenever there is a targeted connector configured.\n if (!parameters.target) {\n const connected = await config.storage?.getItem('injected.connected');\n if (!connected)\n return false;\n }\n const provider = await this.getProvider();\n if (!provider) {\n if (unstable_shimAsyncInject !== undefined &&\n unstable_shimAsyncInject !== false) {\n // If no provider is found, check for async injection\n // https://github.com/wevm/references/issues/167\n // https://github.com/MetaMask/detect-provider\n const handleEthereum = async () => {\n if (typeof window !== 'undefined')\n window.removeEventListener('ethereum#initialized', handleEthereum);\n const provider = await this.getProvider();\n return !!provider;\n };\n const timeout = typeof unstable_shimAsyncInject === 'number'\n ? unstable_shimAsyncInject\n : 1_000;\n const res = await Promise.race([\n ...(typeof window !== 'undefined'\n ? [\n new Promise((resolve) => window.addEventListener('ethereum#initialized', () => resolve(handleEthereum()), { once: true })),\n ]\n : []),\n new Promise((resolve) => setTimeout(() => resolve(handleEthereum()), timeout)),\n ]);\n if (res)\n return true;\n }\n throw new ProviderNotFoundError();\n }\n // Use retry strategy as some injected wallets (e.g. MetaMask) fail to\n // immediately resolve JSON-RPC requests on page load.\n const accounts = await withRetry(() => this.getAccounts());\n return !!accounts.length;\n }\n catch {\n return false;\n }\n },\n async switchChain({ addEthereumChainParameter, chainId }) {\n const provider = await this.getProvider();\n if (!provider)\n throw new ProviderNotFoundError();\n const chain = config.chains.find((x) => x.id === chainId);\n if (!chain)\n throw new SwitchChainError(new ChainNotConfiguredError());\n const promise = new Promise((resolve) => {\n const listener = ((data) => {\n if ('chainId' in data && data.chainId === chainId) {\n config.emitter.off('change', listener);\n resolve();\n }\n });\n config.emitter.on('change', listener);\n });\n try {\n await Promise.all([\n provider\n .request({\n method: 'wallet_switchEthereumChain',\n params: [{ chainId: numberToHex(chainId) }],\n })\n // During `'wallet_switchEthereumChain'`, MetaMask makes a `'net_version'` RPC call to the target chain.\n // If this request fails, MetaMask does not emit the `'chainChanged'` event, but will still switch the chain.\n // To counter this behavior, we request and emit the current chain ID to confirm the chain switch either via\n // this callback or an externally emitted `'chainChanged'` event.\n // https://github.com/MetaMask/metamask-extension/issues/24247\n .then(async () => {\n const currentChainId = await this.getChainId();\n if (currentChainId === chainId)\n config.emitter.emit('change', { chainId });\n }),\n promise,\n ]);\n return chain;\n }\n catch (err) {\n const error = err;\n // Indicates chain is not added to provider\n if (error.code === 4902 ||\n // Unwrapping for MetaMask Mobile\n // https://github.com/MetaMask/metamask-mobile/issues/2944#issuecomment-976988719\n error\n ?.data?.originalError?.code === 4902) {\n try {\n const { default: blockExplorer, ...blockExplorers } = chain.blockExplorers ?? {};\n let blockExplorerUrls;\n if (addEthereumChainParameter?.blockExplorerUrls)\n blockExplorerUrls = addEthereumChainParameter.blockExplorerUrls;\n else if (blockExplorer)\n blockExplorerUrls = [\n blockExplorer.url,\n ...Object.values(blockExplorers).map((x) => x.url),\n ];\n let rpcUrls;\n if (addEthereumChainParameter?.rpcUrls?.length)\n rpcUrls = addEthereumChainParameter.rpcUrls;\n else\n rpcUrls = [chain.rpcUrls.default?.http[0] ?? ''];\n const addEthereumChain = {\n blockExplorerUrls,\n chainId: numberToHex(chainId),\n chainName: addEthereumChainParameter?.chainName ?? chain.name,\n iconUrls: addEthereumChainParameter?.iconUrls,\n nativeCurrency: addEthereumChainParameter?.nativeCurrency ??\n chain.nativeCurrency,\n rpcUrls,\n };\n await Promise.all([\n provider\n .request({\n method: 'wallet_addEthereumChain',\n params: [addEthereumChain],\n })\n .then(async () => {\n const currentChainId = await this.getChainId();\n if (currentChainId === chainId)\n config.emitter.emit('change', { chainId });\n else\n throw new UserRejectedRequestError(new Error('User rejected switch after adding network.'));\n }),\n promise,\n ]);\n return chain;\n }\n catch (error) {\n throw new UserRejectedRequestError(error);\n }\n }\n if (error.code === UserRejectedRequestError.code)\n throw new UserRejectedRequestError(error);\n throw new SwitchChainError(error);\n }\n },\n async onAccountsChanged(accounts) {\n // Disconnect if there are no accounts\n if (accounts.length === 0)\n this.onDisconnect();\n // Connect if emitter is listening for connect event (e.g. is disconnected and connects through wallet interface)\n else if (config.emitter.listenerCount('connect')) {\n const chainId = (await this.getChainId()).toString();\n this.onConnect({ chainId });\n // Remove disconnected shim if it exists\n if (shimDisconnect)\n await config.storage?.removeItem(`${this.id}.disconnected`);\n }\n // Regular change event\n else\n config.emitter.emit('change', {\n accounts: accounts.map((x) => getAddress(x)),\n });\n },\n onChainChanged(chain) {\n const chainId = Number(chain);\n config.emitter.emit('change', { chainId });\n },\n async onConnect(connectInfo) {\n const accounts = await this.getAccounts();\n if (accounts.length === 0)\n return;\n const chainId = Number(connectInfo.chainId);\n config.emitter.emit('connect', { accounts, chainId });\n // Manage EIP-1193 event listeners\n const provider = await this.getProvider();\n if (provider) {\n if (connect) {\n provider.removeListener('connect', connect);\n connect = undefined;\n }\n if (!accountsChanged) {\n accountsChanged = this.onAccountsChanged.bind(this);\n provider.on('accountsChanged', accountsChanged);\n }\n if (!chainChanged) {\n chainChanged = this.onChainChanged.bind(this);\n provider.on('chainChanged', chainChanged);\n }\n if (!disconnect) {\n disconnect = this.onDisconnect.bind(this);\n provider.on('disconnect', disconnect);\n }\n }\n },\n async onDisconnect(error) {\n const provider = await this.getProvider();\n // If MetaMask emits a `code: 1013` error, wait for reconnection before disconnecting\n // https://github.com/MetaMask/providers/pull/120\n if (error && error.code === 1013) {\n if (provider && !!(await this.getAccounts()).length)\n return;\n }\n // No need to remove `${this.id}.disconnected` from storage because `onDisconnect` is typically\n // only called when the wallet is disconnected through the wallet's interface, meaning the wallet\n // actually disconnected and we don't need to simulate it.\n config.emitter.emit('disconnect');\n // Manage EIP-1193 event listeners\n if (provider) {\n if (chainChanged) {\n provider.removeListener('chainChanged', chainChanged);\n chainChanged = undefined;\n }\n if (disconnect) {\n provider.removeListener('disconnect', disconnect);\n disconnect = undefined;\n }\n if (!connect) {\n connect = this.onConnect.bind(this);\n provider.on('connect', connect);\n }\n }\n },\n }));\n}\nconst targetMap = {\n coinbaseWallet: {\n id: 'coinbaseWallet',\n name: 'Coinbase Wallet',\n provider(window) {\n if (window?.coinbaseWalletExtension)\n return window.coinbaseWalletExtension;\n return findProvider(window, 'isCoinbaseWallet');\n },\n },\n metaMask: {\n id: 'metaMask',\n name: 'MetaMask',\n provider(window) {\n return findProvider(window, (provider) => {\n if (!provider.isMetaMask)\n return false;\n // Brave tries to make itself look like MetaMask\n // Could also try RPC `web3_clientVersion` if following is unreliable\n if (provider.isBraveWallet && !provider._events && !provider._state)\n return false;\n // Other wallets that try to look like MetaMask\n const flags = [\n 'isApexWallet',\n 'isAvalanche',\n 'isBitKeep',\n 'isBlockWallet',\n 'isKuCoinWallet',\n 'isMathWallet',\n 'isOkxWallet',\n 'isOKExWallet',\n 'isOneInchIOSWallet',\n 'isOneInchAndroidWallet',\n 'isOpera',\n 'isPhantom',\n 'isPortal',\n 'isRabby',\n 'isTokenPocket',\n 'isTokenary',\n 'isUniswapWallet',\n 'isZerion',\n ];\n for (const flag of flags)\n if (provider[flag])\n return false;\n return true;\n });\n },\n },\n phantom: {\n id: 'phantom',\n name: 'Phantom',\n provider(window) {\n if (window?.phantom?.ethereum)\n return window.phantom?.ethereum;\n return findProvider(window, 'isPhantom');\n },\n },\n};\nfunction findProvider(window, select) {\n function isProvider(provider) {\n if (typeof select === 'function')\n return select(provider);\n if (typeof select === 'string')\n return provider[select];\n return true;\n }\n const ethereum = window.ethereum;\n if (ethereum?.providers)\n return ethereum.providers.find((provider) => isProvider(provider));\n if (ethereum && isProvider(ethereum))\n return ethereum;\n return undefined;\n}\n//# sourceMappingURL=injected.js.map","/**\n * Announces an EIP-1193 Provider.\n */\nexport function announceProvider(detail) {\n const event = new CustomEvent('eip6963:announceProvider', { detail: Object.freeze(detail) });\n window.dispatchEvent(event);\n const handler = () => window.dispatchEvent(event);\n window.addEventListener('eip6963:requestProvider', handler);\n return () => window.removeEventListener('eip6963:requestProvider', handler);\n}\n/**\n * Watches for EIP-1193 Providers to be announced.\n */\nexport function requestProviders(listener) {\n if (typeof window === 'undefined')\n return;\n const handler = (event) => listener(event.detail);\n window.addEventListener('eip6963:announceProvider', handler);\n window.dispatchEvent(new CustomEvent('eip6963:requestProvider'));\n return () => window.removeEventListener('eip6963:announceProvider', handler);\n}\n//# sourceMappingURL=utils.js.map","import { requestProviders } from './utils.js';\nexport function createStore() {\n const listeners = new Set();\n let providerDetails = [];\n const request = () => requestProviders((providerDetail) => {\n if (providerDetails.some(({ info }) => info.uuid === providerDetail.info.uuid))\n return;\n providerDetails = [...providerDetails, providerDetail];\n listeners.forEach((listener) => listener(providerDetails, { added: [providerDetail] }));\n });\n let unwatch = request();\n return {\n _listeners() {\n return listeners;\n },\n clear() {\n listeners.forEach((listener) => listener([], { removed: [...providerDetails] }));\n providerDetails = [];\n },\n destroy() {\n this.clear();\n listeners.clear();\n unwatch?.();\n },\n findProvider({ rdns }) {\n return providerDetails.find((providerDetail) => providerDetail.info.rdns === rdns);\n },\n getProviders() {\n return providerDetails;\n },\n reset() {\n this.clear();\n unwatch?.();\n unwatch = request();\n },\n subscribe(listener, { emitImmediately } = {}) {\n listeners.add(listener);\n if (emitImmediately)\n listener(providerDetails, { added: providerDetails });\n return () => listeners.delete(listener);\n },\n };\n}\n//# sourceMappingURL=store.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) 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 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) 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) return;\n if (typeof api.dispatch !== \"function\") 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) 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) 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 persistImpl = (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 api.getInitialState = () => configResult;\n let stateFromStorage;\n const hydrate = () => {\n var _a, _b;\n if (!storage) 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 [\n true,\n options.migrate(\n deserializedStorageValue.state,\n deserializedStorageValue.version\n )\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 [false, deserializedStorageValue.state];\n }\n }\n return [false, void 0];\n }).then((migrationResult) => {\n var _a2;\n const [migrated, migratedState] = migrationResult;\n stateFromStorage = options.merge(\n migratedState,\n (_a2 = get()) != null ? _a2 : configResult\n );\n set(stateFromStorage, true);\n if (migrated) {\n return setItem();\n }\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 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 === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const api = { setState, getState, getInitialState, subscribe };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = (createState) => createState ? createStoreImpl(createState) : createStoreImpl;\n\nexport { createStore };\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","import { EventEmitter } from 'eventemitter3';\nexport class Emitter {\n constructor(uid) {\n Object.defineProperty(this, \"uid\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: uid\n });\n Object.defineProperty(this, \"_emitter\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: new EventEmitter()\n });\n }\n on(eventName, fn) {\n this._emitter.on(eventName, fn);\n }\n once(eventName, fn) {\n this._emitter.once(eventName, fn);\n }\n off(eventName, fn) {\n this._emitter.off(eventName, fn);\n }\n emit(eventName, ...params) {\n const data = params[0];\n this._emitter.emit(eventName, { uid: this.uid, ...data });\n }\n listenerCount(eventName) {\n return this._emitter.listenerCount(eventName);\n }\n}\nexport function createEmitter(uid) {\n return new Emitter(uid);\n}\n//# sourceMappingURL=createEmitter.js.map","export function deserialize(value, reviver) {\n return JSON.parse(value, (key, value_) => {\n let value = value_;\n if (value?.__type === 'bigint')\n value = BigInt(value.value);\n if (value?.__type === 'Map')\n value = new Map(value.value);\n return reviver?.(key, value) ?? value;\n });\n}\n//# sourceMappingURL=deserialize.js.map","/**\n * Get the reference key for the circular value\n *\n * @param keys the keys to build the reference key from\n * @param cutoff the maximum number of keys to include\n * @returns the reference key\n */\nfunction getReferenceKey(keys, cutoff) {\n return keys.slice(0, cutoff).join('.') || '.';\n}\n/**\n * Faster `Array.prototype.indexOf` implementation build for slicing / splicing\n *\n * @param array the array to match the value in\n * @param value the value to match\n * @returns the matching index, or -1\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}\n/**\n * Create a replacer method that handles circular values\n *\n * @param [replacer] a custom replacer to use for non-circular values\n * @param [circularReplacer] a custom replacer to use for circular methods\n * @returns the value to stringify\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 }\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\n ? circularReplacer.call(this, key, value, getReferenceKey(keys, valueCutoff))\n : `[ref=${getReferenceKey(keys, valueCutoff)}]`;\n }\n }\n else {\n cache[0] = value;\n keys[0] = key;\n }\n }\n return hasReplacer ? replacer.call(this, key, value) : value;\n };\n}\n/**\n * Stringifier that handles circular values\n *\n * Forked from https://github.com/planttheidea/fast-stringify\n *\n * @param value to stringify\n * @param [replacer] a custom replacer function for handling standard values\n * @param [indent] the number of spaces to indent the output by\n * @param [circularReplacer] a custom replacer function for handling circular values\n * @returns the stringified output\n */\nexport function serialize(value, replacer, indent, circularReplacer) {\n return JSON.stringify(value, createReplacer((key, value_) => {\n let value = value_;\n if (typeof value === 'bigint')\n value = { __type: 'bigint', value: value_.toString() };\n if (value instanceof Map)\n value = { __type: 'Map', value: Array.from(value_.entries()) };\n return replacer?.(key, value) ?? value;\n }, circularReplacer), indent ?? undefined);\n}\n//# sourceMappingURL=serialize.js.map","import { deserialize as deserialize_ } from './utils/deserialize.js';\nimport { serialize as serialize_ } from './utils/serialize.js';\nexport function createStorage(parameters) {\n const { deserialize = deserialize_, key: prefix = 'wagmi', serialize = serialize_, storage = noopStorage, } = parameters;\n function unwrap(value) {\n if (value instanceof Promise)\n return value.then((x) => x).catch(() => null);\n return value;\n }\n return {\n ...storage,\n key: prefix,\n async getItem(key, defaultValue) {\n const value = storage.getItem(`${prefix}.${key}`);\n const unwrapped = await unwrap(value);\n if (unwrapped)\n return deserialize(unwrapped) ?? null;\n return (defaultValue ?? null);\n },\n async setItem(key, value) {\n const storageKey = `${prefix}.${key}`;\n if (value === null)\n await unwrap(storage.removeItem(storageKey));\n else\n await unwrap(storage.setItem(storageKey, serialize(value)));\n },\n async removeItem(key) {\n await unwrap(storage.removeItem(`${prefix}.${key}`));\n },\n };\n}\nexport const noopStorage = {\n getItem: () => null,\n setItem: () => { },\n removeItem: () => { },\n};\nexport function getDefaultStorage() {\n const storage = (() => {\n if (typeof window !== 'undefined' && window.localStorage)\n return window.localStorage;\n return noopStorage;\n })();\n return {\n getItem(key) {\n return storage.getItem(key);\n },\n removeItem(key) {\n storage.removeItem(key);\n },\n setItem(key, value) {\n try {\n storage.setItem(key, value);\n // silence errors by default (QuotaExceededError, SecurityError, etc.)\n }\n catch { }\n },\n };\n}\n//# sourceMappingURL=createStorage.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 { createStore as createMipd, } from 'mipd';\nimport { createClient, } from 'viem';\nimport { persist, subscribeWithSelector } from 'zustand/middleware';\nimport { createStore } from 'zustand/vanilla';\nimport { injected } from './connectors/injected.js';\nimport { createEmitter } from './createEmitter.js';\nimport { createStorage, getDefaultStorage, } from './createStorage.js';\nimport { ChainNotConfiguredError } from './errors/config.js';\nimport { uid } from './utils/uid.js';\nimport { version } from './version.js';\nexport function createConfig(parameters) {\n const { multiInjectedProviderDiscovery = true, storage = createStorage({\n storage: getDefaultStorage(),\n }), syncConnectedChain = true, ssr = false, ...rest } = parameters;\n /////////////////////////////////////////////////////////////////////////////////////////////////\n // Set up connectors, clients, etc.\n /////////////////////////////////////////////////////////////////////////////////////////////////\n const mipd = typeof window !== 'undefined' && multiInjectedProviderDiscovery\n ? createMipd()\n : undefined;\n const chains = createStore(() => rest.chains);\n const connectors = createStore(() => {\n const collection = [];\n const rdnsSet = new Set();\n for (const connectorFns of rest.connectors ?? []) {\n const connector = setup(connectorFns);\n collection.push(connector);\n if (!ssr && connector.rdns) {\n const rdnsValues = typeof connector.rdns === 'string' ? [connector.rdns] : connector.rdns;\n for (const rdns of rdnsValues) {\n rdnsSet.add(rdns);\n }\n }\n }\n if (!ssr && mipd) {\n const providers = mipd.getProviders();\n for (const provider of providers) {\n if (rdnsSet.has(provider.info.rdns))\n continue;\n collection.push(setup(providerDetailToConnector(provider)));\n }\n }\n return collection;\n });\n function setup(connectorFn) {\n // Set up emitter with uid and add to connector so they are \"linked\" together.\n const emitter = createEmitter(uid());\n const connector = {\n ...connectorFn({\n emitter,\n chains: chains.getState(),\n storage,\n transports: rest.transports,\n }),\n emitter,\n uid: emitter.uid,\n };\n // Start listening for `connect` events on connector setup\n // This allows connectors to \"connect\" themselves without user interaction (e.g. MetaMask's \"Manually connect to current site\")\n emitter.on('connect', connect);\n connector.setup?.();\n return connector;\n }\n function providerDetailToConnector(providerDetail) {\n const { info } = providerDetail;\n const provider = providerDetail.provider;\n return injected({ target: { ...info, id: info.rdns, provider } });\n }\n const clients = new Map();\n function getClient(config = {}) {\n const chainId = config.chainId ?? store.getState().chainId;\n const chain = chains.getState().find((x) => x.id === chainId);\n // chainId specified and not configured\n if (config.chainId && !chain)\n throw new ChainNotConfiguredError();\n {\n const client = clients.get(store.getState().chainId);\n if (client && !chain)\n return client;\n if (!chain)\n throw new ChainNotConfiguredError();\n }\n // If a memoized client exists for a chain id, use that.\n {\n const client = clients.get(chainId);\n if (client)\n return client;\n }\n let client;\n if (rest.client)\n client = rest.client({ chain });\n else {\n const chainId = chain.id;\n const chainIds = chains.getState().map((x) => x.id);\n // Grab all properties off `rest` and resolve for use in `createClient`\n const properties = {};\n const entries = Object.entries(rest);\n for (const [key, value] of entries) {\n if (key === 'chains' ||\n key === 'client' ||\n key === 'connectors' ||\n key === 'transports')\n continue;\n if (typeof value === 'object') {\n // check if value is chainId-specific since some values can be objects\n // e.g. { batch: { multicall: { batchSize: 1024 } } }\n if (chainId in value)\n properties[key] = value[chainId];\n else {\n // check if value is chainId-specific, but does not have value for current chainId\n const hasChainSpecificValue = chainIds.some((x) => x in value);\n if (hasChainSpecificValue)\n continue;\n properties[key] = value;\n }\n }\n else\n properties[key] = value;\n }\n client = createClient({\n ...properties,\n chain,\n batch: properties.batch ?? { multicall: true },\n transport: (parameters) => rest.transports[chainId]({ ...parameters, connectors }),\n });\n }\n clients.set(chainId, client);\n return client;\n }\n /////////////////////////////////////////////////////////////////////////////////////////////////\n // Create store\n /////////////////////////////////////////////////////////////////////////////////////////////////\n function getInitialState() {\n return {\n chainId: chains.getState()[0].id,\n connections: new Map(),\n current: null,\n status: 'disconnected',\n };\n }\n let currentVersion;\n const prefix = '0.0.0-canary-';\n if (version.startsWith(prefix))\n currentVersion = Number.parseInt(version.replace(prefix, ''));\n // use package major version to version store\n else\n currentVersion = Number.parseInt(version.split('.')[0] ?? '0');\n const store = createStore(subscribeWithSelector(\n // only use persist middleware if storage exists\n storage\n ? persist(getInitialState, {\n migrate(persistedState, version) {\n if (version === currentVersion)\n return persistedState;\n const initialState = getInitialState();\n const chainId = validatePersistedChainId(persistedState, initialState.chainId);\n return { ...initialState, chainId };\n },\n name: 'store',\n partialize(state) {\n // Only persist \"critical\" store properties to preserve storage size.\n return {\n connections: {\n __type: 'Map',\n value: Array.from(state.connections.entries()).map(([key, connection]) => {\n const { id, name, type, uid } = connection.connector;\n const connector = { id, name, type, uid };\n return [key, { ...connection, connector }];\n }),\n },\n chainId: state.chainId,\n current: state.current,\n };\n },\n merge(persistedState, currentState) {\n // `status` should not be persisted as it messes with reconnection\n if (typeof persistedState === 'object' &&\n persistedState &&\n 'status' in persistedState)\n delete persistedState.status;\n // Make sure persisted `chainId` is valid\n const chainId = validatePersistedChainId(persistedState, currentState.chainId);\n return {\n ...currentState,\n ...persistedState,\n chainId,\n };\n },\n skipHydration: ssr,\n storage: storage,\n version: currentVersion,\n })\n : getInitialState));\n store.setState(getInitialState());\n function validatePersistedChainId(persistedState, defaultChainId) {\n return persistedState &&\n typeof persistedState === 'object' &&\n 'chainId' in persistedState &&\n typeof persistedState.chainId === 'number' &&\n chains.getState().some((x) => x.id === persistedState.chainId)\n ? persistedState.chainId\n : defaultChainId;\n }\n /////////////////////////////////////////////////////////////////////////////////////////////////\n // Subscribe to changes\n /////////////////////////////////////////////////////////////////////////////////////////////////\n // Update default chain when connector chain changes\n if (syncConnectedChain)\n store.subscribe(({ connections, current }) => current ? connections.get(current)?.chainId : undefined, (chainId) => {\n // If chain is not configured, then don't switch over to it.\n const isChainConfigured = chains\n .getState()\n .some((x) => x.id === chainId);\n if (!isChainConfigured)\n return;\n return store.setState((x) => ({\n ...x,\n chainId: chainId ?? x.chainId,\n }));\n });\n // EIP-6963 subscribe for new wallet providers\n mipd?.subscribe((providerDetails) => {\n const connectorIdSet = new Set();\n const connectorRdnsSet = new Set();\n for (const connector of connectors.getState()) {\n connectorIdSet.add(connector.id);\n if (connector.rdns) {\n const rdnsValues = typeof connector.rdns === 'string' ? [connector.rdns] : connector.rdns;\n for (const rdns of rdnsValues) {\n connectorRdnsSet.add(rdns);\n }\n }\n }\n const newConnectors = [];\n for (const providerDetail of providerDetails) {\n if (connectorRdnsSet.has(providerDetail.info.rdns))\n continue;\n const connector = setup(providerDetailToConnector(providerDetail));\n if (connectorIdSet.has(connector.id))\n continue;\n newConnectors.push(connector);\n }\n if (storage && !store.persist.hasHydrated())\n return;\n connectors.setState((x) => [...x, ...newConnectors], true);\n });\n /////////////////////////////////////////////////////////////////////////////////////////////////\n // Emitter listeners\n /////////////////////////////////////////////////////////////////////////////////////////////////\n function change(data) {\n store.setState((x) => {\n const connection = x.connections.get(data.uid);\n if (!connection)\n return x;\n return {\n ...x,\n connections: new Map(x.connections).set(data.uid, {\n accounts: data.accounts ??\n connection.accounts,\n chainId: data.chainId ?? connection.chainId,\n connector: connection.connector,\n }),\n };\n });\n }\n function connect(data) {\n // Disable handling if reconnecting/connecting\n if (store.getState().status === 'connecting' ||\n store.getState().status === 'reconnecting')\n return;\n store.setState((x) => {\n const connector = connectors.getState().find((x) => x.uid === data.uid);\n if (!connector)\n return x;\n if (connector.emitter.listenerCount('connect'))\n connector.emitter.off('connect', change);\n if (!connector.emitter.listenerCount('change'))\n connector.emitter.on('change', change);\n if (!connector.emitter.listenerCount('disconnect'))\n connector.emitter.on('disconnect', disconnect);\n return {\n ...x,\n connections: new Map(x.connections).set(data.uid, {\n accounts: data.accounts,\n chainId: data.chainId,\n connector: connector,\n }),\n current: data.uid,\n status: 'connected',\n };\n });\n }\n function disconnect(data) {\n store.setState((x) => {\n const connection = x.connections.get(data.uid);\n if (connection) {\n const connector = connection.connector;\n if (connector.emitter.listenerCount('change'))\n connection.connector.emitter.off('change', change);\n if (connector.emitter.listenerCount('disconnect'))\n connection.connector.emitter.off('disconnect', disconnect);\n if (!connector.emitter.listenerCount('connect'))\n connection.connector.emitter.on('connect', connect);\n }\n x.connections.delete(data.uid);\n if (x.connections.size === 0)\n return {\n ...x,\n connections: new Map(),\n current: null,\n status: 'disconnected',\n };\n const nextConnection = x.connections.values().next().value;\n return {\n ...x,\n connections: new Map(x.connections),\n current: nextConnection.connector.uid,\n };\n });\n }\n return {\n get chains() {\n return chains.getState();\n },\n get connectors() {\n return connectors.getState();\n },\n storage,\n getClient,\n get state() {\n return store.getState();\n },\n setState(value) {\n let newState;\n if (typeof value === 'function')\n newState = value(store.getState());\n else\n newState = value;\n // Reset state if it got set to something not matching the base state\n const initialState = getInitialState();\n if (typeof newState !== 'object')\n newState = initialState;\n const isCorrupt = Object.keys(initialState).some((x) => !(x in newState));\n if (isCorrupt)\n newState = initialState;\n store.setState(newState, true);\n },\n subscribe(selector, listener, options) {\n return store.subscribe(selector, listener, options\n ? {\n ...options,\n fireImmediately: options.emitImmediately,\n // Workaround cast since Zustand does not support `'exactOptionalPropertyTypes'`\n }\n : undefined);\n },\n _internal: {\n mipd,\n store,\n ssr: Boolean(ssr),\n syncConnectedChain,\n transports: rest.transports,\n chains: {\n setState(value) {\n const nextChains = (typeof value === 'function' ? value(chains.getState()) : value);\n if (nextChains.length === 0)\n return;\n return chains.setState(nextChains, true);\n },\n subscribe(listener) {\n return chains.subscribe(listener);\n },\n },\n connectors: {\n providerDetailToConnector,\n setup: setup,\n setState(value) {\n return connectors.setState(typeof value === 'function' ? value(connectors.getState()) : value, true);\n },\n subscribe(listener) {\n return connectors.subscribe(listener);\n },\n },\n events: { change, connect, disconnect },\n },\n };\n}\n//# sourceMappingURL=createConfig.js.map","import { reconnect } from './actions/reconnect.js';\nexport function hydrate(config, parameters) {\n const { initialState, reconnectOnMount } = parameters;\n if (initialState && !config._internal.store.persist.hasHydrated())\n config.setState({\n ...initialState,\n chainId: config.chains.some((x) => x.id === initialState.chainId)\n ? initialState.chainId\n : config.chains[0].id,\n connections: reconnectOnMount ? initialState.connections : new Map(),\n status: reconnectOnMount ? 'reconnecting' : 'disconnected',\n });\n return {\n async onMount() {\n if (config._internal.ssr) {\n await config._internal.store.persist.rehydrate();\n if (config._internal.mipd) {\n config._internal.connectors.setState((connectors) => {\n const rdnsSet = new Set();\n for (const connector of connectors ?? []) {\n if (connector.rdns) {\n const rdnsValues = Array.isArray(connector.rdns)\n ? connector.rdns\n : [connector.rdns];\n for (const rdns of rdnsValues) {\n rdnsSet.add(rdns);\n }\n }\n }\n const mipdConnectors = [];\n const providers = config._internal.mipd?.getProviders() ?? [];\n for (const provider of providers) {\n if (rdnsSet.has(provider.info.rdns))\n continue;\n const connectorFn = config._internal.connectors.providerDetailToConnector(provider);\n const connector = config._internal.connectors.setup(connectorFn);\n mipdConnectors.push(connector);\n }\n return [...connectors, ...mipdConnectors];\n });\n }\n }\n if (reconnectOnMount)\n reconnect(config);\n else if (config.storage)\n // Reset connections that may have been hydrated from storage.\n config.setState((x) => ({\n ...x,\n connections: new Map(),\n }));\n },\n };\n}\n//# sourceMappingURL=hydrate.js.map","import { fallback as viem_fallback } from 'viem';\nexport function fallback(transports, config) {\n return viem_fallback(transports, config);\n}\n//# sourceMappingURL=fallback.js.map","export function extractRpcUrls(parameters) {\n const { chain } = parameters;\n const fallbackUrl = chain.rpcUrls.default.http[0];\n if (!parameters.transports)\n return [fallbackUrl];\n const transport = parameters.transports?.[chain.id]?.({ chain });\n const transports = transport?.value?.transports || [transport];\n return transports.map(({ value }) => value?.url || fallbackUrl);\n}\n//# sourceMappingURL=extractRpcUrls.js.map","/**\n * Predeploy contracts for OP Stack.\n * @see https://github.com/ethereum-optimism/optimism/blob/develop/specs/predeploys.md\n */\nexport const contracts = {\n gasPriceOracle: { address: '0x420000000000000000000000000000000000000F' },\n l1Block: { address: '0x4200000000000000000000000000000000000015' },\n l2CrossDomainMessenger: {\n address: '0x4200000000000000000000000000000000000007',\n },\n l2Erc721Bridge: { address: '0x4200000000000000000000000000000000000014' },\n l2StandardBridge: { address: '0x4200000000000000000000000000000000000010' },\n l2ToL1MessagePasser: {\n address: '0x4200000000000000000000000000000000000016',\n },\n};\n//# sourceMappingURL=contracts.js.map","import { hexToBigInt } from '../utils/encoding/fromHex.js';\nimport { defineBlock } from '../utils/formatters/block.js';\nimport { defineTransaction, formatTransaction, } from '../utils/formatters/transaction.js';\nimport { defineTransactionReceipt } from '../utils/formatters/transactionReceipt.js';\nexport const formatters = {\n block: /*#__PURE__*/ defineBlock({\n format(args) {\n const transactions = args.transactions?.map((transaction) => {\n if (typeof transaction === 'string')\n return transaction;\n const formatted = formatTransaction(transaction);\n if (formatted.typeHex === '0x7e') {\n formatted.isSystemTx = transaction.isSystemTx;\n formatted.mint = transaction.mint\n ? hexToBigInt(transaction.mint)\n : undefined;\n formatted.sourceHash = transaction.sourceHash;\n formatted.type = 'deposit';\n }\n return formatted;\n });\n return {\n transactions,\n stateRoot: args.stateRoot,\n };\n },\n }),\n transaction: /*#__PURE__*/ defineTransaction({\n format(args) {\n const transaction = {};\n if (args.type === '0x7e') {\n transaction.isSystemTx = args.isSystemTx;\n transaction.mint = args.mint ? hexToBigInt(args.mint) : undefined;\n transaction.sourceHash = args.sourceHash;\n transaction.type = 'deposit';\n }\n return transaction;\n },\n }),\n transactionReceipt: /*#__PURE__*/ defineTransactionReceipt({\n format(args) {\n return {\n l1GasPrice: args.l1GasPrice ? hexToBigInt(args.l1GasPrice) : null,\n l1GasUsed: args.l1GasUsed ? hexToBigInt(args.l1GasUsed) : null,\n l1Fee: args.l1Fee ? hexToBigInt(args.l1Fee) : null,\n l1FeeScalar: args.l1FeeScalar ? Number(args.l1FeeScalar) : null,\n };\n },\n }),\n};\n//# sourceMappingURL=formatters.js.map","import { InvalidAddressError } from '../errors/address.js';\nimport { isAddress } from '../utils/address/isAddress.js';\nimport { concatHex } from '../utils/data/concat.js';\nimport { toHex } from '../utils/encoding/toHex.js';\nimport { toRlp } from '../utils/encoding/toRlp.js';\nimport { serializeTransaction as serializeTransaction_, } from '../utils/transaction/serializeTransaction.js';\nexport function serializeTransaction(transaction, signature) {\n if (isDeposit(transaction))\n return serializeTransactionDeposit(transaction);\n return serializeTransaction_(transaction, signature);\n}\nexport const serializers = {\n transaction: serializeTransaction,\n};\nfunction serializeTransactionDeposit(transaction) {\n assertTransactionDeposit(transaction);\n const { sourceHash, data, from, gas, isSystemTx, mint, to, value } = transaction;\n const serializedTransaction = [\n sourceHash,\n from,\n to ?? '0x',\n mint ? toHex(mint) : '0x',\n value ? toHex(value) : '0x',\n gas ? toHex(gas) : '0x',\n isSystemTx ? '0x1' : '0x',\n data ?? '0x',\n ];\n return concatHex([\n '0x7e',\n toRlp(serializedTransaction),\n ]);\n}\nfunction isDeposit(transaction) {\n if (transaction.type === 'deposit')\n return true;\n if (typeof transaction.sourceHash !== 'undefined')\n return true;\n return false;\n}\nexport function assertTransactionDeposit(transaction) {\n const { from, to } = transaction;\n if (from && !isAddress(from))\n throw new InvalidAddressError({ address: from });\n if (to && !isAddress(to))\n throw new InvalidAddressError({ address: to });\n}\n//# sourceMappingURL=serializers.js.map","import { contracts } from './contracts.js';\nimport { formatters } from './formatters.js';\nimport { serializers } from './serializers.js';\nexport const chainConfig = {\n contracts,\n formatters,\n serializers,\n};\n//# sourceMappingURL=chainConfig.js.map","import { defineChain } from '../../utils/chain/defineChain.js';\nexport const arbitrum = /*#__PURE__*/ defineChain({\n id: 42_161,\n name: 'Arbitrum One',\n nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },\n rpcUrls: {\n default: {\n http: ['https://arb1.arbitrum.io/rpc'],\n },\n },\n blockExplorers: {\n default: {\n name: 'Arbiscan',\n url: 'https://arbiscan.io',\n apiUrl: 'https://api.arbiscan.io/api',\n },\n },\n contracts: {\n multicall3: {\n address: '0xca11bde05977b3631167028862be2a173976ca11',\n blockCreated: 7654707,\n },\n },\n});\n//# sourceMappingURL=arbitrum.js.map","import { defineChain } from '../../utils/chain/defineChain.js';\nexport const avalanche = /*#__PURE__*/ defineChain({\n id: 43_114,\n name: '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 },\n blockExplorers: {\n default: {\n name: 'SnowTrace',\n url: 'https://snowtrace.io',\n apiUrl: 'https://api.snowtrace.io',\n },\n },\n contracts: {\n multicall3: {\n address: '0xca11bde05977b3631167028862be2a173976ca11',\n blockCreated: 11907934,\n },\n },\n});\n//# sourceMappingURL=avalanche.js.map","import { chainConfig } from '../../op-stack/chainConfig.js';\nimport { defineChain } from '../../utils/chain/defineChain.js';\nconst sourceId = 1; // mainnet\nexport const base = /*#__PURE__*/ defineChain({\n ...chainConfig,\n id: 8453,\n name: 'Base',\n nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },\n rpcUrls: {\n default: {\n http: ['https://mainnet.base.org'],\n },\n },\n blockExplorers: {\n default: {\n name: 'Basescan',\n url: 'https://basescan.org',\n apiUrl: 'https://api.basescan.org/api',\n },\n },\n contracts: {\n ...chainConfig.contracts,\n disputeGameFactory: {\n [sourceId]: {\n address: '0x43edB88C4B80fDD2AdFF2412A7BebF9dF42cB40e',\n },\n },\n l2OutputOracle: {\n [sourceId]: {\n address: '0x56315b90c40730925ec5485cf004d835058518A0',\n },\n },\n multicall3: {\n address: '0xca11bde05977b3631167028862be2a173976ca11',\n blockCreated: 5022,\n },\n portal: {\n [sourceId]: {\n address: '0x49048044D57e1C92A77f79988d21Fa8fAF74E97e',\n blockCreated: 17482143,\n },\n },\n l1StandardBridge: {\n [sourceId]: {\n address: '0x3154Cf16ccdb4C6d922629664174b904d80F2C35',\n blockCreated: 17482143,\n },\n },\n },\n sourceId,\n});\n//# sourceMappingURL=base.js.map","import { defineChain } from '../../utils/chain/defineChain.js';\nexport const bsc = /*#__PURE__*/ defineChain({\n id: 56,\n name: 'BNB Smart Chain',\n nativeCurrency: {\n decimals: 18,\n name: 'BNB',\n symbol: 'BNB',\n },\n rpcUrls: {\n default: { http: ['https://56.rpc.thirdweb.com'] },\n },\n blockExplorers: {\n default: {\n name: 'BscScan',\n url: 'https://bscscan.com',\n apiUrl: 'https://api.bscscan.com/api',\n },\n },\n contracts: {\n multicall3: {\n address: '0xca11bde05977b3631167028862be2a173976ca11',\n blockCreated: 15921452,\n },\n },\n});\n//# sourceMappingURL=bsc.js.map","import { defineChain } from '../../utils/chain/defineChain.js';\nexport const fantom = /*#__PURE__*/ defineChain({\n id: 250,\n name: 'Fantom',\n nativeCurrency: {\n decimals: 18,\n name: 'Fantom',\n symbol: 'FTM',\n },\n rpcUrls: {\n default: { http: ['https://250.rpc.thirdweb.com'] },\n },\n blockExplorers: {\n default: {\n name: 'FTMScan',\n url: 'https://ftmscan.com',\n apiUrl: 'https://api.ftmscan.com/api',\n },\n },\n contracts: {\n multicall3: {\n address: '0xca11bde05977b3631167028862be2a173976ca11',\n blockCreated: 33001987,\n },\n },\n});\n//# sourceMappingURL=fantom.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://eth.merkle.io'],\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 { chainConfig } from '../../op-stack/chainConfig.js';\nimport { defineChain } from '../../utils/chain/defineChain.js';\nconst sourceId = 1; // mainnet\nexport const optimism = /*#__PURE__*/ defineChain({\n ...chainConfig,\n id: 10,\n name: 'OP Mainnet',\n nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },\n rpcUrls: {\n default: {\n http: ['https://mainnet.optimism.io'],\n },\n },\n blockExplorers: {\n default: {\n name: 'Optimism Explorer',\n url: 'https://optimistic.etherscan.io',\n apiUrl: 'https://api-optimistic.etherscan.io/api',\n },\n },\n contracts: {\n ...chainConfig.contracts,\n disputeGameFactory: {\n [sourceId]: {\n address: '0xe5965Ab5962eDc7477C8520243A95517CD252fA9',\n },\n },\n l2OutputOracle: {\n [sourceId]: {\n address: '0xdfe97868233d1aa22e815a266982f2cf17685a27',\n },\n },\n multicall3: {\n address: '0xca11bde05977b3631167028862be2a173976ca11',\n blockCreated: 4286263,\n },\n portal: {\n [sourceId]: {\n address: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed',\n },\n },\n l1StandardBridge: {\n [sourceId]: {\n address: '0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1',\n },\n },\n },\n sourceId,\n});\n//# sourceMappingURL=optimism.js.map","import { defineChain } from '../../utils/chain/defineChain.js';\nexport const polygon = /*#__PURE__*/ defineChain({\n id: 137,\n name: 'Polygon',\n nativeCurrency: { name: 'POL', symbol: 'POL', decimals: 18 },\n rpcUrls: {\n default: {\n http: ['https://polygon-rpc.com'],\n },\n },\n blockExplorers: {\n default: {\n name: 'PolygonScan',\n url: 'https://polygonscan.com',\n apiUrl: 'https://api.polygonscan.com/api',\n },\n },\n contracts: {\n multicall3: {\n address: '0xca11bde05977b3631167028862be2a173976ca11',\n blockCreated: 25770160,\n },\n },\n});\n//# sourceMappingURL=polygon.js.map","import { ChainNotConfiguredError, ProviderNotFoundError, createConnector, extractRpcUrls, } from '@wagmi/core';\nimport { SwitchChainError, UserRejectedRequestError, getAddress, numberToHex, } from 'viem';\nwalletConnect.type = 'walletConnect';\nexport function walletConnect(parameters) {\n const isNewChainsStale = parameters.isNewChainsStale ?? true;\n let provider_;\n let providerPromise;\n const NAMESPACE = 'eip155';\n let accountsChanged;\n let chainChanged;\n let connect;\n let displayUri;\n let sessionDelete;\n let disconnect;\n return createConnector((config) => ({\n id: 'walletConnect',\n name: 'WalletConnect',\n type: walletConnect.type,\n async setup() {\n const provider = await this.getProvider().catch(() => null);\n if (!provider)\n return;\n if (!connect) {\n connect = this.onConnect.bind(this);\n provider.on('connect', connect);\n }\n if (!sessionDelete) {\n sessionDelete = this.onSessionDelete.bind(this);\n provider.on('session_delete', sessionDelete);\n }\n },\n async connect({ chainId, ...rest } = {}) {\n try {\n const provider = await this.getProvider();\n if (!provider)\n throw new ProviderNotFoundError();\n if (!displayUri) {\n displayUri = this.onDisplayUri;\n provider.on('display_uri', displayUri);\n }\n let targetChainId = chainId;\n if (!targetChainId) {\n const state = (await config.storage?.getItem('state')) ?? {};\n const isChainSupported = config.chains.some((x) => x.id === state.chainId);\n if (isChainSupported)\n targetChainId = state.chainId;\n else\n targetChainId = config.chains[0]?.id;\n }\n if (!targetChainId)\n throw new Error('No chains found on connector.');\n const isChainsStale = await this.isChainsStale();\n // If there is an active session with stale chains, disconnect current session.\n if (provider.session && isChainsStale)\n await provider.disconnect();\n // If there isn't an active session or chains are stale, connect.\n if (!provider.session || isChainsStale) {\n const optionalChains = config.chains\n .filter((chain) => chain.id !== targetChainId)\n .map((optionalChain) => optionalChain.id);\n await provider.connect({\n optionalChains: [targetChainId, ...optionalChains],\n ...('pairingTopic' in rest\n ? { pairingTopic: rest.pairingTopic }\n : {}),\n });\n this.setRequestedChainsIds(config.chains.map((x) => x.id));\n }\n // If session exists and chains are authorized, enable provider for required chain\n const accounts = (await provider.enable()).map((x) => getAddress(x));\n const currentChainId = await this.getChainId();\n if (displayUri) {\n provider.removeListener('display_uri', displayUri);\n displayUri = undefined;\n }\n if (connect) {\n provider.removeListener('connect', connect);\n connect = undefined;\n }\n if (!accountsChanged) {\n accountsChanged = this.onAccountsChanged.bind(this);\n provider.on('accountsChanged', accountsChanged);\n }\n if (!chainChanged) {\n chainChanged = this.onChainChanged.bind(this);\n provider.on('chainChanged', chainChanged);\n }\n if (!disconnect) {\n disconnect = this.onDisconnect.bind(this);\n provider.on('disconnect', disconnect);\n }\n if (!sessionDelete) {\n sessionDelete = this.onSessionDelete.bind(this);\n provider.on('session_delete', sessionDelete);\n }\n return { accounts, chainId: currentChainId };\n }\n catch (error) {\n if (/(user rejected|connection request reset)/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 }\n catch (error) {\n if (!/No matching key/i.test(error.message))\n throw error;\n }\n finally {\n if (chainChanged) {\n provider?.removeListener('chainChanged', chainChanged);\n chainChanged = undefined;\n }\n if (disconnect) {\n provider?.removeListener('disconnect', disconnect);\n disconnect = undefined;\n }\n if (!connect) {\n connect = this.onConnect.bind(this);\n provider?.on('connect', connect);\n }\n if (accountsChanged) {\n provider?.removeListener('accountsChanged', accountsChanged);\n accountsChanged = undefined;\n }\n if (sessionDelete) {\n provider?.removeListener('session_delete', sessionDelete);\n sessionDelete = undefined;\n }\n this.setRequestedChainsIds([]);\n }\n },\n async getAccounts() {\n const provider = await this.getProvider();\n return provider.accounts.map((x) => getAddress(x));\n },\n async getProvider({ chainId } = {}) {\n async function initProvider() {\n const optionalChains = config.chains.map((x) => x.id);\n if (!optionalChains.length)\n return;\n const { EthereumProvider } = await import('@walletconnect/ethereum-provider');\n return await EthereumProvider.init({\n ...parameters,\n disableProviderPing: true,\n optionalChains,\n projectId: parameters.projectId,\n rpcMap: Object.fromEntries(config.chains.map((chain) => {\n const [url] = extractRpcUrls({\n chain,\n transports: config.transports,\n });\n return [chain.id, url];\n })),\n showQrModal: parameters.showQrModal ?? true,\n });\n }\n if (!provider_) {\n if (!providerPromise)\n providerPromise = initProvider();\n provider_ = await providerPromise;\n provider_?.events.setMaxListeners(Number.POSITIVE_INFINITY);\n }\n if (chainId)\n await this.switchChain?.({ chainId });\n return provider_;\n },\n async getChainId() {\n const provider = await this.getProvider();\n return provider.chainId;\n },\n async isAuthorized() {\n try {\n const [accounts, provider] = await Promise.all([\n this.getAccounts(),\n this.getProvider(),\n ]);\n // If an account does not exist on the session, then the connector is unauthorized.\n if (!accounts.length)\n return false;\n // If the chains are stale on the session, then the connector is unauthorized.\n const isChainsStale = await this.isChainsStale();\n if (isChainsStale && provider.session) {\n await provider.disconnect().catch(() => { });\n return false;\n }\n return true;\n }\n catch {\n return false;\n }\n },\n async switchChain({ addEthereumChainParameter, chainId }) {\n const provider = await this.getProvider();\n if (!provider)\n throw new ProviderNotFoundError();\n const chain = config.chains.find((x) => x.id === chainId);\n if (!chain)\n throw new SwitchChainError(new ChainNotConfiguredError());\n try {\n await Promise.all([\n new Promise((resolve) => {\n const listener = ({ chainId: currentChainId, }) => {\n if (currentChainId === chainId) {\n config.emitter.off('change', listener);\n resolve();\n }\n };\n config.emitter.on('change', listener);\n }),\n provider.request({\n method: 'wallet_switchEthereumChain',\n params: [{ chainId: numberToHex(chainId) }],\n }),\n ]);\n const requestedChains = await this.getRequestedChainsIds();\n this.setRequestedChainsIds([...requestedChains, chainId]);\n return chain;\n }\n catch (err) {\n const error = err;\n if (/(user rejected)/i.test(error.message))\n throw new UserRejectedRequestError(error);\n // Indicates chain is not added to provider\n try {\n let blockExplorerUrls;\n if (addEthereumChainParameter?.blockExplorerUrls)\n blockExplorerUrls = addEthereumChainParameter.blockExplorerUrls;\n else\n blockExplorerUrls = chain.blockExplorers?.default.url\n ? [chain.blockExplorers?.default.url]\n : [];\n let rpcUrls;\n if (addEthereumChainParameter?.rpcUrls?.length)\n rpcUrls = addEthereumChainParameter.rpcUrls;\n else\n rpcUrls = [...chain.rpcUrls.default.http];\n const addEthereumChain = {\n blockExplorerUrls,\n chainId: numberToHex(chainId),\n chainName: addEthereumChainParameter?.chainName ?? chain.name,\n iconUrls: addEthereumChainParameter?.iconUrls,\n nativeCurrency: addEthereumChainParameter?.nativeCurrency ?? chain.nativeCurrency,\n rpcUrls,\n };\n await provider.request({\n method: 'wallet_addEthereumChain',\n params: [addEthereumChain],\n });\n const requestedChains = await this.getRequestedChainsIds();\n this.setRequestedChainsIds([...requestedChains, chainId]);\n return chain;\n }\n catch (error) {\n throw new UserRejectedRequestError(error);\n }\n }\n },\n onAccountsChanged(accounts) {\n if (accounts.length === 0)\n this.onDisconnect();\n else\n config.emitter.emit('change', {\n accounts: accounts.map((x) => getAddress(x)),\n });\n },\n onChainChanged(chain) {\n const chainId = Number(chain);\n config.emitter.emit('change', { chainId });\n },\n async onConnect(connectInfo) {\n const chainId = Number(connectInfo.chainId);\n const accounts = await this.getAccounts();\n config.emitter.emit('connect', { accounts, chainId });\n },\n async onDisconnect(_error) {\n this.setRequestedChainsIds([]);\n config.emitter.emit('disconnect');\n const provider = await this.getProvider();\n if (accountsChanged) {\n provider.removeListener('accountsChanged', accountsChanged);\n accountsChanged = undefined;\n }\n if (chainChanged) {\n provider.removeListener('chainChanged', chainChanged);\n chainChanged = undefined;\n }\n if (disconnect) {\n provider.removeListener('disconnect', disconnect);\n disconnect = undefined;\n }\n if (sessionDelete) {\n provider.removeListener('session_delete', sessionDelete);\n sessionDelete = undefined;\n }\n if (!connect) {\n connect = this.onConnect.bind(this);\n provider.on('connect', connect);\n }\n },\n onDisplayUri(uri) {\n config.emitter.emit('message', { type: 'display_uri', data: uri });\n },\n onSessionDelete() {\n this.onDisconnect();\n },\n getNamespaceChainsIds() {\n if (!provider_)\n return [];\n const chainIds = provider_.session?.namespaces[NAMESPACE]?.accounts?.map((account) => Number.parseInt(account.split(':')[1] || ''));\n return chainIds ?? [];\n },\n async getRequestedChainsIds() {\n return ((await config.storage?.getItem(this.requestedChainsStorageKey)) ?? []);\n },\n /**\n * Checks if the target chains match the chains that were\n * initially requested by the connector for the WalletConnect session.\n * If there is a mismatch, this means that the chains on the connector\n * are considered stale, and need to be revalidated at a later point (via\n * connection).\n *\n * There may be a scenario where a dapp adds a chain to the\n * connector later on, however, this chain will not have been approved or rejected\n * by the wallet. In this case, the chain is considered stale.\n */\n async isChainsStale() {\n if (!isNewChainsStale)\n return false;\n const connectorChains = config.chains.map((x) => x.id);\n const namespaceChains = this.getNamespaceChainsIds();\n if (namespaceChains.length &&\n !namespaceChains.some((id) => connectorChains.includes(id)))\n return false;\n const requestedChains = await this.getRequestedChainsIds();\n return !connectorChains.every((id) => requestedChains.includes(id));\n },\n async setRequestedChainsIds(chains) {\n await config.storage?.setItem(this.requestedChainsStorageKey, chains);\n },\n get requestedChainsStorageKey() {\n return `${this.id}.requestedChains`;\n },\n }));\n}\n//# sourceMappingURL=walletConnect.js.map","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar BrowserInfo = /** @class */ (function () {\n function BrowserInfo(name, version, os) {\n this.name = name;\n this.version = version;\n this.os = os;\n this.type = 'browser';\n }\n return BrowserInfo;\n}());\nexport { BrowserInfo };\nvar NodeInfo = /** @class */ (function () {\n function NodeInfo(version) {\n this.version = version;\n this.type = 'node';\n this.name = 'node';\n this.os = process.platform;\n }\n return NodeInfo;\n}());\nexport { NodeInfo };\nvar SearchBotDeviceInfo = /** @class */ (function () {\n function SearchBotDeviceInfo(name, version, os, bot) {\n this.name = name;\n this.version = version;\n this.os = os;\n this.bot = bot;\n this.type = 'bot-device';\n }\n return SearchBotDeviceInfo;\n}());\nexport { SearchBotDeviceInfo };\nvar BotInfo = /** @class */ (function () {\n function BotInfo() {\n this.type = 'bot';\n this.bot = true; // NOTE: deprecated test name instead\n this.name = 'bot';\n this.version = null;\n this.os = null;\n }\n return BotInfo;\n}());\nexport { BotInfo };\nvar ReactNativeInfo = /** @class */ (function () {\n function ReactNativeInfo() {\n this.type = 'react-native';\n this.name = 'react-native';\n this.version = null;\n this.os = null;\n }\n return ReactNativeInfo;\n}());\nexport { ReactNativeInfo };\n// tslint:disable-next-line:max-line-length\nvar SEARCHBOX_UA_REGEX = /alexa|bot|crawl(er|ing)|facebookexternalhit|feedburner|google web preview|nagios|postrank|pingdom|slurp|spider|yahoo!|yandex/;\nvar SEARCHBOT_OS_REGEX = /(nuhk|curl|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask\\ Jeeves\\/Teoma|ia_archiver)/;\nvar REQUIRED_VERSION_PARTS = 3;\nvar userAgentRules = [\n ['aol', /AOLShield\\/([0-9\\._]+)/],\n ['edge', /Edge\\/([0-9\\._]+)/],\n ['edge-ios', /EdgiOS\\/([0-9\\._]+)/],\n ['yandexbrowser', /YaBrowser\\/([0-9\\._]+)/],\n ['kakaotalk', /KAKAOTALK\\s([0-9\\.]+)/],\n ['samsung', /SamsungBrowser\\/([0-9\\.]+)/],\n ['silk', /\\bSilk\\/([0-9._-]+)\\b/],\n ['miui', /MiuiBrowser\\/([0-9\\.]+)$/],\n ['beaker', /BeakerBrowser\\/([0-9\\.]+)/],\n ['edge-chromium', /EdgA?\\/([0-9\\.]+)/],\n [\n 'chromium-webview',\n /(?!Chrom.*OPR)wv\\).*Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/,\n ],\n ['chrome', /(?!Chrom.*OPR)Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/],\n ['phantomjs', /PhantomJS\\/([0-9\\.]+)(:?\\s|$)/],\n ['crios', /CriOS\\/([0-9\\.]+)(:?\\s|$)/],\n ['firefox', /Firefox\\/([0-9\\.]+)(?:\\s|$)/],\n ['fxios', /FxiOS\\/([0-9\\.]+)/],\n ['opera-mini', /Opera Mini.*Version\\/([0-9\\.]+)/],\n ['opera', /Opera\\/([0-9\\.]+)(?:\\s|$)/],\n ['opera', /OPR\\/([0-9\\.]+)(:?\\s|$)/],\n ['pie', /^Microsoft Pocket Internet Explorer\\/(\\d+\\.\\d+)$/],\n ['pie', /^Mozilla\\/\\d\\.\\d+\\s\\(compatible;\\s(?:MSP?IE|MSInternet Explorer) (\\d+\\.\\d+);.*Windows CE.*\\)$/],\n ['netfront', /^Mozilla\\/\\d\\.\\d+.*NetFront\\/(\\d.\\d)/],\n ['ie', /Trident\\/7\\.0.*rv\\:([0-9\\.]+).*\\).*Gecko$/],\n ['ie', /MSIE\\s([0-9\\.]+);.*Trident\\/[4-7].0/],\n ['ie', /MSIE\\s(7\\.0)/],\n ['bb10', /BB10;\\sTouch.*Version\\/([0-9\\.]+)/],\n ['android', /Android\\s([0-9\\.]+)/],\n ['ios', /Version\\/([0-9\\._]+).*Mobile.*Safari.*/],\n ['safari', /Version\\/([0-9\\._]+).*Safari/],\n ['facebook', /FB[AS]V\\/([0-9\\.]+)/],\n ['instagram', /Instagram\\s([0-9\\.]+)/],\n ['ios-webview', /AppleWebKit\\/([0-9\\.]+).*Mobile/],\n ['ios-webview', /AppleWebKit\\/([0-9\\.]+).*Gecko\\)$/],\n ['curl', /^curl\\/([0-9\\.]+)$/],\n ['searchbot', SEARCHBOX_UA_REGEX],\n];\nvar operatingSystemRules = [\n ['iOS', /iP(hone|od|ad)/],\n ['Android OS', /Android/],\n ['BlackBerry OS', /BlackBerry|BB10/],\n ['Windows Mobile', /IEMobile/],\n ['Amazon OS', /Kindle/],\n ['Windows 3.11', /Win16/],\n ['Windows 95', /(Windows 95)|(Win95)|(Windows_95)/],\n ['Windows 98', /(Windows 98)|(Win98)/],\n ['Windows 2000', /(Windows NT 5.0)|(Windows 2000)/],\n ['Windows XP', /(Windows NT 5.1)|(Windows XP)/],\n ['Windows Server 2003', /(Windows NT 5.2)/],\n ['Windows Vista', /(Windows NT 6.0)/],\n ['Windows 7', /(Windows NT 6.1)/],\n ['Windows 8', /(Windows NT 6.2)/],\n ['Windows 8.1', /(Windows NT 6.3)/],\n ['Windows 10', /(Windows NT 10.0)/],\n ['Windows ME', /Windows ME/],\n ['Windows CE', /Windows CE|WinCE|Microsoft Pocket Internet Explorer/],\n ['Open BSD', /OpenBSD/],\n ['Sun OS', /SunOS/],\n ['Chrome OS', /CrOS/],\n ['Linux', /(Linux)|(X11)/],\n ['Mac OS', /(Mac_PowerPC)|(Macintosh)/],\n ['QNX', /QNX/],\n ['BeOS', /BeOS/],\n ['OS/2', /OS\\/2/],\n];\nexport function detect(userAgent) {\n if (!!userAgent) {\n return parseUserAgent(userAgent);\n }\n if (typeof document === 'undefined' &&\n typeof navigator !== 'undefined' &&\n navigator.product === 'ReactNative') {\n return new ReactNativeInfo();\n }\n if (typeof navigator !== 'undefined') {\n return parseUserAgent(navigator.userAgent);\n }\n return getNodeVersion();\n}\nfunction matchUserAgent(ua) {\n // opted for using reduce here rather than Array#first with a regex.test call\n // this is primarily because using the reduce we only perform the regex\n // execution once rather than once for the test and for the exec again below\n // probably something that needs to be benchmarked though\n return (ua !== '' &&\n userAgentRules.reduce(function (matched, _a) {\n var browser = _a[0], regex = _a[1];\n if (matched) {\n return matched;\n }\n var uaMatch = regex.exec(ua);\n return !!uaMatch && [browser, uaMatch];\n }, false));\n}\nexport function browserName(ua) {\n var data = matchUserAgent(ua);\n return data ? data[0] : null;\n}\nexport function parseUserAgent(ua) {\n var matchedRule = matchUserAgent(ua);\n if (!matchedRule) {\n return null;\n }\n var name = matchedRule[0], match = matchedRule[1];\n if (name === 'searchbot') {\n return new BotInfo();\n }\n // Do not use RegExp for split operation as some browser do not support it (See: http://blog.stevenlevithan.com/archives/cross-browser-split)\n var versionParts = match[1] && match[1].split('.').join('_').split('_').slice(0, 3);\n if (versionParts) {\n if (versionParts.length < REQUIRED_VERSION_PARTS) {\n versionParts = __spreadArray(__spreadArray([], versionParts, true), createVersionParts(REQUIRED_VERSION_PARTS - versionParts.length), true);\n }\n }\n else {\n versionParts = [];\n }\n var version = versionParts.join('.');\n var os = detectOS(ua);\n var searchBotMatch = SEARCHBOT_OS_REGEX.exec(ua);\n if (searchBotMatch && searchBotMatch[1]) {\n return new SearchBotDeviceInfo(name, version, os, searchBotMatch[1]);\n }\n return new BrowserInfo(name, version, os);\n}\nexport function detectOS(ua) {\n for (var ii = 0, count = operatingSystemRules.length; ii < count; ii++) {\n var _a = operatingSystemRules[ii], os = _a[0], regex = _a[1];\n var match = regex.exec(ua);\n if (match) {\n return os;\n }\n }\n return null;\n}\nexport function getNodeVersion() {\n var isNode = typeof process !== 'undefined' && process.version;\n return isNode ? new NodeInfo(process.version.slice(1)) : null;\n}\nfunction createVersionParts(count) {\n var output = [];\n for (var ii = 0; ii < count; ii++) {\n output.push('0');\n }\n return output;\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.delay = void 0;\nfunction delay(timeout) {\n return new Promise(resolve => {\n setTimeout(() => {\n resolve(true);\n }, timeout);\n });\n}\nexports.delay = delay;\n//# sourceMappingURL=delay.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ONE_THOUSAND = exports.ONE_HUNDRED = void 0;\nexports.ONE_HUNDRED = 100;\nexports.ONE_THOUSAND = 1000;\n//# sourceMappingURL=misc.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ONE_YEAR = exports.FOUR_WEEKS = exports.THREE_WEEKS = exports.TWO_WEEKS = exports.ONE_WEEK = exports.THIRTY_DAYS = exports.SEVEN_DAYS = exports.FIVE_DAYS = exports.THREE_DAYS = exports.ONE_DAY = exports.TWENTY_FOUR_HOURS = exports.TWELVE_HOURS = exports.SIX_HOURS = exports.THREE_HOURS = exports.ONE_HOUR = exports.SIXTY_MINUTES = exports.THIRTY_MINUTES = exports.TEN_MINUTES = exports.FIVE_MINUTES = exports.ONE_MINUTE = exports.SIXTY_SECONDS = exports.THIRTY_SECONDS = exports.TEN_SECONDS = exports.FIVE_SECONDS = exports.ONE_SECOND = void 0;\nexports.ONE_SECOND = 1;\nexports.FIVE_SECONDS = 5;\nexports.TEN_SECONDS = 10;\nexports.THIRTY_SECONDS = 30;\nexports.SIXTY_SECONDS = 60;\nexports.ONE_MINUTE = exports.SIXTY_SECONDS;\nexports.FIVE_MINUTES = exports.ONE_MINUTE * 5;\nexports.TEN_MINUTES = exports.ONE_MINUTE * 10;\nexports.THIRTY_MINUTES = exports.ONE_MINUTE * 30;\nexports.SIXTY_MINUTES = exports.ONE_MINUTE * 60;\nexports.ONE_HOUR = exports.SIXTY_MINUTES;\nexports.THREE_HOURS = exports.ONE_HOUR * 3;\nexports.SIX_HOURS = exports.ONE_HOUR * 6;\nexports.TWELVE_HOURS = exports.ONE_HOUR * 12;\nexports.TWENTY_FOUR_HOURS = exports.ONE_HOUR * 24;\nexports.ONE_DAY = exports.TWENTY_FOUR_HOURS;\nexports.THREE_DAYS = exports.ONE_DAY * 3;\nexports.FIVE_DAYS = exports.ONE_DAY * 5;\nexports.SEVEN_DAYS = exports.ONE_DAY * 7;\nexports.THIRTY_DAYS = exports.ONE_DAY * 30;\nexports.ONE_WEEK = exports.SEVEN_DAYS;\nexports.TWO_WEEKS = exports.ONE_WEEK * 2;\nexports.THREE_WEEKS = exports.ONE_WEEK * 3;\nexports.FOUR_WEEKS = exports.ONE_WEEK * 4;\nexports.ONE_YEAR = exports.ONE_DAY * 365;\n//# sourceMappingURL=time.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./misc\"), exports);\ntslib_1.__exportStar(require(\"./time\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromMiliseconds = exports.toMiliseconds = void 0;\nconst constants_1 = require(\"../constants\");\nfunction toMiliseconds(seconds) {\n return seconds * constants_1.ONE_THOUSAND;\n}\nexports.toMiliseconds = toMiliseconds;\nfunction fromMiliseconds(miliseconds) {\n return Math.floor(miliseconds / constants_1.ONE_THOUSAND);\n}\nexports.fromMiliseconds = fromMiliseconds;\n//# sourceMappingURL=convert.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./delay\"), exports);\ntslib_1.__exportStar(require(\"./convert\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Watch = void 0;\nclass Watch {\n constructor() {\n this.timestamps = new Map();\n }\n start(label) {\n if (this.timestamps.has(label)) {\n throw new Error(`Watch already started for label: ${label}`);\n }\n this.timestamps.set(label, { started: Date.now() });\n }\n stop(label) {\n const timestamp = this.get(label);\n if (typeof timestamp.elapsed !== \"undefined\") {\n throw new Error(`Watch already stopped for label: ${label}`);\n }\n const elapsed = Date.now() - timestamp.started;\n this.timestamps.set(label, { started: timestamp.started, elapsed });\n }\n get(label) {\n const timestamp = this.timestamps.get(label);\n if (typeof timestamp === \"undefined\") {\n throw new Error(`No timestamp found for label: ${label}`);\n }\n return timestamp;\n }\n elapsed(label) {\n const timestamp = this.get(label);\n const elapsed = timestamp.elapsed || Date.now() - timestamp.started;\n return elapsed;\n }\n}\nexports.Watch = Watch;\nexports.default = Watch;\n//# sourceMappingURL=watch.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IWatch = void 0;\nclass IWatch {\n}\nexports.IWatch = IWatch;\n//# sourceMappingURL=watch.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./watch\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./utils\"), exports);\ntslib_1.__exportStar(require(\"./watch\"), exports);\ntslib_1.__exportStar(require(\"./types\"), exports);\ntslib_1.__exportStar(require(\"./constants\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getLocalStorage = exports.getLocalStorageOrThrow = exports.getCrypto = exports.getCryptoOrThrow = exports.getLocation = exports.getLocationOrThrow = exports.getNavigator = exports.getNavigatorOrThrow = exports.getDocument = exports.getDocumentOrThrow = exports.getFromWindowOrThrow = exports.getFromWindow = void 0;\nfunction getFromWindow(name) {\n let res = undefined;\n if (typeof window !== \"undefined\" && typeof window[name] !== \"undefined\") {\n res = window[name];\n }\n return res;\n}\nexports.getFromWindow = getFromWindow;\nfunction getFromWindowOrThrow(name) {\n const res = getFromWindow(name);\n if (!res) {\n throw new Error(`${name} is not defined in Window`);\n }\n return res;\n}\nexports.getFromWindowOrThrow = getFromWindowOrThrow;\nfunction getDocumentOrThrow() {\n return getFromWindowOrThrow(\"document\");\n}\nexports.getDocumentOrThrow = getDocumentOrThrow;\nfunction getDocument() {\n return getFromWindow(\"document\");\n}\nexports.getDocument = getDocument;\nfunction getNavigatorOrThrow() {\n return getFromWindowOrThrow(\"navigator\");\n}\nexports.getNavigatorOrThrow = getNavigatorOrThrow;\nfunction getNavigator() {\n return getFromWindow(\"navigator\");\n}\nexports.getNavigator = getNavigator;\nfunction getLocationOrThrow() {\n return getFromWindowOrThrow(\"location\");\n}\nexports.getLocationOrThrow = getLocationOrThrow;\nfunction getLocation() {\n return getFromWindow(\"location\");\n}\nexports.getLocation = getLocation;\nfunction getCryptoOrThrow() {\n return getFromWindowOrThrow(\"crypto\");\n}\nexports.getCryptoOrThrow = getCryptoOrThrow;\nfunction getCrypto() {\n return getFromWindow(\"crypto\");\n}\nexports.getCrypto = getCrypto;\nfunction getLocalStorageOrThrow() {\n return getFromWindowOrThrow(\"localStorage\");\n}\nexports.getLocalStorageOrThrow = getLocalStorageOrThrow;\nfunction getLocalStorage() {\n return getFromWindow(\"localStorage\");\n}\nexports.getLocalStorage = getLocalStorage;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getWindowMetadata = void 0;\nconst window_getters_1 = require(\"@walletconnect/window-getters\");\nfunction getWindowMetadata() {\n let doc;\n let loc;\n try {\n doc = window_getters_1.getDocumentOrThrow();\n loc = window_getters_1.getLocationOrThrow();\n }\n catch (e) {\n return null;\n }\n function getIcons() {\n const links = doc.getElementsByTagName(\"link\");\n const icons = [];\n for (let i = 0; i < links.length; i++) {\n const link = links[i];\n const rel = link.getAttribute(\"rel\");\n if (rel) {\n if (rel.toLowerCase().indexOf(\"icon\") > -1) {\n const href = link.getAttribute(\"href\");\n if (href) {\n if (href.toLowerCase().indexOf(\"https:\") === -1 &&\n href.toLowerCase().indexOf(\"http:\") === -1 &&\n href.indexOf(\"//\") !== 0) {\n let absoluteHref = loc.protocol + \"//\" + loc.host;\n if (href.indexOf(\"/\") === 0) {\n absoluteHref += href;\n }\n else {\n const path = loc.pathname.split(\"/\");\n path.pop();\n const finalPath = path.join(\"/\");\n absoluteHref += finalPath + \"/\" + href;\n }\n icons.push(absoluteHref);\n }\n else if (href.indexOf(\"//\") === 0) {\n const absoluteUrl = loc.protocol + href;\n icons.push(absoluteUrl);\n }\n else {\n icons.push(href);\n }\n }\n }\n }\n }\n return icons;\n }\n function getWindowMetadataOfAny(...args) {\n const metaTags = doc.getElementsByTagName(\"meta\");\n for (let i = 0; i < metaTags.length; i++) {\n const tag = metaTags[i];\n const attributes = [\"itemprop\", \"property\", \"name\"]\n .map((target) => tag.getAttribute(target))\n .filter((attr) => {\n if (attr) {\n return args.includes(attr);\n }\n return false;\n });\n if (attributes.length && attributes) {\n const content = tag.getAttribute(\"content\");\n if (content) {\n return content;\n }\n }\n }\n return \"\";\n }\n function getName() {\n let name = getWindowMetadataOfAny(\"name\", \"og:site_name\", \"og:title\", \"twitter:title\");\n if (!name) {\n name = doc.title;\n }\n return name;\n }\n function getDescription() {\n const description = getWindowMetadataOfAny(\"description\", \"og:description\", \"twitter:description\", \"keywords\");\n return description;\n }\n const name = getName();\n const description = getDescription();\n const url = loc.origin;\n const icons = getIcons();\n const meta = {\n description,\n url,\n icons,\n name,\n };\n return meta;\n}\nexports.getWindowMetadata = getWindowMetadata;\n//# sourceMappingURL=index.js.map","'use strict';\nmodule.exports = str => encodeURIComponent(str).replace(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\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';\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 = 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';\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\";\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 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 * 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 });\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 });\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 });\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 });\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 });\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 });\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 });\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 });\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","export default {}","\"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 });\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 });\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 });\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","export function alloc(size = 0) {\n if (globalThis.Buffer != null && globalThis.Buffer.alloc != null) {\n return 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 globalThis.Buffer.allocUnsafe(size);\n }\n return new Uint8Array(size);\n}","import { allocUnsafe } from './alloc.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 output;\n}","function base(ALPHABET, name) {\n if (ALPHABET.length >= 255) {\n throw new TypeError('Alphabet too long');\n }\n var BASE_MAP = new Uint8Array(256);\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255;\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i);\n var xc = x.charCodeAt(0);\n if (BASE_MAP[xc] !== 255) {\n throw new TypeError(x + ' is ambiguous');\n }\n BASE_MAP[xc] = i;\n }\n var BASE = ALPHABET.length;\n var LEADER = ALPHABET.charAt(0);\n var FACTOR = Math.log(BASE) / Math.log(256);\n var iFACTOR = Math.log(256) / Math.log(BASE);\n function encode(source) {\n if (source instanceof Uint8Array);\n else if (ArrayBuffer.isView(source)) {\n source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength);\n } else if (Array.isArray(source)) {\n source = Uint8Array.from(source);\n }\n if (!(source instanceof Uint8Array)) {\n throw new TypeError('Expected Uint8Array');\n }\n if (source.length === 0) {\n return '';\n }\n var zeroes = 0;\n var length = 0;\n var pbegin = 0;\n var pend = source.length;\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++;\n zeroes++;\n }\n var size = (pend - pbegin) * iFACTOR + 1 >>> 0;\n var b58 = new Uint8Array(size);\n while (pbegin !== pend) {\n var carry = source[pbegin];\n var i = 0;\n for (var it1 = size - 1; (carry !== 0 || i < length) && it1 !== -1; it1--, i++) {\n carry += 256 * b58[it1] >>> 0;\n b58[it1] = carry % BASE >>> 0;\n carry = carry / BASE >>> 0;\n }\n if (carry !== 0) {\n throw new Error('Non-zero carry');\n }\n length = i;\n pbegin++;\n }\n var it2 = size - length;\n while (it2 !== size && b58[it2] === 0) {\n it2++;\n }\n var str = LEADER.repeat(zeroes);\n for (; it2 < size; ++it2) {\n str += ALPHABET.charAt(b58[it2]);\n }\n return str;\n }\n function decodeUnsafe(source) {\n if (typeof source !== 'string') {\n throw new TypeError('Expected String');\n }\n if (source.length === 0) {\n return new Uint8Array();\n }\n var psz = 0;\n if (source[psz] === ' ') {\n return;\n }\n var zeroes = 0;\n var length = 0;\n while (source[psz] === LEADER) {\n zeroes++;\n psz++;\n }\n var size = (source.length - psz) * FACTOR + 1 >>> 0;\n var b256 = new Uint8Array(size);\n while (source[psz]) {\n var carry = BASE_MAP[source.charCodeAt(psz)];\n if (carry === 255) {\n return;\n }\n var i = 0;\n for (var it3 = size - 1; (carry !== 0 || i < length) && it3 !== -1; it3--, i++) {\n carry += BASE * b256[it3] >>> 0;\n b256[it3] = carry % 256 >>> 0;\n carry = carry / 256 >>> 0;\n }\n if (carry !== 0) {\n throw new Error('Non-zero carry');\n }\n length = i;\n psz++;\n }\n if (source[psz] === ' ') {\n return;\n }\n var it4 = size - length;\n while (it4 !== size && b256[it4] === 0) {\n it4++;\n }\n var vch = new Uint8Array(zeroes + (size - it4));\n var j = zeroes;\n while (it4 !== size) {\n vch[j++] = b256[it4++];\n }\n return vch;\n }\n function decode(string) {\n var buffer = decodeUnsafe(string);\n if (buffer) {\n return buffer;\n }\n throw new Error(`Non-${ name } character`);\n }\n return {\n encode: encode,\n decodeUnsafe: decodeUnsafe,\n decode: decode\n };\n}\nvar src = base;\nvar _brrp__multiformats_scope_baseX = src;\nexport default _brrp__multiformats_scope_baseX;","const empty = new Uint8Array(0);\nconst toHex = d => d.reduce((hex, byte) => hex + byte.toString(16).padStart(2, '0'), '');\nconst fromHex = hex => {\n const hexes = hex.match(/../g);\n return hexes ? new Uint8Array(hexes.map(b => parseInt(b, 16))) : empty;\n};\nconst equals = (aa, bb) => {\n if (aa === bb)\n return true;\n if (aa.byteLength !== bb.byteLength) {\n return false;\n }\n for (let ii = 0; ii < aa.byteLength; ii++) {\n if (aa[ii] !== bb[ii]) {\n return false;\n }\n }\n return true;\n};\nconst coerce = o => {\n if (o instanceof Uint8Array && o.constructor.name === 'Uint8Array')\n return o;\n if (o instanceof ArrayBuffer)\n return new Uint8Array(o);\n if (ArrayBuffer.isView(o)) {\n return new Uint8Array(o.buffer, o.byteOffset, o.byteLength);\n }\n throw new Error('Unknown type, must be binary type');\n};\nconst isBinary = o => o instanceof ArrayBuffer || ArrayBuffer.isView(o);\nconst fromString = str => new TextEncoder().encode(str);\nconst toString = b => new TextDecoder().decode(b);\nexport {\n equals,\n coerce,\n isBinary,\n fromHex,\n toHex,\n fromString,\n toString,\n empty\n};","import basex from '../../vendor/base-x.js';\nimport { coerce } from '../bytes.js';\nclass Encoder {\n constructor(name, prefix, baseEncode) {\n this.name = name;\n this.prefix = prefix;\n this.baseEncode = baseEncode;\n }\n encode(bytes) {\n if (bytes instanceof Uint8Array) {\n return `${ this.prefix }${ this.baseEncode(bytes) }`;\n } else {\n throw Error('Unknown type, must be binary type');\n }\n }\n}\nclass Decoder {\n constructor(name, prefix, baseDecode) {\n this.name = name;\n this.prefix = prefix;\n if (prefix.codePointAt(0) === undefined) {\n throw new Error('Invalid prefix character');\n }\n this.prefixCodePoint = prefix.codePointAt(0);\n this.baseDecode = baseDecode;\n }\n decode(text) {\n if (typeof text === 'string') {\n if (text.codePointAt(0) !== this.prefixCodePoint) {\n throw Error(`Unable to decode multibase string ${ JSON.stringify(text) }, ${ this.name } decoder only supports inputs prefixed with ${ this.prefix }`);\n }\n return this.baseDecode(text.slice(this.prefix.length));\n } else {\n throw Error('Can only multibase decode strings');\n }\n }\n or(decoder) {\n return or(this, decoder);\n }\n}\nclass ComposedDecoder {\n constructor(decoders) {\n this.decoders = decoders;\n }\n or(decoder) {\n return or(this, decoder);\n }\n decode(input) {\n const prefix = input[0];\n const decoder = this.decoders[prefix];\n if (decoder) {\n return decoder.decode(input);\n } else {\n throw RangeError(`Unable to decode multibase string ${ JSON.stringify(input) }, only inputs prefixed with ${ Object.keys(this.decoders) } are supported`);\n }\n }\n}\nexport const or = (left, right) => new ComposedDecoder({\n ...left.decoders || { [left.prefix]: left },\n ...right.decoders || { [right.prefix]: right }\n});\nexport class Codec {\n constructor(name, prefix, baseEncode, baseDecode) {\n this.name = name;\n this.prefix = prefix;\n this.baseEncode = baseEncode;\n this.baseDecode = baseDecode;\n this.encoder = new Encoder(name, prefix, baseEncode);\n this.decoder = new Decoder(name, prefix, baseDecode);\n }\n encode(input) {\n return this.encoder.encode(input);\n }\n decode(input) {\n return this.decoder.decode(input);\n }\n}\nexport const from = ({name, prefix, encode, decode}) => new Codec(name, prefix, encode, decode);\nexport const baseX = ({prefix, name, alphabet}) => {\n const {encode, decode} = basex(alphabet, name);\n return from({\n prefix,\n name,\n encode,\n decode: text => coerce(decode(text))\n });\n};\nconst decode = (string, alphabet, bitsPerChar, name) => {\n const codes = {};\n for (let i = 0; i < alphabet.length; ++i) {\n codes[alphabet[i]] = i;\n }\n let end = string.length;\n while (string[end - 1] === '=') {\n --end;\n }\n const out = new Uint8Array(end * bitsPerChar / 8 | 0);\n let bits = 0;\n let buffer = 0;\n let written = 0;\n for (let i = 0; i < end; ++i) {\n const value = codes[string[i]];\n if (value === undefined) {\n throw new SyntaxError(`Non-${ name } character`);\n }\n buffer = buffer << bitsPerChar | value;\n bits += bitsPerChar;\n if (bits >= 8) {\n bits -= 8;\n out[written++] = 255 & buffer >> bits;\n }\n }\n if (bits >= bitsPerChar || 255 & buffer << 8 - bits) {\n throw new SyntaxError('Unexpected end of data');\n }\n return out;\n};\nconst encode = (data, alphabet, bitsPerChar) => {\n const pad = alphabet[alphabet.length - 1] === '=';\n const mask = (1 << bitsPerChar) - 1;\n let out = '';\n let bits = 0;\n let buffer = 0;\n for (let i = 0; i < data.length; ++i) {\n buffer = buffer << 8 | data[i];\n bits += 8;\n while (bits > bitsPerChar) {\n bits -= bitsPerChar;\n out += alphabet[mask & buffer >> bits];\n }\n }\n if (bits) {\n out += alphabet[mask & buffer << bitsPerChar - bits];\n }\n if (pad) {\n while (out.length * bitsPerChar & 7) {\n out += '=';\n }\n }\n return out;\n};\nexport const rfc4648 = ({name, prefix, bitsPerChar, alphabet}) => {\n return from({\n prefix,\n name,\n encode(input) {\n return encode(input, alphabet, bitsPerChar);\n },\n decode(input) {\n return decode(input, alphabet, bitsPerChar, name);\n }\n });\n};","import { from } from './base.js';\nimport {\n fromString,\n toString\n} from '../bytes.js';\nexport const identity = from({\n prefix: '\\0',\n name: 'identity',\n encode: buf => toString(buf),\n decode: str => fromString(str)\n});","import { rfc4648 } from './base.js';\nexport const base2 = rfc4648({\n prefix: '0',\n name: 'base2',\n alphabet: '01',\n bitsPerChar: 1\n});","import { rfc4648 } from './base.js';\nexport const base8 = rfc4648({\n prefix: '7',\n name: 'base8',\n alphabet: '01234567',\n bitsPerChar: 3\n});","import { baseX } from './base.js';\nexport const base10 = baseX({\n prefix: '9',\n name: 'base10',\n alphabet: '0123456789'\n});","import { rfc4648 } from './base.js';\nexport const base16 = rfc4648({\n prefix: 'f',\n name: 'base16',\n alphabet: '0123456789abcdef',\n bitsPerChar: 4\n});\nexport const base16upper = rfc4648({\n prefix: 'F',\n name: 'base16upper',\n alphabet: '0123456789ABCDEF',\n bitsPerChar: 4\n});","import { rfc4648 } from './base.js';\nexport const base32 = rfc4648({\n prefix: 'b',\n name: 'base32',\n alphabet: 'abcdefghijklmnopqrstuvwxyz234567',\n bitsPerChar: 5\n});\nexport const base32upper = rfc4648({\n prefix: 'B',\n name: 'base32upper',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567',\n bitsPerChar: 5\n});\nexport const base32pad = rfc4648({\n prefix: 'c',\n name: 'base32pad',\n alphabet: 'abcdefghijklmnopqrstuvwxyz234567=',\n bitsPerChar: 5\n});\nexport const base32padupper = rfc4648({\n prefix: 'C',\n name: 'base32padupper',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=',\n bitsPerChar: 5\n});\nexport const base32hex = rfc4648({\n prefix: 'v',\n name: 'base32hex',\n alphabet: '0123456789abcdefghijklmnopqrstuv',\n bitsPerChar: 5\n});\nexport const base32hexupper = rfc4648({\n prefix: 'V',\n name: 'base32hexupper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUV',\n bitsPerChar: 5\n});\nexport const base32hexpad = rfc4648({\n prefix: 't',\n name: 'base32hexpad',\n alphabet: '0123456789abcdefghijklmnopqrstuv=',\n bitsPerChar: 5\n});\nexport const base32hexpadupper = rfc4648({\n prefix: 'T',\n name: 'base32hexpadupper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUV=',\n bitsPerChar: 5\n});\nexport const base32z = rfc4648({\n prefix: 'h',\n name: 'base32z',\n alphabet: 'ybndrfg8ejkmcpqxot1uwisza345h769',\n bitsPerChar: 5\n});","import { baseX } from './base.js';\nexport const base36 = baseX({\n prefix: 'k',\n name: 'base36',\n alphabet: '0123456789abcdefghijklmnopqrstuvwxyz'\n});\nexport const base36upper = baseX({\n prefix: 'K',\n name: 'base36upper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'\n});","import { baseX } from './base.js';\nexport const base58btc = baseX({\n name: 'base58btc',\n prefix: 'z',\n alphabet: '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n});\nexport const base58flickr = baseX({\n name: 'base58flickr',\n prefix: 'Z',\n alphabet: '123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ'\n});","import { rfc4648 } from './base.js';\nexport const base64 = rfc4648({\n prefix: 'm',\n name: 'base64',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n bitsPerChar: 6\n});\nexport const base64pad = rfc4648({\n prefix: 'M',\n name: 'base64pad',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',\n bitsPerChar: 6\n});\nexport const base64url = rfc4648({\n prefix: 'u',\n name: 'base64url',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_',\n bitsPerChar: 6\n});\nexport const base64urlpad = rfc4648({\n prefix: 'U',\n name: 'base64urlpad',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=',\n bitsPerChar: 6\n});","import { from } from './base.js';\nconst alphabet = Array.from('\\uD83D\\uDE80\\uD83E\\uDE90\\u2604\\uD83D\\uDEF0\\uD83C\\uDF0C\\uD83C\\uDF11\\uD83C\\uDF12\\uD83C\\uDF13\\uD83C\\uDF14\\uD83C\\uDF15\\uD83C\\uDF16\\uD83C\\uDF17\\uD83C\\uDF18\\uD83C\\uDF0D\\uD83C\\uDF0F\\uD83C\\uDF0E\\uD83D\\uDC09\\u2600\\uD83D\\uDCBB\\uD83D\\uDDA5\\uD83D\\uDCBE\\uD83D\\uDCBF\\uD83D\\uDE02\\u2764\\uD83D\\uDE0D\\uD83E\\uDD23\\uD83D\\uDE0A\\uD83D\\uDE4F\\uD83D\\uDC95\\uD83D\\uDE2D\\uD83D\\uDE18\\uD83D\\uDC4D\\uD83D\\uDE05\\uD83D\\uDC4F\\uD83D\\uDE01\\uD83D\\uDD25\\uD83E\\uDD70\\uD83D\\uDC94\\uD83D\\uDC96\\uD83D\\uDC99\\uD83D\\uDE22\\uD83E\\uDD14\\uD83D\\uDE06\\uD83D\\uDE44\\uD83D\\uDCAA\\uD83D\\uDE09\\u263A\\uD83D\\uDC4C\\uD83E\\uDD17\\uD83D\\uDC9C\\uD83D\\uDE14\\uD83D\\uDE0E\\uD83D\\uDE07\\uD83C\\uDF39\\uD83E\\uDD26\\uD83C\\uDF89\\uD83D\\uDC9E\\u270C\\u2728\\uD83E\\uDD37\\uD83D\\uDE31\\uD83D\\uDE0C\\uD83C\\uDF38\\uD83D\\uDE4C\\uD83D\\uDE0B\\uD83D\\uDC97\\uD83D\\uDC9A\\uD83D\\uDE0F\\uD83D\\uDC9B\\uD83D\\uDE42\\uD83D\\uDC93\\uD83E\\uDD29\\uD83D\\uDE04\\uD83D\\uDE00\\uD83D\\uDDA4\\uD83D\\uDE03\\uD83D\\uDCAF\\uD83D\\uDE48\\uD83D\\uDC47\\uD83C\\uDFB6\\uD83D\\uDE12\\uD83E\\uDD2D\\u2763\\uD83D\\uDE1C\\uD83D\\uDC8B\\uD83D\\uDC40\\uD83D\\uDE2A\\uD83D\\uDE11\\uD83D\\uDCA5\\uD83D\\uDE4B\\uD83D\\uDE1E\\uD83D\\uDE29\\uD83D\\uDE21\\uD83E\\uDD2A\\uD83D\\uDC4A\\uD83E\\uDD73\\uD83D\\uDE25\\uD83E\\uDD24\\uD83D\\uDC49\\uD83D\\uDC83\\uD83D\\uDE33\\u270B\\uD83D\\uDE1A\\uD83D\\uDE1D\\uD83D\\uDE34\\uD83C\\uDF1F\\uD83D\\uDE2C\\uD83D\\uDE43\\uD83C\\uDF40\\uD83C\\uDF37\\uD83D\\uDE3B\\uD83D\\uDE13\\u2B50\\u2705\\uD83E\\uDD7A\\uD83C\\uDF08\\uD83D\\uDE08\\uD83E\\uDD18\\uD83D\\uDCA6\\u2714\\uD83D\\uDE23\\uD83C\\uDFC3\\uD83D\\uDC90\\u2639\\uD83C\\uDF8A\\uD83D\\uDC98\\uD83D\\uDE20\\u261D\\uD83D\\uDE15\\uD83C\\uDF3A\\uD83C\\uDF82\\uD83C\\uDF3B\\uD83D\\uDE10\\uD83D\\uDD95\\uD83D\\uDC9D\\uD83D\\uDE4A\\uD83D\\uDE39\\uD83D\\uDDE3\\uD83D\\uDCAB\\uD83D\\uDC80\\uD83D\\uDC51\\uD83C\\uDFB5\\uD83E\\uDD1E\\uD83D\\uDE1B\\uD83D\\uDD34\\uD83D\\uDE24\\uD83C\\uDF3C\\uD83D\\uDE2B\\u26BD\\uD83E\\uDD19\\u2615\\uD83C\\uDFC6\\uD83E\\uDD2B\\uD83D\\uDC48\\uD83D\\uDE2E\\uD83D\\uDE46\\uD83C\\uDF7B\\uD83C\\uDF43\\uD83D\\uDC36\\uD83D\\uDC81\\uD83D\\uDE32\\uD83C\\uDF3F\\uD83E\\uDDE1\\uD83C\\uDF81\\u26A1\\uD83C\\uDF1E\\uD83C\\uDF88\\u274C\\u270A\\uD83D\\uDC4B\\uD83D\\uDE30\\uD83E\\uDD28\\uD83D\\uDE36\\uD83E\\uDD1D\\uD83D\\uDEB6\\uD83D\\uDCB0\\uD83C\\uDF53\\uD83D\\uDCA2\\uD83E\\uDD1F\\uD83D\\uDE41\\uD83D\\uDEA8\\uD83D\\uDCA8\\uD83E\\uDD2C\\u2708\\uD83C\\uDF80\\uD83C\\uDF7A\\uD83E\\uDD13\\uD83D\\uDE19\\uD83D\\uDC9F\\uD83C\\uDF31\\uD83D\\uDE16\\uD83D\\uDC76\\uD83E\\uDD74\\u25B6\\u27A1\\u2753\\uD83D\\uDC8E\\uD83D\\uDCB8\\u2B07\\uD83D\\uDE28\\uD83C\\uDF1A\\uD83E\\uDD8B\\uD83D\\uDE37\\uD83D\\uDD7A\\u26A0\\uD83D\\uDE45\\uD83D\\uDE1F\\uD83D\\uDE35\\uD83D\\uDC4E\\uD83E\\uDD32\\uD83E\\uDD20\\uD83E\\uDD27\\uD83D\\uDCCC\\uD83D\\uDD35\\uD83D\\uDC85\\uD83E\\uDDD0\\uD83D\\uDC3E\\uD83C\\uDF52\\uD83D\\uDE17\\uD83E\\uDD11\\uD83C\\uDF0A\\uD83E\\uDD2F\\uD83D\\uDC37\\u260E\\uD83D\\uDCA7\\uD83D\\uDE2F\\uD83D\\uDC86\\uD83D\\uDC46\\uD83C\\uDFA4\\uD83D\\uDE47\\uD83C\\uDF51\\u2744\\uD83C\\uDF34\\uD83D\\uDCA3\\uD83D\\uDC38\\uD83D\\uDC8C\\uD83D\\uDCCD\\uD83E\\uDD40\\uD83E\\uDD22\\uD83D\\uDC45\\uD83D\\uDCA1\\uD83D\\uDCA9\\uD83D\\uDC50\\uD83D\\uDCF8\\uD83D\\uDC7B\\uD83E\\uDD10\\uD83E\\uDD2E\\uD83C\\uDFBC\\uD83E\\uDD75\\uD83D\\uDEA9\\uD83C\\uDF4E\\uD83C\\uDF4A\\uD83D\\uDC7C\\uD83D\\uDC8D\\uD83D\\uDCE3\\uD83E\\uDD42');\nconst alphabetBytesToChars = alphabet.reduce((p, c, i) => {\n p[i] = c;\n return p;\n}, []);\nconst alphabetCharsToBytes = alphabet.reduce((p, c, i) => {\n p[c.codePointAt(0)] = i;\n return p;\n}, []);\nfunction encode(data) {\n return data.reduce((p, c) => {\n p += alphabetBytesToChars[c];\n return p;\n }, '');\n}\nfunction decode(str) {\n const byts = [];\n for (const char of str) {\n const byt = alphabetCharsToBytes[char.codePointAt(0)];\n if (byt === undefined) {\n throw new Error(`Non-base256emoji character: ${ char }`);\n }\n byts.push(byt);\n }\n return new Uint8Array(byts);\n}\nexport const base256emoji = from({\n prefix: '\\uD83D\\uDE80',\n name: 'base256emoji',\n encode,\n decode\n});","const textEncoder = new TextEncoder();\nconst textDecoder = new TextDecoder();\nexport const name = 'json';\nexport const code = 512;\nexport const encode = node => textEncoder.encode(JSON.stringify(node));\nexport const decode = data => JSON.parse(textDecoder.decode(data));","import * as identityBase from './bases/identity.js';\nimport * as base2 from './bases/base2.js';\nimport * as base8 from './bases/base8.js';\nimport * as base10 from './bases/base10.js';\nimport * as base16 from './bases/base16.js';\nimport * as base32 from './bases/base32.js';\nimport * as base36 from './bases/base36.js';\nimport * as base58 from './bases/base58.js';\nimport * as base64 from './bases/base64.js';\nimport * as base256emoji from './bases/base256emoji.js';\nimport * as sha2 from './hashes/sha2.js';\nimport * as identity from './hashes/identity.js';\nimport * as raw from './codecs/raw.js';\nimport * as json from './codecs/json.js';\nimport {\n CID,\n hasher,\n digest,\n varint,\n bytes\n} from './index.js';\nconst bases = {\n ...identityBase,\n ...base2,\n ...base8,\n ...base10,\n ...base16,\n ...base32,\n ...base36,\n ...base58,\n ...base64,\n ...base256emoji\n};\nconst hashes = {\n ...sha2,\n ...identity\n};\nconst codecs = {\n raw,\n json\n};\nexport {\n CID,\n hasher,\n digest,\n varint,\n bytes,\n hashes,\n bases,\n codecs\n};","import { bases } from 'multiformats/basics';\nimport { allocUnsafe } from '../alloc.js';\nfunction createCodec(name, prefix, encode, decode) {\n return {\n name,\n prefix,\n encoder: {\n name,\n prefix,\n encode\n },\n decoder: { decode }\n };\n}\nconst string = createCodec('utf8', 'u', buf => {\n const decoder = new TextDecoder('utf8');\n return 'u' + decoder.decode(buf);\n}, str => {\n const encoder = new TextEncoder();\n return encoder.encode(str.substring(1));\n});\nconst ascii = createCodec('ascii', 'a', buf => {\n let string = 'a';\n for (let i = 0; i < buf.length; i++) {\n string += String.fromCharCode(buf[i]);\n }\n return string;\n}, str => {\n str = str.substring(1);\n const buf = allocUnsafe(str.length);\n for (let i = 0; i < str.length; i++) {\n buf[i] = str.charCodeAt(i);\n }\n return buf;\n});\nconst BASES = {\n utf8: string,\n 'utf-8': string,\n hex: bases.base16,\n latin1: ascii,\n ascii: ascii,\n binary: ascii,\n ...bases\n};\nexport default BASES;","import bases from './util/bases.js';\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 globalThis.Buffer.from(string, 'utf8');\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}","const suspectProtoRx = /\"(?:_|\\\\u0{2}5[Ff]){2}(?:p|\\\\u0{2}70)(?:r|\\\\u0{2}72)(?:o|\\\\u0{2}6[Ff])(?:t|\\\\u0{2}74)(?:o|\\\\u0{2}6[Ff])(?:_|\\\\u0{2}5[Ff]){2}\"\\s*:/;\nconst suspectConstructorRx = /\"(?:c|\\\\u0063)(?:o|\\\\u006[Ff])(?:n|\\\\u006[Ee])(?:s|\\\\u0073)(?:t|\\\\u0074)(?:r|\\\\u0072)(?:u|\\\\u0075)(?:c|\\\\u0063)(?:t|\\\\u0074)(?:o|\\\\u006[Ff])(?:r|\\\\u0072)\"\\s*:/;\nconst JsonSigRx = /^\\s*[\"[{]|^\\s*-?\\d{1,16}(\\.\\d{1,17})?([Ee][+-]?\\d+)?\\s*$/;\nfunction jsonParseTransform(key, value) {\n if (key === \"__proto__\" || key === \"constructor\" && value && typeof value === \"object\" && \"prototype\" in value) {\n warnKeyDropped(key);\n return;\n }\n return value;\n}\nfunction warnKeyDropped(key) {\n console.warn(`[destr] Dropping \"${key}\" key to prevent prototype pollution.`);\n}\nfunction destr(value, options = {}) {\n if (typeof value !== \"string\") {\n return value;\n }\n const _value = value.trim();\n if (\n // eslint-disable-next-line unicorn/prefer-at\n value[0] === '\"' && value.endsWith('\"') && !value.includes(\"\\\\\")\n ) {\n return _value.slice(1, -1);\n }\n if (_value.length <= 9) {\n const _lval = _value.toLowerCase();\n if (_lval === \"true\") {\n return true;\n }\n if (_lval === \"false\") {\n return false;\n }\n if (_lval === \"undefined\") {\n return void 0;\n }\n if (_lval === \"null\") {\n return null;\n }\n if (_lval === \"nan\") {\n return Number.NaN;\n }\n if (_lval === \"infinity\") {\n return Number.POSITIVE_INFINITY;\n }\n if (_lval === \"-infinity\") {\n return Number.NEGATIVE_INFINITY;\n }\n }\n if (!JsonSigRx.test(value)) {\n if (options.strict) {\n throw new SyntaxError(\"[destr] Invalid JSON\");\n }\n return value;\n }\n try {\n if (suspectProtoRx.test(value) || suspectConstructorRx.test(value)) {\n if (options.strict) {\n throw new Error(\"[destr] Possible prototype pollution\");\n }\n return JSON.parse(value, jsonParseTransform);\n }\n return JSON.parse(value);\n } catch (error) {\n if (options.strict) {\n throw error;\n }\n return value;\n }\n}\nfunction safeDestr(value, options = {}) {\n return destr(value, { ...options, strict: true });\n}\n\nexport { destr as default, destr, safeDestr };\n","function promisifyRequest(request) {\n return new Promise((resolve, reject) => {\n // @ts-ignore - file size hacks\n request.oncomplete = request.onsuccess = () => resolve(request.result);\n // @ts-ignore - file size hacks\n request.onabort = request.onerror = () => reject(request.error);\n });\n}\nfunction createStore(dbName, storeName) {\n const request = indexedDB.open(dbName);\n request.onupgradeneeded = () => request.result.createObjectStore(storeName);\n const dbp = promisifyRequest(request);\n return (txMode, callback) => dbp.then((db) => callback(db.transaction(storeName, txMode).objectStore(storeName)));\n}\nlet defaultGetStoreFunc;\nfunction defaultGetStore() {\n if (!defaultGetStoreFunc) {\n defaultGetStoreFunc = createStore('keyval-store', 'keyval');\n }\n return defaultGetStoreFunc;\n}\n/**\n * Get a value by its key.\n *\n * @param key\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction get(key, customStore = defaultGetStore()) {\n return customStore('readonly', (store) => promisifyRequest(store.get(key)));\n}\n/**\n * Set a value with a key.\n *\n * @param key\n * @param value\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction set(key, value, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n store.put(value, key);\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Set multiple values at once. This is faster than calling set() multiple times.\n * It's also atomic – if one of the pairs can't be added, none will be added.\n *\n * @param entries Array of entries, where each entry is an array of `[key, value]`.\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction setMany(entries, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n entries.forEach((entry) => store.put(entry[1], entry[0]));\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Get multiple values by their keys\n *\n * @param keys\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction getMany(keys, customStore = defaultGetStore()) {\n return customStore('readonly', (store) => Promise.all(keys.map((key) => promisifyRequest(store.get(key)))));\n}\n/**\n * Update a value. This lets you see the old value and update it as an atomic operation.\n *\n * @param key\n * @param updater A callback that takes the old value and returns a new value.\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction update(key, updater, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => \n // Need to create the promise manually.\n // If I try to chain promises, the transaction closes in browsers\n // that use a promise polyfill (IE10/11).\n new Promise((resolve, reject) => {\n store.get(key).onsuccess = function () {\n try {\n store.put(updater(this.result), key);\n resolve(promisifyRequest(store.transaction));\n }\n catch (err) {\n reject(err);\n }\n };\n }));\n}\n/**\n * Delete a particular key from the store.\n *\n * @param key\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction del(key, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n store.delete(key);\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Delete multiple keys at once.\n *\n * @param keys List of keys to delete.\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction delMany(keys, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n keys.forEach((key) => store.delete(key));\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Clear all values in the store.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction clear(customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n store.clear();\n return promisifyRequest(store.transaction);\n });\n}\nfunction eachCursor(store, callback) {\n store.openCursor().onsuccess = function () {\n if (!this.result)\n return;\n callback(this.result);\n this.result.continue();\n };\n return promisifyRequest(store.transaction);\n}\n/**\n * Get all keys in the store.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction keys(customStore = defaultGetStore()) {\n return customStore('readonly', (store) => {\n // Fast path for modern browsers\n if (store.getAllKeys) {\n return promisifyRequest(store.getAllKeys());\n }\n const items = [];\n return eachCursor(store, (cursor) => items.push(cursor.key)).then(() => items);\n });\n}\n/**\n * Get all values in the store.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction values(customStore = defaultGetStore()) {\n return customStore('readonly', (store) => {\n // Fast path for modern browsers\n if (store.getAll) {\n return promisifyRequest(store.getAll());\n }\n const items = [];\n return eachCursor(store, (cursor) => items.push(cursor.value)).then(() => items);\n });\n}\n/**\n * Get all entries in the store. Each entry is an array of `[key, value]`.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction entries(customStore = defaultGetStore()) {\n return customStore('readonly', (store) => {\n // Fast path for modern browsers\n // (although, hopefully we'll get a simpler path some day)\n if (store.getAll && store.getAllKeys) {\n return Promise.all([\n promisifyRequest(store.getAllKeys()),\n promisifyRequest(store.getAll()),\n ]).then(([keys, values]) => keys.map((key, i) => [key, values[i]]));\n }\n const items = [];\n return customStore('readonly', (store) => eachCursor(store, (cursor) => items.push([cursor.key, cursor.value])).then(() => items));\n });\n}\n\nexport { clear, createStore, del, delMany, entries, get, getMany, keys, promisifyRequest, set, setMany, update, values };\n","const JSONStringify = data => JSON.stringify(data, (_, value) => typeof value === \"bigint\" ? value.toString() + \"n\" : value);\nconst JSONParse = json => {\n const numbersBiggerThanMaxInt = /([\\[:])?(\\d{17,}|(?:[9](?:[1-9]07199254740991|0[1-9]7199254740991|00[8-9]199254740991|007[2-9]99254740991|007199[3-9]54740991|0071992[6-9]4740991|00719925[5-9]740991|007199254[8-9]40991|0071992547[5-9]0991|00719925474[1-9]991|00719925474099[2-9])))([,\\}\\]])/g;\n const serializedData = json.replace(numbersBiggerThanMaxInt, \"$1\\\"$2n\\\"$3\");\n return JSON.parse(serializedData, (_, value) => {\n const isCustomFormatBigInt = typeof value === \"string\" && value.match(/^\\d+n$/);\n if (isCustomFormatBigInt)\n return BigInt(value.substring(0, value.length - 1));\n return value;\n });\n};\nexport function safeJsonParse(value) {\n if (typeof value !== \"string\") {\n throw new Error(`Cannot safe json parse value of type ${typeof value}`);\n }\n try {\n return JSONParse(value);\n }\n catch (_a) {\n return value;\n }\n}\nexport function safeJsonStringify(value) {\n return typeof value === \"string\" ? value : JSONStringify(value) || \"\";\n}\n//# sourceMappingURL=index.js.map","export class IEvents {\n}\n//# sourceMappingURL=events.js.map","import{EventEmitter as a}from\"events\";import{FIVE_SECONDS as o,toMiliseconds as l}from\"@walletconnect/time\";import{IEvents as v}from\"@walletconnect/events\";class n extends v{constructor(e){super()}}const s=o,r={pulse:\"heartbeat_pulse\"};class i extends n{constructor(e){super(e),this.events=new a,this.interval=s,this.interval=e?.interval||s}static async init(e){const t=new i(e);return await t.init(),t}async init(){await this.initialize()}stop(){clearInterval(this.intervalRef)}on(e,t){this.events.on(e,t)}once(e,t){this.events.once(e,t)}off(e,t){this.events.off(e,t)}removeListener(e,t){this.events.removeListener(e,t)}async initialize(){this.intervalRef=setInterval(()=>this.pulse(),l(this.interval))}pulse(){this.events.emit(r.pulse)}}export{r as HEARTBEAT_EVENTS,s as HEARTBEAT_INTERVAL,i as HeartBeat,n as IHeartBeat};\n//# sourceMappingURL=index.es.js.map\n","'use strict'\nfunction tryStringify (o) {\n try { return JSON.stringify(o) } catch(e) { return '\"[Circular]\"' }\n}\n\nmodule.exports = format\n\nfunction format(f, args, opts) {\n var ss = (opts && opts.stringify) || tryStringify\n var offset = 1\n if (typeof f === 'object' && f !== null) {\n var len = args.length + offset\n if (len === 1) return f\n var objects = new Array(len)\n objects[0] = ss(f)\n for (var index = 1; index < len; index++) {\n objects[index] = ss(args[index])\n }\n return objects.join(' ')\n }\n if (typeof f !== 'string') {\n return f\n }\n var argLen = args.length\n if (argLen === 0) return f\n var str = ''\n var a = 1 - offset\n var lastPos = -1\n var flen = (f && f.length) || 0\n for (var i = 0; i < flen;) {\n if (f.charCodeAt(i) === 37 && i + 1 < flen) {\n lastPos = lastPos > -1 ? lastPos : 0\n switch (f.charCodeAt(i + 1)) {\n case 100: // 'd'\n case 102: // 'f'\n if (a >= argLen)\n break\n if (args[a] == null) break\n if (lastPos < i)\n str += f.slice(lastPos, i)\n str += Number(args[a])\n lastPos = i + 2\n i++\n break\n case 105: // 'i'\n if (a >= argLen)\n break\n if (args[a] == null) break\n if (lastPos < i)\n str += f.slice(lastPos, i)\n str += Math.floor(Number(args[a]))\n lastPos = i + 2\n i++\n break\n case 79: // 'O'\n case 111: // 'o'\n case 106: // 'j'\n if (a >= argLen)\n break\n if (args[a] === undefined) break\n if (lastPos < i)\n str += f.slice(lastPos, i)\n var type = typeof args[a]\n if (type === 'string') {\n str += '\\'' + args[a] + '\\''\n lastPos = i + 2\n i++\n break\n }\n if (type === 'function') {\n str += args[a].name || ''\n lastPos = i + 2\n i++\n break\n }\n str += ss(args[a])\n lastPos = i + 2\n i++\n break\n case 115: // 's'\n if (a >= argLen)\n break\n if (lastPos < i)\n str += f.slice(lastPos, i)\n str += String(args[a])\n lastPos = i + 2\n i++\n break\n case 37: // '%'\n if (lastPos < i)\n str += f.slice(lastPos, i)\n str += '%'\n lastPos = i + 2\n i++\n a--\n break\n }\n ++a\n }\n ++i\n }\n if (lastPos === -1)\n return f\n else if (lastPos < flen) {\n str += f.slice(lastPos)\n }\n\n return str\n}\n","'use strict'\n\nconst format = require('quick-format-unescaped')\n\nmodule.exports = pino\n\nconst _console = pfGlobalThisOrFallback().console || {}\nconst stdSerializers = {\n mapHttpRequest: mock,\n mapHttpResponse: mock,\n wrapRequestSerializer: passthrough,\n wrapResponseSerializer: passthrough,\n wrapErrorSerializer: passthrough,\n req: mock,\n res: mock,\n err: asErrValue\n}\n\nfunction shouldSerialize (serialize, serializers) {\n if (Array.isArray(serialize)) {\n const hasToFilter = serialize.filter(function (k) {\n return k !== '!stdSerializers.err'\n })\n return hasToFilter\n } else if (serialize === true) {\n return Object.keys(serializers)\n }\n\n return false\n}\n\nfunction pino (opts) {\n opts = opts || {}\n opts.browser = opts.browser || {}\n\n const transmit = opts.browser.transmit\n if (transmit && typeof transmit.send !== 'function') { throw Error('pino: transmit option must have a send function') }\n\n const proto = opts.browser.write || _console\n if (opts.browser.write) opts.browser.asObject = true\n const serializers = opts.serializers || {}\n const serialize = shouldSerialize(opts.browser.serialize, serializers)\n let stdErrSerialize = opts.browser.serialize\n\n if (\n Array.isArray(opts.browser.serialize) &&\n opts.browser.serialize.indexOf('!stdSerializers.err') > -1\n ) stdErrSerialize = false\n\n const levels = ['error', 'fatal', 'warn', 'info', 'debug', 'trace']\n\n if (typeof proto === 'function') {\n proto.error = proto.fatal = proto.warn =\n proto.info = proto.debug = proto.trace = proto\n }\n if (opts.enabled === false) opts.level = 'silent'\n const level = opts.level || 'info'\n const logger = Object.create(proto)\n if (!logger.log) logger.log = noop\n\n Object.defineProperty(logger, 'levelVal', {\n get: getLevelVal\n })\n Object.defineProperty(logger, 'level', {\n get: getLevel,\n set: setLevel\n })\n\n const setOpts = {\n transmit,\n serialize,\n asObject: opts.browser.asObject,\n levels,\n timestamp: getTimeFunction(opts)\n }\n logger.levels = pino.levels\n logger.level = level\n\n logger.setMaxListeners = logger.getMaxListeners =\n logger.emit = logger.addListener = logger.on =\n logger.prependListener = logger.once =\n logger.prependOnceListener = logger.removeListener =\n logger.removeAllListeners = logger.listeners =\n logger.listenerCount = logger.eventNames =\n logger.write = logger.flush = noop\n logger.serializers = serializers\n logger._serialize = serialize\n logger._stdErrSerialize = stdErrSerialize\n logger.child = child\n\n if (transmit) logger._logEvent = createLogEventShape()\n\n function getLevelVal () {\n return this.level === 'silent'\n ? Infinity\n : this.levels.values[this.level]\n }\n\n function getLevel () {\n return this._level\n }\n function setLevel (level) {\n if (level !== 'silent' && !this.levels.values[level]) {\n throw Error('unknown level ' + level)\n }\n this._level = level\n\n set(setOpts, logger, 'error', 'log') // <-- must stay first\n set(setOpts, logger, 'fatal', 'error')\n set(setOpts, logger, 'warn', 'error')\n set(setOpts, logger, 'info', 'log')\n set(setOpts, logger, 'debug', 'log')\n set(setOpts, logger, 'trace', 'log')\n }\n\n function child (bindings, childOptions) {\n if (!bindings) {\n throw new Error('missing bindings for child Pino')\n }\n childOptions = childOptions || {}\n if (serialize && bindings.serializers) {\n childOptions.serializers = bindings.serializers\n }\n const childOptionsSerializers = childOptions.serializers\n if (serialize && childOptionsSerializers) {\n var childSerializers = Object.assign({}, serializers, childOptionsSerializers)\n var childSerialize = opts.browser.serialize === true\n ? Object.keys(childSerializers)\n : serialize\n delete bindings.serializers\n applySerializers([bindings], childSerialize, childSerializers, this._stdErrSerialize)\n }\n function Child (parent) {\n this._childLevel = (parent._childLevel | 0) + 1\n this.error = bind(parent, bindings, 'error')\n this.fatal = bind(parent, bindings, 'fatal')\n this.warn = bind(parent, bindings, 'warn')\n this.info = bind(parent, bindings, 'info')\n this.debug = bind(parent, bindings, 'debug')\n this.trace = bind(parent, bindings, 'trace')\n if (childSerializers) {\n this.serializers = childSerializers\n this._serialize = childSerialize\n }\n if (transmit) {\n this._logEvent = createLogEventShape(\n [].concat(parent._logEvent.bindings, bindings)\n )\n }\n }\n Child.prototype = this\n return new Child(this)\n }\n return logger\n}\n\npino.levels = {\n values: {\n fatal: 60,\n error: 50,\n warn: 40,\n info: 30,\n debug: 20,\n trace: 10\n },\n labels: {\n 10: 'trace',\n 20: 'debug',\n 30: 'info',\n 40: 'warn',\n 50: 'error',\n 60: 'fatal'\n }\n}\n\npino.stdSerializers = stdSerializers\npino.stdTimeFunctions = Object.assign({}, { nullTime, epochTime, unixTime, isoTime })\n\nfunction set (opts, logger, level, fallback) {\n const proto = Object.getPrototypeOf(logger)\n logger[level] = logger.levelVal > logger.levels.values[level]\n ? noop\n : (proto[level] ? proto[level] : (_console[level] || _console[fallback] || noop))\n\n wrap(opts, logger, level)\n}\n\nfunction wrap (opts, logger, level) {\n if (!opts.transmit && logger[level] === noop) return\n\n logger[level] = (function (write) {\n return function LOG () {\n const ts = opts.timestamp()\n const args = new Array(arguments.length)\n const proto = (Object.getPrototypeOf && Object.getPrototypeOf(this) === _console) ? _console : this\n for (var i = 0; i < args.length; i++) args[i] = arguments[i]\n\n if (opts.serialize && !opts.asObject) {\n applySerializers(args, this._serialize, this.serializers, this._stdErrSerialize)\n }\n if (opts.asObject) write.call(proto, asObject(this, level, args, ts))\n else write.apply(proto, args)\n\n if (opts.transmit) {\n const transmitLevel = opts.transmit.level || logger.level\n const transmitValue = pino.levels.values[transmitLevel]\n const methodValue = pino.levels.values[level]\n if (methodValue < transmitValue) return\n transmit(this, {\n ts,\n methodLevel: level,\n methodValue,\n transmitLevel,\n transmitValue: pino.levels.values[opts.transmit.level || logger.level],\n send: opts.transmit.send,\n val: logger.levelVal\n }, args)\n }\n }\n })(logger[level])\n}\n\nfunction asObject (logger, level, args, ts) {\n if (logger._serialize) applySerializers(args, logger._serialize, logger.serializers, logger._stdErrSerialize)\n const argsCloned = args.slice()\n let msg = argsCloned[0]\n const o = {}\n if (ts) {\n o.time = ts\n }\n o.level = pino.levels.values[level]\n let lvl = (logger._childLevel | 0) + 1\n if (lvl < 1) lvl = 1\n // deliberate, catching objects, arrays\n if (msg !== null && typeof msg === 'object') {\n while (lvl-- && typeof argsCloned[0] === 'object') {\n Object.assign(o, argsCloned.shift())\n }\n msg = argsCloned.length ? format(argsCloned.shift(), argsCloned) : undefined\n } else if (typeof msg === 'string') msg = format(argsCloned.shift(), argsCloned)\n if (msg !== undefined) o.msg = msg\n return o\n}\n\nfunction applySerializers (args, serialize, serializers, stdErrSerialize) {\n for (const i in args) {\n if (stdErrSerialize && args[i] instanceof Error) {\n args[i] = pino.stdSerializers.err(args[i])\n } else if (typeof args[i] === 'object' && !Array.isArray(args[i])) {\n for (const k in args[i]) {\n if (serialize && serialize.indexOf(k) > -1 && k in serializers) {\n args[i][k] = serializers[k](args[i][k])\n }\n }\n }\n }\n}\n\nfunction bind (parent, bindings, level) {\n return function () {\n const args = new Array(1 + arguments.length)\n args[0] = bindings\n for (var i = 1; i < args.length; i++) {\n args[i] = arguments[i - 1]\n }\n return parent[level].apply(this, args)\n }\n}\n\nfunction transmit (logger, opts, args) {\n const send = opts.send\n const ts = opts.ts\n const methodLevel = opts.methodLevel\n const methodValue = opts.methodValue\n const val = opts.val\n const bindings = logger._logEvent.bindings\n\n applySerializers(\n args,\n logger._serialize || Object.keys(logger.serializers),\n logger.serializers,\n logger._stdErrSerialize === undefined ? true : logger._stdErrSerialize\n )\n logger._logEvent.ts = ts\n logger._logEvent.messages = args.filter(function (arg) {\n // bindings can only be objects, so reference equality check via indexOf is fine\n return bindings.indexOf(arg) === -1\n })\n\n logger._logEvent.level.label = methodLevel\n logger._logEvent.level.value = methodValue\n\n send(methodLevel, logger._logEvent, val)\n\n logger._logEvent = createLogEventShape(bindings)\n}\n\nfunction createLogEventShape (bindings) {\n return {\n ts: 0,\n messages: [],\n bindings: bindings || [],\n level: { label: '', value: 0 }\n }\n}\n\nfunction asErrValue (err) {\n const obj = {\n type: err.constructor.name,\n msg: err.message,\n stack: err.stack\n }\n for (const key in err) {\n if (obj[key] === undefined) {\n obj[key] = err[key]\n }\n }\n return obj\n}\n\nfunction getTimeFunction (opts) {\n if (typeof opts.timestamp === 'function') {\n return opts.timestamp\n }\n if (opts.timestamp === false) {\n return nullTime\n }\n return epochTime\n}\n\nfunction mock () { return {} }\nfunction passthrough (a) { return a }\nfunction noop () {}\n\nfunction nullTime () { return false }\nfunction epochTime () { return Date.now() }\nfunction unixTime () { return Math.round(Date.now() / 1000.0) }\nfunction isoTime () { return new Date(Date.now()).toISOString() } // using Date.now() for testability\n\n/* eslint-disable */\n/* istanbul ignore next */\nfunction pfGlobalThisOrFallback () {\n function defd (o) { return typeof o !== 'undefined' && o }\n try {\n if (typeof globalThis !== 'undefined') return globalThis\n Object.defineProperty(Object.prototype, 'globalThis', {\n get: function () {\n delete Object.prototype.globalThis\n return (this.globalThis = this)\n },\n configurable: true\n })\n return globalThis\n } catch (e) {\n return defd(self) || defd(window) || defd(this) || {}\n }\n}\n/* eslint-enable */\n","import h,{levels as s}from\"pino\";import{default as U}from\"pino\";import{safeJsonStringify as u}from\"@walletconnect/safe-json\";const c={level:\"info\"},n=\"custom_context\",l=1e3*1024;class O{constructor(e){this.nodeValue=e,this.sizeInBytes=new TextEncoder().encode(this.nodeValue).length,this.next=null}get value(){return this.nodeValue}get size(){return this.sizeInBytes}}class d{constructor(e){this.head=null,this.tail=null,this.lengthInNodes=0,this.maxSizeInBytes=e,this.sizeInBytes=0}append(e){const t=new O(e);if(t.size>this.maxSizeInBytes)throw new Error(`[LinkedList] Value too big to insert into list: ${e} with size ${t.size}`);for(;this.size+t.size>this.maxSizeInBytes;)this.shift();this.head?(this.tail&&(this.tail.next=t),this.tail=t):(this.head=t,this.tail=t),this.lengthInNodes++,this.sizeInBytes+=t.size}shift(){if(!this.head)return;const e=this.head;this.head=this.head.next,this.head||(this.tail=null),this.lengthInNodes--,this.sizeInBytes-=e.size}toArray(){const e=[];let t=this.head;for(;t!==null;)e.push(t.value),t=t.next;return e}get length(){return this.lengthInNodes}get size(){return this.sizeInBytes}toOrderedArray(){return Array.from(this)}[Symbol.iterator](){let e=this.head;return{next:()=>{if(!e)return{done:!0,value:null};const t=e.value;return e=e.next,{done:!1,value:t}}}}}class L{constructor(e,t=l){this.level=e??\"error\",this.levelValue=s.values[this.level],this.MAX_LOG_SIZE_IN_BYTES=t,this.logs=new d(this.MAX_LOG_SIZE_IN_BYTES)}forwardToConsole(e,t){t===s.values.error?console.error(e):t===s.values.warn?console.warn(e):t===s.values.debug?console.debug(e):t===s.values.trace?console.trace(e):console.log(e)}appendToLogs(e){this.logs.append(u({timestamp:new Date().toISOString(),log:e}));const t=typeof e==\"string\"?JSON.parse(e).level:e.level;t>=this.levelValue&&this.forwardToConsole(e,t)}getLogs(){return this.logs}clearLogs(){this.logs=new d(this.MAX_LOG_SIZE_IN_BYTES)}getLogArray(){return Array.from(this.logs)}logsToBlob(e){const t=this.getLogArray();return t.push(u({extraMetadata:e})),new Blob(t,{type:\"application/json\"})}}class m{constructor(e,t=l){this.baseChunkLogger=new L(e,t)}write(e){this.baseChunkLogger.appendToLogs(e)}getLogs(){return this.baseChunkLogger.getLogs()}clearLogs(){this.baseChunkLogger.clearLogs()}getLogArray(){return this.baseChunkLogger.getLogArray()}logsToBlob(e){return this.baseChunkLogger.logsToBlob(e)}downloadLogsBlobInBrowser(e){const t=URL.createObjectURL(this.logsToBlob(e)),o=document.createElement(\"a\");o.href=t,o.download=`walletconnect-logs-${new Date().toISOString()}.txt`,document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(t)}}class B{constructor(e,t=l){this.baseChunkLogger=new L(e,t)}write(e){this.baseChunkLogger.appendToLogs(e)}getLogs(){return this.baseChunkLogger.getLogs()}clearLogs(){this.baseChunkLogger.clearLogs()}getLogArray(){return this.baseChunkLogger.getLogArray()}logsToBlob(e){return this.baseChunkLogger.logsToBlob(e)}}var x=Object.defineProperty,S=Object.defineProperties,_=Object.getOwnPropertyDescriptors,p=Object.getOwnPropertySymbols,T=Object.prototype.hasOwnProperty,z=Object.prototype.propertyIsEnumerable,f=(r,e,t)=>e in r?x(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,i=(r,e)=>{for(var t in e||(e={}))T.call(e,t)&&f(r,t,e[t]);if(p)for(var t of p(e))z.call(e,t)&&f(r,t,e[t]);return r},g=(r,e)=>S(r,_(e));function k(r){return g(i({},r),{level:r?.level||c.level})}function v(r,e=n){return r[e]||\"\"}function b(r,e,t=n){return r[t]=e,r}function y(r,e=n){let t=\"\";return typeof r.bindings>\"u\"?t=v(r,e):t=r.bindings().context||\"\",t}function w(r,e,t=n){const o=y(r,t);return o.trim()?`${o}/${e}`:e}function E(r,e,t=n){const o=w(r,e,t),a=r.child({context:o});return b(a,o,t)}function C(r){var e,t;const o=new m((e=r.opts)==null?void 0:e.level,r.maxSizeInBytes);return{logger:h(g(i({},r.opts),{level:\"trace\",browser:g(i({},(t=r.opts)==null?void 0:t.browser),{write:a=>o.write(a)})})),chunkLoggerController:o}}function I(r){var e;const t=new B((e=r.opts)==null?void 0:e.level,r.maxSizeInBytes);return{logger:h(g(i({},r.opts),{level:\"trace\"}),t),chunkLoggerController:t}}function A(r){return typeof r.loggerOverride<\"u\"&&typeof r.loggerOverride!=\"string\"?{logger:r.loggerOverride,chunkLoggerController:null}:typeof window<\"u\"?C(r):I(r)}export{l as MAX_LOG_SIZE_IN_BYTES_DEFAULT,n as PINO_CUSTOM_CONTEXT_KEY,c as PINO_LOGGER_DEFAULTS,w as formatChildLoggerContext,E as generateChildLogger,C as generateClientLogger,A as generatePlatformLogger,I as generateServerLogger,v as getBrowserLoggerContext,k as getDefaultLoggerOptions,y as getLoggerContext,U as pino,b as setBrowserLoggerContext};\n//# sourceMappingURL=index.es.js.map\n","export const PARSE_ERROR = \"PARSE_ERROR\";\nexport const INVALID_REQUEST = \"INVALID_REQUEST\";\nexport const METHOD_NOT_FOUND = \"METHOD_NOT_FOUND\";\nexport const INVALID_PARAMS = \"INVALID_PARAMS\";\nexport const INTERNAL_ERROR = \"INTERNAL_ERROR\";\nexport const SERVER_ERROR = \"SERVER_ERROR\";\nexport const RESERVED_ERROR_CODES = [-32700, -32600, -32601, -32602, -32603];\nexport const SERVER_ERROR_CODE_RANGE = [-32000, -32099];\nexport const STANDARD_ERROR_MAP = {\n [PARSE_ERROR]: { code: -32700, message: \"Parse error\" },\n [INVALID_REQUEST]: { code: -32600, message: \"Invalid Request\" },\n [METHOD_NOT_FOUND]: { code: -32601, message: \"Method not found\" },\n [INVALID_PARAMS]: { code: -32602, message: \"Invalid params\" },\n [INTERNAL_ERROR]: { code: -32603, message: \"Internal error\" },\n [SERVER_ERROR]: { code: -32000, message: \"Server error\" },\n};\nexport const DEFAULT_ERROR = SERVER_ERROR;\n//# sourceMappingURL=constants.js.map","import { SERVER_ERROR_CODE_RANGE, RESERVED_ERROR_CODES, STANDARD_ERROR_MAP, DEFAULT_ERROR, } from \"./constants\";\nexport function isServerErrorCode(code) {\n return code <= SERVER_ERROR_CODE_RANGE[0] && code >= SERVER_ERROR_CODE_RANGE[1];\n}\nexport function isReservedErrorCode(code) {\n return RESERVED_ERROR_CODES.includes(code);\n}\nexport function isValidErrorCode(code) {\n return typeof code === \"number\";\n}\nexport function getError(type) {\n if (!Object.keys(STANDARD_ERROR_MAP).includes(type)) {\n return STANDARD_ERROR_MAP[DEFAULT_ERROR];\n }\n return STANDARD_ERROR_MAP[type];\n}\nexport function getErrorByCode(code) {\n const match = Object.values(STANDARD_ERROR_MAP).find(e => e.code === code);\n if (!match) {\n return STANDARD_ERROR_MAP[DEFAULT_ERROR];\n }\n return match;\n}\nexport function validateJsonRpcError(response) {\n if (typeof response.error.code === \"undefined\") {\n return { valid: false, error: \"Missing code for JSON-RPC error\" };\n }\n if (typeof response.error.message === \"undefined\") {\n return { valid: false, error: \"Missing message for JSON-RPC error\" };\n }\n if (!isValidErrorCode(response.error.code)) {\n return {\n valid: false,\n error: `Invalid error code type for JSON-RPC: ${response.error.code}`,\n };\n }\n if (isReservedErrorCode(response.error.code)) {\n const error = getErrorByCode(response.error.code);\n if (error.message !== STANDARD_ERROR_MAP[DEFAULT_ERROR].message &&\n response.error.message === error.message) {\n return {\n valid: false,\n error: `Invalid error code message for JSON-RPC: ${response.error.code}`,\n };\n }\n }\n return { valid: true };\n}\nexport function parseConnectionError(e, url, type) {\n return e.message.includes(\"getaddrinfo ENOTFOUND\") || e.message.includes(\"connect ECONNREFUSED\")\n ? new Error(`Unavailable ${type} RPC url at ${url}`)\n : e;\n}\n//# sourceMappingURL=error.js.map","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isBrowserCryptoAvailable = exports.getSubtleCrypto = exports.getBrowerCrypto = void 0;\nfunction getBrowerCrypto() {\n return (global === null || global === void 0 ? void 0 : global.crypto) || (global === null || global === void 0 ? void 0 : global.msCrypto) || {};\n}\nexports.getBrowerCrypto = getBrowerCrypto;\nfunction getSubtleCrypto() {\n const browserCrypto = getBrowerCrypto();\n return browserCrypto.subtle || browserCrypto.webkitSubtle;\n}\nexports.getSubtleCrypto = getSubtleCrypto;\nfunction isBrowserCryptoAvailable() {\n return !!getBrowerCrypto() && !!getSubtleCrypto();\n}\nexports.isBrowserCryptoAvailable = isBrowserCryptoAvailable;\n//# sourceMappingURL=crypto.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isBrowser = exports.isNode = exports.isReactNative = void 0;\nfunction isReactNative() {\n return (typeof document === \"undefined\" &&\n typeof navigator !== \"undefined\" &&\n navigator.product === \"ReactNative\");\n}\nexports.isReactNative = isReactNative;\nfunction isNode() {\n return (typeof process !== \"undefined\" &&\n typeof process.versions !== \"undefined\" &&\n typeof process.versions.node !== \"undefined\");\n}\nexports.isNode = isNode;\nfunction isBrowser() {\n return !isReactNative() && !isNode();\n}\nexports.isBrowser = isBrowser;\n//# sourceMappingURL=env.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./crypto\"), exports);\ntslib_1.__exportStar(require(\"./env\"), exports);\n//# sourceMappingURL=index.js.map","import { getError, getErrorByCode, isReservedErrorCode } from \"./error\";\nimport { INTERNAL_ERROR, SERVER_ERROR } from \"./constants\";\nexport function payloadId(entropy = 3) {\n const date = Date.now() * Math.pow(10, entropy);\n const extra = Math.floor(Math.random() * Math.pow(10, entropy));\n return date + extra;\n}\nexport function getBigIntRpcId(entropy = 6) {\n return BigInt(payloadId(entropy));\n}\nexport function formatJsonRpcRequest(method, params, id) {\n return {\n id: id || payloadId(),\n jsonrpc: \"2.0\",\n method,\n params,\n };\n}\nexport function formatJsonRpcResult(id, result) {\n return {\n id,\n jsonrpc: \"2.0\",\n result,\n };\n}\nexport function formatJsonRpcError(id, error, data) {\n return {\n id,\n jsonrpc: \"2.0\",\n error: formatErrorMessage(error, data),\n };\n}\nexport function formatErrorMessage(error, data) {\n if (typeof error === \"undefined\") {\n return getError(INTERNAL_ERROR);\n }\n if (typeof error === \"string\") {\n error = Object.assign(Object.assign({}, getError(SERVER_ERROR)), { message: error });\n }\n if (typeof data !== \"undefined\") {\n error.data = data;\n }\n if (isReservedErrorCode(error.code)) {\n error = getErrorByCode(error.code);\n }\n return error;\n}\n//# sourceMappingURL=format.js.map","class e{}class o extends e{constructor(c){super()}}class n extends e{constructor(){super()}}class r extends n{constructor(c){super()}}export{n as IBaseJsonRpcProvider,e as IEvents,o as IJsonRpcConnection,r as IJsonRpcProvider};\n//# sourceMappingURL=index.es.js.map\n","const HTTP_REGEX = \"^https?:\";\nconst WS_REGEX = \"^wss?:\";\nfunction getUrlProtocol(url) {\n const matches = url.match(new RegExp(/^\\w+:/, \"gi\"));\n if (!matches || !matches.length)\n return;\n return matches[0];\n}\nfunction matchRegexProtocol(url, regex) {\n const protocol = getUrlProtocol(url);\n if (typeof protocol === \"undefined\")\n return false;\n return new RegExp(regex).test(protocol);\n}\nexport function isHttpUrl(url) {\n return matchRegexProtocol(url, HTTP_REGEX);\n}\nexport function isWsUrl(url) {\n return matchRegexProtocol(url, WS_REGEX);\n}\nexport function isLocalhostUrl(url) {\n return new RegExp(\"wss?://localhost(:d{2,5})?\").test(url);\n}\n//# sourceMappingURL=url.js.map","export function isJsonRpcPayload(payload) {\n return (typeof payload === \"object\" &&\n \"id\" in payload &&\n \"jsonrpc\" in payload &&\n payload.jsonrpc === \"2.0\");\n}\nexport function isJsonRpcRequest(payload) {\n return isJsonRpcPayload(payload) && \"method\" in payload;\n}\nexport function isJsonRpcResponse(payload) {\n return isJsonRpcPayload(payload) && (isJsonRpcResult(payload) || isJsonRpcError(payload));\n}\nexport function isJsonRpcResult(payload) {\n return \"result\" in payload;\n}\nexport function isJsonRpcError(payload) {\n return \"error\" in payload;\n}\nexport function isJsonRpcValidationInvalid(validation) {\n return \"error\" in validation && validation.valid === false;\n}\n//# sourceMappingURL=validators.js.map","import{EventEmitter as c}from\"events\";import{IJsonRpcProvider as r,formatJsonRpcRequest as h,getBigIntRpcId as a,isJsonRpcError as d,isJsonRpcResponse as v}from\"@walletconnect/jsonrpc-utils\";class o extends r{constructor(t){super(t),this.events=new c,this.hasRegisteredEventListeners=!1,this.connection=this.setConnection(t),this.connection.connected&&this.registerEventListeners()}async connect(t=this.connection){await this.open(t)}async disconnect(){await this.close()}on(t,e){this.events.on(t,e)}once(t,e){this.events.once(t,e)}off(t,e){this.events.off(t,e)}removeListener(t,e){this.events.removeListener(t,e)}async request(t,e){return this.requestStrict(h(t.method,t.params||[],t.id||a().toString()),e)}async requestStrict(t,e){return new Promise(async(i,s)=>{if(!this.connection.connected)try{await this.open()}catch(n){s(n)}this.events.on(`${t.id}`,n=>{d(n)?s(n.error):i(n.result)});try{await this.connection.send(t,e)}catch(n){s(n)}})}setConnection(t=this.connection){return t}onPayload(t){this.events.emit(\"payload\",t),v(t)?this.events.emit(`${t.id}`,t):this.events.emit(\"message\",{type:t.method,data:t.params})}onClose(t){t&&t.code===3e3&&this.events.emit(\"error\",new Error(`WebSocket connection closed abnormally with code: ${t.code} ${t.reason?`(${t.reason})`:\"\"}`)),this.events.emit(\"disconnect\")}async open(t=this.connection){this.connection===t&&this.connection.connected||(this.connection.connected&&this.close(),typeof t==\"string\"&&(await this.connection.open(t),t=this.connection),this.connection=this.setConnection(t),await this.connection.open(),this.registerEventListeners(),this.events.emit(\"connect\"))}async close(){await this.connection.close()}registerEventListeners(){this.hasRegisteredEventListeners||(this.connection.on(\"payload\",t=>this.onPayload(t)),this.connection.on(\"close\",t=>this.onClose(t)),this.connection.on(\"error\",t=>this.events.emit(\"error\",t)),this.connection.on(\"register_error\",t=>this.onClose()),this.hasRegisteredEventListeners=!0)}}export{o as JsonRpcProvider,o as default};\n//# sourceMappingURL=index.es.js.map\n","// Save global object in a variable\nvar __global__ =\n(typeof globalThis !== 'undefined' && globalThis) ||\n(typeof self !== 'undefined' && self) ||\n(typeof global !== 'undefined' && global);\n// Create an object that extends from __global__ without the fetch function\nvar __globalThis__ = (function () {\nfunction F() {\nthis.fetch = false;\nthis.DOMException = __global__.DOMException\n}\nF.prototype = __global__; // Needed for feature detection on whatwg-fetch's code\nreturn new F();\n})();\n// Wraps whatwg-fetch with a function scope to hijack the global object\n// \"globalThis\" that's going to be patched\n(function(globalThis) {\n\nvar irrelevant = (function (exports) {\n\n /* eslint-disable no-prototype-builtins */\n var g =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof self !== 'undefined' && self) ||\n // eslint-disable-next-line no-undef\n (typeof global !== 'undefined' && global) ||\n {};\n\n var support = {\n searchParams: 'URLSearchParams' in g,\n iterable: 'Symbol' in g && 'iterator' in Symbol,\n blob:\n 'FileReader' in g &&\n 'Blob' in g &&\n (function() {\n try {\n new Blob();\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in g,\n arrayBuffer: 'ArrayBuffer' in g\n };\n\n function isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ];\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n };\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~!]/i.test(name) || name === '') {\n throw new TypeError('Invalid character in header field name: \"' + name + '\"')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift();\n return {done: value === undefined, value: value}\n }\n };\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n };\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {};\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n if (header.length != 2) {\n throw new TypeError('Headers constructor: expected name/value pair to be length 2, found' + header.length)\n }\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name]);\n }, this);\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue + ', ' + value : value;\n };\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)];\n };\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null\n };\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n };\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value);\n };\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n };\n\n Headers.prototype.keys = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push(name);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.values = function() {\n var items = [];\n this.forEach(function(value) {\n items.push(value);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.entries = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items)\n };\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n }\n\n function consumed(body) {\n if (body._noBody) return\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true;\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result);\n };\n reader.onerror = function() {\n reject(reader.error);\n };\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsArrayBuffer(blob);\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n var match = /charset=([A-Za-z0-9_-]+)/.exec(blob.type);\n var encoding = match ? match[1] : 'utf-8';\n reader.readAsText(blob, encoding);\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf);\n var chars = new Array(view.length);\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i]);\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength);\n view.set(new Uint8Array(buf));\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false;\n\n this._initBody = function(body) {\n /*\n fetch-mock wraps the Response object in an ES6 Proxy to\n provide useful test harness features such as flush. However, on\n ES5 browsers without fetch or Proxy support pollyfills must be used;\n the proxy-pollyfill is unable to proxy an attribute unless it exists\n on the object before the Proxy is created. This change ensures\n Response.bodyUsed exists on the instance, while maintaining the\n semantic of setting Request.bodyUsed in the constructor before\n _initBody is called.\n */\n // eslint-disable-next-line no-self-assign\n this.bodyUsed = this.bodyUsed;\n this._bodyInit = body;\n if (!body) {\n this._noBody = true;\n this._bodyText = '';\n } else if (typeof body === 'string') {\n this._bodyText = body;\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body;\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body;\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString();\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer);\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer]);\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body);\n } else {\n this._bodyText = body = Object.prototype.toString.call(body);\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8');\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type);\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n }\n };\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n };\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n var isConsumed = consumed(this);\n if (isConsumed) {\n return isConsumed\n } else if (ArrayBuffer.isView(this._bodyArrayBuffer)) {\n return Promise.resolve(\n this._bodyArrayBuffer.buffer.slice(\n this._bodyArrayBuffer.byteOffset,\n this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength\n )\n )\n } else {\n return Promise.resolve(this._bodyArrayBuffer)\n }\n } else if (support.blob) {\n return this.blob().then(readBlobAsArrayBuffer)\n } else {\n throw new Error('could not read as ArrayBuffer')\n }\n };\n\n this.text = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n };\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n };\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n };\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['CONNECT', 'DELETE', 'GET', 'HEAD', 'OPTIONS', 'PATCH', 'POST', 'PUT', 'TRACE'];\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase();\n return methods.indexOf(upcased) > -1 ? upcased : method\n }\n\n function Request(input, options) {\n if (!(this instanceof Request)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n\n options = options || {};\n var body = options.body;\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url;\n this.credentials = input.credentials;\n if (!options.headers) {\n this.headers = new Headers(input.headers);\n }\n this.method = input.method;\n this.mode = input.mode;\n this.signal = input.signal;\n if (!body && input._bodyInit != null) {\n body = input._bodyInit;\n input.bodyUsed = true;\n }\n } else {\n this.url = String(input);\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin';\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers);\n }\n this.method = normalizeMethod(options.method || this.method || 'GET');\n this.mode = options.mode || this.mode || null;\n this.signal = options.signal || this.signal || (function () {\n if ('AbortController' in g) {\n var ctrl = new AbortController();\n return ctrl.signal;\n }\n }());\n this.referrer = null;\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body);\n\n if (this.method === 'GET' || this.method === 'HEAD') {\n if (options.cache === 'no-store' || options.cache === 'no-cache') {\n // Search for a '_' parameter in the query string\n var reParamSearch = /([?&])_=[^&]*/;\n if (reParamSearch.test(this.url)) {\n // If it already exists then set the value with the current time\n this.url = this.url.replace(reParamSearch, '$1_=' + new Date().getTime());\n } else {\n // Otherwise add a new '_' parameter to the end with the current time\n var reQueryString = /\\?/;\n this.url += (reQueryString.test(this.url) ? '&' : '?') + '_=' + new Date().getTime();\n }\n }\n }\n }\n\n Request.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n };\n\n function decode(body) {\n var form = new FormData();\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=');\n var name = split.shift().replace(/\\+/g, ' ');\n var value = split.join('=').replace(/\\+/g, ' ');\n form.append(decodeURIComponent(name), decodeURIComponent(value));\n }\n });\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers();\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n // Avoiding split via regex to work around a common IE11 bug with the core-js 3.6.0 regex polyfill\n // https://github.com/github/fetch/issues/748\n // https://github.com/zloirock/core-js/issues/751\n preProcessedHeaders\n .split('\\r')\n .map(function(header) {\n return header.indexOf('\\n') === 0 ? header.substr(1, header.length) : header\n })\n .forEach(function(line) {\n var parts = line.split(':');\n var key = parts.shift().trim();\n if (key) {\n var value = parts.join(':').trim();\n try {\n headers.append(key, value);\n } catch (error) {\n console.warn('Response ' + error.message);\n }\n }\n });\n return headers\n }\n\n Body.call(Request.prototype);\n\n function Response(bodyInit, options) {\n if (!(this instanceof Response)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n if (!options) {\n options = {};\n }\n\n this.type = 'default';\n this.status = options.status === undefined ? 200 : options.status;\n if (this.status < 200 || this.status > 599) {\n throw new RangeError(\"Failed to construct 'Response': The status provided (0) is outside the range [200, 599].\")\n }\n this.ok = this.status >= 200 && this.status < 300;\n this.statusText = options.statusText === undefined ? '' : '' + options.statusText;\n this.headers = new Headers(options.headers);\n this.url = options.url || '';\n this._initBody(bodyInit);\n }\n\n Body.call(Response.prototype);\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n };\n\n Response.error = function() {\n var response = new Response(null, {status: 200, statusText: ''});\n response.ok = false;\n response.status = 0;\n response.type = 'error';\n return response\n };\n\n var redirectStatuses = [301, 302, 303, 307, 308];\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n };\n\n exports.DOMException = g.DOMException;\n try {\n new exports.DOMException();\n } catch (err) {\n exports.DOMException = function(message, name) {\n this.message = message;\n this.name = name;\n var error = Error(message);\n this.stack = error.stack;\n };\n exports.DOMException.prototype = Object.create(Error.prototype);\n exports.DOMException.prototype.constructor = exports.DOMException;\n }\n\n function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init);\n\n if (request.signal && request.signal.aborted) {\n return reject(new exports.DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest();\n\n function abortXhr() {\n xhr.abort();\n }\n\n xhr.onload = function() {\n var options = {\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n };\n // This check if specifically for when a user fetches a file locally from the file system\n // Only if the status is out of a normal range\n if (request.url.indexOf('file://') === 0 && (xhr.status < 200 || xhr.status > 599)) {\n options.status = 200;\n } else {\n options.status = xhr.status;\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n var body = 'response' in xhr ? xhr.response : xhr.responseText;\n setTimeout(function() {\n resolve(new Response(body, options));\n }, 0);\n };\n\n xhr.onerror = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'));\n }, 0);\n };\n\n xhr.ontimeout = function() {\n setTimeout(function() {\n reject(new TypeError('Network request timed out'));\n }, 0);\n };\n\n xhr.onabort = function() {\n setTimeout(function() {\n reject(new exports.DOMException('Aborted', 'AbortError'));\n }, 0);\n };\n\n function fixUrl(url) {\n try {\n return url === '' && g.location.href ? g.location.href : url\n } catch (e) {\n return url\n }\n }\n\n xhr.open(request.method, fixUrl(request.url), true);\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true;\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false;\n }\n\n if ('responseType' in xhr) {\n if (support.blob) {\n xhr.responseType = 'blob';\n } else if (\n support.arrayBuffer\n ) {\n xhr.responseType = 'arraybuffer';\n }\n }\n\n if (init && typeof init.headers === 'object' && !(init.headers instanceof Headers || (g.Headers && init.headers instanceof g.Headers))) {\n var names = [];\n Object.getOwnPropertyNames(init.headers).forEach(function(name) {\n names.push(normalizeName(name));\n xhr.setRequestHeader(name, normalizeValue(init.headers[name]));\n });\n request.headers.forEach(function(value, name) {\n if (names.indexOf(name) === -1) {\n xhr.setRequestHeader(name, value);\n }\n });\n } else {\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value);\n });\n }\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr);\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr);\n }\n };\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n })\n }\n\n fetch.polyfill = true;\n\n if (!g.fetch) {\n g.fetch = fetch;\n g.Headers = Headers;\n g.Request = Request;\n g.Response = Response;\n }\n\n exports.Headers = Headers;\n exports.Request = Request;\n exports.Response = Response;\n exports.fetch = fetch;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n return exports;\n\n})({});\n})(__globalThis__);\n// This is a ponyfill, so...\n__globalThis__.fetch.ponyfill = true;\ndelete __globalThis__.fetch.polyfill;\n// Choose between native implementation (__global__) or custom implementation (__globalThis__)\nvar ctx = __global__.fetch ? __global__ : __globalThis__;\nexports = ctx.fetch // To enable: import fetch from 'cross-fetch'\nexports.default = ctx.fetch // For TypeScript consumers without esModuleInterop.\nexports.fetch = ctx.fetch // To enable: import {fetch} from 'cross-fetch'\nexports.Headers = ctx.Headers\nexports.Request = ctx.Request\nexports.Response = ctx.Response\nmodule.exports = exports\n","import{EventEmitter as m}from\"events\";import o from\"cross-fetch\";import{safeJsonStringify as a,safeJsonParse as y}from\"@walletconnect/safe-json\";import{isHttpUrl as h,formatJsonRpcError as b,parseConnectionError as u}from\"@walletconnect/jsonrpc-utils\";var P=Object.defineProperty,w=Object.defineProperties,E=Object.getOwnPropertyDescriptors,c=Object.getOwnPropertySymbols,L=Object.prototype.hasOwnProperty,O=Object.prototype.propertyIsEnumerable,l=(r,t,e)=>t in r?P(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e,p=(r,t)=>{for(var e in t||(t={}))L.call(t,e)&&l(r,e,t[e]);if(c)for(var e of c(t))O.call(t,e)&&l(r,e,t[e]);return r},v=(r,t)=>w(r,E(t));const j={Accept:\"application/json\",\"Content-Type\":\"application/json\"},T=\"POST\",d={headers:j,method:T},g=10;class f{constructor(t,e=!1){if(this.url=t,this.disableProviderPing=e,this.events=new m,this.isAvailable=!1,this.registering=!1,!h(t))throw new Error(`Provided URL is not compatible with HTTP connection: ${t}`);this.url=t,this.disableProviderPing=e}get connected(){return this.isAvailable}get connecting(){return this.registering}on(t,e){this.events.on(t,e)}once(t,e){this.events.once(t,e)}off(t,e){this.events.off(t,e)}removeListener(t,e){this.events.removeListener(t,e)}async open(t=this.url){await this.register(t)}async close(){if(!this.isAvailable)throw new Error(\"Connection already closed\");this.onClose()}async send(t){this.isAvailable||await this.register();try{const e=a(t),s=await(await o(this.url,v(p({},d),{body:e}))).json();this.onPayload({data:s})}catch(e){this.onError(t.id,e)}}async register(t=this.url){if(!h(t))throw new Error(`Provided URL is not compatible with HTTP connection: ${t}`);if(this.registering){const e=this.events.getMaxListeners();return(this.events.listenerCount(\"register_error\")>=e||this.events.listenerCount(\"open\")>=e)&&this.events.setMaxListeners(e+1),new Promise((s,i)=>{this.events.once(\"register_error\",n=>{this.resetMaxListeners(),i(n)}),this.events.once(\"open\",()=>{if(this.resetMaxListeners(),typeof this.isAvailable>\"u\")return i(new Error(\"HTTP connection is missing or invalid\"));s()})})}this.url=t,this.registering=!0;try{if(!this.disableProviderPing){const e=a({id:1,jsonrpc:\"2.0\",method:\"test\",params:[]});await o(t,v(p({},d),{body:e}))}this.onOpen()}catch(e){const s=this.parseError(e);throw this.events.emit(\"register_error\",s),this.onClose(),s}}onOpen(){this.isAvailable=!0,this.registering=!1,this.events.emit(\"open\")}onClose(){this.isAvailable=!1,this.registering=!1,this.events.emit(\"close\")}onPayload(t){if(typeof t.data>\"u\")return;const e=typeof t.data==\"string\"?y(t.data):t.data;this.events.emit(\"payload\",e)}onError(t,e){const s=this.parseError(e),i=s.message||s.toString(),n=b(t,i);this.events.emit(\"payload\",n)}parseError(t,e=this.url){return u(t,e,\"HTTP\")}resetMaxListeners(){this.events.getMaxListeners()>g&&this.events.setMaxListeners(g)}}export{f as HttpConnection,f as default};\n//# sourceMappingURL=index.es.js.map\n","import Tg,{PROPOSAL_EXPIRY_MESSAGE as Lg}from\"@walletconnect/sign-client\";import{isValidObject as Dg,isCaipNamespace as Aa,parseNamespaceKey as de,mergeArrays as $i,parseChainId as Ng,getSdkError as Ca,isValidArray as Ia}from\"@walletconnect/utils\";import{pino as Hg,getDefaultLoggerOptions as $g}from\"@walletconnect/logger\";import At,{HttpConnection as Ug}from\"@walletconnect/jsonrpc-http-connection\";import{JsonRpcProvider as ot}from\"@walletconnect/jsonrpc-provider\";import Wg from\"events\";import{formatJsonRpcResult as Fg}from\"@walletconnect/jsonrpc-utils\";const xa=\"error\",Mg=\"wss://relay.walletconnect.com\",qg=\"wc\",Bg=\"universal_provider\",Ea=`${qg}@2:${Bg}:`,Gg=\"https://rpc.walletconnect.com/v1/\",Vn={DEFAULT_CHAIN_CHANGED:\"default_chain_changed\"};var ge=typeof globalThis<\"u\"?globalThis:typeof window<\"u\"?window:typeof global<\"u\"?global:typeof self<\"u\"?self:{},Ui={exports:{}};/**\n * @license\n * Lodash \n * Copyright OpenJS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */(function(A,u){(function(){var i,p=\"4.17.21\",w=200,b=\"Unsupported core-js use. Try https://npms.io/search?q=ponyfill.\",D=\"Expected a function\",En=\"Invalid `variable` option passed into `_.template`\",zt=\"__lodash_hash_undefined__\",pr=500,It=\"__lodash_placeholder__\",Ln=1,Fn=2,xt=4,Et=1,ve=2,vn=1,ct=2,Bi=4,Dn=8,yt=16,Nn=32,St=64,Mn=128,Kt=256,dr=512,Na=30,Ha=\"...\",$a=800,Ua=16,Gi=1,Wa=2,Fa=3,ht=1/0,kn=9007199254740991,Ma=17976931348623157e292,_e=0/0,Hn=4294967295,qa=Hn-1,Ba=Hn>>>1,Ga=[[\"ary\",Mn],[\"bind\",vn],[\"bindKey\",ct],[\"curry\",Dn],[\"curryRight\",yt],[\"flip\",dr],[\"partial\",Nn],[\"partialRight\",St],[\"rearg\",Kt]],Ot=\"[object Arguments]\",me=\"[object Array]\",za=\"[object AsyncFunction]\",Yt=\"[object Boolean]\",Zt=\"[object Date]\",Ka=\"[object DOMException]\",we=\"[object Error]\",Pe=\"[object Function]\",zi=\"[object GeneratorFunction]\",yn=\"[object Map]\",Jt=\"[object Number]\",Ya=\"[object Null]\",qn=\"[object Object]\",Ki=\"[object Promise]\",Za=\"[object Proxy]\",Xt=\"[object RegExp]\",Sn=\"[object Set]\",Qt=\"[object String]\",Ae=\"[object Symbol]\",Ja=\"[object Undefined]\",Vt=\"[object WeakMap]\",Xa=\"[object WeakSet]\",kt=\"[object ArrayBuffer]\",Rt=\"[object DataView]\",gr=\"[object Float32Array]\",vr=\"[object Float64Array]\",_r=\"[object Int8Array]\",mr=\"[object Int16Array]\",wr=\"[object Int32Array]\",Pr=\"[object Uint8Array]\",Ar=\"[object Uint8ClampedArray]\",Cr=\"[object Uint16Array]\",Ir=\"[object Uint32Array]\",Qa=/\\b__p \\+= '';/g,Va=/\\b(__p \\+=) '' \\+/g,ka=/(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g,Yi=/&(?:amp|lt|gt|quot|#39);/g,Zi=/[&<>\"']/g,ja=RegExp(Yi.source),no=RegExp(Zi.source),to=/<%-([\\s\\S]+?)%>/g,eo=/<%([\\s\\S]+?)%>/g,Ji=/<%=([\\s\\S]+?)%>/g,ro=/\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,io=/^\\w*$/,so=/[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g,xr=/[\\\\^$.*+?()[\\]{}|]/g,uo=RegExp(xr.source),Er=/^\\s+/,ao=/\\s/,oo=/\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/,fo=/\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,co=/,? & /,ho=/[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g,lo=/[()=,{}\\[\\]\\/\\s]/,po=/\\\\(\\\\)?/g,go=/\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g,Xi=/\\w*$/,vo=/^[-+]0x[0-9a-f]+$/i,_o=/^0b[01]+$/i,mo=/^\\[object .+?Constructor\\]$/,wo=/^0o[0-7]+$/i,Po=/^(?:0|[1-9]\\d*)$/,Ao=/[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g,Ce=/($^)/,Co=/['\\n\\r\\u2028\\u2029\\\\]/g,Ie=\"\\\\ud800-\\\\udfff\",Io=\"\\\\u0300-\\\\u036f\",xo=\"\\\\ufe20-\\\\ufe2f\",Eo=\"\\\\u20d0-\\\\u20ff\",Qi=Io+xo+Eo,Vi=\"\\\\u2700-\\\\u27bf\",ki=\"a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff\",yo=\"\\\\xac\\\\xb1\\\\xd7\\\\xf7\",So=\"\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\",Oo=\"\\\\u2000-\\\\u206f\",Ro=\" \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\",ji=\"A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde\",ns=\"\\\\ufe0e\\\\ufe0f\",ts=yo+So+Oo+Ro,yr=\"['\\u2019]\",bo=\"[\"+Ie+\"]\",es=\"[\"+ts+\"]\",xe=\"[\"+Qi+\"]\",rs=\"\\\\d+\",To=\"[\"+Vi+\"]\",is=\"[\"+ki+\"]\",ss=\"[^\"+Ie+ts+rs+Vi+ki+ji+\"]\",Sr=\"\\\\ud83c[\\\\udffb-\\\\udfff]\",Lo=\"(?:\"+xe+\"|\"+Sr+\")\",us=\"[^\"+Ie+\"]\",Or=\"(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}\",Rr=\"[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]\",bt=\"[\"+ji+\"]\",as=\"\\\\u200d\",os=\"(?:\"+is+\"|\"+ss+\")\",Do=\"(?:\"+bt+\"|\"+ss+\")\",fs=\"(?:\"+yr+\"(?:d|ll|m|re|s|t|ve))?\",cs=\"(?:\"+yr+\"(?:D|LL|M|RE|S|T|VE))?\",hs=Lo+\"?\",ls=\"[\"+ns+\"]?\",No=\"(?:\"+as+\"(?:\"+[us,Or,Rr].join(\"|\")+\")\"+ls+hs+\")*\",Ho=\"\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])\",$o=\"\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])\",ps=ls+hs+No,Uo=\"(?:\"+[To,Or,Rr].join(\"|\")+\")\"+ps,Wo=\"(?:\"+[us+xe+\"?\",xe,Or,Rr,bo].join(\"|\")+\")\",Fo=RegExp(yr,\"g\"),Mo=RegExp(xe,\"g\"),br=RegExp(Sr+\"(?=\"+Sr+\")|\"+Wo+ps,\"g\"),qo=RegExp([bt+\"?\"+is+\"+\"+fs+\"(?=\"+[es,bt,\"$\"].join(\"|\")+\")\",Do+\"+\"+cs+\"(?=\"+[es,bt+os,\"$\"].join(\"|\")+\")\",bt+\"?\"+os+\"+\"+fs,bt+\"+\"+cs,$o,Ho,rs,Uo].join(\"|\"),\"g\"),Bo=RegExp(\"[\"+as+Ie+Qi+ns+\"]\"),Go=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,zo=[\"Array\",\"Buffer\",\"DataView\",\"Date\",\"Error\",\"Float32Array\",\"Float64Array\",\"Function\",\"Int8Array\",\"Int16Array\",\"Int32Array\",\"Map\",\"Math\",\"Object\",\"Promise\",\"RegExp\",\"Set\",\"String\",\"Symbol\",\"TypeError\",\"Uint8Array\",\"Uint8ClampedArray\",\"Uint16Array\",\"Uint32Array\",\"WeakMap\",\"_\",\"clearTimeout\",\"isFinite\",\"parseInt\",\"setTimeout\"],Ko=-1,B={};B[gr]=B[vr]=B[_r]=B[mr]=B[wr]=B[Pr]=B[Ar]=B[Cr]=B[Ir]=!0,B[Ot]=B[me]=B[kt]=B[Yt]=B[Rt]=B[Zt]=B[we]=B[Pe]=B[yn]=B[Jt]=B[qn]=B[Xt]=B[Sn]=B[Qt]=B[Vt]=!1;var q={};q[Ot]=q[me]=q[kt]=q[Rt]=q[Yt]=q[Zt]=q[gr]=q[vr]=q[_r]=q[mr]=q[wr]=q[yn]=q[Jt]=q[qn]=q[Xt]=q[Sn]=q[Qt]=q[Ae]=q[Pr]=q[Ar]=q[Cr]=q[Ir]=!0,q[we]=q[Pe]=q[Vt]=!1;var Yo={\\u00C0:\"A\",\\u00C1:\"A\",\\u00C2:\"A\",\\u00C3:\"A\",\\u00C4:\"A\",\\u00C5:\"A\",\\u00E0:\"a\",\\u00E1:\"a\",\\u00E2:\"a\",\\u00E3:\"a\",\\u00E4:\"a\",\\u00E5:\"a\",\\u00C7:\"C\",\\u00E7:\"c\",\\u00D0:\"D\",\\u00F0:\"d\",\\u00C8:\"E\",\\u00C9:\"E\",\\u00CA:\"E\",\\u00CB:\"E\",\\u00E8:\"e\",\\u00E9:\"e\",\\u00EA:\"e\",\\u00EB:\"e\",\\u00CC:\"I\",\\u00CD:\"I\",\\u00CE:\"I\",\\u00CF:\"I\",\\u00EC:\"i\",\\u00ED:\"i\",\\u00EE:\"i\",\\u00EF:\"i\",\\u00D1:\"N\",\\u00F1:\"n\",\\u00D2:\"O\",\\u00D3:\"O\",\\u00D4:\"O\",\\u00D5:\"O\",\\u00D6:\"O\",\\u00D8:\"O\",\\u00F2:\"o\",\\u00F3:\"o\",\\u00F4:\"o\",\\u00F5:\"o\",\\u00F6:\"o\",\\u00F8:\"o\",\\u00D9:\"U\",\\u00DA:\"U\",\\u00DB:\"U\",\\u00DC:\"U\",\\u00F9:\"u\",\\u00FA:\"u\",\\u00FB:\"u\",\\u00FC:\"u\",\\u00DD:\"Y\",\\u00FD:\"y\",\\u00FF:\"y\",\\u00C6:\"Ae\",\\u00E6:\"ae\",\\u00DE:\"Th\",\\u00FE:\"th\",\\u00DF:\"ss\",\\u0100:\"A\",\\u0102:\"A\",\\u0104:\"A\",\\u0101:\"a\",\\u0103:\"a\",\\u0105:\"a\",\\u0106:\"C\",\\u0108:\"C\",\\u010A:\"C\",\\u010C:\"C\",\\u0107:\"c\",\\u0109:\"c\",\\u010B:\"c\",\\u010D:\"c\",\\u010E:\"D\",\\u0110:\"D\",\\u010F:\"d\",\\u0111:\"d\",\\u0112:\"E\",\\u0114:\"E\",\\u0116:\"E\",\\u0118:\"E\",\\u011A:\"E\",\\u0113:\"e\",\\u0115:\"e\",\\u0117:\"e\",\\u0119:\"e\",\\u011B:\"e\",\\u011C:\"G\",\\u011E:\"G\",\\u0120:\"G\",\\u0122:\"G\",\\u011D:\"g\",\\u011F:\"g\",\\u0121:\"g\",\\u0123:\"g\",\\u0124:\"H\",\\u0126:\"H\",\\u0125:\"h\",\\u0127:\"h\",\\u0128:\"I\",\\u012A:\"I\",\\u012C:\"I\",\\u012E:\"I\",\\u0130:\"I\",\\u0129:\"i\",\\u012B:\"i\",\\u012D:\"i\",\\u012F:\"i\",\\u0131:\"i\",\\u0134:\"J\",\\u0135:\"j\",\\u0136:\"K\",\\u0137:\"k\",\\u0138:\"k\",\\u0139:\"L\",\\u013B:\"L\",\\u013D:\"L\",\\u013F:\"L\",\\u0141:\"L\",\\u013A:\"l\",\\u013C:\"l\",\\u013E:\"l\",\\u0140:\"l\",\\u0142:\"l\",\\u0143:\"N\",\\u0145:\"N\",\\u0147:\"N\",\\u014A:\"N\",\\u0144:\"n\",\\u0146:\"n\",\\u0148:\"n\",\\u014B:\"n\",\\u014C:\"O\",\\u014E:\"O\",\\u0150:\"O\",\\u014D:\"o\",\\u014F:\"o\",\\u0151:\"o\",\\u0154:\"R\",\\u0156:\"R\",\\u0158:\"R\",\\u0155:\"r\",\\u0157:\"r\",\\u0159:\"r\",\\u015A:\"S\",\\u015C:\"S\",\\u015E:\"S\",\\u0160:\"S\",\\u015B:\"s\",\\u015D:\"s\",\\u015F:\"s\",\\u0161:\"s\",\\u0162:\"T\",\\u0164:\"T\",\\u0166:\"T\",\\u0163:\"t\",\\u0165:\"t\",\\u0167:\"t\",\\u0168:\"U\",\\u016A:\"U\",\\u016C:\"U\",\\u016E:\"U\",\\u0170:\"U\",\\u0172:\"U\",\\u0169:\"u\",\\u016B:\"u\",\\u016D:\"u\",\\u016F:\"u\",\\u0171:\"u\",\\u0173:\"u\",\\u0174:\"W\",\\u0175:\"w\",\\u0176:\"Y\",\\u0177:\"y\",\\u0178:\"Y\",\\u0179:\"Z\",\\u017B:\"Z\",\\u017D:\"Z\",\\u017A:\"z\",\\u017C:\"z\",\\u017E:\"z\",\\u0132:\"IJ\",\\u0133:\"ij\",\\u0152:\"Oe\",\\u0153:\"oe\",\\u0149:\"'n\",\\u017F:\"s\"},Zo={\"&\":\"&\",\"<\":\"<\",\">\":\">\",'\"':\""\",\"'\":\"'\"},Jo={\"&\":\"&\",\"<\":\"<\",\">\":\">\",\""\":'\"',\"'\":\"'\"},Xo={\"\\\\\":\"\\\\\",\"'\":\"'\",\"\\n\":\"n\",\"\\r\":\"r\",\"\\u2028\":\"u2028\",\"\\u2029\":\"u2029\"},Qo=parseFloat,Vo=parseInt,ds=typeof ge==\"object\"&&ge&&ge.Object===Object&&ge,ko=typeof self==\"object\"&&self&&self.Object===Object&&self,k=ds||ko||Function(\"return this\")(),Tr=u&&!u.nodeType&&u,lt=Tr&&!0&&A&&!A.nodeType&&A,gs=lt&<.exports===Tr,Lr=gs&&ds.process,_n=function(){try{var h=lt&<.require&<.require(\"util\").types;return h||Lr&&Lr.binding&&Lr.binding(\"util\")}catch{}}(),vs=_n&&_n.isArrayBuffer,_s=_n&&_n.isDate,ms=_n&&_n.isMap,ws=_n&&_n.isRegExp,Ps=_n&&_n.isSet,As=_n&&_n.isTypedArray;function cn(h,g,d){switch(d.length){case 0:return h.call(g);case 1:return h.call(g,d[0]);case 2:return h.call(g,d[0],d[1]);case 3:return h.call(g,d[0],d[1],d[2])}return h.apply(g,d)}function jo(h,g,d,C){for(var S=-1,U=h==null?0:h.length;++S-1}function Dr(h,g,d){for(var C=-1,S=h==null?0:h.length;++C-1;);return d}function Rs(h,g){for(var d=h.length;d--&&Tt(g,h[d],0)>-1;);return d}function ff(h,g){for(var d=h.length,C=0;d--;)h[d]===g&&++C;return C}var cf=Ur(Yo),hf=Ur(Zo);function lf(h){return\"\\\\\"+Xo[h]}function pf(h,g){return h==null?i:h[g]}function Lt(h){return Bo.test(h)}function df(h){return Go.test(h)}function gf(h){for(var g,d=[];!(g=h.next()).done;)d.push(g.value);return d}function qr(h){var g=-1,d=Array(h.size);return h.forEach(function(C,S){d[++g]=[S,C]}),d}function bs(h,g){return function(d){return h(g(d))}}function tt(h,g){for(var d=-1,C=h.length,S=0,U=[];++d-1}function ec(n,t){var e=this.__data__,r=Be(e,n);return r<0?(++this.size,e.push([n,t])):e[r][1]=t,this}Bn.prototype.clear=kf,Bn.prototype.delete=jf,Bn.prototype.get=nc,Bn.prototype.has=tc,Bn.prototype.set=ec;function Gn(n){var t=-1,e=n==null?0:n.length;for(this.clear();++t=t?n:t)),n}function An(n,t,e,r,s,o){var f,c=t&Ln,l=t&Fn,v=t&xt;if(e&&(f=s?e(n,r,s,o):e(n)),f!==i)return f;if(!K(n))return n;var _=O(n);if(_){if(f=uh(n),!c)return un(n,f)}else{var m=tn(n),P=m==Pe||m==zi;if(at(n))return lu(n,c);if(m==qn||m==Ot||P&&!s){if(f=l||P?{}:Tu(n),!c)return l?Xc(n,mc(f,n)):Jc(n,Bs(f,n))}else{if(!q[m])return s?n:{};f=ah(n,m,c)}}o||(o=new Rn);var I=o.get(n);if(I)return I;o.set(n,f),ua(n)?n.forEach(function(y){f.add(An(y,t,e,y,n,o))}):ia(n)&&n.forEach(function(y,N){f.set(N,An(y,t,e,N,n,o))});var E=v?l?pi:li:l?on:V,T=_?i:E(n);return mn(T||n,function(y,N){T&&(N=y,y=n[N]),se(f,N,An(y,t,e,N,n,o))}),f}function wc(n){var t=V(n);return function(e){return Gs(e,n,t)}}function Gs(n,t,e){var r=e.length;if(n==null)return!r;for(n=M(n);r--;){var s=e[r],o=t[s],f=n[s];if(f===i&&!(s in n)||!o(f))return!1}return!0}function zs(n,t,e){if(typeof n!=\"function\")throw new wn(D);return le(function(){n.apply(i,e)},t)}function ue(n,t,e,r){var s=-1,o=Ee,f=!0,c=n.length,l=[],v=t.length;if(!c)return l;e&&(t=G(t,hn(e))),r?(o=Dr,f=!1):t.length>=w&&(o=jt,f=!1,t=new gt(t));n:for(;++ss?0:s+e),r=r===i||r>s?s:R(r),r<0&&(r+=s),r=e>r?0:oa(r);e0&&e(c)?t>1?j(c,t-1,e,r,s):nt(s,c):r||(s[s.length]=c)}return s}var Jr=mu(),Zs=mu(!0);function $n(n,t){return n&&Jr(n,t,V)}function Xr(n,t){return n&&Zs(n,t,V)}function ze(n,t){return jn(t,function(e){return Jn(n[e])})}function _t(n,t){t=st(t,n);for(var e=0,r=t.length;n!=null&&et}function Cc(n,t){return n!=null&&F.call(n,t)}function Ic(n,t){return n!=null&&t in M(n)}function xc(n,t,e){return n>=nn(t,e)&&n=120&&_.length>=120)?new gt(f&&_):i}_=n[0];var m=-1,P=c[0];n:for(;++m-1;)c!==n&&He.call(c,l,1),He.call(n,l,1);return n}function iu(n,t){for(var e=n?t.length:0,r=e-1;e--;){var s=t[e];if(e==r||s!==o){var o=s;Zn(s)?He.call(n,s,1):si(n,s)}}return n}function ei(n,t){return n+We(Ws()*(t-n+1))}function Uc(n,t,e,r){for(var s=-1,o=Q(Ue((t-n)/(e||1)),0),f=d(o);o--;)f[r?o:++s]=n,n+=e;return f}function ri(n,t){var e=\"\";if(!n||t<1||t>kn)return e;do t%2&&(e+=n),t=We(t/2),t&&(n+=n);while(t);return e}function L(n,t){return Pi(Nu(n,t,fn),n+\"\")}function Wc(n){return qs(Gt(n))}function Fc(n,t){var e=Gt(n);return tr(e,vt(t,0,e.length))}function fe(n,t,e,r){if(!K(n))return n;t=st(t,n);for(var s=-1,o=t.length,f=o-1,c=n;c!=null&&++ss?0:s+t),e=e>s?s:e,e<0&&(e+=s),s=t>e?0:e-t>>>0,t>>>=0;for(var o=d(s);++r>>1,f=n[o];f!==null&&!pn(f)&&(e?f<=t:f=w){var v=t?null:jc(n);if(v)return Se(v);f=!1,s=jt,l=new gt}else l=t?[]:c;n:for(;++r=r?n:Cn(n,t,e)}var hu=bf||function(n){return k.clearTimeout(n)};function lu(n,t){if(t)return n.slice();var e=n.length,r=Ds?Ds(e):new n.constructor(e);return n.copy(r),r}function fi(n){var t=new n.constructor(n.byteLength);return new De(t).set(new De(n)),t}function zc(n,t){var e=t?fi(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.byteLength)}function Kc(n){var t=new n.constructor(n.source,Xi.exec(n));return t.lastIndex=n.lastIndex,t}function Yc(n){return ie?M(ie.call(n)):{}}function pu(n,t){var e=t?fi(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.length)}function du(n,t){if(n!==t){var e=n!==i,r=n===null,s=n===n,o=pn(n),f=t!==i,c=t===null,l=t===t,v=pn(t);if(!c&&!v&&!o&&n>t||o&&f&&l&&!c&&!v||r&&f&&l||!e&&l||!s)return 1;if(!r&&!o&&!v&&n=c)return l;var v=e[r];return l*(v==\"desc\"?-1:1)}}return n.index-t.index}function gu(n,t,e,r){for(var s=-1,o=n.length,f=e.length,c=-1,l=t.length,v=Q(o-f,0),_=d(l+v),m=!r;++c1?e[s-1]:i,f=s>2?e[2]:i;for(o=n.length>3&&typeof o==\"function\"?(s--,o):i,f&&rn(e[0],e[1],f)&&(o=s<3?i:o,s=1),t=M(t);++r-1?s[o?t[f]:f]:i}}function Au(n){return Yn(function(t){var e=t.length,r=e,s=Pn.prototype.thru;for(n&&t.reverse();r--;){var o=t[r];if(typeof o!=\"function\")throw new wn(D);if(s&&!f&&je(o)==\"wrapper\")var f=new Pn([],!0)}for(r=f?r:e;++r1&&$.reverse(),_&&lc))return!1;var v=o.get(n),_=o.get(t);if(v&&_)return v==t&&_==n;var m=-1,P=!0,I=e&ve?new gt:i;for(o.set(n,t),o.set(t,n);++m1?\"& \":\"\")+t[r],t=t.join(e>2?\", \":\" \"),n.replace(oo,`{\n/* [wrapped with `+t+`] */\n`)}function fh(n){return O(n)||Pt(n)||!!($s&&n&&n[$s])}function Zn(n,t){var e=typeof n;return t=t??kn,!!t&&(e==\"number\"||e!=\"symbol\"&&Po.test(n))&&n>-1&&n%1==0&&n0){if(++t>=$a)return arguments[0]}else t=0;return n.apply(i,arguments)}}function tr(n,t){var e=-1,r=n.length,s=r-1;for(t=t===i?r:t;++e1?n[t-1]:i;return e=typeof e==\"function\"?(n.pop(),e):i,Yu(n,e)});function Zu(n){var t=a(n);return t.__chain__=!0,t}function Pl(n,t){return t(n),n}function er(n,t){return t(n)}var Al=Yn(function(n){var t=n.length,e=t?n[0]:0,r=this.__wrapped__,s=function(o){return Zr(o,n)};return t>1||this.__actions__.length||!(r instanceof H)||!Zn(e)?this.thru(s):(r=r.slice(e,+e+(t?1:0)),r.__actions__.push({func:er,args:[s],thisArg:i}),new Pn(r,this.__chain__).thru(function(o){return t&&!o.length&&o.push(i),o}))});function Cl(){return Zu(this)}function Il(){return new Pn(this.value(),this.__chain__)}function xl(){this.__values__===i&&(this.__values__=aa(this.value()));var n=this.__index__>=this.__values__.length,t=n?i:this.__values__[this.__index__++];return{done:n,value:t}}function El(){return this}function yl(n){for(var t,e=this;e instanceof qe;){var r=Mu(e);r.__index__=0,r.__values__=i,t?s.__wrapped__=r:t=r;var s=r;e=e.__wrapped__}return s.__wrapped__=n,t}function Sl(){var n=this.__wrapped__;if(n instanceof H){var t=n;return this.__actions__.length&&(t=new H(this)),t=t.reverse(),t.__actions__.push({func:er,args:[Ai],thisArg:i}),new Pn(t,this.__chain__)}return this.thru(Ai)}function Ol(){return fu(this.__wrapped__,this.__actions__)}var Rl=Je(function(n,t,e){F.call(n,e)?++n[e]:zn(n,e,1)});function bl(n,t,e){var r=O(n)?Cs:Pc;return e&&rn(n,t,e)&&(t=i),r(n,x(t,3))}function Tl(n,t){var e=O(n)?jn:Ys;return e(n,x(t,3))}var Ll=Pu(qu),Dl=Pu(Bu);function Nl(n,t){return j(rr(n,t),1)}function Hl(n,t){return j(rr(n,t),ht)}function $l(n,t,e){return e=e===i?1:R(e),j(rr(n,t),e)}function Ju(n,t){var e=O(n)?mn:rt;return e(n,x(t,3))}function Xu(n,t){var e=O(n)?nf:Ks;return e(n,x(t,3))}var Ul=Je(function(n,t,e){F.call(n,e)?n[e].push(t):zn(n,e,[t])});function Wl(n,t,e,r){n=an(n)?n:Gt(n),e=e&&!r?R(e):0;var s=n.length;return e<0&&(e=Q(s+e,0)),or(n)?e<=s&&n.indexOf(t,e)>-1:!!s&&Tt(n,t,e)>-1}var Fl=L(function(n,t,e){var r=-1,s=typeof t==\"function\",o=an(n)?d(n.length):[];return rt(n,function(f){o[++r]=s?cn(t,f,e):ae(f,t,e)}),o}),Ml=Je(function(n,t,e){zn(n,e,t)});function rr(n,t){var e=O(n)?G:ks;return e(n,x(t,3))}function ql(n,t,e,r){return n==null?[]:(O(t)||(t=t==null?[]:[t]),e=r?i:e,O(e)||(e=e==null?[]:[e]),eu(n,t,e))}var Bl=Je(function(n,t,e){n[e?0:1].push(t)},function(){return[[],[]]});function Gl(n,t,e){var r=O(n)?Nr:ys,s=arguments.length<3;return r(n,x(t,4),e,s,rt)}function zl(n,t,e){var r=O(n)?tf:ys,s=arguments.length<3;return r(n,x(t,4),e,s,Ks)}function Kl(n,t){var e=O(n)?jn:Ys;return e(n,ur(x(t,3)))}function Yl(n){var t=O(n)?qs:Wc;return t(n)}function Zl(n,t,e){(e?rn(n,t,e):t===i)?t=1:t=R(t);var r=O(n)?gc:Fc;return r(n,t)}function Jl(n){var t=O(n)?vc:qc;return t(n)}function Xl(n){if(n==null)return 0;if(an(n))return or(n)?Dt(n):n.length;var t=tn(n);return t==yn||t==Sn?n.size:jr(n).length}function Ql(n,t,e){var r=O(n)?Hr:Bc;return e&&rn(n,t,e)&&(t=i),r(n,x(t,3))}var Vl=L(function(n,t){if(n==null)return[];var e=t.length;return e>1&&rn(n,t[0],t[1])?t=[]:e>2&&rn(t[0],t[1],t[2])&&(t=[t[0]]),eu(n,j(t,1),[])}),ir=Tf||function(){return k.Date.now()};function kl(n,t){if(typeof t!=\"function\")throw new wn(D);return n=R(n),function(){if(--n<1)return t.apply(this,arguments)}}function Qu(n,t,e){return t=e?i:t,t=n&&t==null?n.length:t,Kn(n,Mn,i,i,i,i,t)}function Vu(n,t){var e;if(typeof t!=\"function\")throw new wn(D);return n=R(n),function(){return--n>0&&(e=t.apply(this,arguments)),n<=1&&(t=i),e}}var Ii=L(function(n,t,e){var r=vn;if(e.length){var s=tt(e,qt(Ii));r|=Nn}return Kn(n,r,t,e,s)}),ku=L(function(n,t,e){var r=vn|ct;if(e.length){var s=tt(e,qt(ku));r|=Nn}return Kn(t,r,n,e,s)});function ju(n,t,e){t=e?i:t;var r=Kn(n,Dn,i,i,i,i,i,t);return r.placeholder=ju.placeholder,r}function na(n,t,e){t=e?i:t;var r=Kn(n,yt,i,i,i,i,i,t);return r.placeholder=na.placeholder,r}function ta(n,t,e){var r,s,o,f,c,l,v=0,_=!1,m=!1,P=!0;if(typeof n!=\"function\")throw new wn(D);t=xn(t)||0,K(e)&&(_=!!e.leading,m=\"maxWait\"in e,o=m?Q(xn(e.maxWait)||0,t):o,P=\"trailing\"in e?!!e.trailing:P);function I(J){var Tn=r,Qn=s;return r=s=i,v=J,f=n.apply(Qn,Tn),f}function E(J){return v=J,c=le(N,t),_?I(J):f}function T(J){var Tn=J-l,Qn=J-v,Pa=t-Tn;return m?nn(Pa,o-Qn):Pa}function y(J){var Tn=J-l,Qn=J-v;return l===i||Tn>=t||Tn<0||m&&Qn>=o}function N(){var J=ir();if(y(J))return $(J);c=le(N,T(J))}function $(J){return c=i,P&&r?I(J):(r=s=i,f)}function dn(){c!==i&&hu(c),v=0,r=l=s=c=i}function sn(){return c===i?f:$(ir())}function gn(){var J=ir(),Tn=y(J);if(r=arguments,s=this,l=J,Tn){if(c===i)return E(l);if(m)return hu(c),c=le(N,t),I(l)}return c===i&&(c=le(N,t)),f}return gn.cancel=dn,gn.flush=sn,gn}var jl=L(function(n,t){return zs(n,1,t)}),np=L(function(n,t,e){return zs(n,xn(t)||0,e)});function tp(n){return Kn(n,dr)}function sr(n,t){if(typeof n!=\"function\"||t!=null&&typeof t!=\"function\")throw new wn(D);var e=function(){var r=arguments,s=t?t.apply(this,r):r[0],o=e.cache;if(o.has(s))return o.get(s);var f=n.apply(this,r);return e.cache=o.set(s,f)||o,f};return e.cache=new(sr.Cache||Gn),e}sr.Cache=Gn;function ur(n){if(typeof n!=\"function\")throw new wn(D);return function(){var t=arguments;switch(t.length){case 0:return!n.call(this);case 1:return!n.call(this,t[0]);case 2:return!n.call(this,t[0],t[1]);case 3:return!n.call(this,t[0],t[1],t[2])}return!n.apply(this,t)}}function ep(n){return Vu(2,n)}var rp=Gc(function(n,t){t=t.length==1&&O(t[0])?G(t[0],hn(x())):G(j(t,1),hn(x()));var e=t.length;return L(function(r){for(var s=-1,o=nn(r.length,e);++s=t}),Pt=Xs(function(){return arguments}())?Xs:function(n){return Y(n)&&F.call(n,\"callee\")&&!Hs.call(n,\"callee\")},O=d.isArray,mp=vs?hn(vs):yc;function an(n){return n!=null&&ar(n.length)&&!Jn(n)}function Z(n){return Y(n)&&an(n)}function wp(n){return n===!0||n===!1||Y(n)&&en(n)==Yt}var at=Df||Hi,Pp=_s?hn(_s):Sc;function Ap(n){return Y(n)&&n.nodeType===1&&!pe(n)}function Cp(n){if(n==null)return!0;if(an(n)&&(O(n)||typeof n==\"string\"||typeof n.splice==\"function\"||at(n)||Bt(n)||Pt(n)))return!n.length;var t=tn(n);if(t==yn||t==Sn)return!n.size;if(he(n))return!jr(n).length;for(var e in n)if(F.call(n,e))return!1;return!0}function Ip(n,t){return oe(n,t)}function xp(n,t,e){e=typeof e==\"function\"?e:i;var r=e?e(n,t):i;return r===i?oe(n,t,i,e):!!r}function Ei(n){if(!Y(n))return!1;var t=en(n);return t==we||t==Ka||typeof n.message==\"string\"&&typeof n.name==\"string\"&&!pe(n)}function Ep(n){return typeof n==\"number\"&&Us(n)}function Jn(n){if(!K(n))return!1;var t=en(n);return t==Pe||t==zi||t==za||t==Za}function ra(n){return typeof n==\"number\"&&n==R(n)}function ar(n){return typeof n==\"number\"&&n>-1&&n%1==0&&n<=kn}function K(n){var t=typeof n;return n!=null&&(t==\"object\"||t==\"function\")}function Y(n){return n!=null&&typeof n==\"object\"}var ia=ms?hn(ms):Rc;function yp(n,t){return n===t||kr(n,t,gi(t))}function Sp(n,t,e){return e=typeof e==\"function\"?e:i,kr(n,t,gi(t),e)}function Op(n){return sa(n)&&n!=+n}function Rp(n){if(lh(n))throw new S(b);return Qs(n)}function bp(n){return n===null}function Tp(n){return n==null}function sa(n){return typeof n==\"number\"||Y(n)&&en(n)==Jt}function pe(n){if(!Y(n)||en(n)!=qn)return!1;var t=Ne(n);if(t===null)return!0;var e=F.call(t,\"constructor\")&&t.constructor;return typeof e==\"function\"&&e instanceof e&&be.call(e)==Sf}var yi=ws?hn(ws):bc;function Lp(n){return ra(n)&&n>=-kn&&n<=kn}var ua=Ps?hn(Ps):Tc;function or(n){return typeof n==\"string\"||!O(n)&&Y(n)&&en(n)==Qt}function pn(n){return typeof n==\"symbol\"||Y(n)&&en(n)==Ae}var Bt=As?hn(As):Lc;function Dp(n){return n===i}function Np(n){return Y(n)&&tn(n)==Vt}function Hp(n){return Y(n)&&en(n)==Xa}var $p=ke(ni),Up=ke(function(n,t){return n<=t});function aa(n){if(!n)return[];if(an(n))return or(n)?On(n):un(n);if(ne&&n[ne])return gf(n[ne]());var t=tn(n),e=t==yn?qr:t==Sn?Se:Gt;return e(n)}function Xn(n){if(!n)return n===0?n:0;if(n=xn(n),n===ht||n===-ht){var t=n<0?-1:1;return t*Ma}return n===n?n:0}function R(n){var t=Xn(n),e=t%1;return t===t?e?t-e:t:0}function oa(n){return n?vt(R(n),0,Hn):0}function xn(n){if(typeof n==\"number\")return n;if(pn(n))return _e;if(K(n)){var t=typeof n.valueOf==\"function\"?n.valueOf():n;n=K(t)?t+\"\":t}if(typeof n!=\"string\")return n===0?n:+n;n=Ss(n);var e=_o.test(n);return e||wo.test(n)?Vo(n.slice(2),e?2:8):vo.test(n)?_e:+n}function fa(n){return Un(n,on(n))}function Wp(n){return n?vt(R(n),-kn,kn):n===0?n:0}function W(n){return n==null?\"\":ln(n)}var Fp=Ft(function(n,t){if(he(t)||an(t)){Un(t,V(t),n);return}for(var e in t)F.call(t,e)&&se(n,e,t[e])}),ca=Ft(function(n,t){Un(t,on(t),n)}),fr=Ft(function(n,t,e,r){Un(t,on(t),n,r)}),Mp=Ft(function(n,t,e,r){Un(t,V(t),n,r)}),qp=Yn(Zr);function Bp(n,t){var e=Wt(n);return t==null?e:Bs(e,t)}var Gp=L(function(n,t){n=M(n);var e=-1,r=t.length,s=r>2?t[2]:i;for(s&&rn(t[0],t[1],s)&&(r=1);++e1),o}),Un(n,pi(n),e),r&&(e=An(e,Ln|Fn|xt,nh));for(var s=t.length;s--;)si(e,t[s]);return e});function ad(n,t){return la(n,ur(x(t)))}var od=Yn(function(n,t){return n==null?{}:Hc(n,t)});function la(n,t){if(n==null)return{};var e=G(pi(n),function(r){return[r]});return t=x(t),ru(n,e,function(r,s){return t(r,s[0])})}function fd(n,t,e){t=st(t,n);var r=-1,s=t.length;for(s||(s=1,n=i);++rt){var r=n;n=t,t=r}if(e||n%1||t%1){var s=Ws();return nn(n+s*(t-n+Qo(\"1e-\"+((s+\"\").length-1))),t)}return ei(n,t)}var Pd=Mt(function(n,t,e){return t=t.toLowerCase(),n+(e?ga(t):t)});function ga(n){return Ri(W(n).toLowerCase())}function va(n){return n=W(n),n&&n.replace(Ao,cf).replace(Mo,\"\")}function Ad(n,t,e){n=W(n),t=ln(t);var r=n.length;e=e===i?r:vt(R(e),0,r);var s=e;return e-=t.length,e>=0&&n.slice(e,s)==t}function Cd(n){return n=W(n),n&&no.test(n)?n.replace(Zi,hf):n}function Id(n){return n=W(n),n&&uo.test(n)?n.replace(xr,\"\\\\$&\"):n}var xd=Mt(function(n,t,e){return n+(e?\"-\":\"\")+t.toLowerCase()}),Ed=Mt(function(n,t,e){return n+(e?\" \":\"\")+t.toLowerCase()}),yd=wu(\"toLowerCase\");function Sd(n,t,e){n=W(n),t=R(t);var r=t?Dt(n):0;if(!t||r>=t)return n;var s=(t-r)/2;return Ve(We(s),e)+n+Ve(Ue(s),e)}function Od(n,t,e){n=W(n),t=R(t);var r=t?Dt(n):0;return t&&r>>0,e?(n=W(n),n&&(typeof t==\"string\"||t!=null&&!yi(t))&&(t=ln(t),!t&&Lt(n))?ut(On(n),0,e):n.split(t,e)):[]}var Hd=Mt(function(n,t,e){return n+(e?\" \":\"\")+Ri(t)});function $d(n,t,e){return n=W(n),e=e==null?0:vt(R(e),0,n.length),t=ln(t),n.slice(e,e+t.length)==t}function Ud(n,t,e){var r=a.templateSettings;e&&rn(n,t,e)&&(t=i),n=W(n),t=fr({},t,r,yu);var s=fr({},t.imports,r.imports,yu),o=V(s),f=Mr(s,o),c,l,v=0,_=t.interpolate||Ce,m=\"__p += '\",P=Br((t.escape||Ce).source+\"|\"+_.source+\"|\"+(_===Ji?go:Ce).source+\"|\"+(t.evaluate||Ce).source+\"|$\",\"g\"),I=\"//# sourceURL=\"+(F.call(t,\"sourceURL\")?(t.sourceURL+\"\").replace(/\\s/g,\" \"):\"lodash.templateSources[\"+ ++Ko+\"]\")+`\n`;n.replace(P,function(y,N,$,dn,sn,gn){return $||($=dn),m+=n.slice(v,gn).replace(Co,lf),N&&(c=!0,m+=`' +\n__e(`+N+`) +\n'`),sn&&(l=!0,m+=`';\n`+sn+`;\n__p += '`),$&&(m+=`' +\n((__t = (`+$+`)) == null ? '' : __t) +\n'`),v=gn+y.length,y}),m+=`';\n`;var E=F.call(t,\"variable\")&&t.variable;if(!E)m=`with (obj) {\n`+m+`\n}\n`;else if(lo.test(E))throw new S(En);m=(l?m.replace(Qa,\"\"):m).replace(Va,\"$1\").replace(ka,\"$1;\"),m=\"function(\"+(E||\"obj\")+`) {\n`+(E?\"\":`obj || (obj = {});\n`)+\"var __t, __p = ''\"+(c?\", __e = _.escape\":\"\")+(l?`, __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n`:`;\n`)+m+`return __p\n}`;var T=ma(function(){return U(o,I+\"return \"+m).apply(i,f)});if(T.source=m,Ei(T))throw T;return T}function Wd(n){return W(n).toLowerCase()}function Fd(n){return W(n).toUpperCase()}function Md(n,t,e){if(n=W(n),n&&(e||t===i))return Ss(n);if(!n||!(t=ln(t)))return n;var r=On(n),s=On(t),o=Os(r,s),f=Rs(r,s)+1;return ut(r,o,f).join(\"\")}function qd(n,t,e){if(n=W(n),n&&(e||t===i))return n.slice(0,Ts(n)+1);if(!n||!(t=ln(t)))return n;var r=On(n),s=Rs(r,On(t))+1;return ut(r,0,s).join(\"\")}function Bd(n,t,e){if(n=W(n),n&&(e||t===i))return n.replace(Er,\"\");if(!n||!(t=ln(t)))return n;var r=On(n),s=Os(r,On(t));return ut(r,s).join(\"\")}function Gd(n,t){var e=Na,r=Ha;if(K(t)){var s=\"separator\"in t?t.separator:s;e=\"length\"in t?R(t.length):e,r=\"omission\"in t?ln(t.omission):r}n=W(n);var o=n.length;if(Lt(n)){var f=On(n);o=f.length}if(e>=o)return n;var c=e-Dt(r);if(c<1)return r;var l=f?ut(f,0,c).join(\"\"):n.slice(0,c);if(s===i)return l+r;if(f&&(c+=l.length-c),yi(s)){if(n.slice(c).search(s)){var v,_=l;for(s.global||(s=Br(s.source,W(Xi.exec(s))+\"g\")),s.lastIndex=0;v=s.exec(_);)var m=v.index;l=l.slice(0,m===i?c:m)}}else if(n.indexOf(ln(s),c)!=c){var P=l.lastIndexOf(s);P>-1&&(l=l.slice(0,P))}return l+r}function zd(n){return n=W(n),n&&ja.test(n)?n.replace(Yi,wf):n}var Kd=Mt(function(n,t,e){return n+(e?\" \":\"\")+t.toUpperCase()}),Ri=wu(\"toUpperCase\");function _a(n,t,e){return n=W(n),t=e?i:t,t===i?df(n)?Cf(n):sf(n):n.match(t)||[]}var ma=L(function(n,t){try{return cn(n,i,t)}catch(e){return Ei(e)?e:new S(e)}}),Yd=Yn(function(n,t){return mn(t,function(e){e=Wn(e),zn(n,e,Ii(n[e],n))}),n});function Zd(n){var t=n==null?0:n.length,e=x();return n=t?G(n,function(r){if(typeof r[1]!=\"function\")throw new wn(D);return[e(r[0]),r[1]]}):[],L(function(r){for(var s=-1;++skn)return[];var e=Hn,r=nn(n,Hn);t=x(t),n-=Hn;for(var s=Fr(r,t);++e0||t<0)?new H(e):(n<0?e=e.takeRight(-n):n&&(e=e.drop(n)),t!==i&&(t=R(t),e=t<0?e.dropRight(-t):e.take(t-n)),e)},H.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},H.prototype.toArray=function(){return this.take(Hn)},$n(H.prototype,function(n,t){var e=/^(?:filter|find|map|reject)|While$/.test(t),r=/^(?:head|last)$/.test(t),s=a[r?\"take\"+(t==\"last\"?\"Right\":\"\"):t],o=r||/^find/.test(t);s&&(a.prototype[t]=function(){var f=this.__wrapped__,c=r?[1]:arguments,l=f instanceof H,v=c[0],_=l||O(f),m=function(N){var $=s.apply(a,nt([N],c));return r&&P?$[0]:$};_&&e&&typeof v==\"function\"&&v.length!=1&&(l=_=!1);var P=this.__chain__,I=!!this.__actions__.length,E=o&&!P,T=l&&!I;if(!o&&_){f=T?f:new H(this);var y=n.apply(f,c);return y.__actions__.push({func:er,args:[m],thisArg:i}),new Pn(y,P)}return E&&T?n.apply(this,c):(y=this.thru(m),E?r?y.value()[0]:y.value():y)})}),mn([\"pop\",\"push\",\"shift\",\"sort\",\"splice\",\"unshift\"],function(n){var t=Oe[n],e=/^(?:push|sort|unshift)$/.test(n)?\"tap\":\"thru\",r=/^(?:pop|shift)$/.test(n);a.prototype[n]=function(){var s=arguments;if(r&&!this.__chain__){var o=this.value();return t.apply(O(o)?o:[],s)}return this[e](function(f){return t.apply(O(f)?f:[],s)})}}),$n(H.prototype,function(n,t){var e=a[t];if(e){var r=e.name+\"\";F.call(Ut,r)||(Ut[r]=[]),Ut[r].push({name:t,func:e})}}),Ut[Xe(i,ct).name]=[{name:\"wrapper\",func:i}],H.prototype.clone=zf,H.prototype.reverse=Kf,H.prototype.value=Yf,a.prototype.at=Al,a.prototype.chain=Cl,a.prototype.commit=Il,a.prototype.next=xl,a.prototype.plant=yl,a.prototype.reverse=Sl,a.prototype.toJSON=a.prototype.valueOf=a.prototype.value=Ol,a.prototype.first=a.prototype.head,ne&&(a.prototype[ne]=El),a},Nt=If();lt?((lt.exports=Nt)._=Nt,Tr._=Nt):k._=Nt}).call(ge)})(Ui,Ui.exports);var zg=Object.defineProperty,Kg=Object.defineProperties,Yg=Object.getOwnPropertyDescriptors,ya=Object.getOwnPropertySymbols,Zg=Object.prototype.hasOwnProperty,Jg=Object.prototype.propertyIsEnumerable,Sa=(A,u,i)=>u in A?zg(A,u,{enumerable:!0,configurable:!0,writable:!0,value:i}):A[u]=i,cr=(A,u)=>{for(var i in u||(u={}))Zg.call(u,i)&&Sa(A,i,u[i]);if(ya)for(var i of ya(u))Jg.call(u,i)&&Sa(A,i,u[i]);return A},Xg=(A,u)=>Kg(A,Yg(u));function ft(A,u,i){var p;const w=Ng(A);return((p=u.rpcMap)==null?void 0:p[w.reference])||`${Gg}?chainId=${w.namespace}:${w.reference}&projectId=${i}`}function Ct(A){return A.includes(\":\")?A.split(\":\")[1]:A}function Oa(A){return A.map(u=>`${u.split(\":\")[0]}:${u.split(\":\")[1]}`)}function Qg(A,u){const i=Object.keys(u.namespaces).filter(w=>w.includes(A));if(!i.length)return[];const p=[];return i.forEach(w=>{const b=u.namespaces[w].accounts;p.push(...b)}),p}function Wi(A={},u={}){const i=Ra(A),p=Ra(u);return Ui.exports.merge(i,p)}function Ra(A){var u,i,p,w;const b={};if(!Dg(A))return b;for(const[D,En]of Object.entries(A)){const zt=Aa(D)?[D]:En.chains,pr=En.methods||[],It=En.events||[],Ln=En.rpcMap||{},Fn=de(D);b[Fn]=Xg(cr(cr({},b[Fn]),En),{chains:$i(zt,(u=b[Fn])==null?void 0:u.chains),methods:$i(pr,(i=b[Fn])==null?void 0:i.methods),events:$i(It,(p=b[Fn])==null?void 0:p.events),rpcMap:cr(cr({},Ln),(w=b[Fn])==null?void 0:w.rpcMap)})}return b}function Vg(A){return A.includes(\":\")?A.split(\":\")[2]:A}function ba(A){const u={};for(const[i,p]of Object.entries(A)){const w=p.methods||[],b=p.events||[],D=p.accounts||[],En=Aa(i)?[i]:p.chains?p.chains:Oa(p.accounts);u[i]={chains:En,methods:w,events:b,accounts:D}}return u}function Fi(A){return typeof A==\"number\"?A:A.includes(\"0x\")?parseInt(A,16):(A=A.includes(\":\")?A.split(\":\")[1]:A,isNaN(Number(A))?A:Number(A))}const Ta={},z=A=>Ta[A],Mi=(A,u)=>{Ta[A]=u};class kg{constructor(u){this.name=\"polkadot\",this.namespace=u.namespace,this.events=z(\"events\"),this.client=z(\"client\"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(u){this.namespace=Object.assign(this.namespace,u)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const u=this.namespace.chains[0];if(!u)throw new Error(\"ChainId not found\");return u.split(\":\")[1]}request(u){return this.namespace.methods.includes(u.request.method)?this.client.request(u):this.getHttpProvider().request(u.request)}setDefaultChain(u,i){this.httpProviders[u]||this.setHttpProvider(u,i),this.chainId=u,this.events.emit(Vn.DEFAULT_CHAIN_CHANGED,`${this.name}:${u}`)}getAccounts(){const u=this.namespace.accounts;return u?u.filter(i=>i.split(\":\")[1]===this.chainId.toString()).map(i=>i.split(\":\")[2])||[]:[]}createHttpProviders(){const u={};return this.namespace.chains.forEach(i=>{var p;const w=Ct(i);u[w]=this.createHttpProvider(w,(p=this.namespace.rpcMap)==null?void 0:p[i])}),u}getHttpProvider(){const u=`${this.name}:${this.chainId}`,i=this.httpProviders[u];if(typeof i>\"u\")throw new Error(`JSON-RPC provider for ${u} not found`);return i}setHttpProvider(u,i){const p=this.createHttpProvider(u,i);p&&(this.httpProviders[u]=p)}createHttpProvider(u,i){const p=i||ft(u,this.namespace,this.client.core.projectId);if(!p)throw new Error(`No RPC url provided for chainId: ${u}`);return new ot(new At(p,z(\"disableProviderPing\")))}}class jg{constructor(u){this.name=\"eip155\",this.namespace=u.namespace,this.events=z(\"events\"),this.client=z(\"client\"),this.httpProviders=this.createHttpProviders(),this.chainId=parseInt(this.getDefaultChain())}async request(u){switch(u.request.method){case\"eth_requestAccounts\":return this.getAccounts();case\"eth_accounts\":return this.getAccounts();case\"wallet_switchEthereumChain\":return await this.handleSwitchChain(u);case\"eth_chainId\":return parseInt(this.getDefaultChain())}return this.namespace.methods.includes(u.request.method)?await this.client.request(u):this.getHttpProvider().request(u.request)}updateNamespace(u){this.namespace=Object.assign(this.namespace,u)}setDefaultChain(u,i){this.httpProviders[u]||this.setHttpProvider(parseInt(u),i),this.chainId=parseInt(u),this.events.emit(Vn.DEFAULT_CHAIN_CHANGED,`${this.name}:${u}`)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId.toString();if(this.namespace.defaultChain)return this.namespace.defaultChain;const u=this.namespace.chains[0];if(!u)throw new Error(\"ChainId not found\");return u.split(\":\")[1]}createHttpProvider(u,i){const p=i||ft(`${this.name}:${u}`,this.namespace,this.client.core.projectId);if(!p)throw new Error(`No RPC url provided for chainId: ${u}`);return new ot(new Ug(p,z(\"disableProviderPing\")))}setHttpProvider(u,i){const p=this.createHttpProvider(u,i);p&&(this.httpProviders[u]=p)}createHttpProviders(){const u={};return this.namespace.chains.forEach(i=>{var p;const w=parseInt(Ct(i));u[w]=this.createHttpProvider(w,(p=this.namespace.rpcMap)==null?void 0:p[i])}),u}getAccounts(){const u=this.namespace.accounts;return u?[...new Set(u.filter(i=>i.split(\":\")[1]===this.chainId.toString()).map(i=>i.split(\":\")[2]))]:[]}getHttpProvider(){const u=this.chainId,i=this.httpProviders[u];if(typeof i>\"u\")throw new Error(`JSON-RPC provider for ${u} not found`);return i}async handleSwitchChain(u){var i,p;let w=u.request.params?(i=u.request.params[0])==null?void 0:i.chainId:\"0x0\";w=w.startsWith(\"0x\")?w:`0x${w}`;const b=parseInt(w,16);if(this.isChainApproved(b))this.setDefaultChain(`${b}`);else if(this.namespace.methods.includes(\"wallet_switchEthereumChain\"))await this.client.request({topic:u.topic,request:{method:u.request.method,params:[{chainId:w}]},chainId:(p=this.namespace.chains)==null?void 0:p[0]}),this.setDefaultChain(`${b}`);else throw new Error(`Failed to switch to chain 'eip155:${b}'. The chain is not approved or the wallet does not support 'wallet_switchEthereumChain' method.`);return null}isChainApproved(u){return this.namespace.chains.includes(`${this.name}:${u}`)}}class nv{constructor(u){this.name=\"solana\",this.namespace=u.namespace,this.events=z(\"events\"),this.client=z(\"client\"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(u){this.namespace=Object.assign(this.namespace,u)}requestAccounts(){return this.getAccounts()}request(u){return this.namespace.methods.includes(u.request.method)?this.client.request(u):this.getHttpProvider().request(u.request)}setDefaultChain(u,i){this.httpProviders[u]||this.setHttpProvider(u,i),this.chainId=u,this.events.emit(Vn.DEFAULT_CHAIN_CHANGED,`${this.name}:${u}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const u=this.namespace.chains[0];if(!u)throw new Error(\"ChainId not found\");return u.split(\":\")[1]}getAccounts(){const u=this.namespace.accounts;return u?[...new Set(u.filter(i=>i.split(\":\")[1]===this.chainId.toString()).map(i=>i.split(\":\")[2]))]:[]}createHttpProviders(){const u={};return this.namespace.chains.forEach(i=>{var p;const w=Ct(i);u[w]=this.createHttpProvider(w,(p=this.namespace.rpcMap)==null?void 0:p[i])}),u}getHttpProvider(){const u=`${this.name}:${this.chainId}`,i=this.httpProviders[u];if(typeof i>\"u\")throw new Error(`JSON-RPC provider for ${u} not found`);return i}setHttpProvider(u,i){const p=this.createHttpProvider(u,i);p&&(this.httpProviders[u]=p)}createHttpProvider(u,i){const p=i||ft(u,this.namespace,this.client.core.projectId);if(!p)throw new Error(`No RPC url provided for chainId: ${u}`);return new ot(new At(p,z(\"disableProviderPing\")))}}class tv{constructor(u){this.name=\"cosmos\",this.namespace=u.namespace,this.events=z(\"events\"),this.client=z(\"client\"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(u){this.namespace=Object.assign(this.namespace,u)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const u=this.namespace.chains[0];if(!u)throw new Error(\"ChainId not found\");return u.split(\":\")[1]}request(u){return this.namespace.methods.includes(u.request.method)?this.client.request(u):this.getHttpProvider().request(u.request)}setDefaultChain(u,i){this.httpProviders[u]||this.setHttpProvider(u,i),this.chainId=u,this.events.emit(Vn.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){const u=this.namespace.accounts;return u?[...new Set(u.filter(i=>i.split(\":\")[1]===this.chainId.toString()).map(i=>i.split(\":\")[2]))]:[]}createHttpProviders(){const u={};return this.namespace.chains.forEach(i=>{var p;const w=Ct(i);u[w]=this.createHttpProvider(w,(p=this.namespace.rpcMap)==null?void 0:p[i])}),u}getHttpProvider(){const u=`${this.name}:${this.chainId}`,i=this.httpProviders[u];if(typeof i>\"u\")throw new Error(`JSON-RPC provider for ${u} not found`);return i}setHttpProvider(u,i){const p=this.createHttpProvider(u,i);p&&(this.httpProviders[u]=p)}createHttpProvider(u,i){const p=i||ft(u,this.namespace,this.client.core.projectId);if(!p)throw new Error(`No RPC url provided for chainId: ${u}`);return new ot(new At(p,z(\"disableProviderPing\")))}}class ev{constructor(u){this.name=\"cip34\",this.namespace=u.namespace,this.events=z(\"events\"),this.client=z(\"client\"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(u){this.namespace=Object.assign(this.namespace,u)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const u=this.namespace.chains[0];if(!u)throw new Error(\"ChainId not found\");return u.split(\":\")[1]}request(u){return this.namespace.methods.includes(u.request.method)?this.client.request(u):this.getHttpProvider().request(u.request)}setDefaultChain(u,i){this.httpProviders[u]||this.setHttpProvider(u,i),this.chainId=u,this.events.emit(Vn.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){const u=this.namespace.accounts;return u?[...new Set(u.filter(i=>i.split(\":\")[1]===this.chainId.toString()).map(i=>i.split(\":\")[2]))]:[]}createHttpProviders(){const u={};return this.namespace.chains.forEach(i=>{const p=this.getCardanoRPCUrl(i),w=Ct(i);u[w]=this.createHttpProvider(w,p)}),u}getHttpProvider(){const u=`${this.name}:${this.chainId}`,i=this.httpProviders[u];if(typeof i>\"u\")throw new Error(`JSON-RPC provider for ${u} not found`);return i}getCardanoRPCUrl(u){const i=this.namespace.rpcMap;if(i)return i[u]}setHttpProvider(u,i){const p=this.createHttpProvider(u,i);p&&(this.httpProviders[u]=p)}createHttpProvider(u,i){const p=i||this.getCardanoRPCUrl(u);if(!p)throw new Error(`No RPC url provided for chainId: ${u}`);return new ot(new At(p,z(\"disableProviderPing\")))}}class rv{constructor(u){this.name=\"elrond\",this.namespace=u.namespace,this.events=z(\"events\"),this.client=z(\"client\"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(u){this.namespace=Object.assign(this.namespace,u)}requestAccounts(){return this.getAccounts()}request(u){return this.namespace.methods.includes(u.request.method)?this.client.request(u):this.getHttpProvider().request(u.request)}setDefaultChain(u,i){this.httpProviders[u]||this.setHttpProvider(u,i),this.chainId=u,this.events.emit(Vn.DEFAULT_CHAIN_CHANGED,`${this.name}:${u}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const u=this.namespace.chains[0];if(!u)throw new Error(\"ChainId not found\");return u.split(\":\")[1]}getAccounts(){const u=this.namespace.accounts;return u?[...new Set(u.filter(i=>i.split(\":\")[1]===this.chainId.toString()).map(i=>i.split(\":\")[2]))]:[]}createHttpProviders(){const u={};return this.namespace.chains.forEach(i=>{var p;const w=Ct(i);u[w]=this.createHttpProvider(w,(p=this.namespace.rpcMap)==null?void 0:p[i])}),u}getHttpProvider(){const u=`${this.name}:${this.chainId}`,i=this.httpProviders[u];if(typeof i>\"u\")throw new Error(`JSON-RPC provider for ${u} not found`);return i}setHttpProvider(u,i){const p=this.createHttpProvider(u,i);p&&(this.httpProviders[u]=p)}createHttpProvider(u,i){const p=i||ft(u,this.namespace,this.client.core.projectId);if(!p)throw new Error(`No RPC url provided for chainId: ${u}`);return new ot(new At(p,z(\"disableProviderPing\")))}}class iv{constructor(u){this.name=\"multiversx\",this.namespace=u.namespace,this.events=z(\"events\"),this.client=z(\"client\"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(u){this.namespace=Object.assign(this.namespace,u)}requestAccounts(){return this.getAccounts()}request(u){return this.namespace.methods.includes(u.request.method)?this.client.request(u):this.getHttpProvider().request(u.request)}setDefaultChain(u,i){this.httpProviders[u]||this.setHttpProvider(u,i),this.chainId=u,this.events.emit(Vn.DEFAULT_CHAIN_CHANGED,`${this.name}:${u}`)}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const u=this.namespace.chains[0];if(!u)throw new Error(\"ChainId not found\");return u.split(\":\")[1]}getAccounts(){const u=this.namespace.accounts;return u?[...new Set(u.filter(i=>i.split(\":\")[1]===this.chainId.toString()).map(i=>i.split(\":\")[2]))]:[]}createHttpProviders(){const u={};return this.namespace.chains.forEach(i=>{var p;const w=Ct(i);u[w]=this.createHttpProvider(w,(p=this.namespace.rpcMap)==null?void 0:p[i])}),u}getHttpProvider(){const u=`${this.name}:${this.chainId}`,i=this.httpProviders[u];if(typeof i>\"u\")throw new Error(`JSON-RPC provider for ${u} not found`);return i}setHttpProvider(u,i){const p=this.createHttpProvider(u,i);p&&(this.httpProviders[u]=p)}createHttpProvider(u,i){const p=i||ft(u,this.namespace,this.client.core.projectId);if(!p)throw new Error(`No RPC url provided for chainId: ${u}`);return new ot(new At(p,z(\"disableProviderPing\")))}}class sv{constructor(u){this.name=\"near\",this.namespace=u.namespace,this.events=z(\"events\"),this.client=z(\"client\"),this.chainId=this.getDefaultChain(),this.httpProviders=this.createHttpProviders()}updateNamespace(u){this.namespace=Object.assign(this.namespace,u)}requestAccounts(){return this.getAccounts()}getDefaultChain(){if(this.chainId)return this.chainId;if(this.namespace.defaultChain)return this.namespace.defaultChain;const u=this.namespace.chains[0];if(!u)throw new Error(\"ChainId not found\");return u.split(\":\")[1]}request(u){return this.namespace.methods.includes(u.request.method)?this.client.request(u):this.getHttpProvider().request(u.request)}setDefaultChain(u,i){if(this.chainId=u,!this.httpProviders[u]){const p=i||ft(`${this.name}:${u}`,this.namespace);if(!p)throw new Error(`No RPC url provided for chainId: ${u}`);this.setHttpProvider(u,p)}this.events.emit(Vn.DEFAULT_CHAIN_CHANGED,`${this.name}:${this.chainId}`)}getAccounts(){const u=this.namespace.accounts;return u?u.filter(i=>i.split(\":\")[1]===this.chainId.toString()).map(i=>i.split(\":\")[2])||[]:[]}createHttpProviders(){const u={};return this.namespace.chains.forEach(i=>{var p;u[i]=this.createHttpProvider(i,(p=this.namespace.rpcMap)==null?void 0:p[i])}),u}getHttpProvider(){const u=`${this.name}:${this.chainId}`,i=this.httpProviders[u];if(typeof i>\"u\")throw new Error(`JSON-RPC provider for ${u} not found`);return i}setHttpProvider(u,i){const p=this.createHttpProvider(u,i);p&&(this.httpProviders[u]=p)}createHttpProvider(u,i){const p=i||ft(u,this.namespace);return typeof p>\"u\"?void 0:new ot(new At(p,z(\"disableProviderPing\")))}}var uv=Object.defineProperty,av=Object.defineProperties,ov=Object.getOwnPropertyDescriptors,La=Object.getOwnPropertySymbols,fv=Object.prototype.hasOwnProperty,cv=Object.prototype.propertyIsEnumerable,Da=(A,u,i)=>u in A?uv(A,u,{enumerable:!0,configurable:!0,writable:!0,value:i}):A[u]=i,hr=(A,u)=>{for(var i in u||(u={}))fv.call(u,i)&&Da(A,i,u[i]);if(La)for(var i of La(u))cv.call(u,i)&&Da(A,i,u[i]);return A},qi=(A,u)=>av(A,ov(u));class lr{constructor(u){this.events=new Wg,this.rpcProviders={},this.shouldAbortPairingAttempt=!1,this.maxPairingAttempts=10,this.disableProviderPing=!1,this.providerOpts=u,this.logger=typeof u?.logger<\"u\"&&typeof u?.logger!=\"string\"?u.logger:Hg($g({level:u?.logger||xa})),this.disableProviderPing=u?.disableProviderPing||!1}static async init(u){const i=new lr(u);return await i.initialize(),i}async request(u,i,p){const[w,b]=this.validateChain(i);if(!this.session)throw new Error(\"Please call connect() before request()\");return await this.getProvider(w).request({request:hr({},u),chainId:`${w}:${b}`,topic:this.session.topic,expiry:p})}sendAsync(u,i,p,w){const b=new Date().getTime();this.request(u,p,w).then(D=>i(null,Fg(b,D))).catch(D=>i(D,void 0))}async enable(){if(!this.client)throw new Error(\"Sign Client not initialized\");return this.session||await this.connect({namespaces:this.namespaces,optionalNamespaces:this.optionalNamespaces,sessionProperties:this.sessionProperties}),await this.requestAccounts()}async disconnect(){var u;if(!this.session)throw new Error(\"Please call connect() before enable()\");await this.client.disconnect({topic:(u=this.session)==null?void 0:u.topic,reason:Ca(\"USER_DISCONNECTED\")}),await this.cleanup()}async connect(u){if(!this.client)throw new Error(\"Sign Client not initialized\");if(this.setNamespaces(u),await this.cleanupPendingPairings(),!u.skipPairing)return await this.pair(u.pairingTopic)}async authenticate(u){if(!this.client)throw new Error(\"Sign Client not initialized\");this.setNamespaces(u),await this.cleanupPendingPairings();const{uri:i,response:p}=await this.client.authenticate(u);i&&(this.uri=i,this.events.emit(\"display_uri\",i));const w=await p();if(this.session=w.session,this.session){const b=ba(this.session.namespaces);this.namespaces=Wi(this.namespaces,b),this.persist(\"namespaces\",this.namespaces),this.onConnect()}return w}on(u,i){this.events.on(u,i)}once(u,i){this.events.once(u,i)}removeListener(u,i){this.events.removeListener(u,i)}off(u,i){this.events.off(u,i)}get isWalletConnect(){return!0}async pair(u){this.shouldAbortPairingAttempt=!1;let i=0;do{if(this.shouldAbortPairingAttempt)throw new Error(\"Pairing aborted\");if(i>=this.maxPairingAttempts)throw new Error(\"Max auto pairing attempts reached\");const{uri:p,approval:w}=await this.client.connect({pairingTopic:u,requiredNamespaces:this.namespaces,optionalNamespaces:this.optionalNamespaces,sessionProperties:this.sessionProperties});p&&(this.uri=p,this.events.emit(\"display_uri\",p)),await w().then(b=>{this.session=b;const D=ba(b.namespaces);this.namespaces=Wi(this.namespaces,D),this.persist(\"namespaces\",this.namespaces)}).catch(b=>{if(b.message!==Lg)throw b;i++})}while(!this.session);return this.onConnect(),this.session}setDefaultChain(u,i){try{if(!this.session)return;const[p,w]=this.validateChain(u);this.getProvider(p).setDefaultChain(w,i)}catch(p){if(!/Please call connect/.test(p.message))throw p}}async cleanupPendingPairings(u={}){this.logger.info(\"Cleaning up inactive pairings...\");const i=this.client.pairing.getAll();if(Ia(i)){for(const p of i)u.deletePairings?this.client.core.expirer.set(p.topic,0):await this.client.core.relayer.subscriber.unsubscribe(p.topic);this.logger.info(`Inactive pairings cleared: ${i.length}`)}}abortPairingAttempt(){this.shouldAbortPairingAttempt=!0}async checkStorage(){if(this.namespaces=await this.getFromStore(\"namespaces\"),this.optionalNamespaces=await this.getFromStore(\"optionalNamespaces\")||{},this.client.session.length){const u=this.client.session.keys.length-1;this.session=this.client.session.get(this.client.session.keys[u]),this.createProviders()}}async initialize(){this.logger.trace(\"Initialized\"),await this.createClient(),await this.checkStorage(),this.registerEventListeners()}async createClient(){this.client=this.providerOpts.client||await Tg.init({logger:this.providerOpts.logger||xa,relayUrl:this.providerOpts.relayUrl||Mg,projectId:this.providerOpts.projectId,metadata:this.providerOpts.metadata,storageOptions:this.providerOpts.storageOptions,storage:this.providerOpts.storage,name:this.providerOpts.name}),this.logger.trace(\"SignClient Initialized\")}createProviders(){if(!this.client)throw new Error(\"Sign Client not initialized\");if(!this.session)throw new Error(\"Session not initialized. Please call connect() before enable()\");const u=[...new Set(Object.keys(this.session.namespaces).map(i=>de(i)))];Mi(\"client\",this.client),Mi(\"events\",this.events),Mi(\"disableProviderPing\",this.disableProviderPing),u.forEach(i=>{if(!this.session)return;const p=Qg(i,this.session),w=Oa(p),b=Wi(this.namespaces,this.optionalNamespaces),D=qi(hr({},b[i]),{accounts:p,chains:w});switch(i){case\"eip155\":this.rpcProviders[i]=new jg({namespace:D});break;case\"solana\":this.rpcProviders[i]=new nv({namespace:D});break;case\"cosmos\":this.rpcProviders[i]=new tv({namespace:D});break;case\"polkadot\":this.rpcProviders[i]=new kg({namespace:D});break;case\"cip34\":this.rpcProviders[i]=new ev({namespace:D});break;case\"elrond\":this.rpcProviders[i]=new rv({namespace:D});break;case\"multiversx\":this.rpcProviders[i]=new iv({namespace:D});break;case\"near\":this.rpcProviders[i]=new sv({namespace:D});break}})}registerEventListeners(){if(typeof this.client>\"u\")throw new Error(\"Sign Client is not initialized\");this.client.on(\"session_ping\",u=>{this.events.emit(\"session_ping\",u)}),this.client.on(\"session_event\",u=>{const{params:i}=u,{event:p}=i;if(p.name===\"accountsChanged\"){const w=p.data;w&&Ia(w)&&this.events.emit(\"accountsChanged\",w.map(Vg))}else if(p.name===\"chainChanged\"){const w=i.chainId,b=i.event.data,D=de(w),En=Fi(w)!==Fi(b)?`${D}:${Fi(b)}`:w;this.onChainChanged(En)}else this.events.emit(p.name,p.data);this.events.emit(\"session_event\",u)}),this.client.on(\"session_update\",({topic:u,params:i})=>{var p;const{namespaces:w}=i,b=(p=this.client)==null?void 0:p.session.get(u);this.session=qi(hr({},b),{namespaces:w}),this.onSessionUpdate(),this.events.emit(\"session_update\",{topic:u,params:i})}),this.client.on(\"session_delete\",async u=>{await this.cleanup(),this.events.emit(\"session_delete\",u),this.events.emit(\"disconnect\",qi(hr({},Ca(\"USER_DISCONNECTED\")),{data:u.topic}))}),this.on(Vn.DEFAULT_CHAIN_CHANGED,u=>{this.onChainChanged(u,!0)})}getProvider(u){if(!this.rpcProviders[u])throw new Error(`Provider not found: ${u}`);return this.rpcProviders[u]}onSessionUpdate(){Object.keys(this.rpcProviders).forEach(u=>{var i;this.getProvider(u).updateNamespace((i=this.session)==null?void 0:i.namespaces[u])})}setNamespaces(u){const{namespaces:i,optionalNamespaces:p,sessionProperties:w}=u;i&&Object.keys(i).length&&(this.namespaces=i),p&&Object.keys(p).length&&(this.optionalNamespaces=p),this.sessionProperties=w,this.persist(\"namespaces\",i),this.persist(\"optionalNamespaces\",p)}validateChain(u){const[i,p]=u?.split(\":\")||[\"\",\"\"];if(!this.namespaces||!Object.keys(this.namespaces).length)return[i,p];if(i&&!Object.keys(this.namespaces||{}).map(D=>de(D)).includes(i))throw new Error(`Namespace '${i}' is not configured. Please call connect() first with namespace config.`);if(i&&p)return[i,p];const w=de(Object.keys(this.namespaces)[0]),b=this.rpcProviders[w].getDefaultChain();return[w,b]}async requestAccounts(){const[u]=this.validateChain();return await this.getProvider(u).requestAccounts()}onChainChanged(u,i=!1){if(!this.namespaces)return;const[p,w]=this.validateChain(u);w&&(i||this.getProvider(p).setDefaultChain(w),this.namespaces[p]?this.namespaces[p].defaultChain=w:this.namespaces[`${p}:${w}`]?this.namespaces[`${p}:${w}`].defaultChain=w:this.namespaces[`${p}:${w}`]={defaultChain:w},this.persist(\"namespaces\",this.namespaces),this.events.emit(\"chainChanged\",w))}onConnect(){this.createProviders(),this.events.emit(\"connect\",{session:this.session})}async cleanup(){this.session=void 0,this.namespaces=void 0,this.optionalNamespaces=void 0,this.sessionProperties=void 0,this.persist(\"namespaces\",void 0),this.persist(\"optionalNamespaces\",void 0),this.persist(\"sessionProperties\",void 0),await this.cleanupPendingPairings({deletePairings:!0})}persist(u,i){this.client.core.storage.setItem(`${Ea}/${u}`,i)}async getFromStore(u){return await this.client.core.storage.getItem(`${Ea}/${u}`)}}const hv=lr;export{hv as UniversalProvider,lr as default};\n//# sourceMappingURL=index.es.js.map\n","import{EventEmitter as A}from\"events\";import{getAccountsFromNamespaces as _,getSdkError as P,isValidArray as f}from\"@walletconnect/utils\";import{UniversalProvider as R}from\"@walletconnect/universal-provider\";const T=\"wc\",S=\"ethereum_provider\",$=`${T}@2:${S}:`,j=\"https://rpc.walletconnect.com/v1/\",u=[\"eth_sendTransaction\",\"personal_sign\"],y=[\"eth_accounts\",\"eth_requestAccounts\",\"eth_sendRawTransaction\",\"eth_sign\",\"eth_signTransaction\",\"eth_signTypedData\",\"eth_signTypedData_v3\",\"eth_signTypedData_v4\",\"eth_sendTransaction\",\"personal_sign\",\"wallet_switchEthereumChain\",\"wallet_addEthereumChain\",\"wallet_getPermissions\",\"wallet_requestPermissions\",\"wallet_registerOnboarding\",\"wallet_watchAsset\",\"wallet_scanQRCode\",\"wallet_sendCalls\",\"wallet_getCapabilities\",\"wallet_getCallsStatus\",\"wallet_showCallsStatus\"],g=[\"chainChanged\",\"accountsChanged\"],M=[\"chainChanged\",\"accountsChanged\",\"message\",\"disconnect\",\"connect\"];var q=Object.defineProperty,N=Object.defineProperties,D=Object.getOwnPropertyDescriptors,O=Object.getOwnPropertySymbols,U=Object.prototype.hasOwnProperty,Q=Object.prototype.propertyIsEnumerable,b=(a,t,s)=>t in a?q(a,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):a[t]=s,p=(a,t)=>{for(var s in t||(t={}))U.call(t,s)&&b(a,s,t[s]);if(O)for(var s of O(t))Q.call(t,s)&&b(a,s,t[s]);return a},E=(a,t)=>N(a,D(t));function m(a){return Number(a[0].split(\":\")[1])}function v(a){return`0x${a.toString(16)}`}function L(a){const{chains:t,optionalChains:s,methods:i,optionalMethods:e,events:n,optionalEvents:o,rpcMap:r}=a;if(!f(t))throw new Error(\"Invalid chains\");const c={chains:t,methods:i||u,events:n||g,rpcMap:p({},t.length?{[m(t)]:r[m(t)]}:{})},h=n?.filter(l=>!g.includes(l)),d=i?.filter(l=>!u.includes(l));if(!s&&!o&&!e&&!(h!=null&&h.length)&&!(d!=null&&d.length))return{required:t.length?c:void 0};const w=h?.length&&d?.length||!s,I={chains:[...new Set(w?c.chains.concat(s||[]):s)],methods:[...new Set(c.methods.concat(e!=null&&e.length?e:y))],events:[...new Set(c.events.concat(o!=null&&o.length?o:M))],rpcMap:r};return{required:t.length?c:void 0,optional:s.length?I:void 0}}class C{constructor(){this.events=new A,this.namespace=\"eip155\",this.accounts=[],this.chainId=1,this.STORAGE_KEY=$,this.on=(t,s)=>(this.events.on(t,s),this),this.once=(t,s)=>(this.events.once(t,s),this),this.removeListener=(t,s)=>(this.events.removeListener(t,s),this),this.off=(t,s)=>(this.events.off(t,s),this),this.parseAccount=t=>this.isCompatibleChainId(t)?this.parseAccountId(t).address:t,this.signer={},this.rpc={}}static async init(t){const s=new C;return await s.initialize(t),s}async request(t,s){return await this.signer.request(t,this.formatChainId(this.chainId),s)}sendAsync(t,s,i){this.signer.sendAsync(t,s,this.formatChainId(this.chainId),i)}get connected(){return this.signer.client?this.signer.client.core.relayer.connected:!1}get connecting(){return this.signer.client?this.signer.client.core.relayer.connecting:!1}async enable(){return this.session||await this.connect(),await this.request({method:\"eth_requestAccounts\"})}async connect(t){if(!this.signer.client)throw new Error(\"Provider not initialized. Call init() first\");this.loadConnectOpts(t);const{required:s,optional:i}=L(this.rpc);try{const e=await new Promise(async(o,r)=>{var c;this.rpc.showQrModal&&((c=this.modal)==null||c.subscribeModal(h=>{!h.open&&!this.signer.session&&(this.signer.abortPairingAttempt(),r(new Error(\"Connection request reset. Please try again.\")))})),await this.signer.connect(E(p({namespaces:p({},s&&{[this.namespace]:s})},i&&{optionalNamespaces:{[this.namespace]:i}}),{pairingTopic:t?.pairingTopic})).then(h=>{o(h)}).catch(h=>{r(new Error(h.message))})});if(!e)return;const n=_(e.namespaces,[this.namespace]);this.setChainIds(this.rpc.chains.length?this.rpc.chains:n),this.setAccounts(n),this.events.emit(\"connect\",{chainId:v(this.chainId)})}catch(e){throw this.signer.logger.error(e),e}finally{this.modal&&this.modal.closeModal()}}async authenticate(t){if(!this.signer.client)throw new Error(\"Provider not initialized. Call init() first\");this.loadConnectOpts({chains:t?.chains});try{const s=await new Promise(async(e,n)=>{var o;this.rpc.showQrModal&&((o=this.modal)==null||o.subscribeModal(r=>{!r.open&&!this.signer.session&&(this.signer.abortPairingAttempt(),n(new Error(\"Connection request reset. Please try again.\")))})),await this.signer.authenticate(E(p({},t),{chains:this.rpc.chains})).then(r=>{e(r)}).catch(r=>{n(new Error(r.message))})}),i=s.session;if(i){const e=_(i.namespaces,[this.namespace]);this.setChainIds(this.rpc.chains.length?this.rpc.chains:e),this.setAccounts(e),this.events.emit(\"connect\",{chainId:v(this.chainId)})}return s}catch(s){throw this.signer.logger.error(s),s}finally{this.modal&&this.modal.closeModal()}}async disconnect(){this.session&&await this.signer.disconnect(),this.reset()}get isWalletConnect(){return!0}get session(){return this.signer.session}registerEventListeners(){this.signer.on(\"session_event\",t=>{const{params:s}=t,{event:i}=s;i.name===\"accountsChanged\"?(this.accounts=this.parseAccounts(i.data),this.events.emit(\"accountsChanged\",this.accounts)):i.name===\"chainChanged\"?this.setChainId(this.formatChainId(i.data)):this.events.emit(i.name,i.data),this.events.emit(\"session_event\",t)}),this.signer.on(\"chainChanged\",t=>{const s=parseInt(t);this.chainId=s,this.events.emit(\"chainChanged\",v(this.chainId)),this.persist()}),this.signer.on(\"session_update\",t=>{this.events.emit(\"session_update\",t)}),this.signer.on(\"session_delete\",t=>{this.reset(),this.events.emit(\"session_delete\",t),this.events.emit(\"disconnect\",E(p({},P(\"USER_DISCONNECTED\")),{data:t.topic,name:\"USER_DISCONNECTED\"}))}),this.signer.on(\"display_uri\",t=>{var s,i;this.rpc.showQrModal&&((s=this.modal)==null||s.closeModal(),(i=this.modal)==null||i.openModal({uri:t})),this.events.emit(\"display_uri\",t)})}switchEthereumChain(t){this.request({method:\"wallet_switchEthereumChain\",params:[{chainId:t.toString(16)}]})}isCompatibleChainId(t){return typeof t==\"string\"?t.startsWith(`${this.namespace}:`):!1}formatChainId(t){return`${this.namespace}:${t}`}parseChainId(t){return Number(t.split(\":\")[1])}setChainIds(t){const s=t.filter(i=>this.isCompatibleChainId(i)).map(i=>this.parseChainId(i));s.length&&(this.chainId=s[0],this.events.emit(\"chainChanged\",v(this.chainId)),this.persist())}setChainId(t){if(this.isCompatibleChainId(t)){const s=this.parseChainId(t);this.chainId=s,this.switchEthereumChain(s)}}parseAccountId(t){const[s,i,e]=t.split(\":\");return{chainId:`${s}:${i}`,address:e}}setAccounts(t){this.accounts=t.filter(s=>this.parseChainId(this.parseAccountId(s).chainId)===this.chainId).map(s=>this.parseAccountId(s).address),this.events.emit(\"accountsChanged\",this.accounts)}getRpcConfig(t){var s,i;const e=(s=t?.chains)!=null?s:[],n=(i=t?.optionalChains)!=null?i:[],o=e.concat(n);if(!o.length)throw new Error(\"No chains specified in either `chains` or `optionalChains`\");const r=e.length?t?.methods||u:[],c=e.length?t?.events||g:[],h=t?.optionalMethods||[],d=t?.optionalEvents||[],w=t?.rpcMap||this.buildRpcMap(o,t.projectId),I=t?.qrModalOptions||void 0;return{chains:e?.map(l=>this.formatChainId(l)),optionalChains:n.map(l=>this.formatChainId(l)),methods:r,events:c,optionalMethods:h,optionalEvents:d,rpcMap:w,showQrModal:!!(t!=null&&t.showQrModal),qrModalOptions:I,projectId:t.projectId,metadata:t.metadata}}buildRpcMap(t,s){const i={};return t.forEach(e=>{i[e]=this.getRpcUrl(e,s)}),i}async initialize(t){if(this.rpc=this.getRpcConfig(t),this.chainId=this.rpc.chains.length?m(this.rpc.chains):m(this.rpc.optionalChains),this.signer=await R.init({projectId:this.rpc.projectId,metadata:this.rpc.metadata,disableProviderPing:t.disableProviderPing,relayUrl:t.relayUrl,storageOptions:t.storageOptions}),this.registerEventListeners(),await this.loadPersistedSession(),this.rpc.showQrModal){let s;try{const{WalletConnectModal:i}=await import(\"@walletconnect/modal\");s=i}catch{throw new Error(\"To use QR modal, please install @walletconnect/modal package\")}if(s)try{this.modal=new s(p({projectId:this.rpc.projectId},this.rpc.qrModalOptions))}catch(i){throw this.signer.logger.error(i),new Error(\"Could not generate WalletConnectModal Instance\")}}}loadConnectOpts(t){if(!t)return;const{chains:s,optionalChains:i,rpcMap:e}=t;s&&f(s)&&(this.rpc.chains=s.map(n=>this.formatChainId(n)),s.forEach(n=>{this.rpc.rpcMap[n]=e?.[n]||this.getRpcUrl(n)})),i&&f(i)&&(this.rpc.optionalChains=[],this.rpc.optionalChains=i?.map(n=>this.formatChainId(n)),i.forEach(n=>{this.rpc.rpcMap[n]=e?.[n]||this.getRpcUrl(n)}))}getRpcUrl(t,s){var i;return((i=this.rpc.rpcMap)==null?void 0:i[t])||`${j}?chainId=eip155:${t}&projectId=${s||this.rpc.projectId}`}async loadPersistedSession(){if(this.session)try{const t=await this.signer.client.core.storage.getItem(`${this.STORAGE_KEY}/chainId`),s=this.session.namespaces[`${this.namespace}:${t}`]?this.session.namespaces[`${this.namespace}:${t}`]:this.session.namespaces[this.namespace];this.setChainIds(t?[this.formatChainId(t)]:s?.accounts),this.setAccounts(s?.accounts)}catch(t){this.signer.logger.error(\"Failed to load persisted session, clearing state...\"),this.signer.logger.error(t),await this.disconnect().catch(s=>this.signer.logger.warn(s))}}reset(){this.chainId=1,this.accounts=[]}persist(){this.session&&this.signer.client.core.storage.setItem(`${this.STORAGE_KEY}/chainId`,this.chainId)}parseAccounts(t){return typeof t==\"string\"||t instanceof String?[this.parseAccount(t)]:t.map(s=>this.parseAccount(s))}}const z=C;export{z as EthereumProvider,M as OPTIONAL_EVENTS,y as OPTIONAL_METHODS,g as REQUIRED_EVENTS,u as REQUIRED_METHODS,C as default};\n//# sourceMappingURL=index.es.js.map\n","const e=Symbol(),t=Symbol(),r=\"a\",n=\"w\";let o=(e,t)=>new Proxy(e,t);const s=Object.getPrototypeOf,c=new WeakMap,l=e=>e&&(c.has(e)?c.get(e):s(e)===Object.prototype||s(e)===Array.prototype),f=e=>\"object\"==typeof e&&null!==e,i=e=>{if(Array.isArray(e))return Array.from(e);const t=Object.getOwnPropertyDescriptors(e);return Object.values(t).forEach(e=>{e.configurable=!0}),Object.create(s(e),t)},u=e=>e[t]||e,a=(s,c,f,p)=>{if(!l(s))return s;let g=p&&p.get(s);if(!g){const e=u(s);g=(e=>Object.values(Object.getOwnPropertyDescriptors(e)).some(e=>!e.configurable&&!e.writable))(e)?[e,i(e)]:[e],null==p||p.set(s,g)}const[y,h]=g;let w=f&&f.get(y);return w&&w[1].f===!!h||(w=((o,s)=>{const c={f:s};let l=!1;const f=(e,t)=>{if(!l){let s=c[r].get(o);if(s||(s={},c[r].set(o,s)),e===n)s[n]=!0;else{let r=s[e];r||(r=new Set,s[e]=r),r.add(t)}}},i={get:(e,n)=>n===t?o:(f(\"k\",n),a(Reflect.get(e,n),c[r],c.c,c.t)),has:(t,n)=>n===e?(l=!0,c[r].delete(o),!0):(f(\"h\",n),Reflect.has(t,n)),getOwnPropertyDescriptor:(e,t)=>(f(\"o\",t),Reflect.getOwnPropertyDescriptor(e,t)),ownKeys:e=>(f(n),Reflect.ownKeys(e))};return s&&(i.set=i.deleteProperty=()=>!1),[i,c]})(y,!!h),w[1].p=o(h||y,w[0]),f&&f.set(y,w)),w[1][r]=c,w[1].c=f,w[1].t=p,w[1].p},p=(e,t,r,o)=>{if(Object.is(e,t))return!1;if(!f(e)||!f(t))return!0;const s=r.get(u(e));if(!s)return!0;if(o){const r=o.get(e);if(r&&r.n===t)return r.g;o.set(e,{n:t,g:!1})}let c=null;try{for(const r of s.h||[])if(c=Reflect.has(e,r)!==Reflect.has(t,r),c)return c;if(!0===s[n]){if(c=((e,t)=>{const r=Reflect.ownKeys(e),n=Reflect.ownKeys(t);return r.length!==n.length||r.some((e,t)=>e!==n[t])})(e,t),c)return c}else for(const r of s.o||[])if(c=!!Reflect.getOwnPropertyDescriptor(e,r)!=!!Reflect.getOwnPropertyDescriptor(t,r),c)return c;for(const n of s.k||[])if(c=p(e[n],t[n],r,o),c)return c;return null===c&&(c=!0),c}finally{o&&o.set(e,{n:t,g:c})}},g=t=>!!l(t)&&e in t,y=e=>l(e)&&e[t]||null,h=(e,t=!0)=>{c.set(e,t)},w=(e,t,r)=>{const o=[],s=new WeakSet,c=(e,l)=>{if(s.has(e))return;f(e)&&s.add(e);const i=f(e)&&t.get(u(e));if(i){var a,p;if(null==(a=i.h)||a.forEach(e=>{const t=`:has(${String(e)})`;o.push(l?[...l,t]:[t])}),!0===i[n]){const e=\":ownKeys\";o.push(l?[...l,e]:[e])}else{var g;null==(g=i.o)||g.forEach(e=>{const t=`:hasOwn(${String(e)})`;o.push(l?[...l,t]:[t])})}null==(p=i.k)||p.forEach(t=>{r&&!(\"value\"in(Object.getOwnPropertyDescriptor(e,t)||{}))||c(e[t],l?[...l,t]:[t])})}else l&&o.push(l)};return c(e),o},O=e=>{o=e};export{w as affectedToPathList,a as createProxy,y as getUntracked,p as isChanged,h as markToTrack,O as replaceNewProxy,g as trackMemo};\n//# sourceMappingURL=index.modern.mjs.map\n","import { markToTrack, getUntracked } from 'proxy-compare';\n\nconst isObject = (x) => typeof x === \"object\" && x !== null;\nconst proxyStateMap = /* @__PURE__ */ new WeakMap();\nconst refSet = /* @__PURE__ */ new WeakSet();\nconst buildProxyFunction = (objectIs = Object.is, newProxy = (target, handler) => new Proxy(target, handler), canProxy = (x) => isObject(x) && !refSet.has(x) && (Array.isArray(x) || !(Symbol.iterator in x)) && !(x instanceof WeakMap) && !(x instanceof WeakSet) && !(x instanceof Error) && !(x instanceof Number) && !(x instanceof Date) && !(x instanceof String) && !(x instanceof RegExp) && !(x instanceof ArrayBuffer), defaultHandlePromise = (promise) => {\n switch (promise.status) {\n case \"fulfilled\":\n return promise.value;\n case \"rejected\":\n throw promise.reason;\n default:\n throw promise;\n }\n}, snapCache = /* @__PURE__ */ new WeakMap(), createSnapshot = (target, version, handlePromise = defaultHandlePromise) => {\n const cache = snapCache.get(target);\n if ((cache == null ? void 0 : cache[0]) === version) {\n return cache[1];\n }\n const snap = Array.isArray(target) ? [] : Object.create(Object.getPrototypeOf(target));\n markToTrack(snap, true);\n snapCache.set(target, [version, snap]);\n Reflect.ownKeys(target).forEach((key) => {\n if (Object.getOwnPropertyDescriptor(snap, key)) {\n return;\n }\n const value = Reflect.get(target, key);\n const desc = {\n value,\n enumerable: true,\n // This is intentional to avoid copying with proxy-compare.\n // It's still non-writable, so it avoids assigning a value.\n configurable: true\n };\n if (refSet.has(value)) {\n markToTrack(value, false);\n } else if (value instanceof Promise) {\n delete desc.value;\n desc.get = () => handlePromise(value);\n } else if (proxyStateMap.has(value)) {\n const [target2, ensureVersion] = proxyStateMap.get(\n value\n );\n desc.value = createSnapshot(\n target2,\n ensureVersion(),\n handlePromise\n );\n }\n Object.defineProperty(snap, key, desc);\n });\n return Object.preventExtensions(snap);\n}, proxyCache = /* @__PURE__ */ new WeakMap(), versionHolder = [1, 1], proxyFunction = (initialObject) => {\n if (!isObject(initialObject)) {\n throw new Error(\"object required\");\n }\n const found = proxyCache.get(initialObject);\n if (found) {\n return found;\n }\n let version = versionHolder[0];\n const listeners = /* @__PURE__ */ new Set();\n const notifyUpdate = (op, nextVersion = ++versionHolder[0]) => {\n if (version !== nextVersion) {\n version = nextVersion;\n listeners.forEach((listener) => listener(op, nextVersion));\n }\n };\n let checkVersion = versionHolder[1];\n const ensureVersion = (nextCheckVersion = ++versionHolder[1]) => {\n if (checkVersion !== nextCheckVersion && !listeners.size) {\n checkVersion = nextCheckVersion;\n propProxyStates.forEach(([propProxyState]) => {\n const propVersion = propProxyState[1](nextCheckVersion);\n if (propVersion > version) {\n version = propVersion;\n }\n });\n }\n return version;\n };\n const createPropListener = (prop) => (op, nextVersion) => {\n const newOp = [...op];\n newOp[1] = [prop, ...newOp[1]];\n notifyUpdate(newOp, nextVersion);\n };\n const propProxyStates = /* @__PURE__ */ new Map();\n const addPropListener = (prop, propProxyState) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && propProxyStates.has(prop)) {\n throw new Error(\"prop listener already exists\");\n }\n if (listeners.size) {\n const remove = propProxyState[3](createPropListener(prop));\n propProxyStates.set(prop, [propProxyState, remove]);\n } else {\n propProxyStates.set(prop, [propProxyState]);\n }\n };\n const removePropListener = (prop) => {\n var _a;\n const entry = propProxyStates.get(prop);\n if (entry) {\n propProxyStates.delete(prop);\n (_a = entry[1]) == null ? void 0 : _a.call(entry);\n }\n };\n const addListener = (listener) => {\n listeners.add(listener);\n if (listeners.size === 1) {\n propProxyStates.forEach(([propProxyState, prevRemove], prop) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && prevRemove) {\n throw new Error(\"remove already exists\");\n }\n const remove = propProxyState[3](createPropListener(prop));\n propProxyStates.set(prop, [propProxyState, remove]);\n });\n }\n const removeListener = () => {\n listeners.delete(listener);\n if (listeners.size === 0) {\n propProxyStates.forEach(([propProxyState, remove], prop) => {\n if (remove) {\n remove();\n propProxyStates.set(prop, [propProxyState]);\n }\n });\n }\n };\n return removeListener;\n };\n const baseObject = Array.isArray(initialObject) ? [] : Object.create(Object.getPrototypeOf(initialObject));\n const handler = {\n deleteProperty(target, prop) {\n const prevValue = Reflect.get(target, prop);\n removePropListener(prop);\n const deleted = Reflect.deleteProperty(target, prop);\n if (deleted) {\n notifyUpdate([\"delete\", [prop], prevValue]);\n }\n return deleted;\n },\n set(target, prop, value, receiver) {\n const hasPrevValue = Reflect.has(target, prop);\n const prevValue = Reflect.get(target, prop, receiver);\n if (hasPrevValue && (objectIs(prevValue, value) || proxyCache.has(value) && objectIs(prevValue, proxyCache.get(value)))) {\n return true;\n }\n removePropListener(prop);\n if (isObject(value)) {\n value = getUntracked(value) || value;\n }\n let nextValue = value;\n if (value instanceof Promise) {\n value.then((v) => {\n value.status = \"fulfilled\";\n value.value = v;\n notifyUpdate([\"resolve\", [prop], v]);\n }).catch((e) => {\n value.status = \"rejected\";\n value.reason = e;\n notifyUpdate([\"reject\", [prop], e]);\n });\n } else {\n if (!proxyStateMap.has(value) && canProxy(value)) {\n nextValue = proxyFunction(value);\n }\n const childProxyState = !refSet.has(nextValue) && proxyStateMap.get(nextValue);\n if (childProxyState) {\n addPropListener(prop, childProxyState);\n }\n }\n Reflect.set(target, prop, nextValue, receiver);\n notifyUpdate([\"set\", [prop], value, prevValue]);\n return true;\n }\n };\n const proxyObject = newProxy(baseObject, handler);\n proxyCache.set(initialObject, proxyObject);\n const proxyState = [\n baseObject,\n ensureVersion,\n createSnapshot,\n addListener\n ];\n proxyStateMap.set(proxyObject, proxyState);\n Reflect.ownKeys(initialObject).forEach((key) => {\n const desc = Object.getOwnPropertyDescriptor(\n initialObject,\n key\n );\n if (\"value\" in desc) {\n proxyObject[key] = initialObject[key];\n delete desc.value;\n delete desc.writable;\n }\n Object.defineProperty(baseObject, key, desc);\n });\n return proxyObject;\n}) => [\n // public functions\n proxyFunction,\n // shared state\n proxyStateMap,\n refSet,\n // internal things\n objectIs,\n newProxy,\n canProxy,\n defaultHandlePromise,\n snapCache,\n createSnapshot,\n proxyCache,\n versionHolder\n];\nconst [defaultProxyFunction] = buildProxyFunction();\nfunction proxy(initialObject = {}) {\n return defaultProxyFunction(initialObject);\n}\nfunction getVersion(proxyObject) {\n const proxyState = proxyStateMap.get(proxyObject);\n return proxyState == null ? void 0 : proxyState[1]();\n}\nfunction subscribe(proxyObject, callback, notifyInSync) {\n const proxyState = proxyStateMap.get(proxyObject);\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && !proxyState) {\n console.warn(\"Please use proxy object\");\n }\n let promise;\n const ops = [];\n const addListener = proxyState[3];\n let isListenerActive = false;\n const listener = (op) => {\n ops.push(op);\n if (notifyInSync) {\n callback(ops.splice(0));\n return;\n }\n if (!promise) {\n promise = Promise.resolve().then(() => {\n promise = void 0;\n if (isListenerActive) {\n callback(ops.splice(0));\n }\n });\n }\n };\n const removeListener = addListener(listener);\n isListenerActive = true;\n return () => {\n isListenerActive = false;\n removeListener();\n };\n}\nfunction snapshot(proxyObject, handlePromise) {\n const proxyState = proxyStateMap.get(proxyObject);\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && !proxyState) {\n console.warn(\"Please use proxy object\");\n }\n const [target, ensureVersion, createSnapshot] = proxyState;\n return createSnapshot(target, ensureVersion(), handlePromise);\n}\nfunction ref(obj) {\n refSet.add(obj);\n return obj;\n}\nconst unstable_buildProxyFunction = buildProxyFunction;\n\nexport { getVersion, proxy, ref, snapshot, subscribe, unstable_buildProxyFunction };\n","import { subscribe, snapshot, proxy, getVersion, ref, unstable_buildProxyFunction } from 'valtio/vanilla';\n\nfunction subscribeKey(proxyObject, key, callback, notifyInSync) {\n let prevValue = proxyObject[key];\n return subscribe(\n proxyObject,\n () => {\n const nextValue = proxyObject[key];\n if (!Object.is(prevValue, nextValue)) {\n callback(prevValue = nextValue);\n }\n },\n notifyInSync\n );\n}\n\nlet currentCleanups;\nfunction watch(callback, options) {\n let alive = true;\n const cleanups = /* @__PURE__ */ new Set();\n const subscriptions = /* @__PURE__ */ new Map();\n const cleanup = () => {\n if (alive) {\n alive = false;\n cleanups.forEach((clean) => clean());\n cleanups.clear();\n subscriptions.forEach((unsubscribe) => unsubscribe());\n subscriptions.clear();\n }\n };\n const revalidate = () => {\n if (!alive) {\n return;\n }\n cleanups.forEach((clean) => clean());\n cleanups.clear();\n const proxiesToSubscribe = /* @__PURE__ */ new Set();\n const parent = currentCleanups;\n currentCleanups = cleanups;\n try {\n const cleanupReturn = callback((proxyObject) => {\n proxiesToSubscribe.add(proxyObject);\n return proxyObject;\n });\n if (cleanupReturn) {\n cleanups.add(cleanupReturn);\n }\n } finally {\n currentCleanups = parent;\n }\n subscriptions.forEach((unsubscribe, proxyObject) => {\n if (proxiesToSubscribe.has(proxyObject)) {\n proxiesToSubscribe.delete(proxyObject);\n } else {\n subscriptions.delete(proxyObject);\n unsubscribe();\n }\n });\n proxiesToSubscribe.forEach((proxyObject) => {\n const unsubscribe = subscribe(proxyObject, revalidate, options == null ? void 0 : options.sync);\n subscriptions.set(proxyObject, unsubscribe);\n });\n };\n if (currentCleanups) {\n currentCleanups.add(cleanup);\n }\n revalidate();\n return cleanup;\n}\n\nconst DEVTOOLS = Symbol();\nfunction devtools(proxyObject, options) {\n if (typeof options === \"string\") {\n console.warn(\n \"string name option is deprecated, use { name }. https://github.com/pmndrs/valtio/pull/400\"\n );\n options = { name: options };\n }\n const { enabled, name = \"\", ...rest } = options || {};\n let extension;\n try {\n extension = (enabled != null ? enabled : (import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") && window.__REDUX_DEVTOOLS_EXTENSION__;\n } catch {\n }\n if (!extension) {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && enabled) {\n console.warn(\"[Warning] Please install/enable Redux devtools extension\");\n }\n return;\n }\n let isTimeTraveling = false;\n const devtools2 = extension.connect({ name, ...rest });\n const unsub1 = subscribe(proxyObject, (ops) => {\n const action = ops.filter(([_, path]) => path[0] !== DEVTOOLS).map(([op, path]) => `${op}:${path.map(String).join(\".\")}`).join(\", \");\n if (!action) {\n return;\n }\n if (isTimeTraveling) {\n isTimeTraveling = false;\n } else {\n const snapWithoutDevtools = Object.assign({}, snapshot(proxyObject));\n delete snapWithoutDevtools[DEVTOOLS];\n devtools2.send(\n {\n type: action,\n updatedAt: (/* @__PURE__ */ new Date()).toLocaleString()\n },\n snapWithoutDevtools\n );\n }\n });\n const unsub2 = devtools2.subscribe((message) => {\n var _a, _b, _c, _d, _e, _f;\n if (message.type === \"ACTION\" && message.payload) {\n try {\n Object.assign(proxyObject, JSON.parse(message.payload));\n } catch (e) {\n console.error(\n \"please dispatch a serializable value that JSON.parse() and proxy() support\\n\",\n e\n );\n }\n }\n if (message.type === \"DISPATCH\" && message.state) {\n if (((_a = message.payload) == null ? void 0 : _a.type) === \"JUMP_TO_ACTION\" || ((_b = message.payload) == null ? void 0 : _b.type) === \"JUMP_TO_STATE\") {\n isTimeTraveling = true;\n const state = JSON.parse(message.state);\n Object.assign(proxyObject, state);\n }\n proxyObject[DEVTOOLS] = message;\n } else if (message.type === \"DISPATCH\" && ((_c = message.payload) == null ? void 0 : _c.type) === \"COMMIT\") {\n devtools2.init(snapshot(proxyObject));\n } else if (message.type === \"DISPATCH\" && ((_d = message.payload) == null ? void 0 : _d.type) === \"IMPORT_STATE\") {\n const actions = (_e = message.payload.nextLiftedState) == null ? void 0 : _e.actionsById;\n const computedStates = ((_f = message.payload.nextLiftedState) == null ? void 0 : _f.computedStates) || [];\n isTimeTraveling = true;\n computedStates.forEach(({ state }, index) => {\n const action = actions[index] || \"No action found\";\n Object.assign(proxyObject, state);\n if (index === 0) {\n devtools2.init(snapshot(proxyObject));\n } else {\n devtools2.send(action, snapshot(proxyObject));\n }\n });\n }\n });\n devtools2.init(snapshot(proxyObject));\n return () => {\n unsub1();\n unsub2 == null ? void 0 : unsub2();\n };\n}\n\nconst sourceObjectMap = /* @__PURE__ */ new WeakMap();\nconst derivedObjectMap = /* @__PURE__ */ new WeakMap();\nconst markPending = (sourceObject, callback) => {\n const sourceObjectEntry = sourceObjectMap.get(sourceObject);\n if (sourceObjectEntry) {\n sourceObjectEntry[0].forEach((subscription) => {\n const { d: derivedObject } = subscription;\n if (sourceObject !== derivedObject) {\n markPending(derivedObject);\n }\n });\n ++sourceObjectEntry[2];\n if (callback) {\n sourceObjectEntry[3].add(callback);\n }\n }\n};\nconst checkPending = (sourceObject, callback) => {\n const sourceObjectEntry = sourceObjectMap.get(sourceObject);\n if (sourceObjectEntry == null ? void 0 : sourceObjectEntry[2]) {\n sourceObjectEntry[3].add(callback);\n return true;\n }\n return false;\n};\nconst unmarkPending = (sourceObject) => {\n const sourceObjectEntry = sourceObjectMap.get(sourceObject);\n if (sourceObjectEntry) {\n --sourceObjectEntry[2];\n if (!sourceObjectEntry[2]) {\n sourceObjectEntry[3].forEach((callback) => callback());\n sourceObjectEntry[3].clear();\n }\n sourceObjectEntry[0].forEach((subscription) => {\n const { d: derivedObject } = subscription;\n if (sourceObject !== derivedObject) {\n unmarkPending(derivedObject);\n }\n });\n }\n};\nconst addSubscription = (subscription) => {\n const { s: sourceObject, d: derivedObject } = subscription;\n let derivedObjectEntry = derivedObjectMap.get(derivedObject);\n if (!derivedObjectEntry) {\n derivedObjectEntry = [/* @__PURE__ */ new Set()];\n derivedObjectMap.set(subscription.d, derivedObjectEntry);\n }\n derivedObjectEntry[0].add(subscription);\n let sourceObjectEntry = sourceObjectMap.get(sourceObject);\n if (!sourceObjectEntry) {\n const subscriptions = /* @__PURE__ */ new Set();\n const unsubscribe = subscribe(\n sourceObject,\n (ops) => {\n subscriptions.forEach((subscription2) => {\n const {\n d: derivedObject2,\n c: callback,\n n: notifyInSync,\n i: ignoreKeys\n } = subscription2;\n if (sourceObject === derivedObject2 && ops.every(\n (op) => op[1].length === 1 && ignoreKeys.includes(op[1][0])\n )) {\n return;\n }\n if (subscription2.p) {\n return;\n }\n markPending(sourceObject, callback);\n if (notifyInSync) {\n unmarkPending(sourceObject);\n } else {\n subscription2.p = Promise.resolve().then(() => {\n delete subscription2.p;\n unmarkPending(sourceObject);\n });\n }\n });\n },\n true\n );\n sourceObjectEntry = [subscriptions, unsubscribe, 0, /* @__PURE__ */ new Set()];\n sourceObjectMap.set(sourceObject, sourceObjectEntry);\n }\n sourceObjectEntry[0].add(subscription);\n};\nconst removeSubscription = (subscription) => {\n const { s: sourceObject, d: derivedObject } = subscription;\n const derivedObjectEntry = derivedObjectMap.get(derivedObject);\n derivedObjectEntry == null ? void 0 : derivedObjectEntry[0].delete(subscription);\n if ((derivedObjectEntry == null ? void 0 : derivedObjectEntry[0].size) === 0) {\n derivedObjectMap.delete(derivedObject);\n }\n const sourceObjectEntry = sourceObjectMap.get(sourceObject);\n if (sourceObjectEntry) {\n const [subscriptions, unsubscribe] = sourceObjectEntry;\n subscriptions.delete(subscription);\n if (!subscriptions.size) {\n unsubscribe();\n sourceObjectMap.delete(sourceObject);\n }\n }\n};\nconst listSubscriptions = (derivedObject) => {\n const derivedObjectEntry = derivedObjectMap.get(derivedObject);\n if (derivedObjectEntry) {\n return Array.from(derivedObjectEntry[0]);\n }\n return [];\n};\nconst unstable_deriveSubscriptions = {\n add: addSubscription,\n remove: removeSubscription,\n list: listSubscriptions\n};\nfunction derive(derivedFns, options) {\n const proxyObject = (options == null ? void 0 : options.proxy) || proxy({});\n const notifyInSync = !!(options == null ? void 0 : options.sync);\n const derivedKeys = Object.keys(derivedFns);\n derivedKeys.forEach((key) => {\n if (Object.getOwnPropertyDescriptor(proxyObject, key)) {\n throw new Error(\"object property already defined\");\n }\n const fn = derivedFns[key];\n let lastDependencies = null;\n const evaluate = () => {\n if (lastDependencies) {\n if (Array.from(lastDependencies).map(([p]) => checkPending(p, evaluate)).some((isPending) => isPending)) {\n return;\n }\n if (Array.from(lastDependencies).every(\n ([p, entry]) => getVersion(p) === entry.v\n )) {\n return;\n }\n }\n const dependencies = /* @__PURE__ */ new Map();\n const get = (p) => {\n dependencies.set(p, { v: getVersion(p) });\n return p;\n };\n const value = fn(get);\n const subscribeToDependencies = () => {\n dependencies.forEach((entry, p) => {\n var _a;\n const lastSubscription = (_a = lastDependencies == null ? void 0 : lastDependencies.get(p)) == null ? void 0 : _a.s;\n if (lastSubscription) {\n entry.s = lastSubscription;\n } else {\n const subscription = {\n s: p,\n // sourceObject\n d: proxyObject,\n // derivedObject\n k: key,\n // derived key\n c: evaluate,\n // callback\n n: notifyInSync,\n i: derivedKeys\n // ignoringKeys\n };\n addSubscription(subscription);\n entry.s = subscription;\n }\n });\n lastDependencies == null ? void 0 : lastDependencies.forEach((entry, p) => {\n if (!dependencies.has(p) && entry.s) {\n removeSubscription(entry.s);\n }\n });\n lastDependencies = dependencies;\n };\n if (value instanceof Promise) {\n value.finally(subscribeToDependencies);\n } else {\n subscribeToDependencies();\n }\n proxyObject[key] = value;\n };\n evaluate();\n });\n return proxyObject;\n}\nfunction underive(proxyObject, options) {\n const keysToDelete = (options == null ? void 0 : options.delete) ? /* @__PURE__ */ new Set() : null;\n listSubscriptions(proxyObject).forEach((subscription) => {\n const { k: key } = subscription;\n if (!(options == null ? void 0 : options.keys) || options.keys.includes(key)) {\n removeSubscription(subscription);\n if (keysToDelete) {\n keysToDelete.add(key);\n }\n }\n });\n if (keysToDelete) {\n keysToDelete.forEach((key) => {\n delete proxyObject[key];\n });\n }\n}\n\nfunction addComputed_DEPRECATED(proxyObject, computedFns_FAKE, targetObject = proxyObject) {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\n \"addComputed is deprecated. Please consider using `derive`. Falling back to emulation with derive. https://github.com/pmndrs/valtio/pull/201\"\n );\n }\n const derivedFns = {};\n Object.keys(computedFns_FAKE).forEach((key) => {\n derivedFns[key] = (get) => computedFns_FAKE[key](get(proxyObject));\n });\n return derive(derivedFns, { proxy: targetObject });\n}\n\nfunction proxyWithComputed_DEPRECATED(initialObject, computedFns) {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\n 'proxyWithComputed is deprecated. Please follow \"Computed Properties\" guide in docs.'\n );\n }\n Object.keys(computedFns).forEach((key) => {\n if (Object.getOwnPropertyDescriptor(initialObject, key)) {\n throw new Error(\"object property already defined\");\n }\n const computedFn = computedFns[key];\n const { get, set } = typeof computedFn === \"function\" ? { get: computedFn } : computedFn;\n const desc = {};\n desc.get = () => get(snapshot(proxyObject));\n if (set) {\n desc.set = (newValue) => set(proxyObject, newValue);\n }\n Object.defineProperty(initialObject, key, desc);\n });\n const proxyObject = proxy(initialObject);\n return proxyObject;\n}\n\nconst isObject = (x) => typeof x === \"object\" && x !== null;\nlet refSet;\nconst deepClone = (obj) => {\n if (!refSet) {\n refSet = unstable_buildProxyFunction()[2];\n }\n if (!isObject(obj) || refSet.has(obj)) {\n return obj;\n }\n const baseObject = Array.isArray(obj) ? [] : Object.create(Object.getPrototypeOf(obj));\n Reflect.ownKeys(obj).forEach((key) => {\n baseObject[key] = deepClone(obj[key]);\n });\n return baseObject;\n};\nfunction proxyWithHistory(initialValue, skipSubscribe = false) {\n const proxyObject = proxy({\n value: initialValue,\n history: ref({\n wip: void 0,\n // to avoid infinite loop\n snapshots: [],\n index: -1\n }),\n clone: deepClone,\n canUndo: () => proxyObject.history.index > 0,\n undo: () => {\n if (proxyObject.canUndo()) {\n proxyObject.value = proxyObject.history.wip = proxyObject.clone(\n proxyObject.history.snapshots[--proxyObject.history.index]\n );\n }\n },\n canRedo: () => proxyObject.history.index < proxyObject.history.snapshots.length - 1,\n redo: () => {\n if (proxyObject.canRedo()) {\n proxyObject.value = proxyObject.history.wip = proxyObject.clone(\n proxyObject.history.snapshots[++proxyObject.history.index]\n );\n }\n },\n saveHistory: () => {\n proxyObject.history.snapshots.splice(proxyObject.history.index + 1);\n proxyObject.history.snapshots.push(snapshot(proxyObject).value);\n ++proxyObject.history.index;\n },\n subscribe: () => subscribe(proxyObject, (ops) => {\n if (ops.every(\n (op) => op[1][0] === \"value\" && (op[0] !== \"set\" || op[2] !== proxyObject.history.wip)\n )) {\n proxyObject.saveHistory();\n }\n })\n });\n proxyObject.saveHistory();\n if (!skipSubscribe) {\n proxyObject.subscribe();\n }\n return proxyObject;\n}\n\nfunction proxySet(initialValues) {\n const set = proxy({\n data: Array.from(new Set(initialValues)),\n has(value) {\n return this.data.indexOf(value) !== -1;\n },\n add(value) {\n let hasProxy = false;\n if (typeof value === \"object\" && value !== null) {\n hasProxy = this.data.indexOf(proxy(value)) !== -1;\n }\n if (this.data.indexOf(value) === -1 && !hasProxy) {\n this.data.push(value);\n }\n return this;\n },\n delete(value) {\n const index = this.data.indexOf(value);\n if (index === -1) {\n return false;\n }\n this.data.splice(index, 1);\n return true;\n },\n clear() {\n this.data.splice(0);\n },\n get size() {\n return this.data.length;\n },\n forEach(cb) {\n this.data.forEach((value) => {\n cb(value, value, this);\n });\n },\n get [Symbol.toStringTag]() {\n return \"Set\";\n },\n toJSON() {\n return new Set(this.data);\n },\n [Symbol.iterator]() {\n return this.data[Symbol.iterator]();\n },\n values() {\n return this.data.values();\n },\n keys() {\n return this.data.values();\n },\n entries() {\n return new Set(this.data).entries();\n }\n });\n Object.defineProperties(set, {\n data: {\n enumerable: false\n },\n size: {\n enumerable: false\n },\n toJSON: {\n enumerable: false\n }\n });\n Object.seal(set);\n return set;\n}\n\nfunction proxyMap(entries) {\n const map = proxy({\n data: Array.from(entries || []),\n has(key) {\n return this.data.some((p) => p[0] === key);\n },\n set(key, value) {\n const record = this.data.find((p) => p[0] === key);\n if (record) {\n record[1] = value;\n } else {\n this.data.push([key, value]);\n }\n return this;\n },\n get(key) {\n var _a;\n return (_a = this.data.find((p) => p[0] === key)) == null ? void 0 : _a[1];\n },\n delete(key) {\n const index = this.data.findIndex((p) => p[0] === key);\n if (index === -1) {\n return false;\n }\n this.data.splice(index, 1);\n return true;\n },\n clear() {\n this.data.splice(0);\n },\n get size() {\n return this.data.length;\n },\n toJSON() {\n return new Map(this.data);\n },\n forEach(cb) {\n this.data.forEach((p) => {\n cb(p[1], p[0], this);\n });\n },\n keys() {\n return this.data.map((p) => p[0]).values();\n },\n values() {\n return this.data.map((p) => p[1]).values();\n },\n entries() {\n return new Map(this.data).entries();\n },\n get [Symbol.toStringTag]() {\n return \"Map\";\n },\n [Symbol.iterator]() {\n return this.entries();\n }\n });\n Object.defineProperties(map, {\n data: {\n enumerable: false\n },\n size: {\n enumerable: false\n },\n toJSON: {\n enumerable: false\n }\n });\n Object.seal(map);\n return map;\n}\n\nexport { addComputed_DEPRECATED as addComputed, derive, devtools, proxyMap, proxySet, proxyWithComputed_DEPRECATED as proxyWithComputed, proxyWithHistory, subscribeKey, underive, unstable_deriveSubscriptions, watch };\n","const SECURE_SITE = 'https://secure.walletconnect.com';\nexport const ONRAMP_PROVIDERS = [\n {\n label: 'Coinbase',\n name: 'coinbase',\n feeRange: '1-2%',\n url: ''\n }\n];\nexport const ConstantsUtil = {\n FOUR_MINUTES_MS: 240000,\n TEN_SEC_MS: 10000,\n ONE_SEC_MS: 1000,\n SECURE_SITE,\n SECURE_SITE_DASHBOARD: `${SECURE_SITE}/dashboard`,\n SECURE_SITE_FAVICON: `${SECURE_SITE}/images/favicon.png`,\n RESTRICTED_TIMEZONES: [\n 'ASIA/SHANGHAI',\n 'ASIA/URUMQI',\n 'ASIA/CHONGQING',\n 'ASIA/HARBIN',\n 'ASIA/KASHGAR',\n 'ASIA/MACAU',\n 'ASIA/HONG_KONG',\n 'ASIA/MACAO',\n 'ASIA/BEIJING',\n 'ASIA/HARBIN'\n ],\n WC_COINBASE_PAY_SDK_CHAINS: [\n 'ethereum',\n 'arbitrum',\n 'polygon',\n 'avalanche-c-chain',\n 'optimism',\n 'celo',\n 'base'\n ],\n WC_COINBASE_PAY_SDK_FALLBACK_CHAIN: 'ethereum',\n WC_COINBASE_PAY_SDK_CHAIN_NAME_MAP: {\n Ethereum: 'ethereum',\n 'Arbitrum One': 'arbitrum',\n Polygon: 'polygon',\n Avalanche: 'avalanche-c-chain',\n 'OP Mainnet': 'optimism',\n Celo: 'celo',\n Base: 'base'\n },\n WC_COINBASE_ONRAMP_APP_ID: 'bf18c88d-495a-463b-b249-0b9d3656cf5e',\n SWAP_SUGGESTED_TOKENS: [\n 'ETH',\n 'UNI',\n '1INCH',\n 'AAVE',\n 'SOL',\n 'ADA',\n 'AVAX',\n 'DOT',\n 'LINK',\n 'NITRO',\n 'GAIA',\n 'MILK',\n 'TRX',\n 'NEAR',\n 'GNO',\n 'WBTC',\n 'DAI',\n 'WETH',\n 'USDC',\n 'USDT',\n 'ARB',\n 'BAL',\n 'BICO',\n 'CRV',\n 'ENS',\n 'MATIC',\n 'OP'\n ],\n SWAP_POPULAR_TOKENS: [\n 'ETH',\n 'UNI',\n '1INCH',\n 'AAVE',\n 'SOL',\n 'ADA',\n 'AVAX',\n 'DOT',\n 'LINK',\n 'NITRO',\n 'GAIA',\n 'MILK',\n 'TRX',\n 'NEAR',\n 'GNO',\n 'WBTC',\n 'DAI',\n 'WETH',\n 'USDC',\n 'USDT',\n 'ARB',\n 'BAL',\n 'BICO',\n 'CRV',\n 'ENS',\n 'MATIC',\n 'OP',\n 'METAL',\n 'DAI',\n 'CHAMP',\n 'WOLF',\n 'SALE',\n 'BAL',\n 'BUSD',\n 'MUST',\n 'BTCpx',\n 'ROUTE',\n 'HEX',\n 'WELT',\n 'amDAI',\n 'VSQ',\n 'VISION',\n 'AURUM',\n 'pSP',\n 'SNX',\n 'VC',\n 'LINK',\n 'CHP',\n 'amUSDT',\n 'SPHERE',\n 'FOX',\n 'GIDDY',\n 'GFC',\n 'OMEN',\n 'OX_OLD',\n 'DE',\n 'WNT'\n ],\n SWAP_SUPPORTED_NETWORKS: [\n 'eip155:1',\n 'eip155:42161',\n 'eip155:10',\n 'eip155:324',\n 'eip155:8453',\n 'eip155:56',\n 'eip155:137',\n 'eip155:100',\n 'eip155:43114',\n 'eip155:250',\n 'eip155:8217',\n 'eip155:1313161554'\n ],\n NATIVE_TOKEN_ADDRESS: '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee',\n CONVERT_SLIPPAGE_TOLERANCE: 1\n};\n//# sourceMappingURL=ConstantsUtil.js.map","import { ConstantsUtil } from './ConstantsUtil.js';\nexport const CoreHelperUtil = {\n isMobile() {\n if (typeof window !== 'undefined') {\n return Boolean(window.matchMedia('(pointer:coarse)').matches ||\n /Android|webOS|iPhone|iPad|iPod|BlackBerry|Opera Mini/u.test(navigator.userAgent));\n }\n return false;\n },\n checkCaipNetwork(network, networkName = '') {\n return network?.id.toLocaleLowerCase().includes(networkName.toLowerCase());\n },\n isAndroid() {\n const ua = window.navigator.userAgent.toLowerCase();\n return CoreHelperUtil.isMobile() && ua.includes('android');\n },\n isIos() {\n const ua = window.navigator.userAgent.toLowerCase();\n return CoreHelperUtil.isMobile() && (ua.includes('iphone') || ua.includes('ipad'));\n },\n isClient() {\n return typeof window !== 'undefined';\n },\n isPairingExpired(expiry) {\n return expiry ? expiry - Date.now() <= ConstantsUtil.TEN_SEC_MS : true;\n },\n isAllowedRetry(lastRetry) {\n return Date.now() - lastRetry >= ConstantsUtil.ONE_SEC_MS;\n },\n copyToClopboard(text) {\n navigator.clipboard.writeText(text);\n },\n getPairingExpiry() {\n return Date.now() + ConstantsUtil.FOUR_MINUTES_MS;\n },\n getNetworkId(caipAddress) {\n return caipAddress?.split(':')[1];\n },\n getPlainAddress(caipAddress) {\n return caipAddress?.split(':')[2];\n },\n async wait(milliseconds) {\n return new Promise(resolve => {\n setTimeout(resolve, milliseconds);\n });\n },\n debounce(func, timeout = 500) {\n let timer = undefined;\n return (...args) => {\n function next() {\n func(...args);\n }\n if (timer) {\n clearTimeout(timer);\n }\n timer = setTimeout(next, timeout);\n };\n },\n isHttpUrl(url) {\n return url.startsWith('http://') || url.startsWith('https://');\n },\n formatNativeUrl(appUrl, wcUri) {\n if (CoreHelperUtil.isHttpUrl(appUrl)) {\n return this.formatUniversalUrl(appUrl, wcUri);\n }\n let safeAppUrl = appUrl;\n if (!safeAppUrl.includes('://')) {\n safeAppUrl = appUrl.replaceAll('/', '').replaceAll(':', '');\n safeAppUrl = `${safeAppUrl}://`;\n }\n if (!safeAppUrl.endsWith('/')) {\n safeAppUrl = `${safeAppUrl}/`;\n }\n const encodedWcUrl = encodeURIComponent(wcUri);\n return {\n redirect: `${safeAppUrl}wc?uri=${encodedWcUrl}`,\n href: safeAppUrl\n };\n },\n formatUniversalUrl(appUrl, wcUri) {\n if (!CoreHelperUtil.isHttpUrl(appUrl)) {\n return this.formatNativeUrl(appUrl, wcUri);\n }\n let safeAppUrl = appUrl;\n if (!safeAppUrl.endsWith('/')) {\n safeAppUrl = `${safeAppUrl}/`;\n }\n const encodedWcUrl = encodeURIComponent(wcUri);\n return {\n redirect: `${safeAppUrl}wc?uri=${encodedWcUrl}`,\n href: safeAppUrl\n };\n },\n openHref(href, target, features) {\n window.open(href, target, features || 'noreferrer noopener');\n },\n returnOpenHref(href, target, features) {\n return window.open(href, target, features || 'noreferrer noopener');\n },\n async preloadImage(src) {\n const imagePromise = new Promise((resolve, reject) => {\n const image = new Image();\n image.onload = resolve;\n image.onerror = reject;\n image.crossOrigin = 'anonymous';\n image.src = src;\n });\n return Promise.race([imagePromise, CoreHelperUtil.wait(2000)]);\n },\n formatBalance(balance, symbol) {\n let formattedBalance = undefined;\n if (balance === '0') {\n formattedBalance = '0.000';\n }\n else if (typeof balance === 'string') {\n const number = Number(balance);\n if (number) {\n formattedBalance = number.toString().match(/^-?\\d+(?:\\.\\d{0,3})?/u)?.[0];\n }\n }\n return formattedBalance ? `${formattedBalance} ${symbol ?? ''}` : `0.000 ${symbol ?? ''}`;\n },\n formatBalance2(balance, symbol) {\n let formattedBalance = undefined;\n if (balance === '0') {\n formattedBalance = '0';\n }\n else if (typeof balance === 'string') {\n const number = Number(balance);\n if (number) {\n formattedBalance = number.toString().match(/^-?\\d+(?:\\.\\d{0,3})?/u)?.[0];\n }\n }\n return {\n value: formattedBalance ?? '0',\n rest: formattedBalance === '0' ? '000' : '',\n symbol\n };\n },\n isRestrictedRegion() {\n try {\n const { timeZone } = new Intl.DateTimeFormat().resolvedOptions();\n const capTimeZone = timeZone.toUpperCase();\n return ConstantsUtil.RESTRICTED_TIMEZONES.includes(capTimeZone);\n }\n catch {\n return false;\n }\n },\n getApiUrl() {\n return CoreHelperUtil.isRestrictedRegion()\n ? 'https://api.web3modal.org'\n : 'https://api.web3modal.com';\n },\n getBlockchainApiUrl() {\n return CoreHelperUtil.isRestrictedRegion()\n ? 'https://rpc.walletconnect.org'\n : 'https://rpc.walletconnect.com';\n },\n getAnalyticsUrl() {\n return CoreHelperUtil.isRestrictedRegion()\n ? 'https://pulse.walletconnect.org'\n : 'https://pulse.walletconnect.com';\n },\n getUUID() {\n if (crypto?.randomUUID) {\n return crypto.randomUUID();\n }\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/gu, c => {\n const r = (Math.random() * 16) | 0;\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n },\n parseError(error) {\n if (typeof error === 'string') {\n return error;\n }\n else if (typeof error?.issues?.[0]?.message === 'string') {\n return error.issues[0].message;\n }\n else if (error instanceof Error) {\n return error.message;\n }\n return 'Unknown error';\n },\n sortRequestedNetworks(approvedIds, requestedNetworks = []) {\n const approvedIndexMap = {};\n if (requestedNetworks && approvedIds) {\n approvedIds.forEach((id, index) => {\n approvedIndexMap[id] = index;\n });\n requestedNetworks.sort((a, b) => {\n const indexA = approvedIndexMap[a.id];\n const indexB = approvedIndexMap[b.id];\n if (indexA !== undefined && indexB !== undefined) {\n return indexA - indexB;\n }\n else if (indexA !== undefined) {\n return -1;\n }\n else if (indexB !== undefined) {\n return 1;\n }\n return 0;\n });\n }\n return requestedNetworks;\n },\n calculateBalance(array) {\n let sum = 0;\n for (const item of array) {\n sum += item.value ?? 0;\n }\n return sum;\n },\n formatTokenBalance(number) {\n const roundedNumber = number.toFixed(2);\n const [dollars, pennies] = roundedNumber.split('.');\n return { dollars, pennies };\n },\n isAddress(address) {\n if (!/^(?:0x)?[0-9a-f]{40}$/iu.test(address)) {\n return false;\n }\n else if (/^(?:0x)?[0-9a-f]{40}$/iu.test(address) || /^(?:0x)?[0-9A-F]{40}$/iu.test(address)) {\n return true;\n }\n return false;\n }\n};\n//# sourceMappingURL=CoreHelperUtil.js.map","async function fetchData(...args) {\n const response = await fetch(...args);\n if (!response.ok) {\n const err = new Error(`HTTP status code: ${response.status}`, {\n cause: response\n });\n throw err;\n }\n return response;\n}\nexport class FetchUtil {\n constructor({ baseUrl }) {\n this.baseUrl = baseUrl;\n }\n async get({ headers, signal, ...args }) {\n const url = this.createUrl(args);\n const response = await fetchData(url, { method: 'GET', headers, signal, cache: 'no-cache' });\n return response.json();\n }\n async getBlob({ headers, signal, ...args }) {\n const url = this.createUrl(args);\n const response = await fetchData(url, { method: 'GET', headers, signal });\n return response.blob();\n }\n async post({ body, headers, signal, ...args }) {\n const url = this.createUrl(args);\n const response = await fetchData(url, {\n method: 'POST',\n headers,\n body: body ? JSON.stringify(body) : undefined,\n signal\n });\n return response.json();\n }\n async put({ body, headers, signal, ...args }) {\n const url = this.createUrl(args);\n const response = await fetchData(url, {\n method: 'PUT',\n headers,\n body: body ? JSON.stringify(body) : undefined,\n signal\n });\n return response.json();\n }\n async delete({ body, headers, signal, ...args }) {\n const url = this.createUrl(args);\n const response = await fetchData(url, {\n method: 'DELETE',\n headers,\n body: body ? JSON.stringify(body) : undefined,\n signal\n });\n return response.json();\n }\n createUrl({ path, params }) {\n const url = new URL(path, this.baseUrl);\n if (params) {\n Object.entries(params).forEach(([key, value]) => {\n if (value) {\n url.searchParams.append(key, value);\n }\n });\n }\n return url;\n }\n}\n//# sourceMappingURL=FetchUtil.js.map","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)0,p<=y.r||!y.r){p<=1&&c>0&&(y=h[c-1]);var v=l[y.l];u&&(p=u(\"\"+p)),a=\"string\"==typeof v?v.replace(\"%d\",p):v(p,n,y.l,s);break}}if(n)return a;var M=s?l.future:l.past;return\"function\"==typeof M?M(a):M.replace(\"%s\",a)},n.to=function(r,e){return i(r,e,this,!0)},n.from=function(r,e){return i(r,e,this)};var d=function(r){return r.$u?t.utc():t()};n.toNow=function(r){return this.to(d(this),r)},n.fromNow=function(r){return this.from(d(this),r)}}}));","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_updateLocale=n()}(this,(function(){\"use strict\";return function(e,n,t){t.updateLocale=function(e,n){var o=t.Ls[e];if(o)return(n?Object.keys(n):[]).forEach((function(e){o[e]=n[e]})),o}}}));","import dayjs from 'dayjs';\nimport englishLocale from 'dayjs/locale/en.js';\nimport relativeTime from 'dayjs/plugin/relativeTime.js';\nimport updateLocale from 'dayjs/plugin/updateLocale.js';\ndayjs.extend(relativeTime);\ndayjs.extend(updateLocale);\nconst localeObject = {\n ...englishLocale,\n name: 'en-web3-modal',\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: '%d sec',\n m: '1 min',\n mm: '%d min',\n h: '1 hr',\n hh: '%d hrs',\n d: '1 d',\n dd: '%d d',\n M: '1 mo',\n MM: '%d mo',\n y: '1 yr',\n yy: '%d yr'\n }\n};\ndayjs.locale('en-web3-modal', localeObject);\nexport const DateUtil = {\n getYear(date = new Date().toISOString()) {\n return dayjs(date).year();\n },\n getRelativeDateFromNow(date) {\n return dayjs(date).locale('en-web3-modal').fromNow(true);\n },\n formatDate(date, format = 'DD MMM') {\n return dayjs(date).format(format);\n }\n};\n//# sourceMappingURL=DateUtil.js.map","export const NetworkUtil = {\n caipNetworkIdToNumber(caipnetworkId) {\n return caipnetworkId ? Number(caipnetworkId.split(':')[1]) : undefined;\n }\n};\n//# sourceMappingURL=NetworkUtil.js.map","/*\r\n * bignumber.js v9.1.2\r\n * A JavaScript library for arbitrary-precision arithmetic.\r\n * https://github.com/MikeMcl/bignumber.js\r\n * Copyright (c) 2022 Michael Mclaughlin \r\n * MIT Licensed.\r\n *\r\n * BigNumber.prototype methods | BigNumber methods\r\n * |\r\n * absoluteValue abs | clone\r\n * comparedTo | config set\r\n * decimalPlaces dp | DECIMAL_PLACES\r\n * dividedBy div | ROUNDING_MODE\r\n * dividedToIntegerBy idiv | EXPONENTIAL_AT\r\n * exponentiatedBy pow | RANGE\r\n * integerValue | CRYPTO\r\n * isEqualTo eq | MODULO_MODE\r\n * isFinite | POW_PRECISION\r\n * isGreaterThan gt | FORMAT\r\n * isGreaterThanOrEqualTo gte | ALPHABET\r\n * isInteger | isBigNumber\r\n * isLessThan lt | maximum max\r\n * isLessThanOrEqualTo lte | minimum min\r\n * isNaN | random\r\n * isNegative | sum\r\n * isPositive |\r\n * isZero |\r\n * minus |\r\n * modulo mod |\r\n * multipliedBy times |\r\n * negated |\r\n * plus |\r\n * precision sd |\r\n * shiftedBy |\r\n * squareRoot sqrt |\r\n * toExponential |\r\n * toFixed |\r\n * toFormat |\r\n * toFraction |\r\n * toJSON |\r\n * toNumber |\r\n * toPrecision |\r\n * toString |\r\n * valueOf |\r\n *\r\n */\r\n\r\n\r\nvar\r\n isNumeric = /^-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?$/i,\r\n mathceil = Math.ceil,\r\n mathfloor = Math.floor,\r\n\r\n bignumberError = '[BigNumber Error] ',\r\n tooManyDigits = bignumberError + 'Number primitive has more than 15 significant digits: ',\r\n\r\n BASE = 1e14,\r\n LOG_BASE = 14,\r\n MAX_SAFE_INTEGER = 0x1fffffffffffff, // 2^53 - 1\r\n // MAX_INT32 = 0x7fffffff, // 2^31 - 1\r\n POWS_TEN = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13],\r\n SQRT_BASE = 1e7,\r\n\r\n // EDITABLE\r\n // The limit on the value of DECIMAL_PLACES, TO_EXP_NEG, TO_EXP_POS, MIN_EXP, MAX_EXP, and\r\n // the arguments to toExponential, toFixed, toFormat, and toPrecision.\r\n MAX = 1E9; // 0 to MAX_INT32\r\n\r\n\r\n/*\r\n * Create and return a BigNumber constructor.\r\n */\r\nfunction clone(configObject) {\r\n var div, convertBase, parseNumeric,\r\n P = BigNumber.prototype = { constructor: BigNumber, toString: null, valueOf: null },\r\n ONE = new BigNumber(1),\r\n\r\n\r\n //----------------------------- EDITABLE CONFIG DEFAULTS -------------------------------\r\n\r\n\r\n // The default values below must be integers within the inclusive ranges stated.\r\n // The values can also be changed at run-time using BigNumber.set.\r\n\r\n // The maximum number of decimal places for operations involving division.\r\n DECIMAL_PLACES = 20, // 0 to MAX\r\n\r\n // The rounding mode used when rounding to the above decimal places, and when using\r\n // toExponential, toFixed, toFormat and toPrecision, and round (default value).\r\n // UP 0 Away from zero.\r\n // DOWN 1 Towards zero.\r\n // CEIL 2 Towards +Infinity.\r\n // FLOOR 3 Towards -Infinity.\r\n // HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n ROUNDING_MODE = 4, // 0 to 8\r\n\r\n // EXPONENTIAL_AT : [TO_EXP_NEG , TO_EXP_POS]\r\n\r\n // The exponent value at and beneath which toString returns exponential notation.\r\n // Number type: -7\r\n TO_EXP_NEG = -7, // 0 to -MAX\r\n\r\n // The exponent value at and above which toString returns exponential notation.\r\n // Number type: 21\r\n TO_EXP_POS = 21, // 0 to MAX\r\n\r\n // RANGE : [MIN_EXP, MAX_EXP]\r\n\r\n // The minimum exponent value, beneath which underflow to zero occurs.\r\n // Number type: -324 (5e-324)\r\n MIN_EXP = -1e7, // -1 to -MAX\r\n\r\n // The maximum exponent value, above which overflow to Infinity occurs.\r\n // Number type: 308 (1.7976931348623157e+308)\r\n // For MAX_EXP > 1e7, e.g. new BigNumber('1e100000000').plus(1) may be slow.\r\n MAX_EXP = 1e7, // 1 to MAX\r\n\r\n // Whether to use cryptographically-secure random number generation, if available.\r\n CRYPTO = false, // true or false\r\n\r\n // The modulo mode used when calculating the modulus: a mod n.\r\n // The quotient (q = a / n) is calculated according to the corresponding rounding mode.\r\n // The remainder (r) is calculated as: r = a - n * q.\r\n //\r\n // UP 0 The remainder is positive if the dividend is negative, else is negative.\r\n // DOWN 1 The remainder has the same sign as the dividend.\r\n // This modulo mode is commonly known as 'truncated division' and is\r\n // equivalent to (a % n) in JavaScript.\r\n // FLOOR 3 The remainder has the same sign as the divisor (Python %).\r\n // HALF_EVEN 6 This modulo mode implements the IEEE 754 remainder function.\r\n // EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)).\r\n // The remainder is always positive.\r\n //\r\n // The truncated division, floored division, Euclidian division and IEEE 754 remainder\r\n // modes are commonly used for the modulus operation.\r\n // Although the other rounding modes can also be used, they may not give useful results.\r\n MODULO_MODE = 1, // 0 to 9\r\n\r\n // The maximum number of significant digits of the result of the exponentiatedBy operation.\r\n // If POW_PRECISION is 0, there will be unlimited significant digits.\r\n POW_PRECISION = 0, // 0 to MAX\r\n\r\n // The format specification used by the BigNumber.prototype.toFormat method.\r\n FORMAT = {\r\n prefix: '',\r\n groupSize: 3,\r\n secondaryGroupSize: 0,\r\n groupSeparator: ',',\r\n decimalSeparator: '.',\r\n fractionGroupSize: 0,\r\n fractionGroupSeparator: '\\xA0', // non-breaking space\r\n suffix: ''\r\n },\r\n\r\n // The alphabet used for base conversion. It must be at least 2 characters long, with no '+',\r\n // '-', '.', whitespace, or repeated character.\r\n // '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_'\r\n ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyz',\r\n alphabetHasNormalDecimalDigits = true;\r\n\r\n\r\n //------------------------------------------------------------------------------------------\r\n\r\n\r\n // CONSTRUCTOR\r\n\r\n\r\n /*\r\n * The BigNumber constructor and exported function.\r\n * Create and return a new instance of a BigNumber object.\r\n *\r\n * v {number|string|BigNumber} A numeric value.\r\n * [b] {number} The base of v. Integer, 2 to ALPHABET.length inclusive.\r\n */\r\n function BigNumber(v, b) {\r\n var alphabet, c, caseChanged, e, i, isNum, len, str,\r\n x = this;\r\n\r\n // Enable constructor call without `new`.\r\n if (!(x instanceof BigNumber)) return new BigNumber(v, b);\r\n\r\n if (b == null) {\r\n\r\n if (v && v._isBigNumber === true) {\r\n x.s = v.s;\r\n\r\n if (!v.c || v.e > MAX_EXP) {\r\n x.c = x.e = null;\r\n } else if (v.e < MIN_EXP) {\r\n x.c = [x.e = 0];\r\n } else {\r\n x.e = v.e;\r\n x.c = v.c.slice();\r\n }\r\n\r\n return;\r\n }\r\n\r\n if ((isNum = typeof v == 'number') && v * 0 == 0) {\r\n\r\n // Use `1 / n` to handle minus zero also.\r\n x.s = 1 / v < 0 ? (v = -v, -1) : 1;\r\n\r\n // Fast path for integers, where n < 2147483648 (2**31).\r\n if (v === ~~v) {\r\n for (e = 0, i = v; i >= 10; i /= 10, e++);\r\n\r\n if (e > MAX_EXP) {\r\n x.c = x.e = null;\r\n } else {\r\n x.e = e;\r\n x.c = [v];\r\n }\r\n\r\n return;\r\n }\r\n\r\n str = String(v);\r\n } else {\r\n\r\n if (!isNumeric.test(str = String(v))) return parseNumeric(x, str, isNum);\r\n\r\n x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1;\r\n }\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n } else {\r\n\r\n // '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n intCheck(b, 2, ALPHABET.length, 'Base');\r\n\r\n // Allow exponential notation to be used with base 10 argument, while\r\n // also rounding to DECIMAL_PLACES as with other bases.\r\n if (b == 10 && alphabetHasNormalDecimalDigits) {\r\n x = new BigNumber(v);\r\n return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE);\r\n }\r\n\r\n str = String(v);\r\n\r\n if (isNum = typeof v == 'number') {\r\n\r\n // Avoid potential interpretation of Infinity and NaN as base 44+ values.\r\n if (v * 0 != 0) return parseNumeric(x, str, isNum, b);\r\n\r\n x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1;\r\n\r\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n if (BigNumber.DEBUG && str.replace(/^0\\.0*|\\./, '').length > 15) {\r\n throw Error\r\n (tooManyDigits + v);\r\n }\r\n } else {\r\n x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1;\r\n }\r\n\r\n alphabet = ALPHABET.slice(0, b);\r\n e = i = 0;\r\n\r\n // Check that str is a valid base b number.\r\n // Don't use RegExp, so alphabet can contain special characters.\r\n for (len = str.length; i < len; i++) {\r\n if (alphabet.indexOf(c = str.charAt(i)) < 0) {\r\n if (c == '.') {\r\n\r\n // If '.' is not the first character and it has not be found before.\r\n if (i > e) {\r\n e = len;\r\n continue;\r\n }\r\n } else if (!caseChanged) {\r\n\r\n // Allow e.g. hexadecimal 'FF' as well as 'ff'.\r\n if (str == str.toUpperCase() && (str = str.toLowerCase()) ||\r\n str == str.toLowerCase() && (str = str.toUpperCase())) {\r\n caseChanged = true;\r\n i = -1;\r\n e = 0;\r\n continue;\r\n }\r\n }\r\n\r\n return parseNumeric(x, String(v), isNum, b);\r\n }\r\n }\r\n\r\n // Prevent later check for length on converted number.\r\n isNum = false;\r\n str = convertBase(str, b, 10, x.s);\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n else e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48; i++);\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(--len) === 48;);\r\n\r\n if (str = str.slice(i, ++len)) {\r\n len -= i;\r\n\r\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n if (isNum && BigNumber.DEBUG &&\r\n len > 15 && (v > MAX_SAFE_INTEGER || v !== mathfloor(v))) {\r\n throw Error\r\n (tooManyDigits + (x.s * v));\r\n }\r\n\r\n // Overflow?\r\n if ((e = e - i - 1) > MAX_EXP) {\r\n\r\n // Infinity.\r\n x.c = x.e = null;\r\n\r\n // Underflow?\r\n } else if (e < MIN_EXP) {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n } else {\r\n x.e = e;\r\n x.c = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first element of the coefficient array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE; // i < 1\r\n\r\n if (i < len) {\r\n if (i) x.c.push(+str.slice(0, i));\r\n\r\n for (len -= LOG_BASE; i < len;) {\r\n x.c.push(+str.slice(i, i += LOG_BASE));\r\n }\r\n\r\n i = LOG_BASE - (str = str.slice(i)).length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--; str += '0');\r\n x.c.push(+str);\r\n }\r\n } else {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n }\r\n }\r\n\r\n\r\n // CONSTRUCTOR PROPERTIES\r\n\r\n\r\n BigNumber.clone = clone;\r\n\r\n BigNumber.ROUND_UP = 0;\r\n BigNumber.ROUND_DOWN = 1;\r\n BigNumber.ROUND_CEIL = 2;\r\n BigNumber.ROUND_FLOOR = 3;\r\n BigNumber.ROUND_HALF_UP = 4;\r\n BigNumber.ROUND_HALF_DOWN = 5;\r\n BigNumber.ROUND_HALF_EVEN = 6;\r\n BigNumber.ROUND_HALF_CEIL = 7;\r\n BigNumber.ROUND_HALF_FLOOR = 8;\r\n BigNumber.EUCLID = 9;\r\n\r\n\r\n /*\r\n * Configure infrequently-changing library-wide settings.\r\n *\r\n * Accept an object with the following optional properties (if the value of a property is\r\n * a number, it must be an integer within the inclusive range stated):\r\n *\r\n * DECIMAL_PLACES {number} 0 to MAX\r\n * ROUNDING_MODE {number} 0 to 8\r\n * EXPONENTIAL_AT {number|number[]} -MAX to MAX or [-MAX to 0, 0 to MAX]\r\n * RANGE {number|number[]} -MAX to MAX (not zero) or [-MAX to -1, 1 to MAX]\r\n * CRYPTO {boolean} true or false\r\n * MODULO_MODE {number} 0 to 9\r\n * POW_PRECISION {number} 0 to MAX\r\n * ALPHABET {string} A string of two or more unique characters which does\r\n * not contain '.'.\r\n * FORMAT {object} An object with some of the following properties:\r\n * prefix {string}\r\n * groupSize {number}\r\n * secondaryGroupSize {number}\r\n * groupSeparator {string}\r\n * decimalSeparator {string}\r\n * fractionGroupSize {number}\r\n * fractionGroupSeparator {string}\r\n * suffix {string}\r\n *\r\n * (The values assigned to the above FORMAT object properties are not checked for validity.)\r\n *\r\n * E.g.\r\n * BigNumber.config({ DECIMAL_PLACES : 20, ROUNDING_MODE : 4 })\r\n *\r\n * Ignore properties/parameters set to null or undefined, except for ALPHABET.\r\n *\r\n * Return an object with the properties current values.\r\n */\r\n BigNumber.config = BigNumber.set = function (obj) {\r\n var p, v;\r\n\r\n if (obj != null) {\r\n\r\n if (typeof obj == 'object') {\r\n\r\n // DECIMAL_PLACES {number} Integer, 0 to MAX inclusive.\r\n // '[BigNumber Error] DECIMAL_PLACES {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'DECIMAL_PLACES')) {\r\n v = obj[p];\r\n intCheck(v, 0, MAX, p);\r\n DECIMAL_PLACES = v;\r\n }\r\n\r\n // ROUNDING_MODE {number} Integer, 0 to 8 inclusive.\r\n // '[BigNumber Error] ROUNDING_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'ROUNDING_MODE')) {\r\n v = obj[p];\r\n intCheck(v, 0, 8, p);\r\n ROUNDING_MODE = v;\r\n }\r\n\r\n // EXPONENTIAL_AT {number|number[]}\r\n // Integer, -MAX to MAX inclusive or\r\n // [integer -MAX to 0 inclusive, 0 to MAX inclusive].\r\n // '[BigNumber Error] EXPONENTIAL_AT {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'EXPONENTIAL_AT')) {\r\n v = obj[p];\r\n if (v && v.pop) {\r\n intCheck(v[0], -MAX, 0, p);\r\n intCheck(v[1], 0, MAX, p);\r\n TO_EXP_NEG = v[0];\r\n TO_EXP_POS = v[1];\r\n } else {\r\n intCheck(v, -MAX, MAX, p);\r\n TO_EXP_NEG = -(TO_EXP_POS = v < 0 ? -v : v);\r\n }\r\n }\r\n\r\n // RANGE {number|number[]} Non-zero integer, -MAX to MAX inclusive or\r\n // [integer -MAX to -1 inclusive, integer 1 to MAX inclusive].\r\n // '[BigNumber Error] RANGE {not a primitive number|not an integer|out of range|cannot be zero}: {v}'\r\n if (obj.hasOwnProperty(p = 'RANGE')) {\r\n v = obj[p];\r\n if (v && v.pop) {\r\n intCheck(v[0], -MAX, -1, p);\r\n intCheck(v[1], 1, MAX, p);\r\n MIN_EXP = v[0];\r\n MAX_EXP = v[1];\r\n } else {\r\n intCheck(v, -MAX, MAX, p);\r\n if (v) {\r\n MIN_EXP = -(MAX_EXP = v < 0 ? -v : v);\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' cannot be zero: ' + v);\r\n }\r\n }\r\n }\r\n\r\n // CRYPTO {boolean} true or false.\r\n // '[BigNumber Error] CRYPTO not true or false: {v}'\r\n // '[BigNumber Error] crypto unavailable'\r\n if (obj.hasOwnProperty(p = 'CRYPTO')) {\r\n v = obj[p];\r\n if (v === !!v) {\r\n if (v) {\r\n if (typeof crypto != 'undefined' && crypto &&\r\n (crypto.getRandomValues || crypto.randomBytes)) {\r\n CRYPTO = v;\r\n } else {\r\n CRYPTO = !v;\r\n throw Error\r\n (bignumberError + 'crypto unavailable');\r\n }\r\n } else {\r\n CRYPTO = v;\r\n }\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' not true or false: ' + v);\r\n }\r\n }\r\n\r\n // MODULO_MODE {number} Integer, 0 to 9 inclusive.\r\n // '[BigNumber Error] MODULO_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'MODULO_MODE')) {\r\n v = obj[p];\r\n intCheck(v, 0, 9, p);\r\n MODULO_MODE = v;\r\n }\r\n\r\n // POW_PRECISION {number} Integer, 0 to MAX inclusive.\r\n // '[BigNumber Error] POW_PRECISION {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'POW_PRECISION')) {\r\n v = obj[p];\r\n intCheck(v, 0, MAX, p);\r\n POW_PRECISION = v;\r\n }\r\n\r\n // FORMAT {object}\r\n // '[BigNumber Error] FORMAT not an object: {v}'\r\n if (obj.hasOwnProperty(p = 'FORMAT')) {\r\n v = obj[p];\r\n if (typeof v == 'object') FORMAT = v;\r\n else throw Error\r\n (bignumberError + p + ' not an object: ' + v);\r\n }\r\n\r\n // ALPHABET {string}\r\n // '[BigNumber Error] ALPHABET invalid: {v}'\r\n if (obj.hasOwnProperty(p = 'ALPHABET')) {\r\n v = obj[p];\r\n\r\n // Disallow if less than two characters,\r\n // or if it contains '+', '-', '.', whitespace, or a repeated character.\r\n if (typeof v == 'string' && !/^.?$|[+\\-.\\s]|(.).*\\1/.test(v)) {\r\n alphabetHasNormalDecimalDigits = v.slice(0, 10) == '0123456789';\r\n ALPHABET = v;\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' invalid: ' + v);\r\n }\r\n }\r\n\r\n } else {\r\n\r\n // '[BigNumber Error] Object expected: {v}'\r\n throw Error\r\n (bignumberError + 'Object expected: ' + obj);\r\n }\r\n }\r\n\r\n return {\r\n DECIMAL_PLACES: DECIMAL_PLACES,\r\n ROUNDING_MODE: ROUNDING_MODE,\r\n EXPONENTIAL_AT: [TO_EXP_NEG, TO_EXP_POS],\r\n RANGE: [MIN_EXP, MAX_EXP],\r\n CRYPTO: CRYPTO,\r\n MODULO_MODE: MODULO_MODE,\r\n POW_PRECISION: POW_PRECISION,\r\n FORMAT: FORMAT,\r\n ALPHABET: ALPHABET\r\n };\r\n };\r\n\r\n\r\n /*\r\n * Return true if v is a BigNumber instance, otherwise return false.\r\n *\r\n * If BigNumber.DEBUG is true, throw if a BigNumber instance is not well-formed.\r\n *\r\n * v {any}\r\n *\r\n * '[BigNumber Error] Invalid BigNumber: {v}'\r\n */\r\n BigNumber.isBigNumber = function (v) {\r\n if (!v || v._isBigNumber !== true) return false;\r\n if (!BigNumber.DEBUG) return true;\r\n\r\n var i, n,\r\n c = v.c,\r\n e = v.e,\r\n s = v.s;\r\n\r\n out: if ({}.toString.call(c) == '[object Array]') {\r\n\r\n if ((s === 1 || s === -1) && e >= -MAX && e <= MAX && e === mathfloor(e)) {\r\n\r\n // If the first element is zero, the BigNumber value must be zero.\r\n if (c[0] === 0) {\r\n if (e === 0 && c.length === 1) return true;\r\n break out;\r\n }\r\n\r\n // Calculate number of digits that c[0] should have, based on the exponent.\r\n i = (e + 1) % LOG_BASE;\r\n if (i < 1) i += LOG_BASE;\r\n\r\n // Calculate number of digits of c[0].\r\n //if (Math.ceil(Math.log(c[0] + 1) / Math.LN10) == i) {\r\n if (String(c[0]).length == i) {\r\n\r\n for (i = 0; i < c.length; i++) {\r\n n = c[i];\r\n if (n < 0 || n >= BASE || n !== mathfloor(n)) break out;\r\n }\r\n\r\n // Last element cannot be zero, unless it is the only element.\r\n if (n !== 0) return true;\r\n }\r\n }\r\n\r\n // Infinity/NaN\r\n } else if (c === null && e === null && (s === null || s === 1 || s === -1)) {\r\n return true;\r\n }\r\n\r\n throw Error\r\n (bignumberError + 'Invalid BigNumber: ' + v);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the maximum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.maximum = BigNumber.max = function () {\r\n return maxOrMin(arguments, -1);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the minimum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.minimum = BigNumber.min = function () {\r\n return maxOrMin(arguments, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber with a random value equal to or greater than 0 and less than 1,\r\n * and with dp, or DECIMAL_PLACES if dp is omitted, decimal places (or less if trailing\r\n * zeros are produced).\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp}'\r\n * '[BigNumber Error] crypto unavailable'\r\n */\r\n BigNumber.random = (function () {\r\n var pow2_53 = 0x20000000000000;\r\n\r\n // Return a 53 bit integer n, where 0 <= n < 9007199254740992.\r\n // Check if Math.random() produces more than 32 bits of randomness.\r\n // If it does, assume at least 53 bits are produced, otherwise assume at least 30 bits.\r\n // 0x40000000 is 2^30, 0x800000 is 2^23, 0x1fffff is 2^21 - 1.\r\n var random53bitInt = (Math.random() * pow2_53) & 0x1fffff\r\n ? function () { return mathfloor(Math.random() * pow2_53); }\r\n : function () { return ((Math.random() * 0x40000000 | 0) * 0x800000) +\r\n (Math.random() * 0x800000 | 0); };\r\n\r\n return function (dp) {\r\n var a, b, e, k, v,\r\n i = 0,\r\n c = [],\r\n rand = new BigNumber(ONE);\r\n\r\n if (dp == null) dp = DECIMAL_PLACES;\r\n else intCheck(dp, 0, MAX);\r\n\r\n k = mathceil(dp / LOG_BASE);\r\n\r\n if (CRYPTO) {\r\n\r\n // Browsers supporting crypto.getRandomValues.\r\n if (crypto.getRandomValues) {\r\n\r\n a = crypto.getRandomValues(new Uint32Array(k *= 2));\r\n\r\n for (; i < k;) {\r\n\r\n // 53 bits:\r\n // ((Math.pow(2, 32) - 1) * Math.pow(2, 21)).toString(2)\r\n // 11111 11111111 11111111 11111111 11100000 00000000 00000000\r\n // ((Math.pow(2, 32) - 1) >>> 11).toString(2)\r\n // 11111 11111111 11111111\r\n // 0x20000 is 2^21.\r\n v = a[i] * 0x20000 + (a[i + 1] >>> 11);\r\n\r\n // Rejection sampling:\r\n // 0 <= v < 9007199254740992\r\n // Probability that v >= 9e15, is\r\n // 7199254740992 / 9007199254740992 ~= 0.0008, i.e. 1 in 1251\r\n if (v >= 9e15) {\r\n b = crypto.getRandomValues(new Uint32Array(2));\r\n a[i] = b[0];\r\n a[i + 1] = b[1];\r\n } else {\r\n\r\n // 0 <= v <= 8999999999999999\r\n // 0 <= (v % 1e14) <= 99999999999999\r\n c.push(v % 1e14);\r\n i += 2;\r\n }\r\n }\r\n i = k / 2;\r\n\r\n // Node.js supporting crypto.randomBytes.\r\n } else if (crypto.randomBytes) {\r\n\r\n // buffer\r\n a = crypto.randomBytes(k *= 7);\r\n\r\n for (; i < k;) {\r\n\r\n // 0x1000000000000 is 2^48, 0x10000000000 is 2^40\r\n // 0x100000000 is 2^32, 0x1000000 is 2^24\r\n // 11111 11111111 11111111 11111111 11111111 11111111 11111111\r\n // 0 <= v < 9007199254740992\r\n v = ((a[i] & 31) * 0x1000000000000) + (a[i + 1] * 0x10000000000) +\r\n (a[i + 2] * 0x100000000) + (a[i + 3] * 0x1000000) +\r\n (a[i + 4] << 16) + (a[i + 5] << 8) + a[i + 6];\r\n\r\n if (v >= 9e15) {\r\n crypto.randomBytes(7).copy(a, i);\r\n } else {\r\n\r\n // 0 <= (v % 1e14) <= 99999999999999\r\n c.push(v % 1e14);\r\n i += 7;\r\n }\r\n }\r\n i = k / 7;\r\n } else {\r\n CRYPTO = false;\r\n throw Error\r\n (bignumberError + 'crypto unavailable');\r\n }\r\n }\r\n\r\n // Use Math.random.\r\n if (!CRYPTO) {\r\n\r\n for (; i < k;) {\r\n v = random53bitInt();\r\n if (v < 9e15) c[i++] = v % 1e14;\r\n }\r\n }\r\n\r\n k = c[--i];\r\n dp %= LOG_BASE;\r\n\r\n // Convert trailing digits to zeros according to dp.\r\n if (k && dp) {\r\n v = POWS_TEN[LOG_BASE - dp];\r\n c[i] = mathfloor(k / v) * v;\r\n }\r\n\r\n // Remove trailing elements which are zero.\r\n for (; c[i] === 0; c.pop(), i--);\r\n\r\n // Zero?\r\n if (i < 0) {\r\n c = [e = 0];\r\n } else {\r\n\r\n // Remove leading elements which are zero and adjust exponent accordingly.\r\n for (e = -1 ; c[0] === 0; c.splice(0, 1), e -= LOG_BASE);\r\n\r\n // Count the digits of the first element of c to determine leading zeros, and...\r\n for (i = 1, v = c[0]; v >= 10; v /= 10, i++);\r\n\r\n // adjust the exponent accordingly.\r\n if (i < LOG_BASE) e -= LOG_BASE - i;\r\n }\r\n\r\n rand.e = e;\r\n rand.c = c;\r\n return rand;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a BigNumber whose value is the sum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.sum = function () {\r\n var i = 1,\r\n args = arguments,\r\n sum = new BigNumber(args[0]);\r\n for (; i < args.length;) sum = sum.plus(args[i++]);\r\n return sum;\r\n };\r\n\r\n\r\n // PRIVATE FUNCTIONS\r\n\r\n\r\n // Called by BigNumber and BigNumber.prototype.toString.\r\n convertBase = (function () {\r\n var decimal = '0123456789';\r\n\r\n /*\r\n * Convert string of baseIn to an array of numbers of baseOut.\r\n * Eg. toBaseOut('255', 10, 16) returns [15, 15].\r\n * Eg. toBaseOut('ff', 16, 10) returns [2, 5, 5].\r\n */\r\n function toBaseOut(str, baseIn, baseOut, alphabet) {\r\n var j,\r\n arr = [0],\r\n arrL,\r\n i = 0,\r\n len = str.length;\r\n\r\n for (; i < len;) {\r\n for (arrL = arr.length; arrL--; arr[arrL] *= baseIn);\r\n\r\n arr[0] += alphabet.indexOf(str.charAt(i++));\r\n\r\n for (j = 0; j < arr.length; j++) {\r\n\r\n if (arr[j] > baseOut - 1) {\r\n if (arr[j + 1] == null) arr[j + 1] = 0;\r\n arr[j + 1] += arr[j] / baseOut | 0;\r\n arr[j] %= baseOut;\r\n }\r\n }\r\n }\r\n\r\n return arr.reverse();\r\n }\r\n\r\n // Convert a numeric string of baseIn to a numeric string of baseOut.\r\n // If the caller is toString, we are converting from base 10 to baseOut.\r\n // If the caller is BigNumber, we are converting from baseIn to base 10.\r\n return function (str, baseIn, baseOut, sign, callerIsToString) {\r\n var alphabet, d, e, k, r, x, xc, y,\r\n i = str.indexOf('.'),\r\n dp = DECIMAL_PLACES,\r\n rm = ROUNDING_MODE;\r\n\r\n // Non-integer.\r\n if (i >= 0) {\r\n k = POW_PRECISION;\r\n\r\n // Unlimited precision.\r\n POW_PRECISION = 0;\r\n str = str.replace('.', '');\r\n y = new BigNumber(baseIn);\r\n x = y.pow(str.length - i);\r\n POW_PRECISION = k;\r\n\r\n // Convert str as if an integer, then restore the fraction part by dividing the\r\n // result by its base raised to a power.\r\n\r\n y.c = toBaseOut(toFixedPoint(coeffToString(x.c), x.e, '0'),\r\n 10, baseOut, decimal);\r\n y.e = y.c.length;\r\n }\r\n\r\n // Convert the number as integer.\r\n\r\n xc = toBaseOut(str, baseIn, baseOut, callerIsToString\r\n ? (alphabet = ALPHABET, decimal)\r\n : (alphabet = decimal, ALPHABET));\r\n\r\n // xc now represents str as an integer and converted to baseOut. e is the exponent.\r\n e = k = xc.length;\r\n\r\n // Remove trailing zeros.\r\n for (; xc[--k] == 0; xc.pop());\r\n\r\n // Zero?\r\n if (!xc[0]) return alphabet.charAt(0);\r\n\r\n // Does str represent an integer? If so, no need for the division.\r\n if (i < 0) {\r\n --e;\r\n } else {\r\n x.c = xc;\r\n x.e = e;\r\n\r\n // The sign is needed for correct rounding.\r\n x.s = sign;\r\n x = div(x, y, dp, rm, baseOut);\r\n xc = x.c;\r\n r = x.r;\r\n e = x.e;\r\n }\r\n\r\n // xc now represents str converted to baseOut.\r\n\r\n // THe index of the rounding digit.\r\n d = e + dp + 1;\r\n\r\n // The rounding digit: the digit to the right of the digit that may be rounded up.\r\n i = xc[d];\r\n\r\n // Look at the rounding digits and mode to determine whether to round up.\r\n\r\n k = baseOut / 2;\r\n r = r || d < 0 || xc[d + 1] != null;\r\n\r\n r = rm < 4 ? (i != null || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : i > k || i == k &&(rm == 4 || r || rm == 6 && xc[d - 1] & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n // If the index of the rounding digit is not greater than zero, or xc represents\r\n // zero, then the result of the base conversion is zero or, if rounding up, a value\r\n // such as 0.00001.\r\n if (d < 1 || !xc[0]) {\r\n\r\n // 1^-dp or 0\r\n str = r ? toFixedPoint(alphabet.charAt(1), -dp, alphabet.charAt(0)) : alphabet.charAt(0);\r\n } else {\r\n\r\n // Truncate xc to the required number of decimal places.\r\n xc.length = d;\r\n\r\n // Round up?\r\n if (r) {\r\n\r\n // Rounding up may mean the previous digit has to be rounded up and so on.\r\n for (--baseOut; ++xc[--d] > baseOut;) {\r\n xc[d] = 0;\r\n\r\n if (!d) {\r\n ++e;\r\n xc = [1].concat(xc);\r\n }\r\n }\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (k = xc.length; !xc[--k];);\r\n\r\n // E.g. [4, 11, 15] becomes 4bf.\r\n for (i = 0, str = ''; i <= k; str += alphabet.charAt(xc[i++]));\r\n\r\n // Add leading zeros, decimal point and trailing zeros as required.\r\n str = toFixedPoint(str, e, alphabet.charAt(0));\r\n }\r\n\r\n // The caller will add the sign.\r\n return str;\r\n };\r\n })();\r\n\r\n\r\n // Perform division in the specified base. Called by div and convertBase.\r\n div = (function () {\r\n\r\n // Assume non-zero x and k.\r\n function multiply(x, k, base) {\r\n var m, temp, xlo, xhi,\r\n carry = 0,\r\n i = x.length,\r\n klo = k % SQRT_BASE,\r\n khi = k / SQRT_BASE | 0;\r\n\r\n for (x = x.slice(); i--;) {\r\n xlo = x[i] % SQRT_BASE;\r\n xhi = x[i] / SQRT_BASE | 0;\r\n m = khi * xlo + xhi * klo;\r\n temp = klo * xlo + ((m % SQRT_BASE) * SQRT_BASE) + carry;\r\n carry = (temp / base | 0) + (m / SQRT_BASE | 0) + khi * xhi;\r\n x[i] = temp % base;\r\n }\r\n\r\n if (carry) x = [carry].concat(x);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, cmp;\r\n\r\n if (aL != bL) {\r\n cmp = aL > bL ? 1 : -1;\r\n } else {\r\n\r\n for (i = cmp = 0; i < aL; i++) {\r\n\r\n if (a[i] != b[i]) {\r\n cmp = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return cmp;\r\n }\r\n\r\n function subtract(a, b, aL, base) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * base + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1; a.splice(0, 1));\r\n }\r\n\r\n // x: dividend, y: divisor.\r\n return function (x, y, dp, rm, base) {\r\n var cmp, e, i, more, n, prod, prodL, q, qc, rem, remL, rem0, xi, xL, yc0,\r\n yL, yz,\r\n s = x.s == y.s ? 1 : -1,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n // Either NaN, Infinity or 0?\r\n if (!xc || !xc[0] || !yc || !yc[0]) {\r\n\r\n return new BigNumber(\r\n\r\n // Return NaN if either NaN, or both Infinity or 0.\r\n !x.s || !y.s || (xc ? yc && xc[0] == yc[0] : !yc) ? NaN :\r\n\r\n // Return ±0 if x is ±0 or y is ±Infinity, or return ±Infinity as y is ±0.\r\n xc && xc[0] == 0 || !yc ? s * 0 : s / 0\r\n );\r\n }\r\n\r\n q = new BigNumber(s);\r\n qc = q.c = [];\r\n e = x.e - y.e;\r\n s = dp + e + 1;\r\n\r\n if (!base) {\r\n base = BASE;\r\n e = bitFloor(x.e / LOG_BASE) - bitFloor(y.e / LOG_BASE);\r\n s = s / LOG_BASE | 0;\r\n }\r\n\r\n // Result exponent may be one less then the current value of e.\r\n // The coefficients of the BigNumbers from convertBase may have trailing zeros.\r\n for (i = 0; yc[i] == (xc[i] || 0); i++);\r\n\r\n if (yc[i] > (xc[i] || 0)) e--;\r\n\r\n if (s < 0) {\r\n qc.push(1);\r\n more = true;\r\n } else {\r\n xL = xc.length;\r\n yL = yc.length;\r\n i = 0;\r\n s += 2;\r\n\r\n // Normalise xc and yc so highest order digit of yc is >= base / 2.\r\n\r\n n = mathfloor(base / (yc[0] + 1));\r\n\r\n // Not necessary, but to handle odd bases where yc[0] == (base / 2) - 1.\r\n // if (n > 1 || n++ == 1 && yc[0] < base / 2) {\r\n if (n > 1) {\r\n yc = multiply(yc, n, base);\r\n xc = multiply(xc, n, base);\r\n yL = yc.length;\r\n xL = xc.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xc.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL; rem[remL++] = 0);\r\n yz = yc.slice();\r\n yz = [0].concat(yz);\r\n yc0 = yc[0];\r\n if (yc[1] >= base / 2) yc0++;\r\n // Not necessary, but to prevent trial digit n > base, when using base 3.\r\n // else if (base == 3 && yc0 == 1) yc0 = 1 + 1e-15;\r\n\r\n do {\r\n n = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yc, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, n.\r\n\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * base + (rem[1] || 0);\r\n\r\n // n is how many times the divisor goes into the current remainder.\r\n n = mathfloor(rem0 / yc0);\r\n\r\n // Algorithm:\r\n // product = divisor multiplied by trial digit (n).\r\n // Compare product and remainder.\r\n // If product is greater than remainder:\r\n // Subtract divisor from product, decrement trial digit.\r\n // Subtract product from remainder.\r\n // If product was less than remainder at the last compare:\r\n // Compare new remainder and divisor.\r\n // If remainder is greater than divisor:\r\n // Subtract divisor from remainder, increment trial digit.\r\n\r\n if (n > 1) {\r\n\r\n // n may be > base only when base is 3.\r\n if (n >= base) n = base - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiply(yc, n, base);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n // If product > remainder then trial digit n too high.\r\n // n is 1 too high about 5% of the time, and is not known to have\r\n // ever been more than 1 too high.\r\n while (compare(prod, rem, prodL, remL) == 1) {\r\n n--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yc, prodL, base);\r\n prodL = prod.length;\r\n cmp = 1;\r\n }\r\n } else {\r\n\r\n // n is 0 or 1, cmp is -1.\r\n // If n is 0, there is no need to compare yc and rem again below,\r\n // so change cmp to 1 to avoid it.\r\n // If n is 1, leave cmp as -1, so yc and rem are compared again.\r\n if (n == 0) {\r\n\r\n // divisor < remainder, so n must be at least 1.\r\n cmp = n = 1;\r\n }\r\n\r\n // product = divisor\r\n prod = yc.slice();\r\n prodL = prod.length;\r\n }\r\n\r\n if (prodL < remL) prod = [0].concat(prod);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL, base);\r\n remL = rem.length;\r\n\r\n // If product was < remainder.\r\n if (cmp == -1) {\r\n\r\n // Compare divisor and new remainder.\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n // Trial digit n too low.\r\n // n is 1 too low about 5% of the time, and very rarely 2 too low.\r\n while (compare(yc, rem, yL, remL) < 1) {\r\n n++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yc, remL, base);\r\n remL = rem.length;\r\n }\r\n }\r\n } else if (cmp === 0) {\r\n n++;\r\n rem = [0];\r\n } // else cmp === 1 and n will be 0\r\n\r\n // Add the next digit, n, to the result array.\r\n qc[i++] = n;\r\n\r\n // Update the remainder.\r\n if (rem[0]) {\r\n rem[remL++] = xc[xi] || 0;\r\n } else {\r\n rem = [xc[xi]];\r\n remL = 1;\r\n }\r\n } while ((xi++ < xL || rem[0] != null) && s--);\r\n\r\n more = rem[0] != null;\r\n\r\n // Leading zero?\r\n if (!qc[0]) qc.splice(0, 1);\r\n }\r\n\r\n if (base == BASE) {\r\n\r\n // To calculate q.e, first get the number of digits of qc[0].\r\n for (i = 1, s = qc[0]; s >= 10; s /= 10, i++);\r\n\r\n round(q, dp + (q.e = i + e * LOG_BASE - 1) + 1, rm, more);\r\n\r\n // Caller is convertBase.\r\n } else {\r\n q.e = e;\r\n q.r = +more;\r\n }\r\n\r\n return q;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a string representing the value of BigNumber n in fixed-point or exponential\r\n * notation rounded to the specified decimal places or significant digits.\r\n *\r\n * n: a BigNumber.\r\n * i: the index of the last digit required (i.e. the digit that may be rounded up).\r\n * rm: the rounding mode.\r\n * id: 1 (toExponential) or 2 (toPrecision).\r\n */\r\n function format(n, i, rm, id) {\r\n var c0, e, ne, len, str;\r\n\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n if (!n.c) return n.toString();\r\n\r\n c0 = n.c[0];\r\n ne = n.e;\r\n\r\n if (i == null) {\r\n str = coeffToString(n.c);\r\n str = id == 1 || id == 2 && (ne <= TO_EXP_NEG || ne >= TO_EXP_POS)\r\n ? toExponential(str, ne)\r\n : toFixedPoint(str, ne, '0');\r\n } else {\r\n n = round(new BigNumber(n), i, rm);\r\n\r\n // n.e may have changed if the value was rounded up.\r\n e = n.e;\r\n\r\n str = coeffToString(n.c);\r\n len = str.length;\r\n\r\n // toPrecision returns exponential notation if the number of significant digits\r\n // specified is less than the number of digits necessary to represent the integer\r\n // part of the value in fixed-point notation.\r\n\r\n // Exponential notation.\r\n if (id == 1 || id == 2 && (i <= e || e <= TO_EXP_NEG)) {\r\n\r\n // Append zeros?\r\n for (; len < i; str += '0', len++);\r\n str = toExponential(str, e);\r\n\r\n // Fixed-point notation.\r\n } else {\r\n i -= ne;\r\n str = toFixedPoint(str, e, '0');\r\n\r\n // Append zeros?\r\n if (e + 1 > len) {\r\n if (--i > 0) for (str += '.'; i--; str += '0');\r\n } else {\r\n i += e - len;\r\n if (i > 0) {\r\n if (e + 1 == len) str += '.';\r\n for (; i--; str += '0');\r\n }\r\n }\r\n }\r\n }\r\n\r\n return n.s < 0 && c0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // Handle BigNumber.max and BigNumber.min.\r\n // If any number is NaN, return NaN.\r\n function maxOrMin(args, n) {\r\n var k, y,\r\n i = 1,\r\n x = new BigNumber(args[0]);\r\n\r\n for (; i < args.length; i++) {\r\n y = new BigNumber(args[i]);\r\n if (!y.s || (k = compare(x, y)) === n || k === 0 && x.s === n) {\r\n x = y;\r\n }\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * Strip trailing zeros, calculate base 10 exponent and check against MIN_EXP and MAX_EXP.\r\n * Called by minus, plus and times.\r\n */\r\n function normalise(n, c, e) {\r\n var i = 1,\r\n j = c.length;\r\n\r\n // Remove trailing zeros.\r\n for (; !c[--j]; c.pop());\r\n\r\n // Calculate the base 10 exponent. First get the number of digits of c[0].\r\n for (j = c[0]; j >= 10; j /= 10, i++);\r\n\r\n // Overflow?\r\n if ((e = i + e * LOG_BASE - 1) > MAX_EXP) {\r\n\r\n // Infinity.\r\n n.c = n.e = null;\r\n\r\n // Underflow?\r\n } else if (e < MIN_EXP) {\r\n\r\n // Zero.\r\n n.c = [n.e = 0];\r\n } else {\r\n n.e = e;\r\n n.c = c;\r\n }\r\n\r\n return n;\r\n }\r\n\r\n\r\n // Handle values that fail the validity test in BigNumber.\r\n parseNumeric = (function () {\r\n var basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i,\r\n dotAfter = /^([^.]+)\\.$/,\r\n dotBefore = /^\\.([^.]+)$/,\r\n isInfinityOrNaN = /^-?(Infinity|NaN)$/,\r\n whitespaceOrPlus = /^\\s*\\+(?=[\\w.])|^\\s+|\\s+$/g;\r\n\r\n return function (x, str, isNum, b) {\r\n var base,\r\n s = isNum ? str : str.replace(whitespaceOrPlus, '');\r\n\r\n // No exception on ±Infinity or NaN.\r\n if (isInfinityOrNaN.test(s)) {\r\n x.s = isNaN(s) ? null : s < 0 ? -1 : 1;\r\n } else {\r\n if (!isNum) {\r\n\r\n // basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i\r\n s = s.replace(basePrefix, function (m, p1, p2) {\r\n base = (p2 = p2.toLowerCase()) == 'x' ? 16 : p2 == 'b' ? 2 : 8;\r\n return !b || b == base ? p1 : m;\r\n });\r\n\r\n if (b) {\r\n base = b;\r\n\r\n // E.g. '1.' to '1', '.1' to '0.1'\r\n s = s.replace(dotAfter, '$1').replace(dotBefore, '0.$1');\r\n }\r\n\r\n if (str != s) return new BigNumber(s, base);\r\n }\r\n\r\n // '[BigNumber Error] Not a number: {n}'\r\n // '[BigNumber Error] Not a base {b} number: {n}'\r\n if (BigNumber.DEBUG) {\r\n throw Error\r\n (bignumberError + 'Not a' + (b ? ' base ' + b : '') + ' number: ' + str);\r\n }\r\n\r\n // NaN\r\n x.s = null;\r\n }\r\n\r\n x.c = x.e = null;\r\n }\r\n })();\r\n\r\n\r\n /*\r\n * Round x to sd significant digits using rounding mode rm. Check for over/under-flow.\r\n * If r is truthy, it is known that there are more digits after the rounding digit.\r\n */\r\n function round(x, sd, rm, r) {\r\n var d, i, j, k, n, ni, rd,\r\n xc = x.c,\r\n pows10 = POWS_TEN;\r\n\r\n // if x is not Infinity or NaN...\r\n if (xc) {\r\n\r\n // rd is the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // n is a base 1e14 number, the value of the element of array x.c containing rd.\r\n // ni is the index of n within x.c.\r\n // d is the number of digits of n.\r\n // i is the index of rd within n including leading zeros.\r\n // j is the actual index of rd within n (if < 0, rd is a leading zero).\r\n out: {\r\n\r\n // Get the number of digits of the first element of xc.\r\n for (d = 1, k = xc[0]; k >= 10; k /= 10, d++);\r\n i = sd - d;\r\n\r\n // If the rounding digit is in the first element of xc...\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n n = xc[ni = 0];\r\n\r\n // Get the rounding digit at index j of n.\r\n rd = mathfloor(n / pows10[d - j - 1] % 10);\r\n } else {\r\n ni = mathceil((i + 1) / LOG_BASE);\r\n\r\n if (ni >= xc.length) {\r\n\r\n if (r) {\r\n\r\n // Needed by sqrt.\r\n for (; xc.length <= ni; xc.push(0));\r\n n = rd = 0;\r\n d = 1;\r\n i %= LOG_BASE;\r\n j = i - LOG_BASE + 1;\r\n } else {\r\n break out;\r\n }\r\n } else {\r\n n = k = xc[ni];\r\n\r\n // Get the number of digits of n.\r\n for (d = 1; k >= 10; k /= 10, d++);\r\n\r\n // Get the index of rd within n.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within n, adjusted for leading zeros.\r\n // The number of leading zeros of n is given by LOG_BASE - d.\r\n j = i - LOG_BASE + d;\r\n\r\n // Get the rounding digit at index j of n.\r\n rd = j < 0 ? 0 : mathfloor(n / pows10[d - j - 1] % 10);\r\n }\r\n }\r\n\r\n r = r || sd < 0 ||\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n // The expression n % pows10[d - j - 1] returns all digits of n to the right\r\n // of the digit at j, e.g. if n is 908714 and j is 2, the expression gives 714.\r\n xc[ni + 1] != null || (j < 0 ? n : n % pows10[d - j - 1]);\r\n\r\n r = rm < 4\r\n ? (rd || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || r || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? n / pows10[d - j] : 0 : xc[ni - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n if (sd < 1 || !xc[0]) {\r\n xc.length = 0;\r\n\r\n if (r) {\r\n\r\n // Convert sd to decimal places.\r\n sd -= x.e + 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xc[0] = pows10[(LOG_BASE - sd % LOG_BASE) % LOG_BASE];\r\n x.e = -sd || 0;\r\n } else {\r\n\r\n // Zero.\r\n xc[0] = x.e = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xc.length = ni;\r\n k = 1;\r\n ni--;\r\n } else {\r\n xc.length = ni + 1;\r\n k = pows10[LOG_BASE - i];\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of n.\r\n xc[ni] = j > 0 ? mathfloor(n / pows10[d - j] % pows10[j]) * k : 0;\r\n }\r\n\r\n // Round up?\r\n if (r) {\r\n\r\n for (; ;) {\r\n\r\n // If the digit to be rounded up is in the first element of xc...\r\n if (ni == 0) {\r\n\r\n // i will be the length of xc[0] before k is added.\r\n for (i = 1, j = xc[0]; j >= 10; j /= 10, i++);\r\n j = xc[0] += k;\r\n for (k = 1; j >= 10; j /= 10, k++);\r\n\r\n // if i != k the length has increased.\r\n if (i != k) {\r\n x.e++;\r\n if (xc[0] == BASE) xc[0] = 1;\r\n }\r\n\r\n break;\r\n } else {\r\n xc[ni] += k;\r\n if (xc[ni] != BASE) break;\r\n xc[ni--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xc.length; xc[--i] === 0; xc.pop());\r\n }\r\n\r\n // Overflow? Infinity.\r\n if (x.e > MAX_EXP) {\r\n x.c = x.e = null;\r\n\r\n // Underflow? Zero.\r\n } else if (x.e < MIN_EXP) {\r\n x.c = [x.e = 0];\r\n }\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n function valueOf(n) {\r\n var str,\r\n e = n.e;\r\n\r\n if (e === null) return n.toString();\r\n\r\n str = coeffToString(n.c);\r\n\r\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n ? toExponential(str, e)\r\n : toFixedPoint(str, e, '0');\r\n\r\n return n.s < 0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // PROTOTYPE/INSTANCE METHODS\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the absolute value of this BigNumber.\r\n */\r\n P.absoluteValue = P.abs = function () {\r\n var x = new BigNumber(this);\r\n if (x.s < 0) x.s = 1;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * -1 if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * 0 if they have the same value,\r\n * or null if the value of either is NaN.\r\n */\r\n P.comparedTo = function (y, b) {\r\n return compare(this, new BigNumber(y, b));\r\n };\r\n\r\n\r\n /*\r\n * If dp is undefined or null or true or false, return the number of decimal places of the\r\n * value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n *\r\n * Otherwise, if dp is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of dp decimal places using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * [dp] {number} Decimal places: integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.decimalPlaces = P.dp = function (dp, rm) {\r\n var c, n, v,\r\n x = this;\r\n\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n return round(new BigNumber(x), dp + x.e + 1, rm);\r\n }\r\n\r\n if (!(c = x.c)) return null;\r\n n = ((v = c.length - 1) - bitFloor(this.e / LOG_BASE)) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last number.\r\n if (v = c[v]) for (; v % 10 == 0; v /= 10, n--);\r\n if (n < 0) n = 0;\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * n / 0 = I\r\n * n / N = N\r\n * n / I = 0\r\n * 0 / n = 0\r\n * 0 / 0 = N\r\n * 0 / N = N\r\n * 0 / I = 0\r\n * N / n = N\r\n * N / 0 = N\r\n * N / N = N\r\n * N / I = N\r\n * I / n = I\r\n * I / 0 = I\r\n * I / N = N\r\n * I / I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber divided by the value of\r\n * BigNumber(y, b), rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\r\n P.dividedBy = P.div = function (y, b) {\r\n return div(this, new BigNumber(y, b), DECIMAL_PLACES, ROUNDING_MODE);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the integer part of dividing the value of this\r\n * BigNumber by the value of BigNumber(y, b).\r\n */\r\n P.dividedToIntegerBy = P.idiv = function (y, b) {\r\n return div(this, new BigNumber(y, b), 0, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a BigNumber whose value is the value of this BigNumber exponentiated by n.\r\n *\r\n * If m is present, return the result modulo m.\r\n * If n is negative round according to DECIMAL_PLACES and ROUNDING_MODE.\r\n * If POW_PRECISION is non-zero and m is not present, round to POW_PRECISION using ROUNDING_MODE.\r\n *\r\n * The modular power operation works efficiently when x, n, and m are integers, otherwise it\r\n * is equivalent to calculating x.exponentiatedBy(n).modulo(m) with a POW_PRECISION of 0.\r\n *\r\n * n {number|string|BigNumber} The exponent. An integer.\r\n * [m] {number|string|BigNumber} The modulus.\r\n *\r\n * '[BigNumber Error] Exponent not an integer: {n}'\r\n */\r\n P.exponentiatedBy = P.pow = function (n, m) {\r\n var half, isModExp, i, k, more, nIsBig, nIsNeg, nIsOdd, y,\r\n x = this;\r\n\r\n n = new BigNumber(n);\r\n\r\n // Allow NaN and ±Infinity, but not other non-integers.\r\n if (n.c && !n.isInteger()) {\r\n throw Error\r\n (bignumberError + 'Exponent not an integer: ' + valueOf(n));\r\n }\r\n\r\n if (m != null) m = new BigNumber(m);\r\n\r\n // Exponent of MAX_SAFE_INTEGER is 15.\r\n nIsBig = n.e > 14;\r\n\r\n // If x is NaN, ±Infinity, ±0 or ±1, or n is ±Infinity, NaN or ±0.\r\n if (!x.c || !x.c[0] || x.c[0] == 1 && !x.e && x.c.length == 1 || !n.c || !n.c[0]) {\r\n\r\n // The sign of the result of pow when x is negative depends on the evenness of n.\r\n // If +n overflows to ±Infinity, the evenness of n would be not be known.\r\n y = new BigNumber(Math.pow(+valueOf(x), nIsBig ? n.s * (2 - isOdd(n)) : +valueOf(n)));\r\n return m ? y.mod(m) : y;\r\n }\r\n\r\n nIsNeg = n.s < 0;\r\n\r\n if (m) {\r\n\r\n // x % m returns NaN if abs(m) is zero, or m is NaN.\r\n if (m.c ? !m.c[0] : !m.s) return new BigNumber(NaN);\r\n\r\n isModExp = !nIsNeg && x.isInteger() && m.isInteger();\r\n\r\n if (isModExp) x = x.mod(m);\r\n\r\n // Overflow to ±Infinity: >=2**1e10 or >=1.0000024**1e15.\r\n // Underflow to ±0: <=0.79**1e10 or <=0.9999975**1e15.\r\n } else if (n.e > 9 && (x.e > 0 || x.e < -1 || (x.e == 0\r\n // [1, 240000000]\r\n ? x.c[0] > 1 || nIsBig && x.c[1] >= 24e7\r\n // [80000000000000] [99999750000000]\r\n : x.c[0] < 8e13 || nIsBig && x.c[0] <= 9999975e7))) {\r\n\r\n // If x is negative and n is odd, k = -0, else k = 0.\r\n k = x.s < 0 && isOdd(n) ? -0 : 0;\r\n\r\n // If x >= 1, k = ±Infinity.\r\n if (x.e > -1) k = 1 / k;\r\n\r\n // If n is negative return ±0, else return ±Infinity.\r\n return new BigNumber(nIsNeg ? 1 / k : k);\r\n\r\n } else if (POW_PRECISION) {\r\n\r\n // Truncating each coefficient array to a length of k after each multiplication\r\n // equates to truncating significant digits to POW_PRECISION + [28, 41],\r\n // i.e. there will be a minimum of 28 guard digits retained.\r\n k = mathceil(POW_PRECISION / LOG_BASE + 2);\r\n }\r\n\r\n if (nIsBig) {\r\n half = new BigNumber(0.5);\r\n if (nIsNeg) n.s = 1;\r\n nIsOdd = isOdd(n);\r\n } else {\r\n i = Math.abs(+valueOf(n));\r\n nIsOdd = i % 2;\r\n }\r\n\r\n y = new BigNumber(ONE);\r\n\r\n // Performs 54 loop iterations for n of 9007199254740991.\r\n for (; ;) {\r\n\r\n if (nIsOdd) {\r\n y = y.times(x);\r\n if (!y.c) break;\r\n\r\n if (k) {\r\n if (y.c.length > k) y.c.length = k;\r\n } else if (isModExp) {\r\n y = y.mod(m); //y = y.minus(div(y, m, 0, MODULO_MODE).times(m));\r\n }\r\n }\r\n\r\n if (i) {\r\n i = mathfloor(i / 2);\r\n if (i === 0) break;\r\n nIsOdd = i % 2;\r\n } else {\r\n n = n.times(half);\r\n round(n, n.e + 1, 1);\r\n\r\n if (n.e > 14) {\r\n nIsOdd = isOdd(n);\r\n } else {\r\n i = +valueOf(n);\r\n if (i === 0) break;\r\n nIsOdd = i % 2;\r\n }\r\n }\r\n\r\n x = x.times(x);\r\n\r\n if (k) {\r\n if (x.c && x.c.length > k) x.c.length = k;\r\n } else if (isModExp) {\r\n x = x.mod(m); //x = x.minus(div(x, m, 0, MODULO_MODE).times(m));\r\n }\r\n }\r\n\r\n if (isModExp) return y;\r\n if (nIsNeg) y = ONE.div(y);\r\n\r\n return m ? y.mod(m) : k ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber rounded to an integer\r\n * using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {rm}'\r\n */\r\n P.integerValue = function (rm) {\r\n var n = new BigNumber(this);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n return round(n, n.e + 1, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is equal to the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isEqualTo = P.eq = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is a finite number, otherwise return false.\r\n */\r\n P.isFinite = function () {\r\n return !!this.c;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isGreaterThan = P.gt = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is greater than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\r\n P.isGreaterThanOrEqualTo = P.gte = function (y, b) {\r\n return (b = compare(this, new BigNumber(y, b))) === 1 || b === 0;\r\n\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is an integer, otherwise return false.\r\n */\r\n P.isInteger = function () {\r\n return !!this.c && bitFloor(this.e / LOG_BASE) > this.c.length - 2;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isLessThan = P.lt = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is less than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\r\n P.isLessThanOrEqualTo = P.lte = function (y, b) {\r\n return (b = compare(this, new BigNumber(y, b))) === -1 || b === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is NaN, otherwise return false.\r\n */\r\n P.isNaN = function () {\r\n return !this.s;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is negative, otherwise return false.\r\n */\r\n P.isNegative = function () {\r\n return this.s < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is positive, otherwise return false.\r\n */\r\n P.isPositive = function () {\r\n return this.s > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is 0 or -0, otherwise return false.\r\n */\r\n P.isZero = function () {\r\n return !!this.c && this.c[0] == 0;\r\n };\r\n\r\n\r\n /*\r\n * n - 0 = n\r\n * n - N = N\r\n * n - I = -I\r\n * 0 - n = -n\r\n * 0 - 0 = 0\r\n * 0 - N = N\r\n * 0 - I = -I\r\n * N - n = N\r\n * N - 0 = N\r\n * N - N = N\r\n * N - I = N\r\n * I - n = I\r\n * I - 0 = I\r\n * I - N = N\r\n * I - I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber minus the value of\r\n * BigNumber(y, b).\r\n */\r\n P.minus = function (y, b) {\r\n var i, j, t, xLTy,\r\n x = this,\r\n a = x.s;\r\n\r\n y = new BigNumber(y, b);\r\n b = y.s;\r\n\r\n // Either NaN?\r\n if (!a || !b) return new BigNumber(NaN);\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.plus(y);\r\n }\r\n\r\n var xe = x.e / LOG_BASE,\r\n ye = y.e / LOG_BASE,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n if (!xe || !ye) {\r\n\r\n // Either Infinity?\r\n if (!xc || !yc) return xc ? (y.s = -b, y) : new BigNumber(yc ? x : NaN);\r\n\r\n // Either zero?\r\n if (!xc[0] || !yc[0]) {\r\n\r\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n return yc[0] ? (y.s = -b, y) : new BigNumber(xc[0] ? x :\r\n\r\n // IEEE 754 (2008) 6.3: n - n = -0 when rounding to -Infinity\r\n ROUNDING_MODE == 3 ? -0 : 0);\r\n }\r\n }\r\n\r\n xe = bitFloor(xe);\r\n ye = bitFloor(ye);\r\n xc = xc.slice();\r\n\r\n // Determine which is the bigger number.\r\n if (a = xe - ye) {\r\n\r\n if (xLTy = a < 0) {\r\n a = -a;\r\n t = xc;\r\n } else {\r\n ye = xe;\r\n t = yc;\r\n }\r\n\r\n t.reverse();\r\n\r\n // Prepend zeros to equalise exponents.\r\n for (b = a; b--; t.push(0));\r\n t.reverse();\r\n } else {\r\n\r\n // Exponents equal. Check digit by digit.\r\n j = (xLTy = (a = xc.length) < (b = yc.length)) ? a : b;\r\n\r\n for (a = b = 0; b < j; b++) {\r\n\r\n if (xc[b] != yc[b]) {\r\n xLTy = xc[b] < yc[b];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // x < y? Point xc to the array of the bigger number.\r\n if (xLTy) {\r\n t = xc;\r\n xc = yc;\r\n yc = t;\r\n y.s = -y.s;\r\n }\r\n\r\n b = (j = yc.length) - (i = xc.length);\r\n\r\n // Append zeros to xc if shorter.\r\n // No need to add zeros to yc if shorter as subtract only needs to start at yc.length.\r\n if (b > 0) for (; b--; xc[i++] = 0);\r\n b = BASE - 1;\r\n\r\n // Subtract yc from xc.\r\n for (; j > a;) {\r\n\r\n if (xc[--j] < yc[j]) {\r\n for (i = j; i && !xc[--i]; xc[i] = b);\r\n --xc[i];\r\n xc[j] += BASE;\r\n }\r\n\r\n xc[j] -= yc[j];\r\n }\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xc[0] == 0; xc.splice(0, 1), --ye);\r\n\r\n // Zero?\r\n if (!xc[0]) {\r\n\r\n // Following IEEE 754 (2008) 6.3,\r\n // n - n = +0 but n - n = -0 when rounding towards -Infinity.\r\n y.s = ROUNDING_MODE == 3 ? -1 : 1;\r\n y.c = [y.e = 0];\r\n return y;\r\n }\r\n\r\n // No need to check for Infinity as +x - +y != Infinity && -x - -y != Infinity\r\n // for finite x and y.\r\n return normalise(y, xc, ye);\r\n };\r\n\r\n\r\n /*\r\n * n % 0 = N\r\n * n % N = N\r\n * n % I = n\r\n * 0 % n = 0\r\n * -0 % n = -0\r\n * 0 % 0 = N\r\n * 0 % N = N\r\n * 0 % I = 0\r\n * N % n = N\r\n * N % 0 = N\r\n * N % N = N\r\n * N % I = N\r\n * I % n = N\r\n * I % 0 = N\r\n * I % N = N\r\n * I % I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber modulo the value of\r\n * BigNumber(y, b). The result depends on the value of MODULO_MODE.\r\n */\r\n P.modulo = P.mod = function (y, b) {\r\n var q, s,\r\n x = this;\r\n\r\n y = new BigNumber(y, b);\r\n\r\n // Return NaN if x is Infinity or NaN, or y is NaN or zero.\r\n if (!x.c || !y.s || y.c && !y.c[0]) {\r\n return new BigNumber(NaN);\r\n\r\n // Return x if y is Infinity or x is zero.\r\n } else if (!y.c || x.c && !x.c[0]) {\r\n return new BigNumber(x);\r\n }\r\n\r\n if (MODULO_MODE == 9) {\r\n\r\n // Euclidian division: q = sign(y) * floor(x / abs(y))\r\n // r = x - qy where 0 <= r < abs(y)\r\n s = y.s;\r\n y.s = 1;\r\n q = div(x, y, 0, 3);\r\n y.s = s;\r\n q.s *= s;\r\n } else {\r\n q = div(x, y, 0, MODULO_MODE);\r\n }\r\n\r\n y = x.minus(q.times(y));\r\n\r\n // To match JavaScript %, ensure sign of zero is sign of dividend.\r\n if (!y.c[0] && MODULO_MODE == 1) y.s = x.s;\r\n\r\n return y;\r\n };\r\n\r\n\r\n /*\r\n * n * 0 = 0\r\n * n * N = N\r\n * n * I = I\r\n * 0 * n = 0\r\n * 0 * 0 = 0\r\n * 0 * N = N\r\n * 0 * I = N\r\n * N * n = N\r\n * N * 0 = N\r\n * N * N = N\r\n * N * I = N\r\n * I * n = I\r\n * I * 0 = N\r\n * I * N = N\r\n * I * I = I\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber multiplied by the value\r\n * of BigNumber(y, b).\r\n */\r\n P.multipliedBy = P.times = function (y, b) {\r\n var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc,\r\n base, sqrtBase,\r\n x = this,\r\n xc = x.c,\r\n yc = (y = new BigNumber(y, b)).c;\r\n\r\n // Either NaN, ±Infinity or ±0?\r\n if (!xc || !yc || !xc[0] || !yc[0]) {\r\n\r\n // Return NaN if either is NaN, or one is 0 and the other is Infinity.\r\n if (!x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc) {\r\n y.c = y.e = y.s = null;\r\n } else {\r\n y.s *= x.s;\r\n\r\n // Return ±Infinity if either is ±Infinity.\r\n if (!xc || !yc) {\r\n y.c = y.e = null;\r\n\r\n // Return ±0 if either is ±0.\r\n } else {\r\n y.c = [0];\r\n y.e = 0;\r\n }\r\n }\r\n\r\n return y;\r\n }\r\n\r\n e = bitFloor(x.e / LOG_BASE) + bitFloor(y.e / LOG_BASE);\r\n y.s *= x.s;\r\n xcL = xc.length;\r\n ycL = yc.length;\r\n\r\n // Ensure xc points to longer array and xcL to its length.\r\n if (xcL < ycL) {\r\n zc = xc;\r\n xc = yc;\r\n yc = zc;\r\n i = xcL;\r\n xcL = ycL;\r\n ycL = i;\r\n }\r\n\r\n // Initialise the result array with zeros.\r\n for (i = xcL + ycL, zc = []; i--; zc.push(0));\r\n\r\n base = BASE;\r\n sqrtBase = SQRT_BASE;\r\n\r\n for (i = ycL; --i >= 0;) {\r\n c = 0;\r\n ylo = yc[i] % sqrtBase;\r\n yhi = yc[i] / sqrtBase | 0;\r\n\r\n for (k = xcL, j = i + k; j > i;) {\r\n xlo = xc[--k] % sqrtBase;\r\n xhi = xc[k] / sqrtBase | 0;\r\n m = yhi * xlo + xhi * ylo;\r\n xlo = ylo * xlo + ((m % sqrtBase) * sqrtBase) + zc[j] + c;\r\n c = (xlo / base | 0) + (m / sqrtBase | 0) + yhi * xhi;\r\n zc[j--] = xlo % base;\r\n }\r\n\r\n zc[j] = c;\r\n }\r\n\r\n if (c) {\r\n ++e;\r\n } else {\r\n zc.splice(0, 1);\r\n }\r\n\r\n return normalise(y, zc, e);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber negated,\r\n * i.e. multiplied by -1.\r\n */\r\n P.negated = function () {\r\n var x = new BigNumber(this);\r\n x.s = -x.s || null;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * n + 0 = n\r\n * n + N = N\r\n * n + I = I\r\n * 0 + n = n\r\n * 0 + 0 = 0\r\n * 0 + N = N\r\n * 0 + I = I\r\n * N + n = N\r\n * N + 0 = N\r\n * N + N = N\r\n * N + I = N\r\n * I + n = I\r\n * I + 0 = I\r\n * I + N = N\r\n * I + I = I\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber plus the value of\r\n * BigNumber(y, b).\r\n */\r\n P.plus = function (y, b) {\r\n var t,\r\n x = this,\r\n a = x.s;\r\n\r\n y = new BigNumber(y, b);\r\n b = y.s;\r\n\r\n // Either NaN?\r\n if (!a || !b) return new BigNumber(NaN);\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.minus(y);\r\n }\r\n\r\n var xe = x.e / LOG_BASE,\r\n ye = y.e / LOG_BASE,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n if (!xe || !ye) {\r\n\r\n // Return ±Infinity if either ±Infinity.\r\n if (!xc || !yc) return new BigNumber(a / 0);\r\n\r\n // Either zero?\r\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n if (!xc[0] || !yc[0]) return yc[0] ? y : new BigNumber(xc[0] ? x : a * 0);\r\n }\r\n\r\n xe = bitFloor(xe);\r\n ye = bitFloor(ye);\r\n xc = xc.slice();\r\n\r\n // Prepend zeros to equalise exponents. Faster to use reverse then do unshifts.\r\n if (a = xe - ye) {\r\n if (a > 0) {\r\n ye = xe;\r\n t = yc;\r\n } else {\r\n a = -a;\r\n t = xc;\r\n }\r\n\r\n t.reverse();\r\n for (; a--; t.push(0));\r\n t.reverse();\r\n }\r\n\r\n a = xc.length;\r\n b = yc.length;\r\n\r\n // Point xc to the longer array, and b to the shorter length.\r\n if (a - b < 0) {\r\n t = yc;\r\n yc = xc;\r\n xc = t;\r\n b = a;\r\n }\r\n\r\n // Only start adding at yc.length - 1 as the further digits of xc can be ignored.\r\n for (a = 0; b;) {\r\n a = (xc[--b] = xc[b] + yc[b] + a) / BASE | 0;\r\n xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE;\r\n }\r\n\r\n if (a) {\r\n xc = [a].concat(xc);\r\n ++ye;\r\n }\r\n\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n // ye = MAX_EXP + 1 possible\r\n return normalise(y, xc, ye);\r\n };\r\n\r\n\r\n /*\r\n * If sd is undefined or null or true or false, return the number of significant digits of\r\n * the value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n * If sd is true include integer-part trailing zeros in the count.\r\n *\r\n * Otherwise, if sd is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of sd significant digits using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * sd {number|boolean} number: significant digits: integer, 1 to MAX inclusive.\r\n * boolean: whether to count integer-part trailing zeros: true or false.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\r\n P.precision = P.sd = function (sd, rm) {\r\n var c, n, v,\r\n x = this;\r\n\r\n if (sd != null && sd !== !!sd) {\r\n intCheck(sd, 1, MAX);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n return round(new BigNumber(x), sd, rm);\r\n }\r\n\r\n if (!(c = x.c)) return null;\r\n v = c.length - 1;\r\n n = v * LOG_BASE + 1;\r\n\r\n if (v = c[v]) {\r\n\r\n // Subtract the number of trailing zeros of the last element.\r\n for (; v % 10 == 0; v /= 10, n--);\r\n\r\n // Add the number of digits of the first element.\r\n for (v = c[0]; v >= 10; v /= 10, n++);\r\n }\r\n\r\n if (sd && x.e + 1 > n) n = x.e + 1;\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber shifted by k places\r\n * (powers of 10). Shift to the right if n > 0, and to the left if n < 0.\r\n *\r\n * k {number} Integer, -MAX_SAFE_INTEGER to MAX_SAFE_INTEGER inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {k}'\r\n */\r\n P.shiftedBy = function (k) {\r\n intCheck(k, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER);\r\n return this.times('1e' + k);\r\n };\r\n\r\n\r\n /*\r\n * sqrt(-n) = N\r\n * sqrt(N) = N\r\n * sqrt(-I) = N\r\n * sqrt(I) = I\r\n * sqrt(0) = 0\r\n * sqrt(-0) = -0\r\n *\r\n * Return a new BigNumber whose value is the square root of the value of this BigNumber,\r\n * rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\r\n P.squareRoot = P.sqrt = function () {\r\n var m, n, r, rep, t,\r\n x = this,\r\n c = x.c,\r\n s = x.s,\r\n e = x.e,\r\n dp = DECIMAL_PLACES + 4,\r\n half = new BigNumber('0.5');\r\n\r\n // Negative/NaN/Infinity/zero?\r\n if (s !== 1 || !c || !c[0]) {\r\n return new BigNumber(!s || s < 0 && (!c || c[0]) ? NaN : c ? x : 1 / 0);\r\n }\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+valueOf(x));\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = coeffToString(c);\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(+n);\r\n e = bitFloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new BigNumber(n);\r\n } else {\r\n r = new BigNumber(s + '');\r\n }\r\n\r\n // Check for zero.\r\n // r could be zero if MIN_EXP is changed after the this value was created.\r\n // This would cause a division by zero (x/t) and hence Infinity below, which would cause\r\n // coeffToString to throw.\r\n if (r.c[0]) {\r\n e = r.e;\r\n s = e + dp;\r\n if (s < 3) s = 0;\r\n\r\n // Newton-Raphson iteration.\r\n for (; ;) {\r\n t = r;\r\n r = half.times(t.plus(div(x, t, dp, 1)));\r\n\r\n if (coeffToString(t.c).slice(0, s) === (n = coeffToString(r.c)).slice(0, s)) {\r\n\r\n // The exponent of r may here be one less than the final result exponent,\r\n // e.g 0.0009999 (e-4) --> 0.001 (e-3), so adjust s so the rounding digits\r\n // are indexed correctly.\r\n if (r.e < e) --s;\r\n n = n.slice(s - 3, s + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits\r\n // are 9999 or 4999 (i.e. approaching a rounding boundary) continue the\r\n // iteration.\r\n if (n == '9999' || !rep && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the\r\n // exact result as the nines may infinitely repeat.\r\n if (!rep) {\r\n round(t, t.e + DECIMAL_PLACES + 2, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n }\r\n\r\n dp += 4;\r\n s += 4;\r\n rep = 1;\r\n } else {\r\n\r\n // If rounding digits are null, 0{0,4} or 50{0,3}, check for exact\r\n // result. If not, then there are further digits and m will be truthy.\r\n if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\r\n\r\n // Truncate to the first rounding digit.\r\n round(r, r.e + DECIMAL_PLACES + 2, 1);\r\n m = !r.times(r).eq(x);\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in exponential notation and\r\n * rounded using ROUNDING_MODE to dp fixed decimal places.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.toExponential = function (dp, rm) {\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n dp++;\r\n }\r\n return format(this, dp, rm, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounding\r\n * to dp fixed decimal places using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * Note: as with JavaScript's number type, (-0).toFixed(0) is '0',\r\n * but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.toFixed = function (dp, rm) {\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n dp = dp + this.e + 1;\r\n }\r\n return format(this, dp, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounded\r\n * using rm or ROUNDING_MODE to dp decimal places, and formatted according to the properties\r\n * of the format or FORMAT object (see BigNumber.set).\r\n *\r\n * The formatting object may contain some or all of the properties shown below.\r\n *\r\n * FORMAT = {\r\n * prefix: '',\r\n * groupSize: 3,\r\n * secondaryGroupSize: 0,\r\n * groupSeparator: ',',\r\n * decimalSeparator: '.',\r\n * fractionGroupSize: 0,\r\n * fractionGroupSeparator: '\\xA0', // non-breaking space\r\n * suffix: ''\r\n * };\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n * [format] {object} Formatting options. See FORMAT pbject above.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n * '[BigNumber Error] Argument not an object: {format}'\r\n */\r\n P.toFormat = function (dp, rm, format) {\r\n var str,\r\n x = this;\r\n\r\n if (format == null) {\r\n if (dp != null && rm && typeof rm == 'object') {\r\n format = rm;\r\n rm = null;\r\n } else if (dp && typeof dp == 'object') {\r\n format = dp;\r\n dp = rm = null;\r\n } else {\r\n format = FORMAT;\r\n }\r\n } else if (typeof format != 'object') {\r\n throw Error\r\n (bignumberError + 'Argument not an object: ' + format);\r\n }\r\n\r\n str = x.toFixed(dp, rm);\r\n\r\n if (x.c) {\r\n var i,\r\n arr = str.split('.'),\r\n g1 = +format.groupSize,\r\n g2 = +format.secondaryGroupSize,\r\n groupSeparator = format.groupSeparator || '',\r\n intPart = arr[0],\r\n fractionPart = arr[1],\r\n isNeg = x.s < 0,\r\n intDigits = isNeg ? intPart.slice(1) : intPart,\r\n len = intDigits.length;\r\n\r\n if (g2) {\r\n i = g1;\r\n g1 = g2;\r\n g2 = i;\r\n len -= i;\r\n }\r\n\r\n if (g1 > 0 && len > 0) {\r\n i = len % g1 || g1;\r\n intPart = intDigits.substr(0, i);\r\n for (; i < len; i += g1) intPart += groupSeparator + intDigits.substr(i, g1);\r\n if (g2 > 0) intPart += groupSeparator + intDigits.slice(i);\r\n if (isNeg) intPart = '-' + intPart;\r\n }\r\n\r\n str = fractionPart\r\n ? intPart + (format.decimalSeparator || '') + ((g2 = +format.fractionGroupSize)\r\n ? fractionPart.replace(new RegExp('\\\\d{' + g2 + '}\\\\B', 'g'),\r\n '$&' + (format.fractionGroupSeparator || ''))\r\n : fractionPart)\r\n : intPart;\r\n }\r\n\r\n return (format.prefix || '') + str + (format.suffix || '');\r\n };\r\n\r\n\r\n /*\r\n * Return an array of two BigNumbers representing the value of this BigNumber as a simple\r\n * fraction with an integer numerator and an integer denominator.\r\n * The denominator will be a positive non-zero value less than or equal to the specified\r\n * maximum denominator. If a maximum denominator is not specified, the denominator will be\r\n * the lowest value necessary to represent the number exactly.\r\n *\r\n * [md] {number|string|BigNumber} Integer >= 1, or Infinity. The maximum denominator.\r\n *\r\n * '[BigNumber Error] Argument {not an integer|out of range} : {md}'\r\n */\r\n P.toFraction = function (md) {\r\n var d, d0, d1, d2, e, exp, n, n0, n1, q, r, s,\r\n x = this,\r\n xc = x.c;\r\n\r\n if (md != null) {\r\n n = new BigNumber(md);\r\n\r\n // Throw if md is less than one or is not an integer, unless it is Infinity.\r\n if (!n.isInteger() && (n.c || n.s !== 1) || n.lt(ONE)) {\r\n throw Error\r\n (bignumberError + 'Argument ' +\r\n (n.isInteger() ? 'out of range: ' : 'not an integer: ') + valueOf(n));\r\n }\r\n }\r\n\r\n if (!xc) return new BigNumber(x);\r\n\r\n d = new BigNumber(ONE);\r\n n1 = d0 = new BigNumber(ONE);\r\n d1 = n0 = new BigNumber(ONE);\r\n s = coeffToString(xc);\r\n\r\n // Determine initial denominator.\r\n // d is a power of 10 and the minimum max denominator that specifies the value exactly.\r\n e = d.e = s.length - x.e - 1;\r\n d.c[0] = POWS_TEN[(exp = e % LOG_BASE) < 0 ? LOG_BASE + exp : exp];\r\n md = !md || n.comparedTo(d) > 0 ? (e > 0 ? d : n1) : n;\r\n\r\n exp = MAX_EXP;\r\n MAX_EXP = 1 / 0;\r\n n = new BigNumber(s);\r\n\r\n // n0 = d1 = 0\r\n n0.c[0] = 0;\r\n\r\n for (; ;) {\r\n q = div(n, d, 0, 1);\r\n d2 = d0.plus(q.times(d1));\r\n if (d2.comparedTo(md) == 1) break;\r\n d0 = d1;\r\n d1 = d2;\r\n n1 = n0.plus(q.times(d2 = n1));\r\n n0 = d2;\r\n d = n.minus(q.times(d2 = d));\r\n n = d2;\r\n }\r\n\r\n d2 = div(md.minus(d0), d1, 0, 1);\r\n n0 = n0.plus(d2.times(n1));\r\n d0 = d0.plus(d2.times(d1));\r\n n0.s = n1.s = x.s;\r\n e = e * 2;\r\n\r\n // Determine which fraction is closer to x, n0/d0 or n1/d1\r\n r = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo(\r\n div(n0, d0, e, ROUNDING_MODE).minus(x).abs()) < 1 ? [n1, d1] : [n0, d0];\r\n\r\n MAX_EXP = exp;\r\n\r\n return r;\r\n };\r\n\r\n\r\n /*\r\n * Return the value of this BigNumber converted to a number primitive.\r\n */\r\n P.toNumber = function () {\r\n return +valueOf(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber rounded to sd significant digits\r\n * using rounding mode rm or ROUNDING_MODE. If sd is less than the number of digits\r\n * necessary to represent the integer part of the value in fixed-point notation, then use\r\n * exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\r\n P.toPrecision = function (sd, rm) {\r\n if (sd != null) intCheck(sd, 1, MAX);\r\n return format(this, sd, rm, 2);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in base b, or base 10 if b is\r\n * omitted. If a base is specified, including base 10, round according to DECIMAL_PLACES and\r\n * ROUNDING_MODE. If a base is not specified, and this BigNumber has a positive exponent\r\n * that is equal to or greater than TO_EXP_POS, or a negative exponent equal to or less than\r\n * TO_EXP_NEG, return exponential notation.\r\n *\r\n * [b] {number} Integer, 2 to ALPHABET.length inclusive.\r\n *\r\n * '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n */\r\n P.toString = function (b) {\r\n var str,\r\n n = this,\r\n s = n.s,\r\n e = n.e;\r\n\r\n // Infinity or NaN?\r\n if (e === null) {\r\n if (s) {\r\n str = 'Infinity';\r\n if (s < 0) str = '-' + str;\r\n } else {\r\n str = 'NaN';\r\n }\r\n } else {\r\n if (b == null) {\r\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n ? toExponential(coeffToString(n.c), e)\r\n : toFixedPoint(coeffToString(n.c), e, '0');\r\n } else if (b === 10 && alphabetHasNormalDecimalDigits) {\r\n n = round(new BigNumber(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE);\r\n str = toFixedPoint(coeffToString(n.c), n.e, '0');\r\n } else {\r\n intCheck(b, 2, ALPHABET.length, 'Base');\r\n str = convertBase(toFixedPoint(coeffToString(n.c), e, '0'), 10, b, s, true);\r\n }\r\n\r\n if (s < 0 && n.c[0]) str = '-' + str;\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return as toString, but do not accept a base argument, and include the minus sign for\r\n * negative zero.\r\n */\r\n P.valueOf = P.toJSON = function () {\r\n return valueOf(this);\r\n };\r\n\r\n\r\n P._isBigNumber = true;\r\n\r\n P[Symbol.toStringTag] = 'BigNumber';\r\n\r\n // Node.js v10.12.0+\r\n P[Symbol.for('nodejs.util.inspect.custom')] = P.valueOf;\r\n\r\n if (configObject != null) BigNumber.set(configObject);\r\n\r\n return BigNumber;\r\n}\r\n\r\n\r\n// PRIVATE HELPER FUNCTIONS\r\n\r\n// These functions don't need access to variables,\r\n// e.g. DECIMAL_PLACES, in the scope of the `clone` function above.\r\n\r\n\r\nfunction bitFloor(n) {\r\n var i = n | 0;\r\n return n > 0 || n === i ? i : i - 1;\r\n}\r\n\r\n\r\n// Return a coefficient array as a string of base 10 digits.\r\nfunction coeffToString(a) {\r\n var s, z,\r\n i = 1,\r\n j = a.length,\r\n r = a[0] + '';\r\n\r\n for (; i < j;) {\r\n s = a[i++] + '';\r\n z = LOG_BASE - s.length;\r\n for (; z--; s = '0' + s);\r\n r += s;\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (j = r.length; r.charCodeAt(--j) === 48;);\r\n\r\n return r.slice(0, j + 1 || 1);\r\n}\r\n\r\n\r\n// Compare the value of BigNumbers x and y.\r\nfunction compare(x, y) {\r\n var a, b,\r\n xc = x.c,\r\n yc = y.c,\r\n i = x.s,\r\n j = y.s,\r\n k = x.e,\r\n l = y.e;\r\n\r\n // Either NaN?\r\n if (!i || !j) return null;\r\n\r\n a = xc && !xc[0];\r\n b = yc && !yc[0];\r\n\r\n // Either zero?\r\n if (a || b) return a ? b ? 0 : -j : i;\r\n\r\n // Signs differ?\r\n if (i != j) return i;\r\n\r\n a = i < 0;\r\n b = k == l;\r\n\r\n // Either Infinity?\r\n if (!xc || !yc) return b ? 0 : !xc ^ a ? 1 : -1;\r\n\r\n // Compare exponents.\r\n if (!b) return k > l ^ a ? 1 : -1;\r\n\r\n j = (k = xc.length) < (l = yc.length) ? k : l;\r\n\r\n // Compare digit by digit.\r\n for (i = 0; i < j; i++) if (xc[i] != yc[i]) return xc[i] > yc[i] ^ a ? 1 : -1;\r\n\r\n // Compare lengths.\r\n return k == l ? 0 : k > l ^ a ? 1 : -1;\r\n}\r\n\r\n\r\n/*\r\n * Check that n is a primitive number, an integer, and in range, otherwise throw.\r\n */\r\nfunction intCheck(n, min, max, name) {\r\n if (n < min || n > max || n !== mathfloor(n)) {\r\n throw Error\r\n (bignumberError + (name || 'Argument') + (typeof n == 'number'\r\n ? n < min || n > max ? ' out of range: ' : ' not an integer: '\r\n : ' not a primitive number: ') + String(n));\r\n }\r\n}\r\n\r\n\r\n// Assumes finite n.\r\nfunction isOdd(n) {\r\n var k = n.c.length - 1;\r\n return bitFloor(n.e / LOG_BASE) == k && n.c[k] % 2 != 0;\r\n}\r\n\r\n\r\nfunction toExponential(str, e) {\r\n return (str.length > 1 ? str.charAt(0) + '.' + str.slice(1) : str) +\r\n (e < 0 ? 'e' : 'e+') + e;\r\n}\r\n\r\n\r\nfunction toFixedPoint(str, e, z) {\r\n var len, zs;\r\n\r\n // Negative exponent?\r\n if (e < 0) {\r\n\r\n // Prepend zeros.\r\n for (zs = z + '.'; ++e; zs += z);\r\n str = zs + str;\r\n\r\n // Positive exponent\r\n } else {\r\n len = str.length;\r\n\r\n // Append zeros.\r\n if (++e > len) {\r\n for (zs = z, e -= len; --e; zs += z);\r\n str += zs;\r\n } else if (e < len) {\r\n str = str.slice(0, e) + '.' + str.slice(e);\r\n }\r\n }\r\n\r\n return str;\r\n}\r\n\r\n\r\n// EXPORT\r\n\r\n\r\nexport var BigNumber = clone();\r\n\r\nexport default BigNumber;\r\n","import BigNumber from 'bignumber.js';\nexport const NumberUtil = {\n bigNumber(value) {\n return new BigNumber(value);\n },\n multiply(a, b) {\n if (a === undefined || b === undefined) {\n return BigNumber(0);\n }\n const aBigNumber = new BigNumber(a);\n const bBigNumber = new BigNumber(b);\n return aBigNumber.multipliedBy(bBigNumber);\n },\n formatNumberToLocalString(value, decimals = 2) {\n if (value === undefined) {\n return '0.00';\n }\n if (typeof value === 'number') {\n return value.toLocaleString('en-US', {\n maximumFractionDigits: decimals,\n minimumFractionDigits: decimals\n });\n }\n return parseFloat(value).toLocaleString('en-US', {\n maximumFractionDigits: decimals,\n minimumFractionDigits: decimals\n });\n }\n};\n//# sourceMappingURL=NumberUtil.js.map","export const InputUtil = {\n numericInputKeyDown(event, currentValue, onChange) {\n const allowedKeys = [\n 'Backspace',\n 'Meta',\n 'Ctrl',\n 'a',\n 'A',\n 'c',\n 'C',\n 'x',\n 'X',\n 'v',\n 'V',\n 'ArrowLeft',\n 'ArrowRight',\n 'Tab'\n ];\n const controlPressed = event.metaKey || event.ctrlKey;\n const selectAll = event.key === 'a' || event.key === 'A';\n const copyKey = event.key === 'c' || event.key === 'C';\n const pasteKey = event.key === 'v' || event.key === 'V';\n const cutKey = event.key === 'x' || event.key === 'X';\n const isComma = event.key === ',';\n const isDot = event.key === '.';\n const isNumericKey = event.key >= '0' && event.key <= '9';\n if (!controlPressed && (selectAll || copyKey || pasteKey || cutKey)) {\n event.preventDefault();\n }\n if (currentValue === '0' && !isComma && !isDot && event.key === '0') {\n event.preventDefault();\n }\n if (currentValue === '0' && isNumericKey) {\n onChange(event.key);\n event.preventDefault();\n }\n if (isComma || isDot) {\n if (!currentValue) {\n onChange('0.');\n event.preventDefault();\n }\n if (currentValue?.includes('.') || currentValue?.includes(',')) {\n event.preventDefault();\n }\n }\n if (!isNumericKey && !allowedKeys.includes(event.key) && !isDot && !isComma) {\n event.preventDefault();\n }\n }\n};\n//# sourceMappingURL=InputUtil.js.map","export const erc20ABI = [\n {\n constant: true,\n inputs: [],\n name: 'name',\n outputs: [\n {\n name: '',\n type: 'string'\n }\n ],\n payable: false,\n stateMutability: 'view',\n type: 'function'\n },\n {\n constant: false,\n inputs: [\n {\n name: '_spender',\n type: 'address'\n },\n {\n name: '_value',\n type: 'uint256'\n }\n ],\n name: 'approve',\n outputs: [\n {\n name: '',\n type: 'bool'\n }\n ],\n payable: false,\n stateMutability: 'nonpayable',\n type: 'function'\n },\n {\n constant: true,\n inputs: [],\n name: 'totalSupply',\n outputs: [\n {\n name: '',\n type: 'uint256'\n }\n ],\n payable: false,\n stateMutability: 'view',\n type: 'function'\n },\n {\n constant: false,\n inputs: [\n {\n name: '_from',\n type: 'address'\n },\n {\n name: '_to',\n type: 'address'\n },\n {\n name: '_value',\n type: 'uint256'\n }\n ],\n name: 'transferFrom',\n outputs: [\n {\n name: '',\n type: 'bool'\n }\n ],\n payable: false,\n stateMutability: 'nonpayable',\n type: 'function'\n },\n {\n constant: true,\n inputs: [],\n name: 'decimals',\n outputs: [\n {\n name: '',\n type: 'uint8'\n }\n ],\n payable: false,\n stateMutability: 'view',\n type: 'function'\n },\n {\n constant: true,\n inputs: [\n {\n name: '_owner',\n type: 'address'\n }\n ],\n name: 'balanceOf',\n outputs: [\n {\n name: 'balance',\n type: 'uint256'\n }\n ],\n payable: false,\n stateMutability: 'view',\n type: 'function'\n },\n {\n constant: true,\n inputs: [],\n name: 'symbol',\n outputs: [\n {\n name: '',\n type: 'string'\n }\n ],\n payable: false,\n stateMutability: 'view',\n type: 'function'\n },\n {\n constant: false,\n inputs: [\n {\n name: '_to',\n type: 'address'\n },\n {\n name: '_value',\n type: 'uint256'\n }\n ],\n name: 'transfer',\n outputs: [\n {\n name: '',\n type: 'bool'\n }\n ],\n payable: false,\n stateMutability: 'nonpayable',\n type: 'function'\n },\n {\n constant: true,\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 payable: false,\n stateMutability: 'view',\n type: 'function'\n },\n {\n payable: true,\n stateMutability: 'payable',\n type: 'fallback'\n },\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: '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//# sourceMappingURL=erc20.js.map","export const NavigationUtil = {\n URLS: {\n FAQ: 'https://walletconnect.com/faq'\n }\n};\n//# sourceMappingURL=NavigationUtil.js.map","export const ConstantsUtil = {\n WC_NAME_SUFFIX: '.wcn.id',\n WC_NAMES_ALLOWED_DOMAINS: ['walletconnect.com']\n};\n//# sourceMappingURL=ConstantsUtil.js.map","export function getW3mThemeVariables(themeVariables, themeType) {\n if (themeType === 'light') {\n return {\n '--w3m-accent': themeVariables?.['--w3m-accent'] || 'hsla(231, 100%, 70%, 1)',\n '--w3m-background': '#fff'\n };\n }\n return {\n '--w3m-accent': themeVariables?.['--w3m-accent'] || 'hsla(230, 100%, 67%, 1)',\n '--w3m-background': '#121313'\n };\n}\n//# sourceMappingURL=ThemeUtil.js.map","import { subscribeKey as subKey } from 'valtio/vanilla/utils';\nimport { proxy, snapshot } from 'valtio/vanilla';\nconst state = proxy({\n projectId: '',\n sdkType: 'w3m',\n sdkVersion: 'html-wagmi-undefined'\n});\nexport const OptionsController = {\n state,\n subscribeKey(key, callback) {\n return subKey(state, key, callback);\n },\n setProjectId(projectId) {\n state.projectId = projectId;\n },\n setAllWallets(allWallets) {\n state.allWallets = allWallets;\n },\n setIncludeWalletIds(includeWalletIds) {\n state.includeWalletIds = includeWalletIds;\n },\n setExcludeWalletIds(excludeWalletIds) {\n state.excludeWalletIds = excludeWalletIds;\n },\n setFeaturedWalletIds(featuredWalletIds) {\n state.featuredWalletIds = featuredWalletIds;\n },\n setTokens(tokens) {\n state.tokens = tokens;\n },\n setTermsConditionsUrl(termsConditionsUrl) {\n state.termsConditionsUrl = termsConditionsUrl;\n },\n setPrivacyPolicyUrl(privacyPolicyUrl) {\n state.privacyPolicyUrl = privacyPolicyUrl;\n },\n setCustomWallets(customWallets) {\n state.customWallets = customWallets;\n },\n setIsSiweEnabled(isSiweEnabled) {\n state.isSiweEnabled = isSiweEnabled;\n },\n setEnableAnalytics(enableAnalytics) {\n state.enableAnalytics = enableAnalytics;\n },\n setSdkVersion(sdkVersion) {\n state.sdkVersion = sdkVersion;\n },\n setMetadata(metadata) {\n state.metadata = metadata;\n },\n setOnrampEnabled(enableOnramp) {\n state.enableOnramp = enableOnramp;\n },\n setWalletFeaturesEnabled(enableWalletFeatures) {\n state.enableWalletFeatures = enableWalletFeatures;\n },\n getSnapshot() {\n return snapshot(state);\n }\n};\n//# sourceMappingURL=OptionsController.js.map","import { ConstantsUtil } from '../utils/ConstantsUtil.js';\nimport { CoreHelperUtil } from '../utils/CoreHelperUtil.js';\nimport { FetchUtil } from '../utils/FetchUtil.js';\nimport { ConstantsUtil as CommonConstantsUtil } from '@web3modal/common';\nimport { OptionsController } from './OptionsController.js';\nconst DEFAULT_OPTIONS = {\n purchaseCurrencies: [\n {\n id: '2b92315d-eab7-5bef-84fa-089a131333f5',\n name: 'USD Coin',\n symbol: 'USDC',\n networks: [\n {\n name: 'ethereum-mainnet',\n display_name: 'Ethereum',\n chain_id: '1',\n contract_address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'\n },\n {\n name: 'polygon-mainnet',\n display_name: 'Polygon',\n chain_id: '137',\n contract_address: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174'\n }\n ]\n },\n {\n id: '2b92315d-eab7-5bef-84fa-089a131333f5',\n name: 'Ether',\n symbol: 'ETH',\n networks: [\n {\n name: 'ethereum-mainnet',\n display_name: 'Ethereum',\n chain_id: '1',\n contract_address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'\n },\n {\n name: 'polygon-mainnet',\n display_name: 'Polygon',\n chain_id: '137',\n contract_address: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174'\n }\n ]\n }\n ],\n paymentCurrencies: [\n {\n id: 'USD',\n payment_method_limits: [\n {\n id: 'card',\n min: '10.00',\n max: '7500.00'\n },\n {\n id: 'ach_bank_account',\n min: '10.00',\n max: '25000.00'\n }\n ]\n },\n {\n id: 'EUR',\n payment_method_limits: [\n {\n id: 'card',\n min: '10.00',\n max: '7500.00'\n },\n {\n id: 'ach_bank_account',\n min: '10.00',\n max: '25000.00'\n }\n ]\n }\n ]\n};\nconst baseUrl = CoreHelperUtil.getBlockchainApiUrl();\nconst api = new FetchUtil({ baseUrl });\nexport const BlockchainApiController = {\n fetchIdentity({ address }) {\n return api.get({\n path: `/v1/identity/${address}`,\n params: {\n projectId: OptionsController.state.projectId\n }\n });\n },\n fetchTransactions({ account, projectId, cursor, onramp, signal }) {\n const queryParams = cursor ? { cursor } : {};\n return api.get({\n path: `/v1/account/${account}/history?projectId=${projectId}${onramp ? `&onramp=${onramp}` : ''}`,\n params: queryParams,\n signal\n });\n },\n fetchSwapQuote({ projectId, amount, userAddress, from, to, gasPrice }) {\n return api.get({\n path: `/v1/convert/quotes`,\n headers: {\n 'Content-Type': 'application/json'\n },\n params: {\n projectId,\n amount,\n userAddress,\n from,\n to,\n gasPrice\n }\n });\n },\n fetchSwapTokens({ projectId, chainId }) {\n return api.get({\n path: `/v1/convert/tokens?projectId=${projectId}&chainId=${chainId}`\n });\n },\n fetchTokenPrice({ projectId, addresses }) {\n return api.post({\n path: '/v1/fungible/price',\n body: {\n projectId,\n currency: 'usd',\n addresses\n },\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n },\n fetchSwapAllowance({ projectId, tokenAddress, userAddress }) {\n const { sdkType, sdkVersion } = OptionsController.state;\n return api.get({\n path: `/v1/convert/allowance?projectId=${projectId}&tokenAddress=${tokenAddress}&userAddress=${userAddress}`,\n headers: {\n 'Content-Type': 'application/json',\n 'x-sdk-type': sdkType,\n 'x-sdk-version': sdkVersion\n }\n });\n },\n fetchGasPrice({ projectId, chainId }) {\n const { sdkType, sdkVersion } = OptionsController.state;\n return api.get({\n path: `/v1/convert/gas-price`,\n headers: {\n 'Content-Type': 'application/json',\n 'x-sdk-type': sdkType,\n 'x-sdk-version': sdkVersion\n },\n params: {\n projectId,\n chainId\n }\n });\n },\n generateSwapCalldata({ amount, from, projectId, to, userAddress }) {\n return api.post({\n path: '/v1/convert/build-transaction',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: {\n amount,\n eip155: {\n slippage: ConstantsUtil.CONVERT_SLIPPAGE_TOLERANCE\n },\n from,\n projectId,\n to,\n userAddress\n }\n });\n },\n generateApproveCalldata({ from, projectId, to, userAddress }) {\n const { sdkType, sdkVersion } = OptionsController.state;\n return api.get({\n path: `/v1/convert/build-approve`,\n headers: {\n 'Content-Type': 'application/json',\n 'x-sdk-type': sdkType,\n 'x-sdk-version': sdkVersion\n },\n params: {\n projectId,\n userAddress,\n from,\n to\n }\n });\n },\n async getBalance(address, chainId, forceUpdate) {\n const { sdkType, sdkVersion } = OptionsController.state;\n return api.get({\n path: `/v1/account/${address}/balance`,\n headers: {\n 'x-sdk-type': sdkType,\n 'x-sdk-version': sdkVersion\n },\n params: {\n currency: 'usd',\n projectId: OptionsController.state.projectId,\n chainId,\n forceUpdate\n }\n });\n },\n async lookupEnsName(name) {\n return api.get({\n path: `/v1/profile/account/${name}${CommonConstantsUtil.WC_NAME_SUFFIX}?projectId=${OptionsController.state.projectId}`\n });\n },\n async reverseLookupEnsName({ address }) {\n return api.get({\n path: `/v1/profile/reverse/${address}?projectId=${OptionsController.state.projectId}`\n });\n },\n async getEnsNameSuggestions(name) {\n return api.get({\n path: `/v1/profile/suggestions/${name}?projectId=${OptionsController.state.projectId}`\n });\n },\n async registerEnsName({ coinType, address, message, signature }) {\n return api.post({\n path: `/v1/profile/account`,\n body: { coin_type: coinType, address, message, signature },\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n },\n async generateOnRampURL({ destinationWallets, partnerUserId, defaultNetwork, purchaseAmount, paymentAmount }) {\n const response = await api.post({\n path: `/v1/generators/onrampurl?projectId=${OptionsController.state.projectId}`,\n body: {\n destinationWallets,\n defaultNetwork,\n partnerUserId,\n defaultExperience: 'buy',\n presetCryptoAmount: purchaseAmount,\n presetFiatAmount: paymentAmount\n }\n });\n return response.url;\n },\n async getOnrampOptions() {\n try {\n const response = await api.get({\n path: `/v1/onramp/options?projectId=${OptionsController.state.projectId}`\n });\n return response;\n }\n catch (e) {\n return DEFAULT_OPTIONS;\n }\n },\n async getOnrampQuote({ purchaseCurrency, paymentCurrency, amount, network }) {\n try {\n const response = await api.post({\n path: `/v1/onramp/quote?projectId=${OptionsController.state.projectId}`,\n body: {\n purchaseCurrency,\n paymentCurrency,\n amount,\n network\n }\n });\n return response;\n }\n catch (e) {\n return {\n coinbaseFee: { amount, currency: paymentCurrency.id },\n networkFee: { amount, currency: paymentCurrency.id },\n paymentSubtotal: { amount, currency: paymentCurrency.id },\n paymentTotal: { amount, currency: paymentCurrency.id },\n purchaseAmount: { amount, currency: paymentCurrency.id },\n quoteId: 'mocked-quote-id'\n };\n }\n }\n};\n//# sourceMappingURL=BlockchainApiController.js.map","import { subscribeKey as subKey } from 'valtio/vanilla/utils';\nimport { proxy } from 'valtio/vanilla';\nimport { CoreHelperUtil } from '../utils/CoreHelperUtil.js';\nconst state = proxy({\n message: '',\n variant: 'success',\n open: false\n});\nexport const SnackController = {\n state,\n subscribeKey(key, callback) {\n return subKey(state, key, callback);\n },\n showSuccess(message) {\n state.message = message;\n state.variant = 'success';\n state.open = true;\n },\n showError(message) {\n const errorMessage = CoreHelperUtil.parseError(message);\n state.message = errorMessage;\n state.variant = 'error';\n state.open = true;\n },\n hide() {\n state.open = false;\n }\n};\n//# sourceMappingURL=SnackController.js.map","const WC_DEEPLINK = 'WALLETCONNECT_DEEPLINK_CHOICE';\nconst W3M_RECENT = '@w3m/recent';\nconst W3M_CONNECTED_WALLET_IMAGE_URL = '@w3m/connected_wallet_image_url';\nconst W3M_CONNECTED_CONNECTOR = '@w3m/connected_connector';\nconst W3M_CONNECTED_SOCIAL = '@w3m/connected_social';\nconst W3M_CONNECTED_SOCIAL_USERNAME = '@w3m-storage/SOCIAL_USERNAME';\nexport const StorageUtil = {\n setWalletConnectDeepLink({ href, name }) {\n try {\n localStorage.setItem(WC_DEEPLINK, JSON.stringify({ href, name }));\n }\n catch {\n console.info('Unable to set WalletConnect deep link');\n }\n },\n getWalletConnectDeepLink() {\n try {\n const deepLink = localStorage.getItem(WC_DEEPLINK);\n if (deepLink) {\n return JSON.parse(deepLink);\n }\n }\n catch {\n console.info('Unable to get WalletConnect deep link');\n }\n return undefined;\n },\n deleteWalletConnectDeepLink() {\n try {\n localStorage.removeItem(WC_DEEPLINK);\n }\n catch {\n console.info('Unable to delete WalletConnect deep link');\n }\n },\n setWeb3ModalRecent(wallet) {\n try {\n const recentWallets = StorageUtil.getRecentWallets();\n const exists = recentWallets.find(w => w.id === wallet.id);\n if (!exists) {\n recentWallets.unshift(wallet);\n if (recentWallets.length > 2) {\n recentWallets.pop();\n }\n localStorage.setItem(W3M_RECENT, JSON.stringify(recentWallets));\n }\n }\n catch {\n console.info('Unable to set Web3Modal recent');\n }\n },\n getRecentWallets() {\n try {\n const recent = localStorage.getItem(W3M_RECENT);\n return recent ? JSON.parse(recent) : [];\n }\n catch {\n console.info('Unable to get Web3Modal recent');\n }\n return [];\n },\n setConnectedWalletImageUrl(imageUrl) {\n try {\n localStorage.setItem(W3M_CONNECTED_WALLET_IMAGE_URL, imageUrl);\n }\n catch {\n console.info('Unable to set Connected Wallet Image Url');\n }\n },\n removeConnectedWalletImageUrl() {\n try {\n localStorage.removeItem(W3M_CONNECTED_WALLET_IMAGE_URL);\n }\n catch {\n console.info('Unable to remove Connected Wallet Image Url');\n }\n },\n getConnectedWalletImageUrl() {\n try {\n return localStorage.getItem(W3M_CONNECTED_WALLET_IMAGE_URL);\n }\n catch {\n console.info('Unable to set Connected Wallet Image Url');\n }\n return undefined;\n },\n setConnectedConnector(connectorType) {\n try {\n localStorage.setItem(W3M_CONNECTED_CONNECTOR, connectorType);\n }\n catch {\n console.info('Unable to set Connected Connector');\n }\n },\n getConnectedConnector() {\n try {\n return localStorage.getItem(W3M_CONNECTED_CONNECTOR);\n }\n catch {\n console.info('Unable to get Connected Connector');\n }\n return undefined;\n },\n setConnectedSocialProvider(socialProvider) {\n try {\n localStorage.setItem(W3M_CONNECTED_SOCIAL, socialProvider);\n }\n catch {\n console.info('Unable to set Connected Social Provider');\n }\n },\n getConnectedSocialProvider() {\n try {\n return localStorage.getItem(W3M_CONNECTED_SOCIAL);\n }\n catch {\n console.info('Unable to get Connected Social Provider');\n }\n return undefined;\n },\n getConnectedSocialUsername() {\n try {\n return localStorage.getItem(W3M_CONNECTED_SOCIAL_USERNAME);\n }\n catch {\n console.info('Unable to get Connected Social Username');\n }\n return undefined;\n }\n};\n//# sourceMappingURL=StorageUtil.js.map","import { proxy, subscribe as sub } from 'valtio/vanilla';\nimport { CoreHelperUtil } from '../utils/CoreHelperUtil.js';\nimport { FetchUtil } from '../utils/FetchUtil.js';\nimport { OptionsController } from './OptionsController.js';\nconst baseUrl = CoreHelperUtil.getAnalyticsUrl();\nconst api = new FetchUtil({ baseUrl });\nconst excluded = ['MODAL_CREATED'];\nconst state = proxy({\n timestamp: Date.now(),\n data: {\n type: 'track',\n event: 'MODAL_CREATED'\n }\n});\nexport const EventsController = {\n state,\n subscribe(callback) {\n return sub(state, () => callback(state));\n },\n _getApiHeaders() {\n const { projectId, sdkType, sdkVersion } = OptionsController.state;\n return {\n 'x-project-id': projectId,\n 'x-sdk-type': sdkType,\n 'x-sdk-version': sdkVersion\n };\n },\n async _sendAnalyticsEvent(payload) {\n try {\n if (excluded.includes(payload.data.event) || typeof window === 'undefined') {\n return;\n }\n await api.post({\n path: '/e',\n headers: EventsController._getApiHeaders(),\n body: {\n eventId: CoreHelperUtil.getUUID(),\n url: window.location.href,\n domain: window.location.hostname,\n timestamp: payload.timestamp,\n props: payload.data\n }\n });\n }\n catch {\n }\n },\n sendEvent(data) {\n state.timestamp = Date.now();\n state.data = data;\n if (OptionsController.state.enableAnalytics) {\n EventsController._sendAnalyticsEvent(state);\n }\n }\n};\n//# sourceMappingURL=EventsController.js.map","import { proxy, subscribe as sub } from 'valtio/vanilla';\nimport { OptionsController } from './OptionsController.js';\nimport { EventsController } from './EventsController.js';\nimport { SnackController } from './SnackController.js';\nimport { BlockchainApiController } from './BlockchainApiController.js';\nconst state = proxy({\n transactions: [],\n coinbaseTransactions: {},\n transactionsByYear: {},\n loading: false,\n empty: false,\n next: undefined\n});\nexport const TransactionsController = {\n state,\n subscribe(callback) {\n return sub(state, () => callback(state));\n },\n async fetchTransactions(accountAddress, onramp) {\n const { projectId } = OptionsController.state;\n if (!projectId || !accountAddress) {\n throw new Error(\"Transactions can't be fetched without a projectId and an accountAddress\");\n }\n state.loading = true;\n try {\n const response = await BlockchainApiController.fetchTransactions({\n account: accountAddress,\n projectId,\n cursor: state.next,\n onramp\n });\n const nonSpamTransactions = this.filterSpamTransactions(response.data);\n const filteredTransactions = [...state.transactions, ...nonSpamTransactions];\n state.loading = false;\n if (onramp === 'coinbase') {\n state.coinbaseTransactions = this.groupTransactionsByYearAndMonth(state.coinbaseTransactions, response.data);\n }\n else {\n state.transactions = filteredTransactions;\n state.transactionsByYear = this.groupTransactionsByYearAndMonth(state.transactionsByYear, nonSpamTransactions);\n }\n state.empty = filteredTransactions.length === 0;\n state.next = response.next ? response.next : undefined;\n }\n catch (error) {\n EventsController.sendEvent({\n type: 'track',\n event: 'ERROR_FETCH_TRANSACTIONS',\n properties: {\n address: accountAddress,\n projectId,\n cursor: state.next\n }\n });\n SnackController.showError('Failed to fetch transactions');\n state.loading = false;\n state.empty = true;\n state.next = undefined;\n }\n },\n groupTransactionsByYearAndMonth(transactionsMap = {}, transactions = []) {\n const grouped = transactionsMap;\n transactions.forEach(transaction => {\n const year = new Date(transaction.metadata.minedAt).getFullYear();\n const month = new Date(transaction.metadata.minedAt).getMonth();\n const yearTransactions = grouped[year] ?? {};\n const monthTransactions = yearTransactions[month] ?? [];\n const newMonthTransactions = monthTransactions.filter(tx => tx.id !== transaction.id);\n grouped[year] = {\n ...yearTransactions,\n [month]: [...newMonthTransactions, transaction].sort((a, b) => new Date(b.metadata.minedAt).getTime() - new Date(a.metadata.minedAt).getTime())\n };\n });\n return grouped;\n },\n filterSpamTransactions(transactions) {\n return transactions.filter(transaction => {\n const isAllSpam = transaction.transfers.every(transfer => transfer.nft_info?.flags.is_spam === true);\n return !isAllSpam;\n });\n },\n clearCursor() {\n state.next = undefined;\n },\n resetTransactions() {\n state.transactions = [];\n state.transactionsByYear = {};\n state.loading = false;\n state.empty = false;\n state.next = undefined;\n }\n};\n//# sourceMappingURL=TransactionsController.js.map","import { subscribeKey as subKey } from 'valtio/vanilla/utils';\nimport { proxy, ref } from 'valtio/vanilla';\nimport { CoreHelperUtil } from '../utils/CoreHelperUtil.js';\nimport { StorageUtil } from '../utils/StorageUtil.js';\nimport { TransactionsController } from './TransactionsController.js';\nconst state = proxy({\n wcError: false,\n buffering: false\n});\nexport const ConnectionController = {\n state,\n subscribeKey(key, callback) {\n return subKey(state, key, callback);\n },\n _getClient() {\n if (!state._client) {\n throw new Error('ConnectionController client not set');\n }\n return state._client;\n },\n setClient(client) {\n state._client = ref(client);\n },\n connectWalletConnect() {\n state.wcPromise = this._getClient().connectWalletConnect(uri => {\n state.wcUri = uri;\n state.wcPairingExpiry = CoreHelperUtil.getPairingExpiry();\n });\n StorageUtil.setConnectedConnector('WALLET_CONNECT');\n },\n async connectExternal(options) {\n await this._getClient().connectExternal?.(options);\n StorageUtil.setConnectedConnector(options.type);\n },\n async reconnectExternal(options) {\n await this._getClient().reconnectExternal?.(options);\n StorageUtil.setConnectedConnector(options.type);\n },\n async signMessage(message) {\n return this._getClient().signMessage(message);\n },\n parseUnits(value, decimals) {\n return this._getClient().parseUnits(value, decimals);\n },\n formatUnits(value, decimals) {\n return this._getClient().formatUnits(value, decimals);\n },\n async sendTransaction(args) {\n return this._getClient().sendTransaction(args);\n },\n async estimateGas(args) {\n return this._getClient().estimateGas(args);\n },\n async writeContract(args) {\n return this._getClient().writeContract(args);\n },\n async getEnsAddress(value) {\n return this._getClient().getEnsAddress(value);\n },\n async getEnsAvatar(value) {\n return this._getClient().getEnsAvatar(value);\n },\n checkInstalled(ids) {\n return this._getClient().checkInstalled?.(ids);\n },\n resetWcConnection() {\n state.wcUri = undefined;\n state.wcPairingExpiry = undefined;\n state.wcPromise = undefined;\n state.wcLinking = undefined;\n state.recentWallet = undefined;\n TransactionsController.resetTransactions();\n StorageUtil.deleteWalletConnectDeepLink();\n },\n setWcLinking(wcLinking) {\n state.wcLinking = wcLinking;\n },\n setWcError(wcError) {\n state.wcError = wcError;\n state.buffering = false;\n },\n setRecentWallet(wallet) {\n state.recentWallet = wallet;\n },\n setBuffering(buffering) {\n state.buffering = buffering;\n },\n async disconnect() {\n await this._getClient().disconnect();\n StorageUtil.removeConnectedWalletImageUrl();\n this.resetWcConnection();\n }\n};\n//# sourceMappingURL=ConnectionController.js.map","import { proxy, subscribe as sub } from 'valtio/vanilla';\nconst state = proxy({\n loading: false,\n open: false,\n selectedNetworkId: undefined\n});\nexport const PublicStateController = {\n state,\n subscribe(callback) {\n return sub(state, () => callback(state));\n },\n set(newState) {\n Object.assign(state, { ...state, ...newState });\n }\n};\n//# sourceMappingURL=PublicStateController.js.map","import { subscribeKey as subKey } from 'valtio/utils';\nimport { proxy, ref, subscribe as sub } from 'valtio/vanilla';\nimport { PublicStateController } from './PublicStateController.js';\nimport { EventsController } from './EventsController.js';\nimport { ModalController } from './ModalController.js';\nimport { CoreHelperUtil } from '../utils/CoreHelperUtil.js';\nimport { NetworkUtil } from '@web3modal/common';\nconst state = proxy({\n supportsAllNetworks: true,\n isDefaultCaipNetwork: false,\n smartAccountEnabledNetworks: []\n});\nexport const NetworkController = {\n state,\n subscribe(callback) {\n return sub(state, () => callback(state));\n },\n subscribeKey(key, callback) {\n return subKey(state, key, callback);\n },\n _getClient() {\n if (!state._client) {\n throw new Error('NetworkController client not set');\n }\n return state._client;\n },\n setClient(client) {\n state._client = ref(client);\n },\n setCaipNetwork(caipNetwork) {\n state.caipNetwork = caipNetwork;\n PublicStateController.set({ selectedNetworkId: caipNetwork?.id });\n if (!this.state.allowUnsupportedChain) {\n this.checkIfSupportedNetwork();\n }\n },\n setDefaultCaipNetwork(caipNetwork) {\n state.caipNetwork = caipNetwork;\n PublicStateController.set({ selectedNetworkId: caipNetwork?.id });\n state.isDefaultCaipNetwork = true;\n },\n setRequestedCaipNetworks(requestedNetworks) {\n state.requestedCaipNetworks = requestedNetworks;\n },\n setAllowUnsupportedChain(allowUnsupportedChain) {\n state.allowUnsupportedChain = allowUnsupportedChain;\n },\n setSmartAccountEnabledNetworks(smartAccountEnabledNetworks) {\n state.smartAccountEnabledNetworks = smartAccountEnabledNetworks;\n },\n getRequestedCaipNetworks() {\n const { approvedCaipNetworkIds, requestedCaipNetworks } = state;\n const approvedIds = approvedCaipNetworkIds;\n const requestedNetworks = requestedCaipNetworks;\n return CoreHelperUtil.sortRequestedNetworks(approvedIds, requestedNetworks);\n },\n async getApprovedCaipNetworksData() {\n const data = await this._getClient().getApprovedCaipNetworksData();\n state.supportsAllNetworks = data.supportsAllNetworks;\n state.approvedCaipNetworkIds = data.approvedCaipNetworkIds;\n },\n async switchActiveNetwork(network) {\n await this._getClient().switchCaipNetwork(network);\n state.caipNetwork = network;\n if (network) {\n EventsController.sendEvent({\n type: 'track',\n event: 'SWITCH_NETWORK',\n properties: { network: network.id }\n });\n }\n },\n checkIfSupportedNetwork() {\n state.isUnsupportedChain = !state.requestedCaipNetworks?.some(network => network.id === state.caipNetwork?.id);\n if (state.isUnsupportedChain) {\n this.showUnsupportedChainUI();\n }\n },\n checkIfSmartAccountEnabled() {\n const networkId = NetworkUtil.caipNetworkIdToNumber(state.caipNetwork?.id);\n if (!networkId) {\n return false;\n }\n return Boolean(state.smartAccountEnabledNetworks?.includes(networkId));\n },\n resetNetwork() {\n if (!state.isDefaultCaipNetwork) {\n state.caipNetwork = undefined;\n }\n state.approvedCaipNetworkIds = undefined;\n state.supportsAllNetworks = true;\n state.smartAccountEnabledNetworks = [];\n },\n showUnsupportedChainUI() {\n setTimeout(() => {\n ModalController.open({ view: 'UnsupportedChain' });\n }, 300);\n }\n};\n//# sourceMappingURL=NetworkController.js.map","import { NetworkController } from '../controllers/NetworkController.js';\nimport { AccountController } from '../controllers/AccountController.js';\nimport { ConnectionController } from '../controllers/ConnectionController.js';\nimport { ConstantsUtil } from './ConstantsUtil.js';\nimport { BlockchainApiController } from '../controllers/BlockchainApiController.js';\nimport { OptionsController } from '../controllers/OptionsController.js';\nexport const SwapApiUtil = {\n async getTokenList() {\n const response = await BlockchainApiController.fetchSwapTokens({\n chainId: NetworkController.state.caipNetwork?.id,\n projectId: OptionsController.state.projectId\n });\n const tokens = response?.tokens?.map(token => ({\n ...token,\n eip2612: false,\n quantity: {\n decimals: '0',\n numeric: '0'\n },\n price: 0,\n value: 0\n })) || [];\n return tokens;\n },\n async fetchGasPrice() {\n const projectId = OptionsController.state.projectId;\n const caipNetwork = NetworkController.state.caipNetwork;\n if (!caipNetwork) {\n return null;\n }\n return await BlockchainApiController.fetchGasPrice({\n projectId,\n chainId: caipNetwork.id\n });\n },\n async fetchSwapAllowance({ tokenAddress, userAddress, sourceTokenAmount, sourceTokenDecimals }) {\n const projectId = OptionsController.state.projectId;\n const response = await BlockchainApiController.fetchSwapAllowance({\n projectId,\n tokenAddress,\n userAddress\n });\n if (response?.allowance && sourceTokenAmount && sourceTokenDecimals) {\n const parsedValue = ConnectionController.parseUnits(sourceTokenAmount, sourceTokenDecimals);\n const hasAllowance = BigInt(response.allowance) >= parsedValue;\n return hasAllowance;\n }\n return false;\n },\n async getMyTokensWithBalance(forceUpdate) {\n const address = AccountController.state.address;\n const caipNetwork = NetworkController.state.caipNetwork;\n if (!address || !caipNetwork) {\n return [];\n }\n const response = await BlockchainApiController.getBalance(address, caipNetwork.id, forceUpdate);\n const balances = response.balances.filter(balance => balance.quantity.decimals !== '0');\n AccountController.setTokenBalance(balances);\n return this.mapBalancesToSwapTokens(balances);\n },\n mapBalancesToSwapTokens(balances) {\n return (balances?.map(token => ({\n ...token,\n address: token?.address\n ? token.address\n : `${token.chainId}:${ConstantsUtil.NATIVE_TOKEN_ADDRESS}`,\n decimals: parseInt(token.quantity.decimals, 10),\n logoUri: token.iconUrl,\n eip2612: false\n })) || []);\n }\n};\n//# sourceMappingURL=SwapApiUtil.js.map","import { subscribeKey as subKey } from 'valtio/vanilla/utils';\nimport { proxy } from 'valtio/vanilla';\nconst state = proxy({\n view: 'Connect',\n history: ['Connect'],\n transactionStack: []\n});\nexport const RouterController = {\n state,\n subscribeKey(key, callback) {\n return subKey(state, key, callback);\n },\n pushTransactionStack(action) {\n state.transactionStack.push(action);\n },\n popTransactionStack(cancel) {\n const action = state.transactionStack.pop();\n if (!action) {\n return;\n }\n if (cancel) {\n this.goBack();\n action?.onCancel?.();\n }\n else {\n if (action.goBack) {\n this.goBack();\n }\n else if (action.view) {\n this.reset(action.view);\n }\n action?.onSuccess?.();\n }\n },\n push(view, data) {\n if (view !== state.view) {\n state.view = view;\n state.history.push(view);\n state.data = data;\n }\n },\n reset(view) {\n state.view = view;\n state.history = [view];\n },\n replace(view, data) {\n if (state.history.length >= 1 && state.history.at(-1) !== view) {\n state.view = view;\n state.history[state.history.length - 1] = view;\n state.data = data;\n }\n },\n goBack() {\n if (state.history.length > 1) {\n state.history.pop();\n const [last] = state.history.slice(-1);\n if (last) {\n state.view = last;\n }\n }\n },\n goBackToIndex(historyIndex) {\n if (state.history.length > 1) {\n state.history = state.history.slice(0, historyIndex + 1);\n const [last] = state.history.slice(-1);\n if (last) {\n state.view = last;\n }\n }\n }\n};\n//# sourceMappingURL=RouterController.js.map","import { NumberUtil } from '@web3modal/common';\nexport const SwapCalculationUtil = {\n getGasPriceInEther(gas, gasPrice) {\n const totalGasCostInWei = gasPrice * gas;\n const totalGasCostInEther = Number(totalGasCostInWei) / 1e18;\n return totalGasCostInEther;\n },\n getGasPriceInUSD(networkPrice, gas, gasPrice) {\n const totalGasCostInEther = SwapCalculationUtil.getGasPriceInEther(gas, gasPrice);\n const networkPriceInUSD = NumberUtil.bigNumber(networkPrice);\n const gasCostInUSD = networkPriceInUSD.multipliedBy(totalGasCostInEther);\n return gasCostInUSD.toNumber();\n },\n getPriceImpact({ sourceTokenAmount, sourceTokenPriceInUSD, toTokenPriceInUSD, toTokenAmount }) {\n const inputValue = NumberUtil.bigNumber(sourceTokenAmount).multipliedBy(sourceTokenPriceInUSD);\n const outputValue = NumberUtil.bigNumber(toTokenAmount).multipliedBy(toTokenPriceInUSD);\n const priceImpact = inputValue.minus(outputValue).dividedBy(inputValue).multipliedBy(100);\n return priceImpact.toNumber();\n },\n getMaxSlippage(slippage, toTokenAmount) {\n const slippageToleranceDecimal = NumberUtil.bigNumber(slippage).dividedBy(100);\n const maxSlippageAmount = NumberUtil.multiply(toTokenAmount, slippageToleranceDecimal);\n return maxSlippageAmount.toNumber();\n },\n getProviderFee(sourceTokenAmount, feePercentage = 0.0085) {\n const providerFee = NumberUtil.bigNumber(sourceTokenAmount).multipliedBy(feePercentage);\n return providerFee.toString();\n },\n isInsufficientNetworkTokenForGas(networkBalanceInUSD, gasPriceInUSD) {\n const gasPrice = gasPriceInUSD || '0';\n if (NumberUtil.bigNumber(networkBalanceInUSD).isZero()) {\n return true;\n }\n return NumberUtil.bigNumber(NumberUtil.bigNumber(gasPrice)).isGreaterThan(networkBalanceInUSD);\n },\n isInsufficientSourceTokenForSwap(sourceTokenAmount, sourceTokenAddress, balance) {\n const sourceTokenBalance = balance?.find(token => token.address === sourceTokenAddress)\n ?.quantity?.numeric;\n const isInSufficientBalance = NumberUtil.bigNumber(sourceTokenBalance || '0').isLessThan(sourceTokenAmount);\n return isInSufficientBalance;\n },\n getToTokenAmount({ sourceToken, toToken, sourceTokenPrice, toTokenPrice, sourceTokenAmount }) {\n if (sourceTokenAmount === '0') {\n return '0';\n }\n if (!sourceToken || !toToken) {\n return '0';\n }\n const sourceTokenDecimals = sourceToken.decimals;\n const sourceTokenPriceInUSD = sourceTokenPrice;\n const toTokenDecimals = toToken.decimals;\n const toTokenPriceInUSD = toTokenPrice;\n if (toTokenPriceInUSD <= 0) {\n return '0';\n }\n const providerFee = NumberUtil.bigNumber(sourceTokenAmount).multipliedBy(0.0085);\n const adjustedSourceTokenAmount = NumberUtil.bigNumber(sourceTokenAmount).minus(providerFee);\n const sourceAmountInSmallestUnit = adjustedSourceTokenAmount.multipliedBy(NumberUtil.bigNumber(10).pow(sourceTokenDecimals));\n const priceRatio = NumberUtil.bigNumber(sourceTokenPriceInUSD).dividedBy(toTokenPriceInUSD);\n const decimalDifference = sourceTokenDecimals - toTokenDecimals;\n const toTokenAmountInSmallestUnit = sourceAmountInSmallestUnit\n .multipliedBy(priceRatio)\n .dividedBy(NumberUtil.bigNumber(10).pow(decimalDifference));\n const toTokenAmount = toTokenAmountInSmallestUnit.dividedBy(NumberUtil.bigNumber(10).pow(toTokenDecimals));\n const amount = toTokenAmount.toFixed(toTokenDecimals).toString();\n return amount;\n }\n};\n//# sourceMappingURL=SwapCalculationUtil.js.map","import { subscribeKey as subKey } from 'valtio/utils';\nimport { proxy, subscribe as sub } from 'valtio/vanilla';\nimport { AccountController } from './AccountController.js';\nimport { ConstantsUtil } from '../utils/ConstantsUtil.js';\nimport { ConnectionController } from './ConnectionController.js';\nimport { SwapApiUtil } from '../utils/SwapApiUtil.js';\nimport { SnackController } from './SnackController.js';\nimport { RouterController } from './RouterController.js';\nimport { NumberUtil } from '@web3modal/common';\nimport { NetworkController } from './NetworkController.js';\nimport { CoreHelperUtil } from '../utils/CoreHelperUtil.js';\nimport { BlockchainApiController } from './BlockchainApiController.js';\nimport { OptionsController } from './OptionsController.js';\nimport { SwapCalculationUtil } from '../utils/SwapCalculationUtil.js';\nexport const INITIAL_GAS_LIMIT = 150000;\nexport const TO_AMOUNT_DECIMALS = 6;\nclass TransactionError extends Error {\n constructor(message, shortMessage) {\n super(message);\n this.name = 'TransactionError';\n this.shortMessage = shortMessage;\n }\n}\nconst initialState = {\n initializing: false,\n initialized: false,\n loading: false,\n loadingPrices: false,\n fetchError: false,\n approvalTransaction: undefined,\n swapTransaction: undefined,\n transactionError: undefined,\n transactionLoading: false,\n sourceToken: undefined,\n sourceTokenAmount: '',\n sourceTokenPriceInUSD: 0,\n toToken: undefined,\n toTokenAmount: '',\n toTokenPriceInUSD: 0,\n networkPrice: '0',\n networkBalanceInUSD: '0',\n networkTokenSymbol: '',\n inputError: undefined,\n slippage: ConstantsUtil.CONVERT_SLIPPAGE_TOLERANCE,\n tokens: undefined,\n popularTokens: undefined,\n suggestedTokens: undefined,\n foundTokens: undefined,\n myTokensWithBalance: undefined,\n tokensPriceMap: {},\n gasFee: '0',\n gasPriceInUSD: 0,\n priceImpact: undefined,\n maxSlippage: undefined,\n providerFee: undefined\n};\nconst state = proxy(initialState);\nexport const SwapController = {\n state,\n subscribe(callback) {\n return sub(state, () => callback(state));\n },\n subscribeKey(key, callback) {\n return subKey(state, key, callback);\n },\n getParams() {\n const { address } = AccountController.state;\n const networkAddress = `${NetworkController.state.caipNetwork?.id}:${ConstantsUtil.NATIVE_TOKEN_ADDRESS}`;\n if (!address) {\n throw new Error('No address found to swap the tokens from.');\n }\n const caipAddress = AccountController.state.caipAddress;\n const invalidToToken = !state.toToken?.address || !state.toToken?.decimals;\n const invalidSourceToken = !state.sourceToken?.address ||\n !state.sourceToken?.decimals ||\n !NumberUtil.bigNumber(state.sourceTokenAmount).isGreaterThan(0);\n const invalidSourceTokenAmount = !state.sourceTokenAmount;\n return {\n networkAddress,\n fromAddress: address,\n fromCaipAddress: AccountController.state.caipAddress,\n sourceTokenAddress: state.sourceToken?.address,\n toTokenAddress: state.toToken?.address,\n toTokenAmount: state.toTokenAmount,\n toTokenDecimals: state.toToken?.decimals,\n sourceTokenAmount: state.sourceTokenAmount,\n sourceTokenDecimals: state.sourceToken?.decimals,\n invalidToToken,\n invalidSourceToken,\n invalidSourceTokenAmount,\n availableToSwap: caipAddress && !invalidToToken && !invalidSourceToken && !invalidSourceTokenAmount\n };\n },\n setLoading(loading) {\n state.loading = loading;\n },\n setSourceToken(sourceToken) {\n if (!sourceToken) {\n state.sourceToken = sourceToken;\n state.sourceTokenAmount = '';\n state.sourceTokenPriceInUSD = 0;\n return;\n }\n state.sourceToken = sourceToken;\n this.setTokenPrice(sourceToken.address, 'sourceToken');\n },\n setSourceTokenAmount(amount) {\n state.sourceTokenAmount = amount;\n },\n setToToken(toToken) {\n if (!toToken) {\n state.toToken = toToken;\n state.toTokenAmount = '';\n state.toTokenPriceInUSD = 0;\n return;\n }\n state.toToken = toToken;\n this.setTokenPrice(toToken.address, 'toToken');\n },\n setToTokenAmount(amount) {\n state.toTokenAmount = amount\n ? NumberUtil.formatNumberToLocalString(amount, TO_AMOUNT_DECIMALS)\n : '';\n },\n async setTokenPrice(address, target) {\n const { availableToSwap } = this.getParams();\n let price = state.tokensPriceMap[address] || 0;\n if (!price) {\n state.loadingPrices = true;\n price = await this.getAddressPrice(address);\n }\n if (target === 'sourceToken') {\n state.sourceTokenPriceInUSD = price;\n }\n else if (target === 'toToken') {\n state.toTokenPriceInUSD = price;\n }\n if (state.loadingPrices) {\n state.loadingPrices = false;\n if (availableToSwap) {\n this.swapTokens();\n }\n }\n },\n switchTokens() {\n if (state.initializing || !state.initialized) {\n return;\n }\n const newSourceToken = state.toToken ? { ...state.toToken } : undefined;\n const newToToken = state.sourceToken ? { ...state.sourceToken } : undefined;\n const newSourceTokenAmount = newSourceToken && state.toTokenAmount === '' ? '1' : state.toTokenAmount;\n this.setSourceToken(newSourceToken);\n this.setToToken(newToToken);\n this.setSourceTokenAmount(newSourceTokenAmount);\n this.setToTokenAmount('');\n this.swapTokens();\n },\n resetState() {\n state.myTokensWithBalance = initialState.myTokensWithBalance;\n state.tokensPriceMap = initialState.tokensPriceMap;\n state.initialized = initialState.initialized;\n state.sourceToken = initialState.sourceToken;\n state.sourceTokenAmount = initialState.sourceTokenAmount;\n state.sourceTokenPriceInUSD = initialState.sourceTokenPriceInUSD;\n state.toToken = initialState.toToken;\n state.toTokenAmount = initialState.toTokenAmount;\n state.toTokenPriceInUSD = initialState.toTokenPriceInUSD;\n state.networkPrice = initialState.networkPrice;\n state.networkTokenSymbol = initialState.networkTokenSymbol;\n state.networkBalanceInUSD = initialState.networkBalanceInUSD;\n state.inputError = initialState.inputError;\n },\n resetValues() {\n const { networkAddress } = this.getParams();\n const networkToken = state.tokens?.find(token => token.address === networkAddress);\n this.setSourceToken(networkToken);\n this.setToToken(undefined);\n },\n clearError() {\n state.transactionError = undefined;\n },\n async initializeState() {\n if (state.initializing) {\n return;\n }\n state.initializing = true;\n if (!state.initialized) {\n try {\n await this.fetchTokens();\n state.initialized = true;\n }\n catch (error) {\n state.initialized = false;\n SnackController.showError('Failed to initialize swap');\n RouterController.goBack();\n }\n }\n state.initializing = false;\n },\n async fetchTokens() {\n const { networkAddress } = this.getParams();\n await this.getTokenList();\n await this.getNetworkTokenPrice();\n await this.getMyTokensWithBalance();\n const networkToken = state.tokens?.find(token => token.address === networkAddress);\n if (networkToken) {\n state.networkTokenSymbol = networkToken.symbol;\n this.setSourceToken(networkToken);\n this.setSourceTokenAmount('1');\n }\n },\n async getTokenList() {\n const tokens = await SwapApiUtil.getTokenList();\n state.tokens = tokens;\n state.popularTokens = tokens\n .sort((aTokenInfo, bTokenInfo) => {\n if (aTokenInfo.symbol < bTokenInfo.symbol) {\n return -1;\n }\n if (aTokenInfo.symbol > bTokenInfo.symbol) {\n return 1;\n }\n return 0;\n })\n .filter(token => {\n if (ConstantsUtil.SWAP_POPULAR_TOKENS.includes(token.symbol)) {\n return true;\n }\n return false;\n }, {});\n state.suggestedTokens = tokens.filter(token => {\n if (ConstantsUtil.SWAP_SUGGESTED_TOKENS.includes(token.symbol)) {\n return true;\n }\n return false;\n }, {});\n },\n async getAddressPrice(address) {\n const existPrice = state.tokensPriceMap[address];\n if (existPrice) {\n return existPrice;\n }\n const response = await BlockchainApiController.fetchTokenPrice({\n projectId: OptionsController.state.projectId,\n addresses: [address]\n });\n const fungibles = response.fungibles || [];\n const allTokens = [...(state.tokens || []), ...(state.myTokensWithBalance || [])];\n const symbol = allTokens?.find(token => token.address === address)?.symbol;\n const price = fungibles.find(p => p.symbol.toLowerCase() === symbol?.toLowerCase())?.price || 0;\n const priceAsFloat = parseFloat(price.toString());\n state.tokensPriceMap[address] = priceAsFloat;\n return priceAsFloat;\n },\n async getNetworkTokenPrice() {\n const { networkAddress } = this.getParams();\n const response = await BlockchainApiController.fetchTokenPrice({\n projectId: OptionsController.state.projectId,\n addresses: [networkAddress]\n });\n const token = response.fungibles?.[0];\n const price = token?.price.toString() || '0';\n state.tokensPriceMap[networkAddress] = parseFloat(price);\n state.networkTokenSymbol = token?.symbol || '';\n state.networkPrice = price;\n },\n async getMyTokensWithBalance(forceUpdate) {\n const balances = await SwapApiUtil.getMyTokensWithBalance(forceUpdate);\n if (!balances) {\n return;\n }\n await this.getInitialGasPrice();\n this.setBalances(balances);\n },\n setBalances(balances) {\n const { networkAddress } = this.getParams();\n const caipNetwork = NetworkController.state.caipNetwork;\n if (!caipNetwork) {\n return;\n }\n const networkToken = balances.find(token => token.address === networkAddress);\n balances.forEach(token => {\n state.tokensPriceMap[token.address] = token.price || 0;\n });\n state.myTokensWithBalance = balances.filter(token => token.address.startsWith(caipNetwork.id));\n state.networkBalanceInUSD = networkToken\n ? NumberUtil.multiply(networkToken.quantity.numeric, networkToken.price).toString()\n : '0';\n },\n async getInitialGasPrice() {\n const res = await SwapApiUtil.fetchGasPrice();\n if (!res) {\n return { gasPrice: null, gasPriceInUsd: null };\n }\n const value = res.standard;\n const gasFee = BigInt(value);\n const gasLimit = BigInt(INITIAL_GAS_LIMIT);\n const gasPrice = SwapCalculationUtil.getGasPriceInUSD(state.networkPrice, gasLimit, gasFee);\n state.gasFee = value;\n state.gasPriceInUSD = gasPrice;\n return { gasPrice: gasFee, gasPriceInUSD: state.gasPriceInUSD };\n },\n async swapTokens() {\n const address = AccountController.state.address;\n const sourceToken = state.sourceToken;\n const toToken = state.toToken;\n const haveSourceTokenAmount = NumberUtil.bigNumber(state.sourceTokenAmount).isGreaterThan(0);\n if (!toToken || !sourceToken || state.loadingPrices || !haveSourceTokenAmount) {\n return;\n }\n state.loading = true;\n const amountDecimal = NumberUtil.bigNumber(state.sourceTokenAmount).multipliedBy(10 ** sourceToken.decimals);\n const quoteResponse = await BlockchainApiController.fetchSwapQuote({\n userAddress: address,\n projectId: OptionsController.state.projectId,\n from: sourceToken.address,\n to: toToken.address,\n gasPrice: state.gasFee,\n amount: amountDecimal.toString()\n });\n const quoteToAmount = quoteResponse?.quotes?.[0]?.toAmount;\n if (!quoteToAmount) {\n return;\n }\n const toTokenAmount = NumberUtil.bigNumber(quoteToAmount)\n .dividedBy(10 ** toToken.decimals)\n .toString();\n this.setToTokenAmount(toTokenAmount);\n const isInsufficientToken = this.hasInsufficientToken(state.sourceTokenAmount, sourceToken.address);\n if (isInsufficientToken) {\n state.inputError = 'Insufficient balance';\n }\n else {\n state.inputError = undefined;\n this.setTransactionDetails();\n }\n state.loading = false;\n },\n async getTransaction() {\n const { fromCaipAddress, availableToSwap } = this.getParams();\n const sourceToken = state.sourceToken;\n const toToken = state.toToken;\n if (!fromCaipAddress || !availableToSwap || !sourceToken || !toToken || state.loading) {\n return undefined;\n }\n try {\n state.loading = true;\n const hasAllowance = await SwapApiUtil.fetchSwapAllowance({\n userAddress: fromCaipAddress,\n tokenAddress: sourceToken.address,\n sourceTokenAmount: state.sourceTokenAmount,\n sourceTokenDecimals: sourceToken.decimals\n });\n let transaction = undefined;\n if (hasAllowance) {\n transaction = await this.createSwapTransaction();\n }\n else {\n transaction = await this.createAllowanceTransaction();\n }\n state.loading = false;\n state.fetchError = false;\n return transaction;\n }\n catch (error) {\n RouterController.goBack();\n SnackController.showError('Failed to check allowance');\n state.approvalTransaction = undefined;\n state.swapTransaction = undefined;\n state.fetchError = true;\n return undefined;\n }\n },\n async createAllowanceTransaction() {\n const { fromCaipAddress, fromAddress, sourceTokenAddress, toTokenAddress } = this.getParams();\n if (!fromCaipAddress || !toTokenAddress) {\n return undefined;\n }\n if (!sourceTokenAddress) {\n throw new Error('>>> createAllowanceTransaction - No source token address found.');\n }\n try {\n const response = await BlockchainApiController.generateApproveCalldata({\n projectId: OptionsController.state.projectId,\n from: sourceTokenAddress,\n to: toTokenAddress,\n userAddress: fromCaipAddress\n });\n const gasLimit = await ConnectionController.estimateGas({\n address: fromAddress,\n to: CoreHelperUtil.getPlainAddress(response.tx.to),\n data: response.tx.data\n });\n const transaction = {\n data: response.tx.data,\n to: CoreHelperUtil.getPlainAddress(response.tx.from),\n gas: gasLimit,\n gasPrice: BigInt(response.tx.eip155.gasPrice),\n value: BigInt(response.tx.value),\n toAmount: state.toTokenAmount\n };\n state.swapTransaction = undefined;\n state.approvalTransaction = transaction;\n return transaction;\n }\n catch (error) {\n RouterController.goBack();\n SnackController.showError('Failed to create approval transaction');\n state.approvalTransaction = undefined;\n state.swapTransaction = undefined;\n state.fetchError = true;\n return undefined;\n }\n },\n async createSwapTransaction() {\n const { networkAddress, fromCaipAddress, sourceTokenAmount } = this.getParams();\n const sourceToken = state.sourceToken;\n const toToken = state.toToken;\n if (!fromCaipAddress || !sourceTokenAmount || !sourceToken || !toToken) {\n return undefined;\n }\n const amount = ConnectionController.parseUnits(sourceTokenAmount, sourceToken.decimals).toString();\n try {\n const response = await BlockchainApiController.generateSwapCalldata({\n projectId: OptionsController.state.projectId,\n userAddress: fromCaipAddress,\n from: sourceToken.address,\n to: toToken.address,\n amount\n });\n const isSourceTokenIsNetworkToken = sourceToken.address === networkAddress;\n const gas = BigInt(response.tx.eip155.gas);\n const gasPrice = BigInt(response.tx.eip155.gasPrice);\n const transaction = {\n data: response.tx.data,\n to: CoreHelperUtil.getPlainAddress(response.tx.to),\n gas,\n gasPrice,\n value: isSourceTokenIsNetworkToken ? BigInt(amount) : BigInt('0'),\n toAmount: state.toTokenAmount\n };\n state.gasPriceInUSD = SwapCalculationUtil.getGasPriceInUSD(state.networkPrice, gas, gasPrice);\n state.approvalTransaction = undefined;\n state.swapTransaction = transaction;\n return transaction;\n }\n catch (error) {\n RouterController.goBack();\n SnackController.showError('Failed to create transaction');\n state.approvalTransaction = undefined;\n state.swapTransaction = undefined;\n state.fetchError = true;\n return undefined;\n }\n },\n async sendTransactionForApproval(data) {\n const { fromAddress } = this.getParams();\n state.transactionLoading = true;\n RouterController.pushTransactionStack({\n view: null,\n goBack: true\n });\n try {\n await ConnectionController.sendTransaction({\n address: fromAddress,\n to: data.to,\n data: data.data,\n value: BigInt(data.value),\n gasPrice: BigInt(data.gasPrice)\n });\n state.approvalTransaction = undefined;\n state.transactionLoading = false;\n this.swapTokens();\n }\n catch (err) {\n const error = err;\n state.transactionError = error?.shortMessage;\n state.transactionLoading = false;\n }\n },\n async sendTransactionForSwap(data) {\n if (!data) {\n return undefined;\n }\n const { fromAddress, toTokenAmount } = this.getParams();\n state.transactionLoading = true;\n RouterController.pushTransactionStack({\n view: 'Account',\n goBack: false,\n onSuccess() {\n SwapController.resetState();\n }\n });\n try {\n const successMessage = `Swapped ${state.sourceToken\n ?.symbol} to ${NumberUtil.formatNumberToLocalString(toTokenAmount, 3)} ${state.toToken\n ?.symbol}!`;\n const forceUpdateAddresses = [state.sourceToken?.address, state.toToken?.address].join(',');\n const transactionHash = await ConnectionController.sendTransaction({\n address: fromAddress,\n to: data.to,\n data: data.data,\n gas: data.gas,\n gasPrice: BigInt(data.gasPrice),\n value: data.value\n });\n state.transactionLoading = false;\n SnackController.showSuccess(successMessage);\n SwapController.resetState();\n SwapController.getMyTokensWithBalance(forceUpdateAddresses);\n return transactionHash;\n }\n catch (err) {\n const error = err;\n state.transactionError = error?.shortMessage;\n state.transactionLoading = false;\n SnackController.showError(error?.shortMessage || 'Transaction error');\n return undefined;\n }\n },\n hasInsufficientToken(sourceTokenAmount, sourceTokenAddress) {\n const isInsufficientSourceTokenForSwap = SwapCalculationUtil.isInsufficientSourceTokenForSwap(sourceTokenAmount, sourceTokenAddress, state.myTokensWithBalance);\n const insufficientNetworkTokenForGas = SwapCalculationUtil.isInsufficientNetworkTokenForGas(state.networkBalanceInUSD, state.gasPriceInUSD);\n return insufficientNetworkTokenForGas || isInsufficientSourceTokenForSwap;\n },\n setTransactionDetails() {\n const { toTokenAddress, toTokenDecimals } = this.getParams();\n if (!toTokenAddress || !toTokenDecimals) {\n return;\n }\n state.gasPriceInUSD = SwapCalculationUtil.getGasPriceInUSD(state.networkPrice, BigInt(state.gasFee), BigInt(INITIAL_GAS_LIMIT));\n state.priceImpact = SwapCalculationUtil.getPriceImpact({\n sourceTokenAmount: state.sourceTokenAmount,\n sourceTokenPriceInUSD: state.sourceTokenPriceInUSD,\n toTokenPriceInUSD: state.toTokenPriceInUSD,\n toTokenAmount: state.toTokenAmount\n });\n state.maxSlippage = SwapCalculationUtil.getMaxSlippage(state.slippage, state.toTokenAmount);\n state.providerFee = SwapCalculationUtil.getProviderFee(state.sourceTokenAmount);\n }\n};\n//# sourceMappingURL=SwapController.js.map","import { subscribeKey as subKey } from 'valtio/vanilla/utils';\nimport { proxy, ref, subscribe as sub } from 'valtio/vanilla';\nimport { CoreHelperUtil } from '../utils/CoreHelperUtil.js';\nimport { BlockchainApiController } from './BlockchainApiController.js';\nimport { SnackController } from './SnackController.js';\nimport { SwapController } from './SwapController.js';\nimport { SwapApiUtil } from '../utils/SwapApiUtil.js';\nimport { NetworkController } from './NetworkController.js';\nconst state = proxy({\n isConnected: false,\n currentTab: 0,\n tokenBalance: [],\n smartAccountDeployed: false\n});\nexport const AccountController = {\n state,\n subscribe(callback) {\n return sub(state, () => callback(state));\n },\n subscribeKey(key, callback) {\n return subKey(state, key, callback);\n },\n setIsConnected(isConnected) {\n state.isConnected = isConnected;\n },\n setCaipAddress(caipAddress) {\n state.caipAddress = caipAddress;\n state.address = caipAddress ? CoreHelperUtil.getPlainAddress(caipAddress) : undefined;\n },\n setBalance(balance, balanceSymbol) {\n state.balance = balance;\n state.balanceSymbol = balanceSymbol;\n },\n setProfileName(profileName) {\n state.profileName = profileName;\n },\n setProfileImage(profileImage) {\n state.profileImage = profileImage;\n },\n setAddressExplorerUrl(explorerUrl) {\n state.addressExplorerUrl = explorerUrl;\n },\n setSmartAccountDeployed(isDeployed) {\n state.smartAccountDeployed = isDeployed;\n },\n setCurrentTab(currentTab) {\n state.currentTab = currentTab;\n },\n setTokenBalance(tokenBalance) {\n if (tokenBalance) {\n state.tokenBalance = ref(tokenBalance);\n }\n },\n setConnectedWalletInfo(connectedWalletInfo) {\n state.connectedWalletInfo = connectedWalletInfo;\n },\n setPreferredAccountType(preferredAccountType) {\n state.preferredAccountType = preferredAccountType;\n },\n setSocialProvider(socialProvider) {\n if (socialProvider) {\n state.socialProvider = socialProvider;\n }\n },\n setSocialWindow(socialWindow) {\n if (socialWindow) {\n state.socialWindow = ref(socialWindow);\n }\n },\n async fetchTokenBalance() {\n const chainId = NetworkController.state.caipNetwork?.id;\n try {\n if (state.address && chainId) {\n const response = await BlockchainApiController.getBalance(state.address, chainId);\n const filteredBalances = response.balances.filter(balance => balance.quantity.decimals !== '0');\n this.setTokenBalance(filteredBalances);\n SwapController.setBalances(SwapApiUtil.mapBalancesToSwapTokens(response.balances));\n }\n }\n catch (error) {\n SnackController.showError('Failed to fetch token balance');\n }\n },\n resetAccount() {\n state.isConnected = false;\n state.smartAccountDeployed = false;\n state.currentTab = 0;\n state.caipAddress = undefined;\n state.address = undefined;\n state.balance = undefined;\n state.balanceSymbol = undefined;\n state.profileName = undefined;\n state.profileImage = undefined;\n state.addressExplorerUrl = undefined;\n state.tokenBalance = [];\n state.connectedWalletInfo = undefined;\n state.preferredAccountType = undefined;\n state.socialProvider = undefined;\n state.socialWindow = undefined;\n }\n};\n//# sourceMappingURL=AccountController.js.map","import { subscribeKey as subKey } from 'valtio/vanilla/utils';\nimport { proxy, subscribe as sub } from 'valtio/vanilla';\nconst state = proxy({\n walletImages: {},\n networkImages: {},\n connectorImages: {},\n tokenImages: {},\n currencyImages: {}\n});\nexport const AssetController = {\n state,\n subscribeNetworkImages(callback) {\n return sub(state.networkImages, () => callback(state.networkImages));\n },\n subscribeKey(key, callback) {\n return subKey(state, key, callback);\n },\n subscribe(callback) {\n return sub(state, () => callback(state));\n },\n setWalletImage(key, value) {\n state.walletImages[key] = value;\n },\n setNetworkImage(key, value) {\n state.networkImages[key] = value;\n },\n setConnectorImage(key, value) {\n state.connectorImages[key] = value;\n },\n setTokenImage(key, value) {\n state.tokenImages[key] = value;\n },\n setCurrencyImage(key, value) {\n state.currencyImages[key] = value;\n }\n};\n//# sourceMappingURL=AssetController.js.map","import { proxy, subscribe as sub, snapshot } from 'valtio/vanilla';\nimport { ConnectorController } from './ConnectorController.js';\nimport { getW3mThemeVariables } from '@web3modal/common';\nconst state = proxy({\n themeMode: 'dark',\n themeVariables: {},\n w3mThemeVariables: undefined\n});\nexport const ThemeController = {\n state,\n subscribe(callback) {\n return sub(state, () => callback(state));\n },\n setThemeMode(themeMode) {\n state.themeMode = themeMode;\n try {\n const authConnector = ConnectorController.getAuthConnector();\n if (authConnector) {\n const themeVariables = ThemeController.getSnapshot().themeVariables;\n authConnector.provider.syncTheme({\n themeMode,\n themeVariables,\n w3mThemeVariables: getW3mThemeVariables(themeVariables, themeMode)\n });\n }\n }\n catch {\n console.info('Unable to sync theme to auth connector');\n }\n },\n setThemeVariables(themeVariables) {\n state.themeVariables = { ...state.themeVariables, ...themeVariables };\n try {\n const authConnector = ConnectorController.getAuthConnector();\n if (authConnector) {\n const themeVariablesSnapshot = ThemeController.getSnapshot().themeVariables;\n authConnector.provider.syncTheme({\n themeVariables: themeVariablesSnapshot,\n w3mThemeVariables: getW3mThemeVariables(state.themeVariables, state.themeMode)\n });\n }\n }\n catch {\n console.info('Unable to sync theme to auth connector');\n }\n },\n getSnapshot() {\n return snapshot(state);\n }\n};\n//# sourceMappingURL=ThemeController.js.map","import { subscribeKey as subKey } from 'valtio/vanilla/utils';\nimport { proxy, ref, snapshot } from 'valtio/vanilla';\nimport { getW3mThemeVariables } from '@web3modal/common';\nimport { OptionsController } from './OptionsController.js';\nimport { ThemeController } from './ThemeController.js';\nconst state = proxy({\n connectors: []\n});\nexport const ConnectorController = {\n state,\n subscribeKey(key, callback) {\n return subKey(state, key, callback);\n },\n setConnectors(connectors) {\n state.connectors = connectors.map(c => ref(c));\n },\n addConnector(connector) {\n state.connectors.push(ref(connector));\n if (connector.id === 'w3mAuth') {\n const authConnector = connector;\n const optionsState = snapshot(OptionsController.state);\n const themeMode = ThemeController.getSnapshot().themeMode;\n const themeVariables = ThemeController.getSnapshot().themeVariables;\n authConnector?.provider?.syncDappData?.({\n metadata: optionsState.metadata,\n sdkVersion: optionsState.sdkVersion,\n projectId: optionsState.projectId\n });\n authConnector.provider.syncTheme({\n themeMode,\n themeVariables,\n w3mThemeVariables: getW3mThemeVariables(themeVariables, themeMode)\n });\n }\n },\n getAuthConnector() {\n return state.connectors.find(c => c.type === 'AUTH');\n },\n getAnnouncedConnectorRdns() {\n return state.connectors.filter(c => c.type === 'ANNOUNCED').map(c => c.info?.rdns);\n },\n getConnectors() {\n return state.connectors;\n },\n getConnector(id, rdns) {\n return state.connectors.find(c => c.explorerId === id || c.info?.rdns === rdns);\n }\n};\n//# sourceMappingURL=ConnectorController.js.map","import { subscribeKey as subKey } from 'valtio/vanilla/utils';\nimport { proxy } from 'valtio/vanilla';\nimport { CoreHelperUtil } from '../utils/CoreHelperUtil.js';\nimport { FetchUtil } from '../utils/FetchUtil.js';\nimport { StorageUtil } from '../utils/StorageUtil.js';\nimport { AssetController } from './AssetController.js';\nimport { ConnectorController } from './ConnectorController.js';\nimport { NetworkController } from './NetworkController.js';\nimport { OptionsController } from './OptionsController.js';\nconst baseUrl = CoreHelperUtil.getApiUrl();\nexport const api = new FetchUtil({ baseUrl });\nconst entries = '40';\nconst recommendedEntries = '4';\nconst state = proxy({\n page: 1,\n count: 0,\n featured: [],\n recommended: [],\n wallets: [],\n search: [],\n isAnalyticsEnabled: false\n});\nexport const ApiController = {\n state,\n subscribeKey(key, callback) {\n return subKey(state, key, callback);\n },\n _getApiHeaders() {\n const { projectId, sdkType, sdkVersion } = OptionsController.state;\n return {\n 'x-project-id': projectId,\n 'x-sdk-type': sdkType,\n 'x-sdk-version': sdkVersion\n };\n },\n async _fetchWalletImage(imageId) {\n const imageUrl = `${api.baseUrl}/getWalletImage/${imageId}`;\n const blob = await api.getBlob({ path: imageUrl, headers: ApiController._getApiHeaders() });\n AssetController.setWalletImage(imageId, URL.createObjectURL(blob));\n },\n async _fetchNetworkImage(imageId) {\n const imageUrl = `${api.baseUrl}/public/getAssetImage/${imageId}`;\n const blob = await api.getBlob({ path: imageUrl, headers: ApiController._getApiHeaders() });\n AssetController.setNetworkImage(imageId, URL.createObjectURL(blob));\n },\n async _fetchConnectorImage(imageId) {\n const imageUrl = `${api.baseUrl}/public/getAssetImage/${imageId}`;\n const blob = await api.getBlob({ path: imageUrl, headers: ApiController._getApiHeaders() });\n AssetController.setConnectorImage(imageId, URL.createObjectURL(blob));\n },\n async _fetchCurrencyImage(countryCode) {\n const imageUrl = `${api.baseUrl}/public/getCurrencyImage/${countryCode}`;\n const blob = await api.getBlob({ path: imageUrl, headers: ApiController._getApiHeaders() });\n AssetController.setCurrencyImage(countryCode, URL.createObjectURL(blob));\n },\n async _fetchTokenImage(symbol) {\n const imageUrl = `${api.baseUrl}/public/getTokenImage/${symbol}`;\n const blob = await api.getBlob({ path: imageUrl, headers: ApiController._getApiHeaders() });\n AssetController.setTokenImage(symbol, URL.createObjectURL(blob));\n },\n async fetchNetworkImages() {\n const { requestedCaipNetworks } = NetworkController.state;\n const ids = requestedCaipNetworks?.map(({ imageId }) => imageId).filter(Boolean);\n if (ids) {\n await Promise.allSettled(ids.map(id => ApiController._fetchNetworkImage(id)));\n }\n },\n async fetchConnectorImages() {\n const { connectors } = ConnectorController.state;\n const ids = connectors.map(({ imageId }) => imageId).filter(Boolean);\n await Promise.allSettled(ids.map(id => ApiController._fetchConnectorImage(id)));\n },\n async fetchCurrencyImages(currencies = []) {\n await Promise.allSettled(currencies.map(currency => ApiController._fetchCurrencyImage(currency)));\n },\n async fetchTokenImages(tokens = []) {\n await Promise.allSettled(tokens.map(token => ApiController._fetchTokenImage(token)));\n },\n async fetchFeaturedWallets() {\n const { featuredWalletIds } = OptionsController.state;\n if (featuredWalletIds?.length) {\n const { data } = await api.get({\n path: '/getWallets',\n headers: ApiController._getApiHeaders(),\n params: {\n page: '1',\n entries: featuredWalletIds?.length\n ? String(featuredWalletIds.length)\n : recommendedEntries,\n include: featuredWalletIds?.join(',')\n }\n });\n data.sort((a, b) => featuredWalletIds.indexOf(a.id) - featuredWalletIds.indexOf(b.id));\n const images = data.map(d => d.image_id).filter(Boolean);\n await Promise.allSettled(images.map(id => ApiController._fetchWalletImage(id)));\n state.featured = data;\n }\n },\n async fetchRecommendedWallets() {\n const { includeWalletIds, excludeWalletIds, featuredWalletIds } = OptionsController.state;\n const exclude = [...(excludeWalletIds ?? []), ...(featuredWalletIds ?? [])].filter(Boolean);\n const { data, count } = await api.get({\n path: '/getWallets',\n headers: ApiController._getApiHeaders(),\n params: {\n page: '1',\n chains: NetworkController.state.caipNetwork?.id,\n entries: recommendedEntries,\n include: includeWalletIds?.join(','),\n exclude: exclude?.join(',')\n }\n });\n const recent = StorageUtil.getRecentWallets();\n const recommendedImages = data.map(d => d.image_id).filter(Boolean);\n const recentImages = recent.map(r => r.image_id).filter(Boolean);\n await Promise.allSettled([...recommendedImages, ...recentImages].map(id => ApiController._fetchWalletImage(id)));\n state.recommended = data;\n state.count = count ?? 0;\n },\n async fetchWallets({ page }) {\n const { includeWalletIds, excludeWalletIds, featuredWalletIds } = OptionsController.state;\n const exclude = [\n ...state.recommended.map(({ id }) => id),\n ...(excludeWalletIds ?? []),\n ...(featuredWalletIds ?? [])\n ].filter(Boolean);\n const { data, count } = await api.get({\n path: '/getWallets',\n headers: ApiController._getApiHeaders(),\n params: {\n page: String(page),\n entries,\n chains: NetworkController.state.caipNetwork?.id,\n include: includeWalletIds?.join(','),\n exclude: exclude.join(',')\n }\n });\n const images = data.map(w => w.image_id).filter(Boolean);\n await Promise.allSettled([\n ...images.map(id => ApiController._fetchWalletImage(id)),\n CoreHelperUtil.wait(300)\n ]);\n state.wallets = [...state.wallets, ...data];\n state.count = count > state.count ? count : state.count;\n state.page = page;\n },\n async searchWallet({ search }) {\n const { includeWalletIds, excludeWalletIds } = OptionsController.state;\n state.search = [];\n const { data } = await api.get({\n path: '/getWallets',\n headers: ApiController._getApiHeaders(),\n params: {\n page: '1',\n entries: '100',\n search: search?.trim(),\n chains: NetworkController.state.caipNetwork?.id,\n include: includeWalletIds?.join(','),\n exclude: excludeWalletIds?.join(',')\n }\n });\n const images = data.map(w => w.image_id).filter(Boolean);\n await Promise.allSettled([\n ...images.map(id => ApiController._fetchWalletImage(id)),\n CoreHelperUtil.wait(300)\n ]);\n state.search = data;\n },\n async reFetchWallets() {\n state.page = 1;\n state.wallets = [];\n await ApiController.fetchFeaturedWallets();\n await ApiController.fetchRecommendedWallets();\n },\n prefetch() {\n const promises = [\n ApiController.fetchFeaturedWallets(),\n ApiController.fetchRecommendedWallets(),\n ApiController.fetchNetworkImages(),\n ApiController.fetchConnectorImages()\n ];\n if (OptionsController.state.enableAnalytics === undefined) {\n promises.push(ApiController.fetchAnalyticsConfig());\n }\n state.prefetchPromise = Promise.race([Promise.allSettled(promises), CoreHelperUtil.wait(3000)]);\n },\n async fetchAnalyticsConfig() {\n const { isAnalyticsEnabled } = await api.get({\n path: '/getAnalyticsConfig',\n headers: ApiController._getApiHeaders()\n });\n OptionsController.setEnableAnalytics(isAnalyticsEnabled);\n }\n};\n//# sourceMappingURL=ApiController.js.map","import { subscribeKey as subKey } from 'valtio/vanilla/utils';\nimport { proxy, subscribe as sub } from 'valtio/vanilla';\nimport { AccountController } from './AccountController.js';\nimport { ApiController } from './ApiController.js';\nimport { EventsController } from './EventsController.js';\nimport { PublicStateController } from './PublicStateController.js';\nimport { RouterController } from './RouterController.js';\nconst state = proxy({\n loading: false,\n open: false\n});\nexport const ModalController = {\n state,\n subscribe(callback) {\n return sub(state, () => callback(state));\n },\n subscribeKey(key, callback) {\n return subKey(state, key, callback);\n },\n async open(options) {\n await ApiController.state.prefetchPromise;\n const connected = AccountController.state.isConnected;\n if (options?.view) {\n RouterController.reset(options.view);\n }\n else if (connected) {\n RouterController.reset('Account');\n }\n else {\n RouterController.reset('Connect');\n }\n state.open = true;\n PublicStateController.set({ open: true });\n EventsController.sendEvent({\n type: 'track',\n event: 'MODAL_OPEN',\n properties: { connected }\n });\n },\n close() {\n const connected = AccountController.state.isConnected;\n state.open = false;\n PublicStateController.set({ open: false });\n EventsController.sendEvent({\n type: 'track',\n event: 'MODAL_CLOSE',\n properties: { connected }\n });\n },\n setLoading(loading) {\n state.loading = loading;\n PublicStateController.set({ loading });\n }\n};\n//# sourceMappingURL=ModalController.js.map","import { subscribeKey as subKey } from 'valtio/vanilla/utils';\nimport { proxy, subscribe as sub } from 'valtio/vanilla';\nimport { ONRAMP_PROVIDERS } from '../utils/ConstantsUtil.js';\nimport { BlockchainApiController } from './BlockchainApiController.js';\nimport { ApiController } from './ApiController.js';\nexport const USDC_CURRENCY_DEFAULT = {\n id: '2b92315d-eab7-5bef-84fa-089a131333f5',\n name: 'USD Coin',\n symbol: 'USDC',\n networks: [\n {\n name: 'ethereum-mainnet',\n display_name: 'Ethereum',\n chain_id: '1',\n contract_address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'\n },\n {\n name: 'polygon-mainnet',\n display_name: 'Polygon',\n chain_id: '137',\n contract_address: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174'\n }\n ]\n};\nexport const USD_CURRENCY_DEFAULT = {\n id: 'USD',\n payment_method_limits: [\n {\n id: 'card',\n min: '10.00',\n max: '7500.00'\n },\n {\n id: 'ach_bank_account',\n min: '10.00',\n max: '25000.00'\n }\n ]\n};\nconst defaultState = {\n providers: ONRAMP_PROVIDERS,\n selectedProvider: null,\n error: null,\n purchaseCurrency: USDC_CURRENCY_DEFAULT,\n paymentCurrency: USD_CURRENCY_DEFAULT,\n purchaseCurrencies: [USDC_CURRENCY_DEFAULT],\n paymentCurrencies: [],\n quotesLoading: false\n};\nconst state = proxy(defaultState);\nexport const OnRampController = {\n state,\n subscribe(callback) {\n return sub(state, () => callback(state));\n },\n subscribeKey(key, callback) {\n return subKey(state, key, callback);\n },\n setSelectedProvider(provider) {\n state.selectedProvider = provider;\n },\n setPurchaseCurrency(currency) {\n state.purchaseCurrency = currency;\n },\n setPaymentCurrency(currency) {\n state.paymentCurrency = currency;\n },\n setPurchaseAmount(amount) {\n this.state.purchaseAmount = amount;\n },\n setPaymentAmount(amount) {\n this.state.paymentAmount = amount;\n },\n async getAvailableCurrencies() {\n const options = await BlockchainApiController.getOnrampOptions();\n state.purchaseCurrencies = options.purchaseCurrencies;\n state.paymentCurrencies = options.paymentCurrencies;\n state.paymentCurrency = options.paymentCurrencies[0] || USD_CURRENCY_DEFAULT;\n state.purchaseCurrency = options.purchaseCurrencies[0] || USDC_CURRENCY_DEFAULT;\n await ApiController.fetchCurrencyImages(options.paymentCurrencies.map(currency => currency.id));\n await ApiController.fetchTokenImages(options.purchaseCurrencies.map(currency => currency.symbol));\n },\n async getQuote() {\n state.quotesLoading = true;\n try {\n const quote = await BlockchainApiController.getOnrampQuote({\n purchaseCurrency: state.purchaseCurrency,\n paymentCurrency: state.paymentCurrency,\n amount: state.paymentAmount?.toString() || '0',\n network: state.purchaseCurrency?.symbol\n });\n state.quotesLoading = false;\n state.purchaseAmount = Number(quote.purchaseAmount.amount);\n return quote;\n }\n catch (error) {\n state.error = error.message;\n state.quotesLoading = false;\n return null;\n }\n finally {\n state.quotesLoading = false;\n }\n },\n resetState() {\n state.providers = ONRAMP_PROVIDERS;\n state.selectedProvider = null;\n state.error = null;\n state.purchaseCurrency = USDC_CURRENCY_DEFAULT;\n state.paymentCurrency = USD_CURRENCY_DEFAULT;\n state.purchaseCurrencies = [USDC_CURRENCY_DEFAULT];\n state.paymentCurrencies = [];\n state.paymentAmount = undefined;\n state.purchaseAmount = undefined;\n state.quotesLoading = false;\n }\n};\n//# sourceMappingURL=OnRampController.js.map","import { subscribeKey as subKey } from 'valtio/vanilla/utils';\nimport { proxy, ref, subscribe as sub } from 'valtio/vanilla';\nimport {} from '@web3modal/common';\nimport { erc20ABI } from '@web3modal/common';\nimport { RouterController } from './RouterController.js';\nimport { AccountController } from './AccountController.js';\nimport { ConnectionController } from './ConnectionController.js';\nimport { SnackController } from './SnackController.js';\nimport { CoreHelperUtil } from '../utils/CoreHelperUtil.js';\nconst state = proxy({\n loading: false\n});\nexport const SendController = {\n state,\n subscribe(callback) {\n return sub(state, () => callback(state));\n },\n subscribeKey(key, callback) {\n return subKey(state, key, callback);\n },\n setToken(token) {\n if (token) {\n state.token = ref(token);\n }\n },\n setTokenAmount(sendTokenAmount) {\n state.sendTokenAmount = sendTokenAmount;\n },\n setReceiverAddress(receiverAddress) {\n state.receiverAddress = receiverAddress;\n },\n setReceiverProfileImageUrl(receiverProfileImageUrl) {\n state.receiverProfileImageUrl = receiverProfileImageUrl;\n },\n setReceiverProfileName(receiverProfileName) {\n state.receiverProfileName = receiverProfileName;\n },\n setGasPrice(gasPrice) {\n state.gasPrice = gasPrice;\n },\n setGasPriceInUsd(gasPriceInUSD) {\n state.gasPriceInUSD = gasPriceInUSD;\n },\n setLoading(loading) {\n state.loading = loading;\n },\n sendToken() {\n if (this.state.token?.address && this.state.sendTokenAmount && this.state.receiverAddress) {\n this.sendERC20Token({\n receiverAddress: this.state.receiverAddress,\n tokenAddress: this.state.token.address,\n sendTokenAmount: this.state.sendTokenAmount,\n decimals: this.state.token.quantity.decimals\n });\n }\n else if (this.state.receiverAddress &&\n this.state.sendTokenAmount &&\n this.state.gasPrice &&\n this.state.token?.quantity.decimals) {\n this.sendNativeToken({\n receiverAddress: this.state.receiverAddress,\n sendTokenAmount: this.state.sendTokenAmount,\n gasPrice: this.state.gasPrice,\n decimals: this.state.token.quantity.decimals\n });\n }\n },\n async sendNativeToken(params) {\n RouterController.pushTransactionStack({\n view: 'Account',\n goBack: false\n });\n const to = params.receiverAddress;\n const address = AccountController.state.address;\n const value = ConnectionController.parseUnits(params.sendTokenAmount.toString(), Number(params.decimals));\n const data = '0x';\n try {\n await ConnectionController.sendTransaction({\n to,\n address,\n data,\n value,\n gasPrice: params.gasPrice\n });\n SnackController.showSuccess('Transaction started');\n this.resetSend();\n }\n catch (error) {\n SnackController.showError('Something went wrong');\n }\n },\n async sendERC20Token(params) {\n RouterController.pushTransactionStack({\n view: 'Account',\n goBack: false\n });\n const amount = ConnectionController.parseUnits(params.sendTokenAmount.toString(), Number(params.decimals));\n try {\n if (AccountController.state.address &&\n params.sendTokenAmount &&\n params.receiverAddress &&\n params.tokenAddress) {\n await ConnectionController.writeContract({\n fromAddress: AccountController.state.address,\n tokenAddress: CoreHelperUtil.getPlainAddress(params.tokenAddress),\n receiverAddress: params.receiverAddress,\n tokenAmount: amount,\n method: 'transfer',\n abi: erc20ABI\n });\n SnackController.showSuccess('Transaction started');\n this.resetSend();\n }\n }\n catch (error) {\n SnackController.showError('Something went wrong');\n }\n },\n resetSend() {\n state.token = undefined;\n state.sendTokenAmount = undefined;\n state.receiverAddress = undefined;\n state.receiverProfileImageUrl = undefined;\n state.receiverProfileName = undefined;\n state.loading = false;\n }\n};\n//# sourceMappingURL=SendController.js.map","import { subscribeKey as subKey } from 'valtio/vanilla/utils';\nimport { proxy, subscribe as sub } from 'valtio/vanilla';\nconst state = proxy({\n message: '',\n open: false,\n triggerRect: {\n width: 0,\n height: 0,\n top: 0,\n left: 0\n },\n variant: 'shade'\n});\nexport const TooltipController = {\n state,\n subscribe(callback) {\n return sub(state, () => callback(state));\n },\n subscribeKey(key, callback) {\n return subKey(state, key, callback);\n },\n showTooltip({ message, triggerRect, variant }) {\n state.open = true;\n state.message = message;\n state.triggerRect = triggerRect;\n state.variant = variant;\n },\n hide() {\n state.open = false;\n state.message = '';\n state.triggerRect = {\n width: 0,\n height: 0,\n top: 0,\n left: 0\n };\n }\n};\n//# sourceMappingURL=TooltipController.js.map","const SLIP44_MSB = 0x80000000;\nexport const EnsUtil = {\n convertEVMChainIdToCoinType(chainId) {\n if (chainId >= SLIP44_MSB) {\n throw new Error('Invalid chainId');\n }\n return (SLIP44_MSB | chainId) >>> 0;\n }\n};\n//# sourceMappingURL=EnsUtil.js.map","import { subscribeKey as subKey } from 'valtio/utils';\nimport { proxy, subscribe as sub } from 'valtio/vanilla';\nimport { BlockchainApiController } from './BlockchainApiController.js';\nimport { AccountController } from './AccountController.js';\nimport { ConnectorController } from './ConnectorController.js';\nimport { RouterController } from './RouterController.js';\nimport { ConnectionController } from './ConnectionController.js';\nimport { NetworkController } from './NetworkController.js';\nimport { NetworkUtil } from '@web3modal/common';\nimport { EnsUtil } from '../utils/EnsUtil.js';\nimport { ConstantsUtil } from '@web3modal/common';\nconst state = proxy({\n suggestions: [],\n loading: false\n});\nexport const EnsController = {\n state,\n subscribe(callback) {\n return sub(state, () => callback(state));\n },\n subscribeKey(key, callback) {\n return subKey(state, key, callback);\n },\n async resolveName(name) {\n try {\n return await BlockchainApiController.lookupEnsName(name);\n }\n catch (e) {\n const error = e;\n throw new Error(error?.reasons?.[0]?.description || 'Error resolving name');\n }\n },\n async isNameRegistered(name) {\n try {\n await BlockchainApiController.lookupEnsName(name);\n return true;\n }\n catch {\n return false;\n }\n },\n async getSuggestions(name) {\n try {\n state.loading = true;\n state.suggestions = [];\n const response = await BlockchainApiController.getEnsNameSuggestions(name);\n state.suggestions =\n response.suggestions.map(suggestion => ({\n ...suggestion,\n name: suggestion.name.replace(ConstantsUtil.WC_NAME_SUFFIX, '')\n })) || [];\n return state.suggestions;\n }\n catch (e) {\n const errorMessage = this.parseEnsApiError(e, 'Error fetching name suggestions');\n throw new Error(errorMessage);\n }\n finally {\n state.loading = false;\n }\n },\n async getNamesForAddress(address) {\n try {\n const network = NetworkController.state.caipNetwork;\n if (!network) {\n return [];\n }\n const response = await BlockchainApiController.reverseLookupEnsName({ address });\n return response;\n }\n catch (e) {\n const errorMessage = this.parseEnsApiError(e, 'Error fetching names for address');\n throw new Error(errorMessage);\n }\n },\n async registerName(name) {\n const network = NetworkController.state.caipNetwork;\n if (!network) {\n throw new Error('Network not found');\n }\n const address = AccountController.state.address;\n const emailConnector = ConnectorController.getAuthConnector();\n if (!address || !emailConnector) {\n throw new Error('Address or auth connector not found');\n }\n if (!this.isAllowedToRegisterName()) {\n throw new Error('Not allowed to register name');\n }\n state.loading = true;\n try {\n const message = JSON.stringify({\n name: `${name}${ConstantsUtil.WC_NAME_SUFFIX}`,\n attributes: {},\n timestamp: Math.floor(Date.now() / 1000)\n });\n RouterController.pushTransactionStack({\n view: 'RegisterAccountNameSuccess',\n goBack: false,\n replace: true,\n onCancel() {\n state.loading = false;\n }\n });\n const signature = await ConnectionController.signMessage(message);\n const networkId = NetworkUtil.caipNetworkIdToNumber(network.id);\n if (!networkId) {\n throw new Error('Network not found');\n }\n const coinType = EnsUtil.convertEVMChainIdToCoinType(networkId);\n await BlockchainApiController.registerEnsName({\n coinType,\n address: address,\n signature,\n message\n });\n AccountController.setProfileName(`${name}${ConstantsUtil.WC_NAME_SUFFIX}`);\n RouterController.replace('RegisterAccountNameSuccess');\n }\n catch (e) {\n const errorMessage = this.parseEnsApiError(e, `Error registering name ${name}`);\n RouterController.replace('RegisterAccountName');\n throw new Error(errorMessage);\n }\n finally {\n state.loading = false;\n }\n },\n validateName(name) {\n return /^[a-zA-Z0-9-]{4,}$/u.test(name);\n },\n parseEnsApiError(error, defaultError) {\n const ensError = error;\n return ensError?.reasons?.[0]?.description || defaultError;\n },\n isAllowedToRegisterName() {\n const emailConnector = ConnectorController.getAuthConnector();\n const email = emailConnector?.provider.getEmail() || '';\n const domain = email.split('@')?.[1];\n return domain && ConstantsUtil.WC_NAMES_ALLOWED_DOMAINS.includes(domain);\n }\n};\n//# sourceMappingURL=EnsController.js.map","import { AssetController } from '../controllers/AssetController.js';\nexport const AssetUtil = {\n getWalletImage(wallet) {\n if (wallet?.image_url) {\n return wallet?.image_url;\n }\n if (wallet?.image_id) {\n return AssetController.state.walletImages[wallet.image_id];\n }\n return undefined;\n },\n getNetworkImage(network) {\n if (network?.imageUrl) {\n return network?.imageUrl;\n }\n if (network?.imageId) {\n return AssetController.state.networkImages[network.imageId];\n }\n return undefined;\n },\n getConnectorImage(connector) {\n if (connector?.imageUrl) {\n return connector.imageUrl;\n }\n if (connector?.imageId) {\n return AssetController.state.connectorImages[connector.imageId];\n }\n return undefined;\n }\n};\n//# sourceMappingURL=AssetUtil.js.map","import { RouterController } from '../controllers/RouterController.js';\nimport { ModalController } from '../controllers/ModalController.js';\nimport { OptionsController } from '../controllers/OptionsController.js';\nimport { AccountController } from '../controllers/AccountController.js';\nexport const RouterUtil = {\n goBackOrCloseModal() {\n if (RouterController.state.history.length > 1) {\n RouterController.goBack();\n }\n else {\n ModalController.close();\n }\n },\n navigateAfterNetworkSwitch() {\n const { history } = RouterController.state;\n const networkSelectIndex = history.findIndex(name => name === 'Networks');\n if (networkSelectIndex >= 1) {\n RouterController.goBackToIndex(networkSelectIndex - 1);\n }\n else {\n ModalController.close();\n }\n },\n navigateAfterPreferredAccountTypeSelect() {\n const { isSiweEnabled } = OptionsController.state;\n const { profileName } = AccountController.state;\n if (isSiweEnabled) {\n RouterController.push('ConnectingSiwe');\n }\n else if (profileName) {\n RouterController.push('Account');\n }\n else {\n RouterController.push('ChooseAccountName');\n }\n }\n};\n//# sourceMappingURL=RouterUtil.js.map","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce(((e,s,o)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[o+1]),t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,adoptStyles,css,getCompatibleStyle,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:r,getOwnPropertyNames:h,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),y={attribute:!0,type:String,converter:u,reflect:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class b extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=y){if(s.state&&(s.attribute=!1),this._$Ei(),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),r=this.getPropertyDescriptor(t,i,s);void 0!==r&&e(this.prototype,t,r)}}static getPropertyDescriptor(t,s,i){const{get:e,set:h}=r(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get(){return e?.call(this)},set(s){const r=e?.call(this);h.call(this,s),this.requestUpdate(t,r,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??y}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...h(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$EC(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const r=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==r?this.removeAttribute(e):this.setAttribute(e,r),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),r=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e,this[e]=r.fromAttribute(s,t.type),this._$Em=null}}requestUpdate(t,s,i){if(void 0!==t){if(i??=this.constructor.getPropertyOptions(t),!(i.hasChanged??f)(this[t],s))return;this.P(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$ET())}P(t,s,i){this._$AL.has(t)||this._$AL.set(t,s),!0===i.reflect&&this._$Em!==t&&(this._$Ej??=new Set).add(t)}async _$ET(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t)!0!==i.wrapped||this._$AL.has(s)||void 0===this[s]||this.P(s,this[s],i)}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$EU()}catch(s){throw t=!1,this._$EU(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Ej&&=this._$Ej.forEach((t=>this._$EC(t,this[t]))),this._$EU()}updated(t){}firstUpdated(t){}}b.elementStyles=[],b.shadowRootOptions={mode:\"open\"},b[d(\"elementProperties\")]=new Map,b[d(\"finalized\")]=new Map,p?.({ReactiveElement:b}),(a.reactiveElementVersions??=[]).push(\"2.0.4\");export{b as ReactiveElement,u as defaultConverter,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,i=t.trustedTypes,s=i?i.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,e=\"$lit$\",h=`lit$${Math.random().toFixed(9).slice(2)}$`,o=\"?\"+h,n=`<${o}>`,r=document,l=()=>r.createComment(\"\"),c=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,a=Array.isArray,u=t=>a(t)||\"function\"==typeof t?.[Symbol.iterator],d=\"[ \\t\\n\\f\\r]\",f=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,v=/-->/g,_=/>/g,m=RegExp(`>|${d}(?:([^\\\\s\"'>=/]+)(${d}*=${d}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),p=/'/g,g=/\"/g,$=/^(?:script|style|textarea|title)$/i,y=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=y(1),b=y(2),w=y(3),T=Symbol.for(\"lit-noChange\"),E=Symbol.for(\"lit-nothing\"),A=new WeakMap,C=r.createTreeWalker(r,129);function P(t,i){if(!a(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==s?s.createHTML(i):i}const V=(t,i)=>{const s=t.length-1,o=[];let r,l=2===i?\"\":3===i?\"\":\"\",c=f;for(let i=0;i\"===u[0]?(c=r??f,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?m:'\"'===u[3]?g:p):c===g||c===p?c=m:c===v||c===_?c=f:(c=m,r=void 0);const x=c===m&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===f?s+n:d>=0?(o.push(a),s.slice(0,d)+e+s.slice(d)+h+x):s+h+(-2===d?i:x)}return[P(t,l+(t[s]||\"\")+(2===i?\"\":3===i?\"\":\"\")),o]};class N{constructor({strings:t,_$litType$:s},n){let r;this.parts=[];let c=0,a=0;const u=t.length-1,d=this.parts,[f,v]=V(t,s);if(this.el=N.createElement(f,n),C.currentNode=this.el.content,2===s||3===s){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=C.nextNode())&&d.length0){r.textContent=i?i.emptyScript:\"\";for(let i=0;i2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=E}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=S(this,t,i,0),o=!c(t)||t!==this._$AH&&t!==T,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new R(i.insertBefore(l(),t),t,void 0,s??{})}return h._$AI(t),h};export{Z as _$LH,x as html,w as mathml,T as noChange,E as nothing,B as render,b as svg};\n//# sourceMappingURL=lit-html.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as s}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class r extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const s=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(s,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return s}}r._$litElement$=!0,r[\"finalized\"]=!0,globalThis.litElementHydrateSupport?.({LitElement:r});const i=globalThis.litElementPolyfillSupport;i?.({LitElement:r});const o={_$AK:(t,e,s)=>{t._$AK(e,s)},_$AL:t=>t._$AL};(globalThis.litElementVersions??=[]).push(\"4.1.1\");export{r as LitElement,o as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","import { svg } from 'lit';\nexport const swapInputMaskBottomSvg = svg `\n \n \n \n \n \n`;\n//# sourceMappingURL=swap-input-mask-bottom.js.map","import { svg } from 'lit';\nexport const swapInputMaskTopSvg = svg `\n \n \n \n \n \n`;\n//# sourceMappingURL=swap-input-mask-top.js.map","import { css, unsafeCSS } from 'lit';\nimport { getW3mThemeVariables } from '@web3modal/common';\nlet themeTag = undefined;\nlet darkModeTag = undefined;\nlet lightModeTag = undefined;\nexport function initializeTheming(themeVariables, themeMode) {\n themeTag = document.createElement('style');\n darkModeTag = document.createElement('style');\n lightModeTag = document.createElement('style');\n themeTag.textContent = createRootStyles(themeVariables).core.cssText;\n darkModeTag.textContent = createRootStyles(themeVariables).dark.cssText;\n lightModeTag.textContent = createRootStyles(themeVariables).light.cssText;\n document.head.appendChild(themeTag);\n document.head.appendChild(darkModeTag);\n document.head.appendChild(lightModeTag);\n setColorTheme(themeMode);\n}\nexport function setColorTheme(themeMode) {\n if (darkModeTag && lightModeTag) {\n if (themeMode === 'light') {\n darkModeTag.removeAttribute('media');\n lightModeTag.media = 'enabled';\n }\n else {\n lightModeTag.removeAttribute('media');\n darkModeTag.media = 'enabled';\n }\n }\n}\nexport function setThemeVariables(themeVariables) {\n if (themeTag && darkModeTag && lightModeTag) {\n themeTag.textContent = createRootStyles(themeVariables).core.cssText;\n darkModeTag.textContent = createRootStyles(themeVariables).dark.cssText;\n lightModeTag.textContent = createRootStyles(themeVariables).light.cssText;\n }\n}\nfunction createRootStyles(themeVariables) {\n return {\n core: css `\n @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');\n :root {\n --w3m-modal-width: 360px;\n --w3m-color-mix-strength: ${unsafeCSS(themeVariables?.['--w3m-color-mix-strength']\n ? `${themeVariables['--w3m-color-mix-strength']}%`\n : '0%')};\n --w3m-font-family: ${unsafeCSS(themeVariables?.['--w3m-font-family'] ||\n 'Inter, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;')};\n --w3m-font-size-master: ${unsafeCSS(themeVariables?.['--w3m-font-size-master'] || '10px')};\n --w3m-border-radius-master: ${unsafeCSS(themeVariables?.['--w3m-border-radius-master'] || '4px')};\n --w3m-z-index: ${unsafeCSS(themeVariables?.['--w3m-z-index'] || 999)};\n\n --wui-font-family: var(--w3m-font-family);\n\n --wui-font-size-mini: calc(var(--w3m-font-size-master) * 0.8);\n --wui-font-size-micro: var(--w3m-font-size-master);\n --wui-font-size-tiny: calc(var(--w3m-font-size-master) * 1.2);\n --wui-font-size-small: calc(var(--w3m-font-size-master) * 1.4);\n --wui-font-size-paragraph: calc(var(--w3m-font-size-master) * 1.6);\n --wui-font-size-medium: calc(var(--w3m-font-size-master) * 1.8);\n --wui-font-size-large: calc(var(--w3m-font-size-master) * 2);\n --wui-font-size-medium-title: calc(var(--w3m-font-size-master) * 2.4);\n --wui-font-size-2xl: calc(var(--w3m-font-size-master) * 4);\n\n --wui-border-radius-5xs: var(--w3m-border-radius-master);\n --wui-border-radius-4xs: calc(var(--w3m-border-radius-master) * 1.5);\n --wui-border-radius-3xs: calc(var(--w3m-border-radius-master) * 2);\n --wui-border-radius-xxs: calc(var(--w3m-border-radius-master) * 3);\n --wui-border-radius-xs: calc(var(--w3m-border-radius-master) * 4);\n --wui-border-radius-s: calc(var(--w3m-border-radius-master) * 5);\n --wui-border-radius-m: calc(var(--w3m-border-radius-master) * 7);\n --wui-border-radius-l: calc(var(--w3m-border-radius-master) * 9);\n --wui-border-radius-3xl: calc(var(--w3m-border-radius-master) * 20);\n\n --wui-font-weight-light: 400;\n --wui-font-weight-regular: 500;\n --wui-font-weight-medium: 600;\n --wui-font-weight-bold: 700;\n\n --wui-letter-spacing-2xl: -1.6px;\n --wui-letter-spacing-medium-title: -0.96px;\n --wui-letter-spacing-large: -0.8px;\n --wui-letter-spacing-medium: -0.72px;\n --wui-letter-spacing-paragraph: -0.64px;\n --wui-letter-spacing-small: -0.56px;\n --wui-letter-spacing-tiny: -0.48px;\n --wui-letter-spacing-micro: -0.2px;\n --wui-letter-spacing-mini: -0.16px;\n\n --wui-spacing-0: 0px;\n --wui-spacing-4xs: 2px;\n --wui-spacing-3xs: 4px;\n --wui-spacing-xxs: 6px;\n --wui-spacing-2xs: 7px;\n --wui-spacing-xs: 8px;\n --wui-spacing-1xs: 10px;\n --wui-spacing-s: 12px;\n --wui-spacing-m: 14px;\n --wui-spacing-l: 16px;\n --wui-spacing-2l: 18px;\n --wui-spacing-xl: 20px;\n --wui-spacing-xxl: 24px;\n --wui-spacing-2xl: 32px;\n --wui-spacing-3xl: 40px;\n --wui-spacing-4xl: 90px;\n --wui-spacing-5xl: 95px;\n\n --wui-icon-box-size-xxs: 14px;\n --wui-icon-box-size-xs: 20px;\n --wui-icon-box-size-sm: 24px;\n --wui-icon-box-size-md: 32px;\n --wui-icon-box-size-lg: 40px;\n --wui-icon-box-size-xl: 64px;\n\n --wui-icon-size-inherit: inherit;\n --wui-icon-size-xxs: 10px;\n --wui-icon-size-xs: 12px;\n --wui-icon-size-sm: 14px;\n --wui-icon-size-md: 16px;\n --wui-icon-size-mdl: 18px;\n --wui-icon-size-lg: 20px;\n --wui-icon-size-xl: 24px;\n --wui-icon-size-xxl: 28px;\n\n --wui-wallet-image-size-inherit: inherit;\n --wui-wallet-image-size-sm: 40px;\n --wui-wallet-image-size-md: 56px;\n --wui-wallet-image-size-lg: 80px;\n\n --wui-visual-size-size-inherit: inherit;\n --wui-visual-size-sm: 40px;\n --wui-visual-size-md: 55px;\n --wui-visual-size-lg: 80px;\n\n --wui-box-size-md: 100px;\n --wui-box-size-lg: 120px;\n\n --wui-ease-out-power-2: cubic-bezier(0, 0, 0.22, 1);\n --wui-ease-out-power-1: cubic-bezier(0, 0, 0.55, 1);\n\n --wui-ease-in-power-3: cubic-bezier(0.66, 0, 1, 1);\n --wui-ease-in-power-2: cubic-bezier(0.45, 0, 1, 1);\n --wui-ease-in-power-1: cubic-bezier(0.3, 0, 1, 1);\n\n --wui-ease-inout-power-1: cubic-bezier(0.45, 0, 0.55, 1);\n\n --wui-duration-lg: 200ms;\n --wui-duration-md: 125ms;\n --wui-duration-sm: 75ms;\n\n --wui-path-network-sm: path(\n 'M15.4 2.1a5.21 5.21 0 0 1 5.2 0l11.61 6.7a5.21 5.21 0 0 1 2.61 4.52v13.4c0 1.87-1 3.59-2.6 4.52l-11.61 6.7c-1.62.93-3.6.93-5.22 0l-11.6-6.7a5.21 5.21 0 0 1-2.61-4.51v-13.4c0-1.87 1-3.6 2.6-4.52L15.4 2.1Z'\n );\n\n --wui-path-network-md: path(\n 'M43.4605 10.7248L28.0485 1.61089C25.5438 0.129705 22.4562 0.129705 19.9515 1.61088L4.53951 10.7248C2.03626 12.2051 0.5 14.9365 0.5 17.886V36.1139C0.5 39.0635 2.03626 41.7949 4.53951 43.2752L19.9515 52.3891C22.4562 53.8703 25.5438 53.8703 28.0485 52.3891L43.4605 43.2752C45.9637 41.7949 47.5 39.0635 47.5 36.114V17.8861C47.5 14.9365 45.9637 12.2051 43.4605 10.7248Z'\n );\n\n --wui-path-network-lg: path(\n 'M78.3244 18.926L50.1808 2.45078C45.7376 -0.150261 40.2624 -0.150262 35.8192 2.45078L7.6756 18.926C3.23322 21.5266 0.5 26.3301 0.5 31.5248V64.4752C0.5 69.6699 3.23322 74.4734 7.6756 77.074L35.8192 93.5492C40.2624 96.1503 45.7376 96.1503 50.1808 93.5492L78.3244 77.074C82.7668 74.4734 85.5 69.6699 85.5 64.4752V31.5248C85.5 26.3301 82.7668 21.5266 78.3244 18.926Z'\n );\n\n --wui-width-network-sm: 36px;\n --wui-width-network-md: 48px;\n --wui-width-network-lg: 86px;\n\n --wui-height-network-sm: 40px;\n --wui-height-network-md: 54px;\n --wui-height-network-lg: 96px;\n\n --wui-icon-size-network-xs: 12px;\n --wui-icon-size-network-sm: 16px;\n --wui-icon-size-network-md: 24px;\n --wui-icon-size-network-lg: 42px;\n\n --wui-color-inherit: inherit;\n\n --wui-color-inverse-100: #fff;\n --wui-color-inverse-000: #000;\n\n --wui-cover: rgba(20, 20, 20, 0.8);\n\n --wui-color-modal-bg: var(--wui-color-modal-bg-base);\n\n --wui-color-accent-100: var(--wui-color-accent-base-100);\n --wui-color-accent-090: var(--wui-color-accent-base-090);\n --wui-color-accent-080: var(--wui-color-accent-base-080);\n\n --wui-color-success-100: var(--wui-color-success-base-100);\n\n --wui-color-error-100: var(--wui-color-error-base-100);\n\n --wui-icon-box-bg-error-100: var(--wui-icon-box-bg-error-base-100);\n --wui-icon-box-bg-blue-100: var(--wui-icon-box-bg-blue-base-100);\n --wui-icon-box-bg-success-100: var(--wui-icon-box-bg-success-base-100);\n --wui-icon-box-bg-inverse-100: var(--wui-icon-box-bg-inverse-base-100);\n\n --wui-all-wallets-bg-100: var(--wui-all-wallets-bg-100);\n\n --wui-avatar-border: var(--wui-avatar-border-base);\n\n --wui-thumbnail-border: var(--wui-thumbnail-border-base);\n\n --wui-box-shadow-blue: var(--wui-color-accent-glass-020);\n }\n\n @supports (background: color-mix(in srgb, white 50%, black)) {\n :root {\n --wui-color-modal-bg: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-modal-bg-base)\n );\n\n --wui-box-shadow-blue: color-mix(in srgb, var(--wui-color-accent-100) 20%, transparent);\n\n --wui-color-accent-100: color-mix(\n in srgb,\n var(--wui-color-accent-base-100) 100%,\n transparent\n );\n --wui-color-accent-090: color-mix(\n in srgb,\n var(--wui-color-accent-base-100) 90%,\n transparent\n );\n --wui-color-accent-080: color-mix(\n in srgb,\n var(--wui-color-accent-base-100) 80%,\n transparent\n );\n --wui-color-accent-glass-090: color-mix(\n in srgb,\n var(--wui-color-accent-base-100) 90%,\n transparent\n );\n --wui-color-accent-glass-080: color-mix(\n in srgb,\n var(--wui-color-accent-base-100) 80%,\n transparent\n );\n --wui-color-accent-glass-020: color-mix(\n in srgb,\n var(--wui-color-accent-base-100) 20%,\n transparent\n );\n --wui-color-accent-glass-015: color-mix(\n in srgb,\n var(--wui-color-accent-base-100) 15%,\n transparent\n );\n --wui-color-accent-glass-010: color-mix(\n in srgb,\n var(--wui-color-accent-base-100) 10%,\n transparent\n );\n --wui-color-accent-glass-005: color-mix(\n in srgb,\n var(--wui-color-accent-base-100) 5%,\n transparent\n );\n --wui-color-accent-002: color-mix(\n in srgb,\n var(--wui-color-accent-base-100) 2%,\n transparent\n );\n\n --wui-color-fg-100: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-fg-100)\n );\n --wui-color-fg-125: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-fg-125)\n );\n --wui-color-fg-150: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-fg-150)\n );\n --wui-color-fg-175: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-fg-175)\n );\n --wui-color-fg-200: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-fg-200)\n );\n --wui-color-fg-225: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-fg-225)\n );\n --wui-color-fg-250: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-fg-250)\n );\n --wui-color-fg-275: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-fg-275)\n );\n --wui-color-fg-300: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-fg-300)\n );\n\n --wui-color-bg-100: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-bg-100)\n );\n --wui-color-bg-125: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-bg-125)\n );\n --wui-color-bg-150: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-bg-150)\n );\n --wui-color-bg-175: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-bg-175)\n );\n --wui-color-bg-200: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-bg-200)\n );\n --wui-color-bg-225: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-bg-225)\n );\n --wui-color-bg-250: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-bg-250)\n );\n --wui-color-bg-275: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-bg-275)\n );\n --wui-color-bg-300: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-bg-300)\n );\n\n --wui-color-success-100: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-success-base-100)\n );\n --wui-color-error-100: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-color-error-base-100)\n );\n\n --wui-icon-box-bg-error-100: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-icon-box-bg-error-base-100)\n );\n --wui-icon-box-bg-accent-100: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-icon-box-bg-blue-base-100)\n );\n --wui-icon-box-bg-success-100: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-icon-box-bg-success-base-100)\n );\n --wui-icon-box-bg-inverse-100: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-icon-box-bg-inverse-base-100)\n );\n\n --wui-all-wallets-bg-100: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-all-wallets-bg-100)\n );\n\n --wui-avatar-border: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-avatar-border-base)\n );\n\n --wui-thumbnail-border: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--wui-thumbnail-border-base)\n );\n }\n }\n `,\n light: css `\n :root {\n --w3m-color-mix: ${unsafeCSS(themeVariables?.['--w3m-color-mix'] || '#fff')};\n --w3m-accent: ${unsafeCSS(getW3mThemeVariables(themeVariables, 'dark')['--w3m-accent'])};\n --w3m-default: #fff;\n\n --wui-color-modal-bg-base: ${unsafeCSS(getW3mThemeVariables(themeVariables, 'dark')['--w3m-background'])};\n --wui-color-accent-base-100: var(--w3m-accent);\n\n --wui-color-blueberry-100: hsla(230, 100%, 67%, 1);\n --wui-color-blueberry-090: hsla(231, 76%, 61%, 1);\n --wui-color-blueberry-080: hsla(230, 59%, 55%, 1);\n\n --wui-color-fg-100: #e4e7e7;\n --wui-color-fg-125: #d0d5d5;\n --wui-color-fg-150: #a8b1b1;\n --wui-color-fg-175: #a8b0b0;\n --wui-color-fg-200: #949e9e;\n --wui-color-fg-225: #868f8f;\n --wui-color-fg-250: #788080;\n --wui-color-fg-275: #788181;\n --wui-color-fg-300: #6e7777;\n\n --wui-color-bg-100: #141414;\n --wui-color-bg-125: #191a1a;\n --wui-color-bg-150: #1e1f1f;\n --wui-color-bg-175: #222525;\n --wui-color-bg-200: #272a2a;\n --wui-color-bg-225: #2c3030;\n --wui-color-bg-250: #313535;\n --wui-color-bg-275: #363b3b;\n --wui-color-bg-300: #3b4040;\n\n --wui-color-success-base-100: #26d962;\n --wui-color-error-base-100: #f25a67;\n\n --wui-color-success-glass-001: rgba(38, 217, 98, 0.01);\n --wui-color-success-glass-002: rgba(38, 217, 98, 0.02);\n --wui-color-success-glass-005: rgba(38, 217, 98, 0.05);\n --wui-color-success-glass-010: rgba(38, 217, 98, 0.1);\n --wui-color-success-glass-015: rgba(38, 217, 98, 0.15);\n --wui-color-success-glass-020: rgba(38, 217, 98, 0.2);\n --wui-color-success-glass-025: rgba(38, 217, 98, 0.25);\n --wui-color-success-glass-030: rgba(38, 217, 98, 0.3);\n --wui-color-success-glass-060: rgba(38, 217, 98, 0.6);\n --wui-color-success-glass-080: rgba(38, 217, 98, 0.8);\n\n --wui-color-error-glass-001: rgba(242, 90, 103, 0.01);\n --wui-color-error-glass-002: rgba(242, 90, 103, 0.02);\n --wui-color-error-glass-005: rgba(242, 90, 103, 0.05);\n --wui-color-error-glass-010: rgba(242, 90, 103, 0.1);\n --wui-color-error-glass-015: rgba(242, 90, 103, 0.15);\n --wui-color-error-glass-020: rgba(242, 90, 103, 0.2);\n --wui-color-error-glass-025: rgba(242, 90, 103, 0.25);\n --wui-color-error-glass-030: rgba(242, 90, 103, 0.3);\n --wui-color-error-glass-060: rgba(242, 90, 103, 0.6);\n --wui-color-error-glass-080: rgba(242, 90, 103, 0.8);\n\n --wui-color-gray-glass-001: rgba(255, 255, 255, 0.01);\n --wui-color-gray-glass-002: rgba(255, 255, 255, 0.02);\n --wui-color-gray-glass-005: rgba(255, 255, 255, 0.05);\n --wui-color-gray-glass-010: rgba(255, 255, 255, 0.1);\n --wui-color-gray-glass-015: rgba(255, 255, 255, 0.15);\n --wui-color-gray-glass-020: rgba(255, 255, 255, 0.2);\n --wui-color-gray-glass-025: rgba(255, 255, 255, 0.25);\n --wui-color-gray-glass-030: rgba(255, 255, 255, 0.3);\n --wui-color-gray-glass-060: rgba(255, 255, 255, 0.6);\n --wui-color-gray-glass-080: rgba(255, 255, 255, 0.8);\n --wui-color-gray-glass-090: rgba(255, 255, 255, 0.9);\n\n --wui-icon-box-bg-error-base-100: #3c2426;\n --wui-icon-box-bg-blue-base-100: #20303f;\n --wui-icon-box-bg-success-base-100: #1f3a28;\n --wui-icon-box-bg-inverse-base-100: #243240;\n\n --wui-all-wallets-bg-100: #222b35;\n\n --wui-avatar-border-base: #252525;\n\n --wui-thumbnail-border-base: #252525;\n }\n `,\n dark: css `\n :root {\n --w3m-color-mix: ${unsafeCSS(themeVariables?.['--w3m-color-mix'] || '#000')};\n --w3m-accent: ${unsafeCSS(getW3mThemeVariables(themeVariables, 'light')['--w3m-accent'])};\n --w3m-default: #000;\n\n --wui-color-modal-bg-base: ${unsafeCSS(getW3mThemeVariables(themeVariables, 'light')['--w3m-background'])};\n --wui-color-accent-base-100: var(--w3m-accent);\n\n --wui-color-blueberry-100: hsla(231, 100%, 70%, 1);\n --wui-color-blueberry-090: hsla(231, 97%, 72%, 1);\n --wui-color-blueberry-080: hsla(231, 92%, 74%, 1);\n\n --wui-color-fg-100: #141414;\n --wui-color-fg-125: #2d3131;\n --wui-color-fg-150: #474d4d;\n --wui-color-fg-175: #636d6d;\n --wui-color-fg-200: #798686;\n --wui-color-fg-225: #828f8f;\n --wui-color-fg-250: #8b9797;\n --wui-color-fg-275: #95a0a0;\n --wui-color-fg-300: #9ea9a9;\n\n --wui-color-bg-100: #ffffff;\n --wui-color-bg-125: #f5fafa;\n --wui-color-bg-150: #f3f8f8;\n --wui-color-bg-175: #eef4f4;\n --wui-color-bg-200: #eaf1f1;\n --wui-color-bg-225: #e5eded;\n --wui-color-bg-250: #e1e9e9;\n --wui-color-bg-275: #dce7e7;\n --wui-color-bg-300: #d8e3e3;\n\n --wui-color-success-base-100: #26b562;\n --wui-color-error-base-100: #f05142;\n\n --wui-color-success-glass-001: rgba(38, 181, 98, 0.01);\n --wui-color-success-glass-002: rgba(38, 181, 98, 0.02);\n --wui-color-success-glass-005: rgba(38, 181, 98, 0.05);\n --wui-color-success-glass-010: rgba(38, 181, 98, 0.1);\n --wui-color-success-glass-015: rgba(38, 181, 98, 0.15);\n --wui-color-success-glass-020: rgba(38, 181, 98, 0.2);\n --wui-color-success-glass-025: rgba(38, 181, 98, 0.25);\n --wui-color-success-glass-030: rgba(38, 181, 98, 0.3);\n --wui-color-success-glass-060: rgba(38, 181, 98, 0.6);\n --wui-color-success-glass-080: rgba(38, 181, 98, 0.8);\n\n --wui-color-error-glass-001: rgba(240, 81, 66, 0.01);\n --wui-color-error-glass-002: rgba(240, 81, 66, 0.02);\n --wui-color-error-glass-005: rgba(240, 81, 66, 0.05);\n --wui-color-error-glass-010: rgba(240, 81, 66, 0.1);\n --wui-color-error-glass-015: rgba(240, 81, 66, 0.15);\n --wui-color-error-glass-020: rgba(240, 81, 66, 0.2);\n --wui-color-error-glass-025: rgba(240, 81, 66, 0.25);\n --wui-color-error-glass-030: rgba(240, 81, 66, 0.3);\n --wui-color-error-glass-060: rgba(240, 81, 66, 0.6);\n --wui-color-error-glass-080: rgba(240, 81, 66, 0.8);\n\n --wui-icon-box-bg-error-base-100: #f4dfdd;\n --wui-icon-box-bg-blue-base-100: #d9ecfb;\n --wui-icon-box-bg-success-base-100: #daf0e4;\n --wui-icon-box-bg-inverse-base-100: #dcecfc;\n\n --wui-all-wallets-bg-100: #e8f1fa;\n\n --wui-avatar-border-base: #f3f4f4;\n\n --wui-thumbnail-border-base: #eaefef;\n\n --wui-color-gray-glass-001: rgba(0, 0, 0, 0.01);\n --wui-color-gray-glass-002: rgba(0, 0, 0, 0.02);\n --wui-color-gray-glass-005: rgba(0, 0, 0, 0.05);\n --wui-color-gray-glass-010: rgba(0, 0, 0, 0.1);\n --wui-color-gray-glass-015: rgba(0, 0, 0, 0.15);\n --wui-color-gray-glass-020: rgba(0, 0, 0, 0.2);\n --wui-color-gray-glass-025: rgba(0, 0, 0, 0.25);\n --wui-color-gray-glass-030: rgba(0, 0, 0, 0.3);\n --wui-color-gray-glass-060: rgba(0, 0, 0, 0.6);\n --wui-color-gray-glass-080: rgba(0, 0, 0, 0.8);\n --wui-color-gray-glass-090: rgba(0, 0, 0, 0.9);\n }\n `\n };\n}\nexport const resetStyles = css `\n *,\n *::after,\n *::before,\n :host {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n font-style: normal;\n text-rendering: optimizeSpeed;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n -webkit-tap-highlight-color: transparent;\n font-family: var(--wui-font-family);\n backface-visibility: hidden;\n }\n`;\nexport const elementStyles = css `\n button,\n a {\n cursor: pointer;\n display: flex;\n justify-content: center;\n align-items: center;\n position: relative;\n transition:\n background-color var(--wui-ease-inout-power-1) var(--wui-duration-md),\n color var(--wui-ease-inout-power-1) var(--wui-duration-md),\n box-shadow var(--wui-ease-inout-power-1) var(--wui-duration-md);\n will-change: background-color, color;\n outline: none;\n border: none;\n column-gap: var(--wui-spacing-3xs);\n background-color: transparent;\n text-decoration: none;\n }\n\n button:disabled > wui-wallet-image,\n button:disabled > wui-all-wallets-image,\n button:disabled > wui-network-image,\n button:disabled > wui-image,\n button:disabled > wui-icon-box,\n button:disabled > wui-transaction-visual,\n button:disabled > wui-logo {\n filter: grayscale(1);\n }\n\n input {\n border: none;\n outline: none;\n appearance: none;\n }\n`;\nexport const colorStyles = css `\n .wui-color-inherit {\n color: var(--wui-color-inherit);\n }\n\n .wui-color-accent-100 {\n color: var(--wui-color-accent-100);\n }\n\n .wui-color-error-100 {\n color: var(--wui-color-error-100);\n }\n\n .wui-color-success-100 {\n color: var(--wui-color-success-100);\n }\n\n .wui-color-inverse-100 {\n color: var(--wui-color-inverse-100);\n }\n\n .wui-color-inverse-000 {\n color: var(--wui-color-inverse-000);\n }\n\n .wui-color-fg-100 {\n color: var(--wui-color-fg-100);\n }\n\n .wui-color-fg-200 {\n color: var(--wui-color-fg-200);\n }\n\n .wui-color-fg-300 {\n color: var(--wui-color-fg-300);\n }\n\n .wui-bg-color-inherit {\n background-color: var(--wui-color-inherit);\n }\n\n .wui-bg-color-blue-100 {\n background-color: var(--wui-color-accent-100);\n }\n\n .wui-bg-color-error-100 {\n background-color: var(--wui-color-error-100);\n }\n\n .wui-bg-color-success-100 {\n background-color: var(--wui-color-success-100);\n }\n\n .wui-bg-color-inverse-100 {\n background-color: var(--wui-color-inverse-100);\n }\n\n .wui-bg-color-inverse-000 {\n background-color: var(--wui-color-inverse-000);\n }\n\n .wui-bg-color-fg-100 {\n background-color: var(--wui-color-fg-100);\n }\n\n .wui-bg-color-fg-200 {\n background-color: var(--wui-color-fg-200);\n }\n\n .wui-bg-color-fg-300 {\n background-color: var(--wui-color-fg-300);\n }\n`;\n//# sourceMappingURL=ThemeUtil.js.map","function standardCustomElement(tagName, descriptor) {\n const { kind, elements } = descriptor;\n return {\n kind,\n elements,\n finisher(clazz) {\n if (!customElements.get(tagName)) {\n customElements.define(tagName, clazz);\n }\n }\n };\n}\nfunction legacyCustomElement(tagName, clazz) {\n if (!customElements.get(tagName)) {\n customElements.define(tagName, clazz);\n }\n return clazz;\n}\nexport function customElement(tagName) {\n return function create(classOrDescriptor) {\n return typeof classOrDescriptor === 'function'\n ? legacyCustomElement(tagName, classOrDescriptor)\n : standardCustomElement(tagName, classOrDescriptor);\n };\n}\n//# sourceMappingURL=WebComponentsUtil.js.map","import { css } from 'lit';\nexport default css `\n :host {\n display: block;\n border-radius: clamp(0px, var(--wui-border-radius-l), 44px);\n box-shadow: 0 0 0 1px var(--wui-color-gray-glass-005);\n background-color: var(--wui-color-modal-bg);\n overflow: hidden;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html } from 'lit';\nimport { resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nlet WuiCard = class WuiCard extends LitElement {\n render() {\n return html ``;\n }\n};\nWuiCard.styles = [resetStyles, styles];\nWuiCard = __decorate([\n customElement('wui-card')\n], WuiCard);\nexport { WuiCard };\n//# sourceMappingURL=index.js.map","import{defaultConverter as t,notEqual as e}from\"../reactive-element.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o={attribute:!0,type:String,converter:t,reflect:!1,hasChanged:e},r=(t=o,e,r)=>{const{kind:n,metadata:i}=r;let s=globalThis.litPropertyMetadata.get(i);if(void 0===s&&globalThis.litPropertyMetadata.set(i,s=new Map),s.set(r.name,t),\"accessor\"===n){const{name:o}=r;return{set(r){const n=e.get.call(this);e.set.call(this,r),this.requestUpdate(o,n,t)},init(e){return void 0!==e&&this.P(o,void 0,t),e}}}if(\"setter\"===n){const{name:o}=r;return function(r){const n=this[o];e.call(this,r),this.requestUpdate(o,n,t)}}throw Error(\"Unsupported decorator location: \"+n)};function n(t){return(e,o)=>\"object\"==typeof o?r(t,e,o):((t,e,o)=>{const r=e.hasOwnProperty(o);return e.constructor.createProperty(o,r?{...t,wrapped:!0}:t),r?Object.getOwnPropertyDescriptor(e,o):void 0})(t,e,o)}export{n as property,r as standardProperty};\n//# sourceMappingURL=property.js.map\n","import{property as t}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function r(r){return t({...r,state:!0,attribute:!1})}export{r as state};\n//# sourceMappingURL=state.js.map\n","import { css } from 'lit';\nexport default css `\n :host {\n display: flex;\n aspect-ratio: 1 / 1;\n color: var(--local-color);\n width: var(--local-width);\n }\n\n svg {\n width: inherit;\n height: inherit;\n object-fit: contain;\n object-position: center;\n }\n`;\n//# sourceMappingURL=styles.js.map","import { svg } from 'lit';\nexport const addSvg = svg `\n `;\n//# sourceMappingURL=add.js.map","import { svg } from 'lit';\nexport const allWalletsSvg = svg `\n \n`;\n//# sourceMappingURL=all-wallets.js.map","import { svg } from 'lit';\nexport const arrowBottomCircleSvg = svg `\n `;\n//# sourceMappingURL=arrow-bottom-circle.js.map","import { svg } from 'lit';\nexport const appStoreSvg = svg `\n\n \n \n \n \n \n \n \n \n`;\n//# sourceMappingURL=app-store.js.map","import { svg } from 'lit';\nexport const appleSvg = svg `\n \n \n \n \n \n \n \n \n \n \n \n \n \n`;\n//# sourceMappingURL=apple.js.map","import { svg } from 'lit';\nexport const arrowBottomSvg = svg `\n \n`;\n//# sourceMappingURL=arrow-bottom.js.map","import { svg } from 'lit';\nexport const arrowLeftSvg = svg `\n \n`;\n//# sourceMappingURL=arrow-left.js.map","import { svg } from 'lit';\nexport const arrowRightSvg = svg `\n \n`;\n//# sourceMappingURL=arrow-right.js.map","import { svg } from 'lit';\nexport const arrowTopSvg = svg `\n \n`;\n//# sourceMappingURL=arrow-top.js.map","import { svg } from 'lit';\nexport const bankSvg = svg `\n `;\n//# sourceMappingURL=bank.js.map","import { svg } from 'lit';\nexport const browserSvg = svg `\n \n \n`;\n//# sourceMappingURL=browser.js.map","import { svg } from 'lit';\nexport const cardSvg = svg `\n `;\n//# sourceMappingURL=card.js.map","import { svg } from 'lit';\nexport const checkmarkBoldSvg = svg `\n \n`;\n//# sourceMappingURL=checkmark-bold.js.map","import { svg } from 'lit';\nexport const checkmarkSvg = svg `\n \n\n`;\n//# sourceMappingURL=checkmark.js.map","import { svg } from 'lit';\nexport const chevronBottomSvg = svg `\n \n`;\n//# sourceMappingURL=chevron-bottom.js.map","import { svg } from 'lit';\nexport const chevronLeftSvg = svg `\n \n`;\n//# sourceMappingURL=chevron-left.js.map","import { svg } from 'lit';\nexport const chevronRightSvg = svg `\n \n`;\n//# sourceMappingURL=chevron-right.js.map","import { svg } from 'lit';\nexport const chevronTopSvg = svg `\n \n`;\n//# sourceMappingURL=chevron-top.js.map","import { svg } from 'lit';\nexport const chromeStoreSvg = svg `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n`;\n//# sourceMappingURL=chrome-store.js.map","import { svg } from 'lit';\nexport const clockSvg = svg `\n \n`;\n//# sourceMappingURL=clock.js.map","import { svg } from 'lit';\nexport const closeSvg = svg `\n \n`;\n//# sourceMappingURL=close.js.map","import { svg } from 'lit';\nexport const coinPlaceholderSvg = svg `\n \n`;\n//# sourceMappingURL=coinPlaceholder.js.map","import { svg } from 'lit';\nexport const compassSvg = svg `\n \n`;\n//# sourceMappingURL=compass.js.map","import { svg } from 'lit';\nexport const copySvg = svg `\n `;\n//# sourceMappingURL=copy.js.map","import { svg } from 'lit';\nexport const cursorSvg = svg ` \n \n`;\n//# sourceMappingURL=cursor.js.map","import { svg } from 'lit';\nexport const cursorTransparentSvg = svg `\n \n \n \n `;\n//# sourceMappingURL=cursor-transparent.js.map","import { svg } from 'lit';\nexport const desktopSvg = svg `\n \n \n`;\n//# sourceMappingURL=desktop.js.map","import { svg } from 'lit';\nexport const disconnectSvg = svg `\n \n`;\n//# sourceMappingURL=disconnect.js.map","import { svg } from 'lit';\nexport const discordSvg = svg `\n \n \n \n \n \n \n \n \n \n \n`;\n//# sourceMappingURL=discord.js.map","import { svg } from 'lit';\nexport const etherscanSvg = svg `\n \n`;\n//# sourceMappingURL=etherscan.js.map","import { svg } from 'lit';\nexport const extensionSvg = svg `\n \n`;\n//# sourceMappingURL=extension.js.map","import { svg } from 'lit';\nexport const externalLinkSvg = svg `\n \n`;\n//# sourceMappingURL=external-link.js.map","import { svg } from 'lit';\nexport const facebookSvg = svg `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n`;\n//# sourceMappingURL=facebook.js.map","import { svg } from 'lit';\nexport const filtersSvg = svg `\n \n`;\n//# sourceMappingURL=filters.js.map","import { svg } from 'lit';\nexport const githubSvg = svg `\n \n \n \n \n \n \n \n \n \n \n \n \n \n`;\n//# sourceMappingURL=github.js.map","import { svg } from 'lit';\nexport const googleSvg = svg `\n \n \n \n \n`;\n//# sourceMappingURL=google.js.map","import { svg } from 'lit';\nexport const helpCircleSvg = svg `\n \n \n`;\n//# sourceMappingURL=help-circle.js.map","import { svg } from 'lit';\nexport const infoCircleSvg = svg `\n \n \n`;\n//# sourceMappingURL=info-circle.js.map","import { svg } from 'lit';\nexport const mailSvg = svg `\n \n`;\n//# sourceMappingURL=mail.js.map","import { svg } from 'lit';\nexport const mobileSvg = svg `\n \n \n`;\n//# sourceMappingURL=mobile.js.map","import { svg } from 'lit';\nexport const moreSvg = svg `\n \n \n`;\n//# sourceMappingURL=more.js.map","import { svg } from 'lit';\nexport const networkPlaceholderSvg = svg `\n \n \n`;\n//# sourceMappingURL=network-placeholder.js.map","import { svg } from 'lit';\nexport const nftPlaceholderSvg = svg `\n \n`;\n//# sourceMappingURL=nftPlaceholder.js.map","import { svg } from 'lit';\nexport const offSvg = svg `\n \n`;\n//# sourceMappingURL=off.js.map","import { svg } from 'lit';\nexport const playStoreSvg = svg ` \n \n \n \n \n \n \n`;\n//# sourceMappingURL=play-store.js.map","import { svg } from 'lit';\nexport const plusSvg = svg `\n `;\n//# sourceMappingURL=plus.js.map","import { svg } from 'lit';\nexport const qrCodeIcon = svg `\n \n`;\n//# sourceMappingURL=qr-code.js.map","import { svg } from 'lit';\nexport const recycleHorizontalSvg = svg `\n `;\n//# sourceMappingURL=recycle-horizontal.js.map","import { svg } from 'lit';\nexport const refreshSvg = svg `\n \n`;\n//# sourceMappingURL=refresh.js.map","import { svg } from 'lit';\nexport const searchSvg = svg `\n \n`;\n//# sourceMappingURL=search.js.map","import { svg } from 'lit';\nexport const sendSvg = svg `\n \n `;\n//# sourceMappingURL=send.js.map","import { svg } from 'lit';\nexport const swapHorizontalSvg = svg `\n \n`;\n//# sourceMappingURL=swapHorizontal.js.map","import { svg } from 'lit';\nexport const swapHorizontalBoldSvg = svg `\n \n`;\n//# sourceMappingURL=swapHorizontalBold.js.map","import { svg } from 'lit';\nexport const swapHorizontalMediumSvg = svg `\n \n\n\n`;\n//# sourceMappingURL=swapHorizontalMedium.js.map","import { svg } from 'lit';\nexport const swapHorizontalRoundedBoldSvg = svg `\n \n`;\n//# sourceMappingURL=swapHorizontalRoundedBold.js.map","import { svg } from 'lit';\nexport const swapVerticalSvg = svg `\n \n`;\n//# sourceMappingURL=swapVertical.js.map","import { svg } from 'lit';\nexport const telegramSvg = svg `\n \n \n \n \n \n \n \n \n \n \n `;\n//# sourceMappingURL=telegram.js.map","import { svg } from 'lit';\nexport const twitchSvg = svg `\n \n \n \n \n \n \n \n \n \n \n \n \n \n`;\n//# sourceMappingURL=twitch.js.map","import { svg } from 'lit';\nexport const twitterIconSvg = svg `\n \n`;\n//# sourceMappingURL=twitterIcon.js.map","import { svg } from 'lit';\nexport const verifySvg = svg `\n \n`;\n//# sourceMappingURL=verify.js.map","import { svg } from 'lit';\nexport const verifyFilledSvg = svg `\n \n`;\n//# sourceMappingURL=verify-filled.js.map","import { svg } from 'lit';\nexport const walletPlaceholderSvg = svg `\n \n \n \n \n`;\n//# sourceMappingURL=wallet-placeholder.js.map","import { svg } from 'lit';\nexport const walletSvg = svg `\n \n`;\n//# sourceMappingURL=wallet.js.map","import { svg } from 'lit';\nexport const walletConnectSvg = svg `\n \n \n`;\n//# sourceMappingURL=walletconnect.js.map","import { svg } from 'lit';\nexport const warningCircleSvg = svg `\n \n \n`;\n//# sourceMappingURL=warning-circle.js.map","import { svg } from 'lit';\nexport const idSvg = svg `\n \n`;\n//# sourceMappingURL=id.js.map","import { svg } from 'lit';\nexport const xSvg = svg `\n \n \n \n \n \n \n \n`;\n//# sourceMappingURL=x.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { colorStyles, resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nimport { addSvg } from '../../assets/svg/add.js';\nimport { allWalletsSvg } from '../../assets/svg/all-wallets.js';\nimport { arrowBottomCircleSvg } from '../../assets/svg/arrow-bottom-circle.js';\nimport { appStoreSvg } from '../../assets/svg/app-store.js';\nimport { appleSvg } from '../../assets/svg/apple.js';\nimport { arrowBottomSvg } from '../../assets/svg/arrow-bottom.js';\nimport { arrowLeftSvg } from '../../assets/svg/arrow-left.js';\nimport { arrowRightSvg } from '../../assets/svg/arrow-right.js';\nimport { arrowTopSvg } from '../../assets/svg/arrow-top.js';\nimport { bankSvg } from '../../assets/svg/bank.js';\nimport { browserSvg } from '../../assets/svg/browser.js';\nimport { cardSvg } from '../../assets/svg/card.js';\nimport { checkmarkBoldSvg } from '../../assets/svg/checkmark-bold.js';\nimport { checkmarkSvg } from '../../assets/svg/checkmark.js';\nimport { chevronBottomSvg } from '../../assets/svg/chevron-bottom.js';\nimport { chevronLeftSvg } from '../../assets/svg/chevron-left.js';\nimport { chevronRightSvg } from '../../assets/svg/chevron-right.js';\nimport { chevronTopSvg } from '../../assets/svg/chevron-top.js';\nimport { chromeStoreSvg } from '../../assets/svg/chrome-store.js';\nimport { clockSvg } from '../../assets/svg/clock.js';\nimport { closeSvg } from '../../assets/svg/close.js';\nimport { coinPlaceholderSvg } from '../../assets/svg/coinPlaceholder.js';\nimport { compassSvg } from '../../assets/svg/compass.js';\nimport { copySvg } from '../../assets/svg/copy.js';\nimport { cursorSvg } from '../../assets/svg/cursor.js';\nimport { cursorTransparentSvg } from '../../assets/svg/cursor-transparent.js';\nimport { desktopSvg } from '../../assets/svg/desktop.js';\nimport { disconnectSvg } from '../../assets/svg/disconnect.js';\nimport { discordSvg } from '../../assets/svg/discord.js';\nimport { etherscanSvg } from '../../assets/svg/etherscan.js';\nimport { extensionSvg } from '../../assets/svg/extension.js';\nimport { externalLinkSvg } from '../../assets/svg/external-link.js';\nimport { facebookSvg } from '../../assets/svg/facebook.js';\nimport { filtersSvg } from '../../assets/svg/filters.js';\nimport { githubSvg } from '../../assets/svg/github.js';\nimport { googleSvg } from '../../assets/svg/google.js';\nimport { helpCircleSvg } from '../../assets/svg/help-circle.js';\nimport { infoCircleSvg } from '../../assets/svg/info-circle.js';\nimport { mailSvg } from '../../assets/svg/mail.js';\nimport { mobileSvg } from '../../assets/svg/mobile.js';\nimport { moreSvg } from '../../assets/svg/more.js';\nimport { networkPlaceholderSvg } from '../../assets/svg/network-placeholder.js';\nimport { nftPlaceholderSvg } from '../../assets/svg/nftPlaceholder.js';\nimport { offSvg } from '../../assets/svg/off.js';\nimport { playStoreSvg } from '../../assets/svg/play-store.js';\nimport { plusSvg } from '../../assets/svg/plus.js';\nimport { qrCodeIcon } from '../../assets/svg/qr-code.js';\nimport { recycleHorizontalSvg } from '../../assets/svg/recycle-horizontal.js';\nimport { refreshSvg } from '../../assets/svg/refresh.js';\nimport { searchSvg } from '../../assets/svg/search.js';\nimport { sendSvg } from '../../assets/svg/send.js';\nimport { swapHorizontalSvg } from '../../assets/svg/swapHorizontal.js';\nimport { swapHorizontalBoldSvg } from '../../assets/svg/swapHorizontalBold.js';\nimport { swapHorizontalMediumSvg } from '../../assets/svg/swapHorizontalMedium.js';\nimport { swapHorizontalRoundedBoldSvg } from '../../assets/svg/swapHorizontalRoundedBold.js';\nimport { swapVerticalSvg } from '../../assets/svg/swapVertical.js';\nimport { telegramSvg } from '../../assets/svg/telegram.js';\nimport { twitchSvg } from '../../assets/svg/twitch.js';\nimport { twitterIconSvg } from '../../assets/svg/twitterIcon.js';\nimport { verifySvg } from '../../assets/svg/verify.js';\nimport { verifyFilledSvg } from '../../assets/svg/verify-filled.js';\nimport { walletPlaceholderSvg } from '../../assets/svg/wallet-placeholder.js';\nimport { walletSvg } from '../../assets/svg/wallet.js';\nimport { walletConnectSvg } from '../../assets/svg/walletconnect.js';\nimport { warningCircleSvg } from '../../assets/svg/warning-circle.js';\nimport { idSvg } from '../../assets/svg/id.js';\nimport { xSvg } from '../../assets/svg/x.js';\nconst svgOptions = {\n add: addSvg,\n allWallets: allWalletsSvg,\n arrowBottomCircle: arrowBottomCircleSvg,\n appStore: appStoreSvg,\n apple: appleSvg,\n arrowBottom: arrowBottomSvg,\n arrowLeft: arrowLeftSvg,\n arrowRight: arrowRightSvg,\n arrowTop: arrowTopSvg,\n bank: bankSvg,\n browser: browserSvg,\n card: cardSvg,\n checkmark: checkmarkSvg,\n checkmarkBold: checkmarkBoldSvg,\n chevronBottom: chevronBottomSvg,\n chevronLeft: chevronLeftSvg,\n chevronRight: chevronRightSvg,\n chevronTop: chevronTopSvg,\n chromeStore: chromeStoreSvg,\n clock: clockSvg,\n close: closeSvg,\n compass: compassSvg,\n coinPlaceholder: coinPlaceholderSvg,\n copy: copySvg,\n cursor: cursorSvg,\n cursorTransparent: cursorTransparentSvg,\n desktop: desktopSvg,\n disconnect: disconnectSvg,\n discord: discordSvg,\n etherscan: etherscanSvg,\n extension: extensionSvg,\n externalLink: externalLinkSvg,\n facebook: facebookSvg,\n filters: filtersSvg,\n github: githubSvg,\n google: googleSvg,\n helpCircle: helpCircleSvg,\n id: idSvg,\n infoCircle: infoCircleSvg,\n mail: mailSvg,\n mobile: mobileSvg,\n more: moreSvg,\n networkPlaceholder: networkPlaceholderSvg,\n nftPlaceholder: nftPlaceholderSvg,\n off: offSvg,\n playStore: playStoreSvg,\n plus: plusSvg,\n qrCode: qrCodeIcon,\n recycleHorizontal: recycleHorizontalSvg,\n refresh: refreshSvg,\n search: searchSvg,\n send: sendSvg,\n swapHorizontal: swapHorizontalSvg,\n swapHorizontalMedium: swapHorizontalMediumSvg,\n swapHorizontalBold: swapHorizontalBoldSvg,\n swapHorizontalRoundedBold: swapHorizontalRoundedBoldSvg,\n swapVertical: swapVerticalSvg,\n telegram: telegramSvg,\n twitch: twitchSvg,\n twitter: xSvg,\n twitterIcon: twitterIconSvg,\n verify: verifySvg,\n verifyFilled: verifyFilledSvg,\n wallet: walletSvg,\n walletConnect: walletConnectSvg,\n walletPlaceholder: walletPlaceholderSvg,\n warningCircle: warningCircleSvg,\n x: xSvg\n};\nlet WuiIcon = class WuiIcon extends LitElement {\n constructor() {\n super(...arguments);\n this.size = 'md';\n this.name = 'copy';\n this.color = 'fg-300';\n }\n render() {\n this.style.cssText = `\n --local-color: ${`var(--wui-color-${this.color});`}\n --local-width: ${`var(--wui-icon-size-${this.size});`}\n `;\n return html `${svgOptions[this.name]}`;\n }\n};\nWuiIcon.styles = [resetStyles, colorStyles, styles];\n__decorate([\n property()\n], WuiIcon.prototype, \"size\", void 0);\n__decorate([\n property()\n], WuiIcon.prototype, \"name\", void 0);\n__decorate([\n property()\n], WuiIcon.prototype, \"color\", void 0);\nWuiIcon = __decorate([\n customElement('wui-icon')\n], WuiIcon);\nexport { WuiIcon };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n display: block;\n width: var(--local-width);\n height: var(--local-height);\n }\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center center;\n border-radius: inherit;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { colorStyles, resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nlet WuiImage = class WuiImage extends LitElement {\n constructor() {\n super(...arguments);\n this.src = './path/to/image.jpg';\n this.alt = 'Image';\n this.size = undefined;\n }\n render() {\n this.style.cssText = `\n --local-width: ${this.size ? `var(--wui-icon-size-${this.size});` : '100%'};\n --local-height: ${this.size ? `var(--wui-icon-size-${this.size});` : '100%'};\n `;\n return html `${this.alt}`;\n }\n};\nWuiImage.styles = [resetStyles, colorStyles, styles];\n__decorate([\n property()\n], WuiImage.prototype, \"src\", void 0);\n__decorate([\n property()\n], WuiImage.prototype, \"alt\", void 0);\n__decorate([\n property()\n], WuiImage.prototype, \"size\", void 0);\nWuiImage = __decorate([\n customElement('wui-image')\n], WuiImage);\nexport { WuiImage };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n display: block;\n width: var(--wui-box-size-lg);\n height: var(--wui-box-size-lg);\n }\n\n svg {\n width: var(--wui-box-size-lg);\n height: var(--wui-box-size-lg);\n fill: none;\n stroke: transparent;\n stroke-linecap: round;\n }\n\n use {\n stroke: var(--wui-color-accent-100);\n stroke-width: 2px;\n stroke-dasharray: 54, 118;\n stroke-dashoffset: 172;\n animation: dash 1s linear infinite;\n }\n\n @keyframes dash {\n to {\n stroke-dashoffset: 0px;\n }\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nlet WuiLoadingHexagon = class WuiLoadingHexagon extends LitElement {\n render() {\n return html `\n \n \n \n \n `;\n }\n};\nWuiLoadingHexagon.styles = [resetStyles, styles];\nWuiLoadingHexagon = __decorate([\n customElement('wui-loading-hexagon')\n], WuiLoadingHexagon);\nexport { WuiLoadingHexagon };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n display: flex;\n }\n\n :host([data-size='sm']) > svg {\n width: 12px;\n height: 12px;\n }\n\n :host([data-size='md']) > svg {\n width: 16px;\n height: 16px;\n }\n\n :host([data-size='lg']) > svg {\n width: 24px;\n height: 24px;\n }\n\n :host([data-size='xl']) > svg {\n width: 32px;\n height: 32px;\n }\n\n svg {\n animation: rotate 2s linear infinite;\n }\n\n circle {\n fill: none;\n stroke: var(--local-color);\n stroke-width: 4px;\n stroke-dasharray: 1, 124;\n stroke-dashoffset: 0;\n stroke-linecap: round;\n animation: dash 1.5s ease-in-out infinite;\n }\n\n :host([data-size='md']) > svg > circle {\n stroke-width: 6px;\n }\n\n :host([data-size='sm']) > svg > circle {\n stroke-width: 8px;\n }\n\n @keyframes rotate {\n 100% {\n transform: rotate(360deg);\n }\n }\n\n @keyframes dash {\n 0% {\n stroke-dasharray: 1, 124;\n stroke-dashoffset: 0;\n }\n\n 50% {\n stroke-dasharray: 90, 124;\n stroke-dashoffset: -35;\n }\n\n 100% {\n stroke-dashoffset: -125;\n }\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nlet WuiLoadingSpinner = class WuiLoadingSpinner extends LitElement {\n constructor() {\n super(...arguments);\n this.color = 'accent-100';\n this.size = 'lg';\n }\n render() {\n this.style.cssText = `--local-color: ${this.color === 'inherit' ? 'inherit' : `var(--wui-color-${this.color})`}`;\n this.dataset['size'] = this.size;\n return html `\n \n `;\n }\n};\nWuiLoadingSpinner.styles = [resetStyles, styles];\n__decorate([\n property()\n], WuiLoadingSpinner.prototype, \"color\", void 0);\n__decorate([\n property()\n], WuiLoadingSpinner.prototype, \"size\", void 0);\nWuiLoadingSpinner = __decorate([\n customElement('wui-loading-spinner')\n], WuiLoadingSpinner);\nexport { WuiLoadingSpinner };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n display: block;\n width: var(--wui-box-size-md);\n height: var(--wui-box-size-md);\n }\n\n svg {\n width: var(--wui-box-size-md);\n height: var(--wui-box-size-md);\n }\n\n rect {\n fill: none;\n stroke: var(--wui-color-accent-100);\n stroke-width: 4px;\n stroke-linecap: round;\n animation: dash 1s linear infinite;\n }\n\n @keyframes dash {\n to {\n stroke-dashoffset: 0px;\n }\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nlet WuiLoadingThumbnail = class WuiLoadingThumbnail extends LitElement {\n constructor() {\n super(...arguments);\n this.radius = 36;\n }\n render() {\n return this.svgLoaderTemplate();\n }\n svgLoaderTemplate() {\n const radius = this.radius > 50 ? 50 : this.radius;\n const standardValue = 36;\n const radiusFactor = standardValue - radius;\n const dashArrayStart = 116 + radiusFactor;\n const dashArrayEnd = 245 + radiusFactor;\n const dashOffset = 360 + radiusFactor * 1.75;\n return html `\n \n \n \n `;\n }\n};\nWuiLoadingThumbnail.styles = [resetStyles, styles];\n__decorate([\n property({ type: Number })\n], WuiLoadingThumbnail.prototype, \"radius\", void 0);\nWuiLoadingThumbnail = __decorate([\n customElement('wui-loading-thumbnail')\n], WuiLoadingThumbnail);\nexport { WuiLoadingThumbnail };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n display: block;\n box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-005);\n background: linear-gradient(\n 120deg,\n var(--wui-color-bg-200) 5%,\n var(--wui-color-bg-200) 48%,\n var(--wui-color-bg-300) 55%,\n var(--wui-color-bg-300) 60%,\n var(--wui-color-bg-300) calc(60% + 10px),\n var(--wui-color-bg-200) calc(60% + 12px),\n var(--wui-color-bg-200) 100%\n );\n background-size: 250%;\n animation: shimmer 3s linear infinite reverse;\n }\n\n :host([variant='light']) {\n background: linear-gradient(\n 120deg,\n var(--wui-color-bg-150) 5%,\n var(--wui-color-bg-150) 48%,\n var(--wui-color-bg-200) 55%,\n var(--wui-color-bg-200) 60%,\n var(--wui-color-bg-200) calc(60% + 10px),\n var(--wui-color-bg-150) calc(60% + 12px),\n var(--wui-color-bg-150) 100%\n );\n background-size: 250%;\n }\n\n @keyframes shimmer {\n from {\n background-position: -250% 0;\n }\n to {\n background-position: 250% 0;\n }\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nlet WuiShimmer = class WuiShimmer extends LitElement {\n constructor() {\n super(...arguments);\n this.width = '';\n this.height = '';\n this.borderRadius = 'm';\n this.variant = 'default';\n }\n render() {\n this.style.cssText = `\n width: ${this.width};\n height: ${this.height};\n border-radius: ${`clamp(0px,var(--wui-border-radius-${this.borderRadius}), 40px)`};\n `;\n return html ``;\n }\n};\nWuiShimmer.styles = [styles];\n__decorate([\n property()\n], WuiShimmer.prototype, \"width\", void 0);\n__decorate([\n property()\n], WuiShimmer.prototype, \"height\", void 0);\n__decorate([\n property()\n], WuiShimmer.prototype, \"borderRadius\", void 0);\n__decorate([\n property()\n], WuiShimmer.prototype, \"variant\", void 0);\nWuiShimmer = __decorate([\n customElement('wui-shimmer')\n], WuiShimmer);\nexport { WuiShimmer };\n//# sourceMappingURL=index.js.map","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n","import{noChange as t}from\"../lit-html.js\";import{directive as s,Directive as i,PartType as r}from\"../directive.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const e=s(class extends i{constructor(t){if(super(t),t.type!==r.ATTRIBUTE||\"class\"!==t.name||t.strings?.length>2)throw Error(\"`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.\")}render(t){return\" \"+Object.keys(t).filter((s=>t[s])).join(\" \")+\" \"}update(s,[i]){if(void 0===this.st){this.st=new Set,void 0!==s.strings&&(this.nt=new Set(s.strings.join(\" \").split(/\\s/).filter((t=>\"\"!==t))));for(const t in i)i[t]&&!this.nt?.has(t)&&this.st.add(t);return this.render(i)}const r=s.element.classList;for(const t of this.st)t in i||(r.remove(t),this.st.delete(t));for(const t in i){const s=!!i[t];s===this.st.has(t)||this.nt?.has(t)||(s?(r.add(t),this.st.add(t)):(r.remove(t),this.st.delete(t)))}return t}});export{e as classMap};\n//# sourceMappingURL=class-map.js.map\n","import { css } from 'lit';\nexport default css `\n :host {\n display: inline-flex !important;\n }\n\n slot {\n width: 100%;\n display: inline-block;\n font-style: normal;\n font-family: var(--wui-font-family);\n font-feature-settings:\n 'tnum' on,\n 'lnum' on,\n 'case' on;\n line-height: 130%;\n font-weight: var(--wui-font-weight-regular);\n overflow: inherit;\n text-overflow: inherit;\n text-align: var(--local-align);\n color: var(--local-color);\n }\n\n .wui-font-medium-400 {\n font-size: var(--wui-font-size-medium);\n font-weight: var(--wui-font-weight-light);\n letter-spacing: var(--wui-letter-spacing-medium);\n }\n\n .wui-font-medium-600 {\n font-size: var(--wui-font-size-medium);\n letter-spacing: var(--wui-letter-spacing-medium);\n }\n\n .wui-font-medium-title-600 {\n font-size: var(--wui-font-size-medium-title);\n letter-spacing: var(--wui-letter-spacing-medium-title);\n }\n\n .wui-font-mini-700 {\n font-size: var(--wui-font-size-mini);\n letter-spacing: var(--wui-letter-spacing-mini);\n text-transform: uppercase;\n }\n\n .wui-font-large-500,\n .wui-font-large-600,\n .wui-font-large-700 {\n font-size: var(--wui-font-size-large);\n letter-spacing: var(--wui-letter-spacing-large);\n }\n\n .wui-font-2xl-500,\n .wui-font-2xl-600,\n .wui-font-2xl-700 {\n font-size: var(--wui-font-size-2xl);\n letter-spacing: var(--wui-letter-spacing-2xl);\n }\n\n .wui-font-paragraph-400,\n .wui-font-paragraph-500,\n .wui-font-paragraph-600,\n .wui-font-paragraph-700 {\n font-size: var(--wui-font-size-paragraph);\n letter-spacing: var(--wui-letter-spacing-paragraph);\n }\n\n .wui-font-small-400,\n .wui-font-small-500,\n .wui-font-small-600 {\n font-size: var(--wui-font-size-small);\n letter-spacing: var(--wui-letter-spacing-small);\n }\n\n .wui-font-tiny-400,\n .wui-font-tiny-500,\n .wui-font-tiny-600 {\n font-size: var(--wui-font-size-tiny);\n letter-spacing: var(--wui-letter-spacing-tiny);\n }\n\n .wui-font-micro-700,\n .wui-font-micro-600 {\n font-size: var(--wui-font-size-micro);\n letter-spacing: var(--wui-letter-spacing-micro);\n text-transform: uppercase;\n }\n\n .wui-font-tiny-400,\n .wui-font-small-400,\n .wui-font-paragraph-400 {\n font-weight: var(--wui-font-weight-light);\n }\n\n .wui-font-large-700,\n .wui-font-paragraph-700,\n .wui-font-micro-700,\n .wui-font-mini-700 {\n font-weight: var(--wui-font-weight-bold);\n }\n\n .wui-font-medium-600,\n .wui-font-medium-title-600,\n .wui-font-large-600,\n .wui-font-paragraph-600,\n .wui-font-small-600,\n .wui-font-tiny-600,\n .wui-font-micro-600 {\n font-weight: var(--wui-font-weight-medium);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nlet WuiText = class WuiText extends LitElement {\n constructor() {\n super(...arguments);\n this.variant = 'paragraph-500';\n this.color = 'fg-300';\n this.align = 'left';\n }\n render() {\n const classes = {\n [`wui-font-${this.variant}`]: true,\n [`wui-color-${this.color}`]: true\n };\n this.style.cssText = `\n --local-align: ${this.align};\n --local-color: var(--wui-color-${this.color});\n `;\n return html ``;\n }\n};\nWuiText.styles = [resetStyles, styles];\n__decorate([\n property()\n], WuiText.prototype, \"variant\", void 0);\n__decorate([\n property()\n], WuiText.prototype, \"color\", void 0);\n__decorate([\n property()\n], WuiText.prototype, \"align\", void 0);\nWuiText = __decorate([\n customElement('wui-text')\n], WuiText);\nexport { WuiText };\n//# sourceMappingURL=index.js.map","import { svg } from 'lit';\nexport const browserSvg = svg `\n \n \n \n \n \n \n \n `;\n//# sourceMappingURL=browser.js.map","import { svg } from 'lit';\nexport const daoSvg = svg `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n `;\n//# sourceMappingURL=dao.js.map","import { svg } from 'lit';\nexport const defiSvg = svg `\n \n \n \n \n \n \n \n \n \n \n \n \n`;\n//# sourceMappingURL=defi.js.map","import { svg } from 'lit';\nexport const defiAltSvg = svg `\n \n \n \n \n \n \n \n \n \n \n \n \n `;\n//# sourceMappingURL=defiAlt.js.map","import { svg } from 'lit';\nexport const ethSvg = svg `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n `;\n//# sourceMappingURL=eth.js.map","import { svg } from 'lit';\nexport const layersSvg = svg `\n \n \n \n \n \n`;\n//# sourceMappingURL=layers.js.map","import { svg } from 'lit';\nexport const lockSvg = svg `\n \n \n \n \n \n`;\n//# sourceMappingURL=lock.js.map","import { svg } from 'lit';\nexport const loginSvg = svg `\n \n \n \n \n \n \n \n \n \n `;\n//# sourceMappingURL=login.js.map","import { svg } from 'lit';\nexport const networkSvg = svg `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n`;\n//# sourceMappingURL=network.js.map","import { svg } from 'lit';\nexport const nftSvg = svg `\n \n \n \n \n \n \n \n \n \n `;\n//# sourceMappingURL=nft.js.map","import { svg } from 'lit';\nexport const nounSvg = svg `\n \n \n \n \n \n \n \n \n`;\n//# sourceMappingURL=noun.js.map","import { svg } from 'lit';\nexport const profileSvg = svg `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n `;\n//# sourceMappingURL=profile.js.map","import { svg } from 'lit';\nexport const systemSvg = svg `\n \n \n \n \n \n \n \n \n \n \n \n \n \n `;\n//# sourceMappingURL=system.js.map","import { svg } from 'lit';\nexport const coinbaseSvg = svg `\n \n \n \n \n \n \n \n \n \n`;\n//# sourceMappingURL=coinbase.js.map","import { svg } from 'lit';\nexport const moonpaySvg = svg `\n \n \n \n \n \n \n \n \n \n \n`;\n//# sourceMappingURL=moonpay.js.map","import { svg } from 'lit';\nexport const stripeSvg = svg `\n \n \n \n \n \n \n \n \n \n \n`;\n//# sourceMappingURL=stripe.js.map","import { svg } from 'lit';\nexport const paypalSvg = svg `\n \n \n \n \n \n \n \n \n \n \n \n \n`;\n//# sourceMappingURL=paypal.js.map","import { svg } from 'lit';\nexport const onrampCardSvg = svg `\n\n \n \n \n \n \n\n\n \n \n \n\n`;\n//# sourceMappingURL=onramp-card.js.map","import { svg } from 'lit';\nexport const googleSvg = svg `\n \n \n \n \n \n \n \n \n\n`;\n//# sourceMappingURL=google.js.map","import { svg } from 'lit';\nexport const pencilSvg = svg `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n`;\n//# sourceMappingURL=pencil.js.map","import { svg } from 'lit';\nexport const lightbulbSvg = svg `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n`;\n//# sourceMappingURL=lightbulb.js.map","import { css } from 'lit';\nexport default css `\n :host {\n display: block;\n width: var(--local-size);\n height: var(--local-size);\n }\n\n :host svg {\n width: 100%;\n height: 100%;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { browserSvg } from '../../assets/visual/browser.js';\nimport { daoSvg } from '../../assets/visual/dao.js';\nimport { defiSvg } from '../../assets/visual/defi.js';\nimport { defiAltSvg } from '../../assets/visual/defiAlt.js';\nimport { ethSvg } from '../../assets/visual/eth.js';\nimport { layersSvg } from '../../assets/visual/layers.js';\nimport { lockSvg } from '../../assets/visual/lock.js';\nimport { loginSvg } from '../../assets/visual/login.js';\nimport { networkSvg } from '../../assets/visual/network.js';\nimport { nftSvg } from '../../assets/visual/nft.js';\nimport { nounSvg } from '../../assets/visual/noun.js';\nimport { profileSvg } from '../../assets/visual/profile.js';\nimport { systemSvg } from '../../assets/visual/system.js';\nimport { resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport { coinbaseSvg } from '../../assets/visual/coinbase.js';\nimport { moonpaySvg } from '../../assets/visual/moonpay.js';\nimport { stripeSvg } from '../../assets/visual/stripe.js';\nimport { paypalSvg } from '../../assets/visual/paypal.js';\nimport { onrampCardSvg } from '../../assets/visual/onramp-card.js';\nimport { googleSvg } from '../../assets/visual/google.js';\nimport { pencilSvg } from '../../assets/visual/pencil.js';\nimport { lightbulbSvg } from '../../assets/visual/lightbulb.js';\nimport styles from './styles.js';\nconst svgOptions = {\n browser: browserSvg,\n dao: daoSvg,\n defi: defiSvg,\n defiAlt: defiAltSvg,\n eth: ethSvg,\n layers: layersSvg,\n lock: lockSvg,\n login: loginSvg,\n network: networkSvg,\n nft: nftSvg,\n noun: nounSvg,\n profile: profileSvg,\n system: systemSvg,\n coinbase: coinbaseSvg,\n onrampCard: onrampCardSvg,\n moonpay: moonpaySvg,\n stripe: stripeSvg,\n paypal: paypalSvg,\n google: googleSvg,\n pencil: pencilSvg,\n lightbulb: lightbulbSvg\n};\nlet WuiVisual = class WuiVisual extends LitElement {\n constructor() {\n super(...arguments);\n this.name = 'browser';\n this.size = 'md';\n }\n render() {\n this.style.cssText = `\n --local-size: var(--wui-visual-size-${this.size});\n `;\n return html `${svgOptions[this.name]}`;\n }\n};\nWuiVisual.styles = [resetStyles, styles];\n__decorate([\n property()\n], WuiVisual.prototype, \"name\", void 0);\n__decorate([\n property()\n], WuiVisual.prototype, \"size\", void 0);\nWuiVisual = __decorate([\n customElement('wui-visual')\n], WuiVisual);\nexport { WuiVisual };\n//# sourceMappingURL=index.js.map","import{nothing as t}from\"../lit-html.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o=o=>o??t;export{o as ifDefined};\n//# sourceMappingURL=if-defined.js.map\n","export const UiHelperUtil = {\n getSpacingStyles(spacing, index) {\n if (Array.isArray(spacing)) {\n return spacing[index] ? `var(--wui-spacing-${spacing[index]})` : undefined;\n }\n else if (typeof spacing === 'string') {\n return `var(--wui-spacing-${spacing})`;\n }\n return undefined;\n },\n getFormattedDate(date) {\n return new Intl.DateTimeFormat('en-US', { month: 'short', day: 'numeric' }).format(date);\n },\n getHostName(url) {\n try {\n const newUrl = new URL(url);\n return newUrl.hostname;\n }\n catch (error) {\n return '';\n }\n },\n getTruncateString({ string, charsStart, charsEnd, truncate }) {\n if (string.length <= charsStart + charsEnd) {\n return string;\n }\n if (truncate === 'end') {\n return `${string.substring(0, charsStart)}...`;\n }\n else if (truncate === 'start') {\n return `...${string.substring(string.length - charsEnd)}`;\n }\n return `${string.substring(0, Math.floor(charsStart))}...${string.substring(string.length - Math.floor(charsEnd))}`;\n },\n generateAvatarColors(address) {\n const hash = address.toLowerCase().replace(/^0x/iu, '');\n const baseColor = hash.substring(0, 6);\n const rgbColor = this.hexToRgb(baseColor);\n const masterBorderRadius = getComputedStyle(document.documentElement).getPropertyValue('--w3m-border-radius-master');\n const radius = Number(masterBorderRadius?.replace('px', ''));\n const edge = 100 - 3 * radius;\n const gradientCircle = `${edge}% ${edge}% at 65% 40%`;\n const colors = [];\n for (let i = 0; i < 5; i += 1) {\n const tintedColor = this.tintColor(rgbColor, 0.15 * i);\n colors.push(`rgb(${tintedColor[0]}, ${tintedColor[1]}, ${tintedColor[2]})`);\n }\n return `\n --local-color-1: ${colors[0]};\n --local-color-2: ${colors[1]};\n --local-color-3: ${colors[2]};\n --local-color-4: ${colors[3]};\n --local-color-5: ${colors[4]};\n --local-radial-circle: ${gradientCircle}\n `;\n },\n hexToRgb(hex) {\n const bigint = parseInt(hex, 16);\n const r = (bigint >> 16) & 255;\n const g = (bigint >> 8) & 255;\n const b = bigint & 255;\n return [r, g, b];\n },\n tintColor(rgb, tint) {\n const [r, g, b] = rgb;\n const tintedR = Math.round(r + (255 - r) * tint);\n const tintedG = Math.round(g + (255 - g) * tint);\n const tintedB = Math.round(b + (255 - b) * tint);\n return [tintedR, tintedG, tintedB];\n },\n isNumber(character) {\n const regex = {\n number: /^[0-9]+$/u\n };\n return regex.number.test(character);\n },\n getColorTheme(theme) {\n if (theme) {\n return theme;\n }\n else if (typeof window !== 'undefined' && window.matchMedia) {\n if (window.matchMedia('(prefers-color-scheme: dark)').matches) {\n return 'dark';\n }\n return 'light';\n }\n return 'dark';\n },\n splitBalance(input) {\n const parts = input.split('.');\n if (parts.length === 2) {\n return [parts[0], parts[1]];\n }\n return ['0', '00'];\n },\n roundNumber(number, threshold, fixed) {\n const roundedNumber = number.toString().length >= threshold ? Number(number).toFixed(fixed) : number;\n return roundedNumber;\n },\n formatNumberToLocalString(value, decimals = 2) {\n if (value === undefined) {\n return '0.00';\n }\n if (typeof value === 'number') {\n return value.toLocaleString('en-US', {\n maximumFractionDigits: decimals,\n minimumFractionDigits: decimals\n });\n }\n return parseFloat(value).toLocaleString('en-US', {\n maximumFractionDigits: decimals,\n minimumFractionDigits: decimals\n });\n }\n};\n//# sourceMappingURL=UiHelperUtil.js.map","import { css } from 'lit';\nexport default css `\n :host {\n display: flex;\n width: inherit;\n height: inherit;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { resetStyles } from '../../utils/ThemeUtil.js';\nimport { UiHelperUtil } from '../../utils/UiHelperUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nlet WuiFlex = class WuiFlex extends LitElement {\n render() {\n this.style.cssText = `\n flex-direction: ${this.flexDirection};\n flex-wrap: ${this.flexWrap};\n flex-basis: ${this.flexBasis};\n flex-grow: ${this.flexGrow};\n flex-shrink: ${this.flexShrink};\n align-items: ${this.alignItems};\n justify-content: ${this.justifyContent};\n column-gap: ${this.columnGap && `var(--wui-spacing-${this.columnGap})`};\n row-gap: ${this.rowGap && `var(--wui-spacing-${this.rowGap})`};\n gap: ${this.gap && `var(--wui-spacing-${this.gap})`};\n padding-top: ${this.padding && UiHelperUtil.getSpacingStyles(this.padding, 0)};\n padding-right: ${this.padding && UiHelperUtil.getSpacingStyles(this.padding, 1)};\n padding-bottom: ${this.padding && UiHelperUtil.getSpacingStyles(this.padding, 2)};\n padding-left: ${this.padding && UiHelperUtil.getSpacingStyles(this.padding, 3)};\n margin-top: ${this.margin && UiHelperUtil.getSpacingStyles(this.margin, 0)};\n margin-right: ${this.margin && UiHelperUtil.getSpacingStyles(this.margin, 1)};\n margin-bottom: ${this.margin && UiHelperUtil.getSpacingStyles(this.margin, 2)};\n margin-left: ${this.margin && UiHelperUtil.getSpacingStyles(this.margin, 3)};\n `;\n return html ``;\n }\n};\nWuiFlex.styles = [resetStyles, styles];\n__decorate([\n property()\n], WuiFlex.prototype, \"flexDirection\", void 0);\n__decorate([\n property()\n], WuiFlex.prototype, \"flexWrap\", void 0);\n__decorate([\n property()\n], WuiFlex.prototype, \"flexBasis\", void 0);\n__decorate([\n property()\n], WuiFlex.prototype, \"flexGrow\", void 0);\n__decorate([\n property()\n], WuiFlex.prototype, \"flexShrink\", void 0);\n__decorate([\n property()\n], WuiFlex.prototype, \"alignItems\", void 0);\n__decorate([\n property()\n], WuiFlex.prototype, \"justifyContent\", void 0);\n__decorate([\n property()\n], WuiFlex.prototype, \"columnGap\", void 0);\n__decorate([\n property()\n], WuiFlex.prototype, \"rowGap\", void 0);\n__decorate([\n property()\n], WuiFlex.prototype, \"gap\", void 0);\n__decorate([\n property()\n], WuiFlex.prototype, \"padding\", void 0);\n__decorate([\n property()\n], WuiFlex.prototype, \"margin\", void 0);\nWuiFlex = __decorate([\n customElement('wui-flex')\n], WuiFlex);\nexport { WuiFlex };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n display: block;\n width: var(--wui-icon-box-size-xl);\n height: var(--wui-icon-box-size-xl);\n border-radius: var(--wui-border-radius-3xl);\n box-shadow: 0 0 0 8px var(--wui-color-gray-glass-005);\n overflow: hidden;\n position: relative;\n }\n\n :host([data-variant='generated']) {\n --mixed-local-color-1: var(--local-color-1);\n --mixed-local-color-2: var(--local-color-2);\n --mixed-local-color-3: var(--local-color-3);\n --mixed-local-color-4: var(--local-color-4);\n --mixed-local-color-5: var(--local-color-5);\n }\n\n @supports (background: color-mix(in srgb, white 50%, black)) {\n :host([data-variant='generated']) {\n --mixed-local-color-1: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--local-color-1)\n );\n --mixed-local-color-2: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--local-color-2)\n );\n --mixed-local-color-3: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--local-color-3)\n );\n --mixed-local-color-4: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--local-color-4)\n );\n --mixed-local-color-5: color-mix(\n in srgb,\n var(--w3m-color-mix) var(--w3m-color-mix-strength),\n var(--local-color-5)\n );\n }\n }\n\n :host([data-variant='generated']) {\n box-shadow: 0 0 0 8px var(--wui-color-gray-glass-005);\n background: radial-gradient(\n var(--local-radial-circle),\n #fff 0.52%,\n var(--mixed-local-color-5) 31.25%,\n var(--mixed-local-color-3) 51.56%,\n var(--mixed-local-color-2) 65.63%,\n var(--mixed-local-color-1) 82.29%,\n var(--mixed-local-color-4) 100%\n );\n }\n\n :host([data-variant='default']) {\n box-shadow: 0 0 0 8px var(--wui-color-gray-glass-005);\n background: radial-gradient(\n 75.29% 75.29% at 64.96% 24.36%,\n #fff 0.52%,\n #f5ccfc 31.25%,\n #dba4f5 51.56%,\n #9a8ee8 65.63%,\n #6493da 82.29%,\n #6ebdea 100%\n );\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport '../../components/wui-image/index.js';\nimport { resetStyles } from '../../utils/ThemeUtil.js';\nimport { UiHelperUtil } from '../../utils/UiHelperUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nlet WuiAvatar = class WuiAvatar extends LitElement {\n constructor() {\n super(...arguments);\n this.imageSrc = undefined;\n this.alt = undefined;\n this.address = undefined;\n }\n render() {\n return html `${this.visualTemplate()}`;\n }\n visualTemplate() {\n if (this.imageSrc) {\n this.dataset['variant'] = 'image';\n return html ``;\n }\n else if (this.address) {\n this.dataset['variant'] = 'generated';\n const cssColors = UiHelperUtil.generateAvatarColors(this.address);\n this.style.cssText = cssColors;\n return null;\n }\n this.dataset['variant'] = 'default';\n return null;\n }\n};\nWuiAvatar.styles = [resetStyles, styles];\n__decorate([\n property()\n], WuiAvatar.prototype, \"imageSrc\", void 0);\n__decorate([\n property()\n], WuiAvatar.prototype, \"alt\", void 0);\n__decorate([\n property()\n], WuiAvatar.prototype, \"address\", void 0);\nWuiAvatar = __decorate([\n customElement('wui-avatar')\n], WuiAvatar);\nexport { WuiAvatar };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n position: relative;\n overflow: hidden;\n background-color: var(--wui-color-gray-glass-020);\n border-radius: var(--local-border-radius);\n border: var(--local-border);\n box-sizing: content-box;\n width: var(--local-size);\n height: var(--local-size);\n min-height: var(--local-size);\n min-width: var(--local-size);\n }\n\n @supports (background: color-mix(in srgb, white 50%, black)) {\n :host {\n background-color: color-mix(in srgb, var(--local-bg-value) var(--local-bg-mix), transparent);\n }\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport '../../components/wui-icon/index.js';\nimport { elementStyles, resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nlet WuiIconBox = class WuiIconBox extends LitElement {\n constructor() {\n super(...arguments);\n this.size = 'md';\n this.backgroundColor = 'accent-100';\n this.iconColor = 'accent-100';\n this.background = 'transparent';\n this.border = false;\n this.borderColor = 'wui-color-bg-125';\n this.icon = 'copy';\n }\n render() {\n const iconSize = this.iconSize || this.size;\n const isLg = this.size === 'lg';\n const isXl = this.size === 'xl';\n const bgMix = isLg ? '12%' : '16%';\n const borderRadius = isLg ? 'xxs' : isXl ? 's' : '3xl';\n const isGray = this.background === 'gray';\n const isOpaque = this.background === 'opaque';\n const isColorChange = (this.backgroundColor === 'accent-100' && isOpaque) ||\n (this.backgroundColor === 'success-100' && isOpaque) ||\n (this.backgroundColor === 'error-100' && isOpaque) ||\n (this.backgroundColor === 'inverse-100' && isOpaque);\n let bgValueVariable = `var(--wui-color-${this.backgroundColor})`;\n if (isColorChange) {\n bgValueVariable = `var(--wui-icon-box-bg-${this.backgroundColor})`;\n }\n else if (isGray) {\n bgValueVariable = `var(--wui-gray-${this.backgroundColor})`;\n }\n this.style.cssText = `\n --local-bg-value: ${bgValueVariable};\n --local-bg-mix: ${isColorChange || isGray ? `100%` : bgMix};\n --local-border-radius: var(--wui-border-radius-${borderRadius});\n --local-size: var(--wui-icon-box-size-${this.size});\n --local-border: ${this.borderColor === 'wui-color-bg-125' ? `2px` : `1px`} solid ${this.border ? `var(--${this.borderColor})` : `transparent`}\n `;\n return html ` `;\n }\n};\nWuiIconBox.styles = [resetStyles, elementStyles, styles];\n__decorate([\n property()\n], WuiIconBox.prototype, \"size\", void 0);\n__decorate([\n property()\n], WuiIconBox.prototype, \"backgroundColor\", void 0);\n__decorate([\n property()\n], WuiIconBox.prototype, \"iconColor\", void 0);\n__decorate([\n property()\n], WuiIconBox.prototype, \"iconSize\", void 0);\n__decorate([\n property()\n], WuiIconBox.prototype, \"background\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiIconBox.prototype, \"border\", void 0);\n__decorate([\n property()\n], WuiIconBox.prototype, \"borderColor\", void 0);\n__decorate([\n property()\n], WuiIconBox.prototype, \"icon\", void 0);\nWuiIconBox = __decorate([\n customElement('wui-icon-box')\n], WuiIconBox);\nexport { WuiIconBox };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n display: block;\n }\n\n button {\n border-radius: var(--wui-border-radius-3xl);\n background: var(--wui-color-gray-glass-002);\n display: flex;\n gap: var(--wui-spacing-xs);\n padding: var(--wui-spacing-3xs) var(--wui-spacing-xs) var(--wui-spacing-3xs)\n var(--wui-spacing-xs);\n border: 1px solid var(--wui-color-gray-glass-005);\n }\n\n button:disabled {\n background: var(--wui-color-gray-glass-015);\n }\n\n button:disabled > wui-text {\n color: var(--wui-color-gray-glass-015);\n }\n\n button:disabled > wui-flex > wui-text {\n color: var(--wui-color-gray-glass-015);\n }\n\n button:disabled > wui-image,\n button:disabled > wui-icon-box,\n button:disabled > wui-flex > wui-avatar {\n filter: grayscale(1);\n }\n\n button:has(wui-image) {\n padding: var(--wui-spacing-3xs) var(--wui-spacing-3xs) var(--wui-spacing-3xs)\n var(--wui-spacing-xs);\n }\n\n wui-text {\n color: var(--wui-color-fg-100);\n }\n\n wui-flex > wui-text {\n color: var(--wui-color-fg-200);\n }\n\n wui-image,\n wui-icon-box {\n border-radius: var(--wui-border-radius-3xl);\n width: 24px;\n height: 24px;\n box-shadow: 0 0 0 2px var(--wui-color-gray-glass-005);\n }\n\n wui-flex {\n border-radius: var(--wui-border-radius-3xl);\n border: 1px solid var(--wui-color-gray-glass-005);\n background: var(--wui-color-gray-glass-005);\n padding: 4px var(--wui-spacing-m) 4px var(--wui-spacing-xxs);\n }\n\n button.local-no-balance {\n border-radius: 0px;\n border: none;\n background: transparent;\n }\n\n wui-avatar {\n width: 20px;\n height: 20px;\n box-shadow: 0 0 0 2px var(--wui-color-accent-glass-010);\n }\n\n @media (max-width: 500px) {\n button {\n gap: 0px;\n padding: var(--wui-spacing-3xs) var(--wui-spacing-xs) !important;\n height: 32px;\n }\n wui-image,\n wui-icon-box,\n button > wui-text {\n visibility: hidden;\n width: 0px;\n height: 0px;\n }\n button {\n border-radius: 0px;\n border: none;\n background: transparent;\n padding: 0px;\n }\n }\n\n @media (hover: hover) and (pointer: fine) {\n button:hover:enabled > wui-flex > wui-text {\n color: var(--wui-color-fg-175);\n }\n\n button:active:enabled > wui-flex > wui-text {\n color: var(--wui-color-fg-175);\n }\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport '../../components/wui-image/index.js';\nimport '../../components/wui-text/index.js';\nimport '../../layout/wui-flex/index.js';\nimport { elementStyles, resetStyles } from '../../utils/ThemeUtil.js';\nimport { UiHelperUtil } from '../../utils/UiHelperUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport '../wui-avatar/index.js';\nimport '../wui-icon-box/index.js';\nimport styles from './styles.js';\nlet WuiAccountButton = class WuiAccountButton extends LitElement {\n constructor() {\n super(...arguments);\n this.networkSrc = undefined;\n this.avatarSrc = undefined;\n this.balance = undefined;\n this.isUnsupportedChain = undefined;\n this.disabled = false;\n this.address = '';\n this.profileName = '';\n this.charsStart = 4;\n this.charsEnd = 6;\n }\n render() {\n return html `\n \n ${this.balanceTemplate()}\n \n \n \n ${this.address\n ? UiHelperUtil.getTruncateString({\n string: this.profileName || this.address,\n charsStart: this.profileName ? 18 : this.charsStart,\n charsEnd: this.profileName ? 0 : this.charsEnd,\n truncate: this.profileName ? 'end' : 'middle'\n })\n : null}\n \n \n \n `;\n }\n balanceTemplate() {\n if (this.isUnsupportedChain) {\n return html ` \n Switch Network`;\n }\n if (this.balance) {\n const networkElement = this.networkSrc\n ? html ``\n : html `\n \n `;\n return html `\n ${networkElement}\n ${this.balance}\n `;\n }\n return null;\n }\n};\nWuiAccountButton.styles = [resetStyles, elementStyles, styles];\n__decorate([\n property()\n], WuiAccountButton.prototype, \"networkSrc\", void 0);\n__decorate([\n property()\n], WuiAccountButton.prototype, \"avatarSrc\", void 0);\n__decorate([\n property()\n], WuiAccountButton.prototype, \"balance\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiAccountButton.prototype, \"isUnsupportedChain\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiAccountButton.prototype, \"disabled\", void 0);\n__decorate([\n property()\n], WuiAccountButton.prototype, \"address\", void 0);\n__decorate([\n property()\n], WuiAccountButton.prototype, \"profileName\", void 0);\n__decorate([\n property()\n], WuiAccountButton.prototype, \"charsStart\", void 0);\n__decorate([\n property()\n], WuiAccountButton.prototype, \"charsEnd\", void 0);\nWuiAccountButton = __decorate([\n customElement('wui-account-button')\n], WuiAccountButton);\nexport { WuiAccountButton };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n position: relative;\n background-color: var(--wui-color-gray-glass-002);\n display: flex;\n justify-content: center;\n align-items: center;\n width: var(--local-size);\n height: var(--local-size);\n border-radius: inherit;\n border-radius: var(--local-border-radius);\n }\n\n :host > wui-flex {\n overflow: hidden;\n border-radius: inherit;\n border-radius: var(--local-border-radius);\n }\n\n :host::after {\n content: '';\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n border-radius: inherit;\n border: 1px solid var(--wui-color-gray-glass-010);\n pointer-events: none;\n }\n\n :host([name='Extension'])::after {\n border: 1px solid var(--wui-color-accent-glass-010);\n }\n\n :host([data-wallet-icon='allWallets']) {\n background-color: var(--wui-all-wallets-bg-100);\n }\n\n :host([data-wallet-icon='allWallets'])::after {\n border: 1px solid var(--wui-color-accent-glass-010);\n }\n\n wui-icon[data-parent-size='inherit'] {\n width: 75%;\n height: 75%;\n align-items: center;\n }\n\n wui-icon[data-parent-size='sm'] {\n width: 18px;\n height: 18px;\n }\n\n wui-icon[data-parent-size='md'] {\n width: 24px;\n height: 24px;\n }\n\n wui-icon[data-parent-size='lg'] {\n width: 42px;\n height: 42px;\n }\n\n wui-icon[data-parent-size='full'] {\n width: 100%;\n height: 100%;\n }\n\n :host > wui-icon-box {\n position: absolute;\n overflow: hidden;\n right: -1px;\n bottom: -2px;\n z-index: 1;\n border: 2px solid var(--wui-color-bg-150, #1e1f1f);\n padding: 1px;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport '../../components/wui-icon/index.js';\nimport '../../components/wui-image/index.js';\nimport { resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport '../wui-icon-box/index.js';\nimport styles from './styles.js';\nlet WuiWalletImage = class WuiWalletImage extends LitElement {\n constructor() {\n super(...arguments);\n this.size = 'md';\n this.name = '';\n this.installed = false;\n this.badgeSize = 'xs';\n }\n render() {\n let borderRadius = 'xxs';\n if (this.size === 'lg') {\n borderRadius = 'm';\n }\n else if (this.size === 'md') {\n borderRadius = 'xs';\n }\n else {\n borderRadius = 'xxs';\n }\n this.style.cssText = `\n --local-border-radius: var(--wui-border-radius-${borderRadius});\n --local-size: var(--wui-wallet-image-size-${this.size});\n `;\n if (this.walletIcon) {\n this.dataset['walletIcon'] = this.walletIcon;\n }\n return html `\n ${this.templateVisual()} \n `;\n }\n templateVisual() {\n if (this.imageSrc) {\n return html ``;\n }\n else if (this.walletIcon) {\n return html ``;\n }\n return html ``;\n }\n};\nWuiWalletImage.styles = [resetStyles, styles];\n__decorate([\n property()\n], WuiWalletImage.prototype, \"size\", void 0);\n__decorate([\n property()\n], WuiWalletImage.prototype, \"name\", void 0);\n__decorate([\n property()\n], WuiWalletImage.prototype, \"imageSrc\", void 0);\n__decorate([\n property()\n], WuiWalletImage.prototype, \"walletIcon\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiWalletImage.prototype, \"installed\", void 0);\n__decorate([\n property()\n], WuiWalletImage.prototype, \"badgeSize\", void 0);\nWuiWalletImage = __decorate([\n customElement('wui-wallet-image')\n], WuiWalletImage);\nexport { WuiWalletImage };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n position: relative;\n border-radius: var(--wui-border-radius-xxs);\n width: 40px;\n height: 40px;\n overflow: hidden;\n background: var(--wui-color-gray-glass-002);\n display: flex;\n justify-content: center;\n align-items: center;\n flex-wrap: wrap;\n gap: var(--wui-spacing-4xs);\n padding: 3.75px !important;\n }\n\n :host::after {\n content: '';\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n border-radius: inherit;\n border: 1px solid var(--wui-color-gray-glass-010);\n pointer-events: none;\n }\n\n :host > wui-wallet-image {\n width: 14px;\n height: 14px;\n border-radius: var(--wui-border-radius-5xs);\n }\n\n :host > wui-flex {\n padding: 2px;\n position: fixed;\n overflow: hidden;\n left: 34px;\n bottom: 8px;\n background: var(--dark-background-150, #1e1f1f);\n border-radius: 50%;\n z-index: 2;\n display: flex;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport '../wui-wallet-image/index.js';\nimport '../wui-icon-box/index.js';\nimport styles from './styles.js';\nconst TOTAL_IMAGES = 4;\nlet WuiAllWalletsImage = class WuiAllWalletsImage extends LitElement {\n constructor() {\n super(...arguments);\n this.walletImages = [];\n }\n render() {\n const isPlaceholders = this.walletImages.length < TOTAL_IMAGES;\n return html `${this.walletImages\n .slice(0, TOTAL_IMAGES)\n .map(({ src, walletName }) => html `\n \n `)}\n ${isPlaceholders\n ? [...Array(TOTAL_IMAGES - this.walletImages.length)].map(() => html ` `)\n : null}\n \n \n `;\n }\n};\nWuiAllWalletsImage.styles = [resetStyles, styles];\n__decorate([\n property({ type: Array })\n], WuiAllWalletsImage.prototype, \"walletImages\", void 0);\nWuiAllWalletsImage = __decorate([\n customElement('wui-all-wallets-image')\n], WuiAllWalletsImage);\nexport { WuiAllWalletsImage };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n width: var(--local-width);\n position: relative;\n }\n\n button {\n border: none;\n border-radius: var(--local-border-radius);\n width: var(--local-width);\n white-space: nowrap;\n }\n\n /* -- Sizes --------------------------------------------------- */\n button[data-size='md'] {\n padding: 8.2px var(--wui-spacing-l) 9px var(--wui-spacing-l);\n height: 36px;\n }\n\n button[data-size='md'][data-icon-left='true'][data-icon-right='false'] {\n padding: 8.2px var(--wui-spacing-l) 9px var(--wui-spacing-s);\n }\n\n button[data-size='md'][data-icon-right='true'][data-icon-left='false'] {\n padding: 8.2px var(--wui-spacing-s) 9px var(--wui-spacing-l);\n }\n\n button[data-size='lg'] {\n padding: var(--wui-spacing-m) var(--wui-spacing-2l);\n height: 48px;\n }\n\n /* -- Variants --------------------------------------------------------- */\n button[data-variant='main'] {\n background-color: var(--wui-color-accent-100);\n color: var(--wui-color-inverse-100);\n border: none;\n box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-010);\n }\n\n button[data-variant='inverse'] {\n background-color: var(--wui-color-inverse-100);\n color: var(--wui-color-inverse-000);\n border: none;\n box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-010);\n }\n\n button[data-variant='accent'] {\n background-color: var(--wui-color-accent-glass-010);\n color: var(--wui-color-accent-100);\n border: none;\n box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-005);\n }\n\n button[data-variant='accent-error'] {\n background: var(--wui-color-error-glass-015);\n color: var(--wui-color-error-100);\n border: none;\n box-shadow: inset 0 0 0 1px var(--wui-color-error-glass-010);\n }\n\n button[data-variant='accent-success'] {\n background: var(--wui-color-success-glass-015);\n color: var(--wui-color-success-100);\n border: none;\n box-shadow: inset 0 0 0 1px var(--wui-color-success-glass-010);\n }\n\n button[data-variant='neutral'] {\n background: transparent;\n color: var(--wui-color-fg-100);\n border: none;\n box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-005);\n }\n\n /* -- Focus states --------------------------------------------------- */\n button[data-variant='main']:focus-visible:enabled {\n background-color: var(--wui-color-accent-090);\n box-shadow:\n inset 0 0 0 1px var(--wui-color-accent-100),\n 0 0 0 4px var(--wui-color-accent-glass-020);\n }\n button[data-variant='inverse']:focus-visible:enabled {\n background-color: var(--wui-color-inverse-100);\n box-shadow:\n inset 0 0 0 1px var(--wui-color-gray-glass-010),\n 0 0 0 4px var(--wui-color-accent-glass-020);\n }\n button[data-variant='accent']:focus-visible:enabled {\n background-color: var(--wui-color-accent-glass-010);\n box-shadow:\n inset 0 0 0 1px var(--wui-color-accent-100),\n 0 0 0 4px var(--wui-color-accent-glass-020);\n }\n button[data-variant='accent-error']:focus-visible:enabled {\n background: var(--wui-color-error-glass-015);\n box-shadow:\n inset 0 0 0 1px var(--wui-color-error-100),\n 0 0 0 4px var(--wui-color-error-glass-020);\n }\n button[data-variant='accent-success']:focus-visible:enabled {\n background: var(--wui-color-success-glass-015);\n box-shadow:\n inset 0 0 0 1px var(--wui-color-success-100),\n 0 0 0 4px var(--wui-color-success-glass-020);\n }\n button[data-variant='neutral']:focus-visible:enabled {\n background: var(--wui-color-gray-glass-005);\n box-shadow:\n inset 0 0 0 1px var(--wui-color-gray-glass-010),\n 0 0 0 4px var(--wui-color-gray-glass-002);\n }\n\n /* -- Hover & Active states ----------------------------------------------------------- */\n button[data-variant='main']:hover:enabled {\n background-color: var(--wui-color-accent-090);\n }\n\n button[data-variant='main']:active:enabled {\n background-color: var(--wui-color-accent-080);\n }\n\n button[data-variant='inverse']:hover:enabled {\n background-color: var(--wui-color-inverse-100);\n }\n\n button[data-variant='accent']:hover:enabled {\n background-color: var(--wui-color-accent-glass-010);\n }\n\n button[data-variant='accent-error']:hover:enabled {\n background: var(--wui-color-error-glass-015);\n color: var(--wui-color-error-100);\n }\n\n button[data-variant='accent-success']:hover:enabled {\n background: var(--wui-color-success-glass-015);\n color: var(--wui-color-success-100);\n }\n\n button[data-variant='neutral']:hover:enabled {\n background: var(--wui-color-gray-glass-005);\n }\n\n button[data-size='lg'][data-icon-left='true'][data-icon-right='false'] {\n padding-left: var(--wui-spacing-m);\n }\n\n button[data-size='lg'][data-icon-right='true'][data-icon-left='false'] {\n padding-right: var(--wui-spacing-m);\n }\n\n /* -- Disabled state --------------------------------------------------- */\n button:disabled {\n background-color: var(--wui-color-gray-glass-002);\n box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-002);\n color: var(--wui-color-gray-glass-020);\n cursor: not-allowed;\n }\n\n button > wui-text {\n transition: opacity var(--wui-ease-out-power-1) var(--wui-duration-md);\n will-change: opacity;\n opacity: var(--local-opacity-100);\n }\n\n ::slotted(*) {\n transition: opacity var(--wui-ease-out-power-1) var(--wui-duration-md);\n will-change: opacity;\n opacity: var(--local-opacity-100);\n }\n\n wui-loading-spinner {\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n opacity: var(--local-opacity-000);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport '../../components/wui-icon/index.js';\nimport '../../components/wui-loading-spinner/index.js';\nimport '../../components/wui-text/index.js';\nimport { elementStyles, resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nconst SPINNER_COLOR_BY_VARIANT = {\n main: 'inverse-100',\n inverse: 'inverse-000',\n accent: 'accent-100',\n 'accent-error': 'error-100',\n 'accent-success': 'success-100',\n neutral: 'fg-100',\n disabled: 'gray-glass-020'\n};\nconst TEXT_VARIANT_BY_SIZE = {\n lg: 'paragraph-600',\n md: 'small-600'\n};\nconst SPINNER_SIZE_BY_SIZE = {\n lg: 'md',\n md: 'md'\n};\nlet WuiButton = class WuiButton extends LitElement {\n constructor() {\n super(...arguments);\n this.size = 'lg';\n this.disabled = false;\n this.fullWidth = false;\n this.loading = false;\n this.variant = 'main';\n this.hasIconLeft = false;\n this.hasIconRight = false;\n this.borderRadius = 'm';\n }\n render() {\n this.style.cssText = `\n --local-width: ${this.fullWidth ? '100%' : 'auto'};\n --local-opacity-100: ${this.loading ? 0 : 1};\n --local-opacity-000: ${this.loading ? 1 : 0};\n --local-border-radius: var(--wui-border-radius-${this.borderRadius});\n `;\n const textVariant = this.textVariant ?? TEXT_VARIANT_BY_SIZE[this.size];\n return html `\n \n ${this.loadingTemplate()}\n this.handleSlotLeftChange()}>\n \n \n \n this.handleSlotRightChange()}>\n \n `;\n }\n handleSlotLeftChange() {\n this.hasIconLeft = true;\n }\n handleSlotRightChange() {\n this.hasIconRight = true;\n }\n loadingTemplate() {\n if (this.loading) {\n const size = SPINNER_SIZE_BY_SIZE[this.size];\n const color = this.disabled\n ? SPINNER_COLOR_BY_VARIANT['disabled']\n : SPINNER_COLOR_BY_VARIANT[this.variant];\n return html ``;\n }\n return html ``;\n }\n};\nWuiButton.styles = [resetStyles, elementStyles, styles];\n__decorate([\n property()\n], WuiButton.prototype, \"size\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiButton.prototype, \"disabled\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiButton.prototype, \"fullWidth\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiButton.prototype, \"loading\", void 0);\n__decorate([\n property()\n], WuiButton.prototype, \"variant\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiButton.prototype, \"hasIconLeft\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiButton.prototype, \"hasIconRight\", void 0);\n__decorate([\n property()\n], WuiButton.prototype, \"borderRadius\", void 0);\n__decorate([\n property()\n], WuiButton.prototype, \"textVariant\", void 0);\nWuiButton = __decorate([\n customElement('wui-button')\n], WuiButton);\nexport { WuiButton };\n//# sourceMappingURL=index.js.map","import { svg } from 'lit';\nexport const networkSvgMd = svg `\n \n`;\n//# sourceMappingURL=networkMd.js.map","import { css } from 'lit';\nexport default css `\n :host {\n display: flex;\n flex-direction: column;\n align-items: center;\n width: 76px;\n row-gap: var(--wui-spacing-xs);\n padding: var(--wui-spacing-xs) 10px;\n background-color: var(--wui-color-gray-glass-002);\n border-radius: clamp(0px, var(--wui-border-radius-xs), 20px);\n position: relative;\n }\n\n wui-shimmer[data-type='network'] {\n border: none;\n -webkit-clip-path: var(--wui-path-network);\n clip-path: var(--wui-path-network);\n }\n\n svg {\n position: absolute;\n width: 48px;\n height: 54px;\n z-index: 1;\n }\n\n svg > path {\n stroke: var(--wui-color-gray-glass-010);\n stroke-width: 1px;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { networkSvgMd } from '../../assets/svg/networkMd.js';\nimport '../../components/wui-shimmer/index.js';\nimport { elementStyles, resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nlet WuiCardSelectLoader = class WuiCardSelectLoader extends LitElement {\n constructor() {\n super(...arguments);\n this.type = 'wallet';\n }\n render() {\n return html `\n ${this.shimmerTemplate()}\n \n `;\n }\n shimmerTemplate() {\n if (this.type === 'network') {\n return html ` \n ${networkSvgMd}`;\n }\n return html ``;\n }\n};\nWuiCardSelectLoader.styles = [resetStyles, elementStyles, styles];\n__decorate([\n property()\n], WuiCardSelectLoader.prototype, \"type\", void 0);\nWuiCardSelectLoader = __decorate([\n customElement('wui-card-select-loader')\n], WuiCardSelectLoader);\nexport { WuiCardSelectLoader };\n//# sourceMappingURL=index.js.map","import { svg } from 'lit';\nexport const networkSvgSm = svg `\n \n \n \n`;\n//# sourceMappingURL=networkSm.js.map","import { svg } from 'lit';\nexport const networkSvgLg = svg `\n \n`;\n//# sourceMappingURL=networkLg.js.map","import { css } from 'lit';\nexport default css `\n :host {\n position: relative;\n border-radius: inherit;\n display: flex;\n justify-content: center;\n align-items: center;\n width: var(--local-width);\n height: var(--local-height);\n }\n\n svg {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 1;\n fill: var(--wui-color-gray-glass-002);\n }\n\n svg > path {\n stroke: var(--local-stroke);\n }\n\n wui-image {\n width: 100%;\n height: 100%;\n -webkit-clip-path: var(--local-path);\n clip-path: var(--local-path);\n background: var(--wui-color-gray-glass-002);\n }\n\n wui-icon {\n transform: translateY(-5%);\n width: var(--local-icon-size);\n height: var(--local-icon-size);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { networkSvgSm } from '../../assets/svg/networkSm.js';\nimport { networkSvgMd } from '../../assets/svg/networkMd.js';\nimport { networkSvgLg } from '../../assets/svg/networkLg.js';\nimport '../../components/wui-icon/index.js';\nimport '../../components/wui-image/index.js';\nimport { resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nlet WuiNetworkImage = class WuiNetworkImage extends LitElement {\n constructor() {\n super(...arguments);\n this.size = 'md';\n this.name = 'uknown';\n this.selected = false;\n }\n render() {\n const networkImagesBySize = { sm: networkSvgSm, md: networkSvgMd, lg: networkSvgLg };\n this.style.cssText = `\n --local-stroke: ${this.selected ? 'var(--wui-color-accent-100)' : 'var(--wui-color-gray-glass-010)'};\n --local-path: var(--wui-path-network-${this.size});\n --local-width: var(--wui-width-network-${this.size});\n --local-height: var(--wui-height-network-${this.size});\n --local-icon-size: var(--wui-icon-size-network-${this.size});\n `;\n return html `${this.templateVisual()} ${networkImagesBySize[this.size]}`;\n }\n templateVisual() {\n if (this.imageSrc) {\n return html ``;\n }\n return html ``;\n }\n};\nWuiNetworkImage.styles = [resetStyles, styles];\n__decorate([\n property()\n], WuiNetworkImage.prototype, \"size\", void 0);\n__decorate([\n property()\n], WuiNetworkImage.prototype, \"name\", void 0);\n__decorate([\n property()\n], WuiNetworkImage.prototype, \"imageSrc\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiNetworkImage.prototype, \"selected\", void 0);\nWuiNetworkImage = __decorate([\n customElement('wui-network-image')\n], WuiNetworkImage);\nexport { WuiNetworkImage };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n button {\n flex-direction: column;\n width: 76px;\n row-gap: var(--wui-spacing-xs);\n padding: var(--wui-spacing-xs) var(--wui-spacing-0);\n background-color: var(--wui-color-gray-glass-002);\n border-radius: clamp(0px, var(--wui-border-radius-xs), 20px);\n }\n\n button > wui-text {\n color: var(--wui-color-fg-100);\n max-width: var(--wui-icon-box-size-xl);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n justify-content: center;\n }\n\n button:hover:enabled {\n background-color: var(--wui-color-gray-glass-005);\n }\n\n button:disabled > wui-text {\n color: var(--wui-color-gray-glass-015);\n }\n\n [data-selected='true'] {\n background-color: var(--wui-color-accent-glass-020);\n }\n\n @media (hover: hover) and (pointer: fine) {\n [data-selected='true']:hover:enabled {\n background-color: var(--wui-color-accent-glass-015);\n }\n }\n\n [data-selected='true']:active:enabled {\n background-color: var(--wui-color-accent-glass-010);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport '../../components/wui-text/index.js';\nimport { elementStyles, resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport '../wui-network-image/index.js';\nimport '../wui-wallet-image/index.js';\nimport styles from './styles.js';\nlet WuiCardSelect = class WuiCardSelect extends LitElement {\n constructor() {\n super(...arguments);\n this.name = 'Unknown';\n this.type = 'wallet';\n this.imageSrc = undefined;\n this.disabled = false;\n this.selected = false;\n this.installed = false;\n }\n render() {\n return html `\n \n `;\n }\n imageTemplate() {\n if (this.type === 'network') {\n return html `\n \n \n `;\n }\n return html `\n \n \n `;\n }\n};\nWuiCardSelect.styles = [resetStyles, elementStyles, styles];\n__decorate([\n property()\n], WuiCardSelect.prototype, \"name\", void 0);\n__decorate([\n property()\n], WuiCardSelect.prototype, \"type\", void 0);\n__decorate([\n property()\n], WuiCardSelect.prototype, \"imageSrc\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiCardSelect.prototype, \"disabled\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiCardSelect.prototype, \"selected\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiCardSelect.prototype, \"installed\", void 0);\nWuiCardSelect = __decorate([\n customElement('wui-card-select')\n], WuiCardSelect);\nexport { WuiCardSelect };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n a {\n border: 1px solid var(--wui-color-gray-glass-010);\n border-radius: var(--wui-border-radius-3xl);\n }\n\n wui-image {\n border-radius: var(--wui-border-radius-3xl);\n overflow: hidden;\n }\n\n a.disabled > wui-icon,\n a.disabled > wui-image {\n filter: grayscale(1);\n }\n\n a[data-variant='fill'] {\n color: var(--wui-color-inverse-100);\n background-color: var(--wui-color-accent-100);\n }\n\n a[data-variant='shade'],\n a[data-variant='shadeSmall'] {\n background-color: transparent;\n background-color: var(--wui-color-gray-glass-010);\n color: var(--wui-color-fg-200);\n }\n\n a[data-variant='success'] {\n column-gap: var(--wui-spacing-xxs);\n border: 1px solid var(--wui-color-success-glass-010);\n background-color: var(--wui-color-success-glass-010);\n color: var(--wui-color-success-100);\n }\n\n a[data-variant='error'] {\n column-gap: var(--wui-spacing-xxs);\n border: 1px solid var(--wui-color-error-glass-010);\n background-color: var(--wui-color-error-glass-010);\n color: var(--wui-color-error-100);\n }\n\n a[data-variant='transparent'] {\n column-gap: var(--wui-spacing-xxs);\n background-color: transparent;\n color: var(--wui-color-fg-150);\n }\n\n a[data-variant='transparent'],\n a[data-variant='success'],\n a[data-variant='shadeSmall'],\n a[data-variant='error'] {\n padding: 7px var(--wui-spacing-s) 7px 10px;\n }\n\n a[data-variant='transparent']:has(wui-text:first-child),\n a[data-variant='success']:has(wui-text:first-child),\n a[data-variant='shadeSmall']:has(wui-text:first-child),\n a[data-variant='error']:has(wui-text:first-child) {\n padding: 7px var(--wui-spacing-s);\n }\n\n a[data-variant='fill'],\n a[data-variant='shade'] {\n column-gap: var(--wui-spacing-xs);\n padding: var(--wui-spacing-xxs) var(--wui-spacing-m) var(--wui-spacing-xxs)\n var(--wui-spacing-xs);\n }\n\n a[data-variant='fill']:has(wui-text:first-child),\n a[data-variant='shade']:has(wui-text:first-child) {\n padding: 9px var(--wui-spacing-m) 9px var(--wui-spacing-m);\n }\n\n a[data-variant='fill'] > wui-image,\n a[data-variant='shade'] > wui-image {\n width: 24px;\n height: 24px;\n }\n\n a[data-variant='fill'] > wui-image {\n box-shadow: inset 0 0 0 1px var(--wui-color-accent-090);\n }\n\n a[data-variant='shade'] > wui-image,\n a[data-variant='shadeSmall'] > wui-image {\n box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-010);\n }\n\n a[data-variant='fill'] > wui-icon,\n a[data-variant='shade'] > wui-icon {\n width: 14px;\n height: 14px;\n }\n\n a[data-variant='transparent'] > wui-image,\n a[data-variant='success'] > wui-image,\n a[data-variant='shadeSmall'] > wui-image,\n a[data-variant='error'] > wui-image {\n width: 14px;\n height: 14px;\n }\n\n a[data-variant='transparent'] > wui-icon,\n a[data-variant='success'] > wui-icon,\n a[data-variant='shadeSmall'] > wui-icon,\n a[data-variant='error'] > wui-icon {\n width: 12px;\n height: 12px;\n }\n\n a[data-variant='fill']:focus-visible {\n background-color: var(--wui-color-accent-090);\n }\n\n a[data-variant='shade']:focus-visible,\n a[data-variant='shadeSmall']:focus-visible {\n background-color: var(--wui-color-gray-glass-015);\n }\n\n a[data-variant='transparent']:focus-visible {\n background-color: var(--wui-color-gray-glass-005);\n }\n\n a[data-variant='success']:focus-visible {\n background-color: var(--wui-color-success-glass-015);\n }\n\n a[data-variant='error']:focus-visible {\n background-color: var(--wui-color-error-glass-015);\n }\n\n a.disabled {\n color: var(--wui-color-gray-glass-015);\n background-color: var(--wui-color-gray-glass-015);\n pointer-events: none;\n }\n\n @media (hover: hover) and (pointer: fine) {\n a[data-variant='fill']:hover {\n background-color: var(--wui-color-accent-090);\n }\n\n a[data-variant='shade']:hover,\n a[data-variant='shadeSmall']:hover {\n background-color: var(--wui-color-gray-glass-015);\n }\n\n a[data-variant='transparent']:hover {\n background-color: var(--wui-color-gray-glass-005);\n }\n\n a[data-variant='success']:hover {\n background-color: var(--wui-color-success-glass-015);\n }\n\n a[data-variant='error']:hover {\n background-color: var(--wui-color-error-glass-015);\n }\n }\n\n a[data-variant='fill']:active {\n background-color: var(--wui-color-accent-080);\n }\n\n a[data-variant='shade']:active,\n a[data-variant='shadeSmall']:active {\n background-color: var(--wui-color-gray-glass-020);\n }\n\n a[data-variant='transparent']:active {\n background-color: var(--wui-color-gray-glass-010);\n }\n\n a[data-variant='success']:active {\n background-color: var(--wui-color-success-glass-020);\n }\n\n a[data-variant='error']:active {\n background-color: var(--wui-color-error-glass-020);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport '../../components/wui-icon/index.js';\nimport '../../components/wui-image/index.js';\nimport '../../components/wui-text/index.js';\nimport { elementStyles, resetStyles } from '../../utils/ThemeUtil.js';\nimport { UiHelperUtil } from '../../utils/UiHelperUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nlet WuiChip = class WuiChip extends LitElement {\n constructor() {\n super(...arguments);\n this.variant = 'fill';\n this.imageSrc = undefined;\n this.disabled = false;\n this.icon = 'externalLink';\n this.href = '';\n this.text = undefined;\n }\n render() {\n const isSmall = this.variant === 'success' || this.variant === 'transparent' || this.variant === 'shadeSmall';\n const textVariant = isSmall ? 'small-600' : 'paragraph-600';\n return html `\n \n ${this.imageTemplate()}\n \n ${this.title ? this.title : UiHelperUtil.getHostName(this.href)}\n \n \n \n `;\n }\n imageTemplate() {\n if (this.imageSrc) {\n return html ``;\n }\n return null;\n }\n};\nWuiChip.styles = [resetStyles, elementStyles, styles];\n__decorate([\n property()\n], WuiChip.prototype, \"variant\", void 0);\n__decorate([\n property()\n], WuiChip.prototype, \"imageSrc\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiChip.prototype, \"disabled\", void 0);\n__decorate([\n property()\n], WuiChip.prototype, \"icon\", void 0);\n__decorate([\n property()\n], WuiChip.prototype, \"href\", void 0);\n__decorate([\n property()\n], WuiChip.prototype, \"text\", void 0);\nWuiChip = __decorate([\n customElement('wui-chip')\n], WuiChip);\nexport { WuiChip };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n position: relative;\n display: block;\n }\n\n button {\n background: var(--wui-color-accent-100);\n border: 1px solid var(--wui-color-gray-glass-010);\n border-radius: var(--wui-border-radius-m);\n gap: var(--wui-spacing-xs);\n }\n\n button.loading {\n background: var(--wui-color-gray-glass-010);\n border: 1px solid var(--wui-color-gray-glass-010);\n pointer-events: none;\n }\n\n button:disabled {\n background-color: var(--wui-color-gray-glass-015);\n border: 1px solid var(--wui-color-gray-glass-010);\n }\n\n button:disabled > wui-text {\n color: var(--wui-color-gray-glass-015);\n }\n\n @media (hover: hover) and (pointer: fine) {\n button:hover:enabled {\n background-color: var(--wui-color-accent-090);\n }\n\n button:active:enabled {\n background-color: var(--wui-color-accent-080);\n }\n }\n\n button:focus-visible {\n border: 1px solid var(--wui-color-gray-glass-010);\n background-color: var(--wui-color-accent-090);\n -webkit-box-shadow: 0px 0px 0px 4px var(--wui-box-shadow-blue);\n -moz-box-shadow: 0px 0px 0px 4px var(--wui-box-shadow-blue);\n box-shadow: 0px 0px 0px 4px var(--wui-box-shadow-blue);\n }\n\n button[data-size='sm'] {\n padding: 6.75px 10px 7.25px;\n }\n\n ::slotted(*) {\n transition: opacity var(--wui-ease-out-power-1) var(--wui-duration-md);\n will-change: opacity;\n opacity: var(--local-opacity-100);\n }\n\n button > wui-text {\n transition: opacity var(--wui-ease-out-power-1) var(--wui-duration-md);\n will-change: opacity;\n opacity: var(--local-opacity-100);\n color: var(--wui-color-inverse-100);\n }\n\n button[data-size='md'] {\n padding: 9px var(--wui-spacing-l) 9px var(--wui-spacing-l);\n }\n\n button[data-size='md'] + wui-text {\n padding-left: var(--wui-spacing-3xs);\n }\n\n @media (max-width: 500px) {\n button[data-size='md'] {\n height: 32px;\n padding: 5px 12px;\n }\n\n button[data-size='md'] > wui-text > slot {\n font-size: 14px !important;\n }\n }\n\n wui-loading-spinner {\n width: 14px;\n height: 14px;\n }\n\n wui-loading-spinner::slotted(svg) {\n width: 10px !important;\n height: 10px !important;\n }\n\n button[data-size='sm'] > wui-loading-spinner {\n width: 12px;\n height: 12px;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport '../../components/wui-icon/index.js';\nimport '../../components/wui-loading-spinner/index.js';\nimport '../../components/wui-text/index.js';\nimport { elementStyles, resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nlet WuiConnectButton = class WuiConnectButton extends LitElement {\n constructor() {\n super(...arguments);\n this.size = 'md';\n this.loading = false;\n }\n render() {\n const textVariant = this.size === 'md' ? 'paragraph-600' : 'small-600';\n return html `\n \n `;\n }\n loadingTemplate() {\n if (!this.loading) {\n return null;\n }\n return html ``;\n }\n};\nWuiConnectButton.styles = [resetStyles, elementStyles, styles];\n__decorate([\n property()\n], WuiConnectButton.prototype, \"size\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiConnectButton.prototype, \"loading\", void 0);\nWuiConnectButton = __decorate([\n customElement('wui-connect-button')\n], WuiConnectButton);\nexport { WuiConnectButton };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n wui-flex {\n width: 100%;\n background-color: var(--wui-color-gray-glass-002);\n border-radius: var(--wui-border-radius-xs);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport '../../components/wui-icon/index.js';\nimport '../../components/wui-text/index.js';\nimport '../../composites/wui-button/index.js';\nimport '../../layout/wui-flex/index.js';\nimport { elementStyles, resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nlet WuiCtaButton = class WuiCtaButton extends LitElement {\n constructor() {\n super(...arguments);\n this.disabled = false;\n this.label = '';\n this.buttonLabel = '';\n }\n render() {\n return html `\n \n ${this.label}\n \n \n \n `;\n }\n};\nWuiCtaButton.styles = [resetStyles, elementStyles, styles];\n__decorate([\n property({ type: Boolean })\n], WuiCtaButton.prototype, \"disabled\", void 0);\n__decorate([\n property()\n], WuiCtaButton.prototype, \"label\", void 0);\n__decorate([\n property()\n], WuiCtaButton.prototype, \"buttonLabel\", void 0);\nWuiCtaButton = __decorate([\n customElement('wui-cta-button')\n], WuiCtaButton);\nexport { WuiCtaButton };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n display: block;\n padding: var(--wui-spacing-l) var(--wui-spacing-m);\n background-color: var(--wui-color-gray-glass-002);\n border-radius: var(--wui-border-radius-xs);\n width: 100%;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport '../../layout/wui-flex/index.js';\nimport { elementStyles, resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nlet WuiDetailsGroup = class WuiDetailsGroup extends LitElement {\n render() {\n return html `\n \n \n \n `;\n }\n};\nWuiDetailsGroup.styles = [resetStyles, elementStyles, styles];\nWuiDetailsGroup = __decorate([\n customElement('wui-details-group')\n], WuiDetailsGroup);\nexport { WuiDetailsGroup };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n display: flex;\n flex-direction: row;\n gap: var(--wui-spacing-l);\n width: 100%;\n border-radius: var(--wui-border-radius-xs);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport '../../layout/wui-flex/index.js';\nimport { elementStyles, resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nlet WuiDetailsGroupItem = class WuiDetailsGroupItem extends LitElement {\n constructor() {\n super(...arguments);\n this.name = '';\n }\n render() {\n return html `\n \n ${this.name}\n \n \n \n \n `;\n }\n};\nWuiDetailsGroupItem.styles = [resetStyles, elementStyles, styles];\n__decorate([\n property()\n], WuiDetailsGroupItem.prototype, \"name\", void 0);\nWuiDetailsGroupItem = __decorate([\n customElement('wui-details-group-item')\n], WuiDetailsGroupItem);\nexport { WuiDetailsGroupItem };\n//# sourceMappingURL=index.js.map","import{_$LH as o}from\"./lit-html.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{I:t}=o,i=o=>null===o||\"object\"!=typeof o&&\"function\"!=typeof o,n={HTML:1,SVG:2,MATHML:3},e=(o,t)=>void 0===t?void 0!==o?._$litType$:o?._$litType$===t,l=o=>null!=o?._$litType$?.h,c=o=>void 0!==o?._$litDirective$,d=o=>o?._$litDirective$,f=o=>void 0===o.strings,s=()=>document.createComment(\"\"),r=(o,i,n)=>{const e=o._$AA.parentNode,l=void 0===i?o._$AB:i._$AA;if(void 0===n){const i=e.insertBefore(s(),l),c=e.insertBefore(s(),l);n=new t(i,c,o,o.options)}else{const t=n._$AB.nextSibling,i=n._$AM,c=i!==o;if(c){let t;n._$AQ?.(o),n._$AM=o,void 0!==n._$AP&&(t=o._$AU)!==i._$AU&&n._$AP(t)}if(t!==l||c){let o=n._$AA;for(;o!==t;){const t=o.nextSibling;e.insertBefore(o,l),o=t}}}return n},v=(o,t,i=o)=>(o._$AI(t,i),o),u={},m=(o,t=u)=>o._$AH=t,p=o=>o._$AH,M=o=>{o._$AP?.(!1,!0);let t=o._$AA;const i=o._$AB.nextSibling;for(;t!==i;){const o=t.nextSibling;t.remove(),t=o}},h=o=>{o._$AR()};export{n as TemplateResultType,h as clearPart,p as getCommittedValue,d as getDirectiveClass,r as insertPart,l as isCompiledTemplateResult,c as isDirectiveResult,i as isPrimitive,f as isSingleExpression,e as isTemplateResult,M as removePart,v as setChildPartValue,m as setCommittedValue};\n//# sourceMappingURL=directive-helpers.js.map\n","import{isSingleExpression as i}from\"./directive-helpers.js\";import{Directive as t,PartType as e}from\"./directive.js\";export{directive}from\"./directive.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const s=(i,t)=>{const e=i._$AN;if(void 0===e)return!1;for(const i of e)i._$AO?.(t,!1),s(i,t);return!0},o=i=>{let t,e;do{if(void 0===(t=i._$AM))break;e=t._$AN,e.delete(i),i=t}while(0===e?.size)},r=i=>{for(let t;t=i._$AM;i=t){let e=t._$AN;if(void 0===e)t._$AN=e=new Set;else if(e.has(i))break;e.add(i),c(t)}};function h(i){void 0!==this._$AN?(o(this),this._$AM=i,r(this)):this._$AM=i}function n(i,t=!1,e=0){const r=this._$AH,h=this._$AN;if(void 0!==h&&0!==h.size)if(t)if(Array.isArray(r))for(let i=e;i{i.type==e.CHILD&&(i._$AP??=n,i._$AQ??=h)};class f extends t{constructor(){super(...arguments),this._$AN=void 0}_$AT(i,t,e){super._$AT(i,t,e),r(this),this.isConnected=i._$AU}_$AO(i,t=!0){i!==this.isConnected&&(this.isConnected=i,i?this.reconnected?.():this.disconnected?.()),t&&(s(this,i),o(this))}setValue(t){if(i(this._$Ct))this._$Ct._$AI(t,this);else{const i=[...this._$Ct._$AH];i[this._$Ci]=t,this._$Ct._$AI(i,this,0)}}disconnected(){}reconnected(){}}export{f as AsyncDirective,t as Directive,e as PartType};\n//# sourceMappingURL=async-directive.js.map\n","import{nothing as t}from\"../lit-html.js\";import{AsyncDirective as i}from\"../async-directive.js\";import{directive as s}from\"../directive.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const e=()=>new h;class h{}const o=new WeakMap,n=s(class extends i{render(i){return t}update(i,[s]){const e=s!==this.Y;return e&&void 0!==this.Y&&this.rt(void 0),(e||this.lt!==this.ct)&&(this.Y=s,this.ht=i.options?.host,this.rt(this.ct=i.element)),t}rt(t){if(this.isConnected||(t=void 0),\"function\"==typeof this.Y){const i=this.ht??globalThis;let s=o.get(i);void 0===s&&(s=new WeakMap,o.set(i,s)),void 0!==s.get(this.Y)&&this.Y.call(this.ht,void 0),s.set(this.Y,t),void 0!==t&&this.Y.call(this.ht,t)}else this.Y.value=t}get lt(){return\"function\"==typeof this.Y?o.get(this.ht??globalThis)?.get(this.Y):this.Y?.value}disconnected(){this.lt===this.ct&&this.rt(void 0)}reconnected(){this.rt(this.ct)}});export{e as createRef,n as ref};\n//# sourceMappingURL=ref.js.map\n","import { css } from 'lit';\nexport default css `\n :host {\n position: relative;\n width: 100%;\n display: inline-block;\n color: var(--wui-color-fg-275);\n }\n\n input {\n width: 100%;\n border-radius: var(--wui-border-radius-xs);\n box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-002);\n background: var(--wui-color-gray-glass-002);\n font-size: var(--wui-font-size-paragraph);\n letter-spacing: var(--wui-letter-spacing-paragraph);\n color: var(--wui-color-fg-100);\n transition:\n background-color var(--wui-ease-inout-power-1) var(--wui-duration-md),\n border-color var(--wui-ease-inout-power-1) var(--wui-duration-md),\n box-shadow var(--wui-ease-inout-power-1) var(--wui-duration-md);\n will-change: background-color, border-color, box-shadow;\n caret-color: var(--wui-color-accent-100);\n }\n\n input:disabled {\n cursor: not-allowed;\n border: 1px solid var(--wui-color-gray-glass-010);\n }\n\n input:disabled::placeholder,\n input:disabled + wui-icon {\n color: var(--wui-color-fg-300);\n }\n\n input::placeholder {\n color: var(--wui-color-fg-275);\n }\n\n input:focus:enabled {\n background-color: var(--wui-color-gray-glass-005);\n -webkit-box-shadow:\n inset 0 0 0 1px var(--wui-color-accent-100),\n 0px 0px 0px 4px var(--wui-box-shadow-blue);\n -moz-box-shadow:\n inset 0 0 0 1px var(--wui-color-accent-100),\n 0px 0px 0px 4px var(--wui-box-shadow-blue);\n box-shadow:\n inset 0 0 0 1px var(--wui-color-accent-100),\n 0px 0px 0px 4px var(--wui-box-shadow-blue);\n }\n\n input:hover:enabled {\n background-color: var(--wui-color-gray-glass-005);\n }\n\n wui-icon {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n pointer-events: none;\n }\n\n .wui-size-sm {\n padding: 9px var(--wui-spacing-m) 10px var(--wui-spacing-s);\n }\n\n wui-icon + .wui-size-sm {\n padding: 9px var(--wui-spacing-m) 10px 36px;\n }\n\n wui-icon[data-input='sm'] {\n left: var(--wui-spacing-s);\n }\n\n .wui-size-md {\n padding: 15px var(--wui-spacing-m) var(--wui-spacing-l) var(--wui-spacing-m);\n }\n\n wui-icon + .wui-size-md,\n wui-loading-spinner + .wui-size-md {\n padding: 10.5px var(--wui-spacing-3xl) 10.5px var(--wui-spacing-3xl);\n }\n\n wui-icon[data-input='md'] {\n left: var(--wui-spacing-l);\n }\n\n .wui-size-lg {\n padding: var(--wui-spacing-s) var(--wui-spacing-s) var(--wui-spacing-s) var(--wui-spacing-l);\n letter-spacing: var(--wui-letter-spacing-medium-title);\n font-size: var(--wui-font-size-medium-title);\n font-weight: var(--wui-font-weight-light);\n line-height: 130%;\n color: var(--wui-color-fg-100);\n height: 64px;\n }\n\n .wui-padding-right-xs {\n padding-right: var(--wui-spacing-xs);\n }\n\n .wui-padding-right-s {\n padding-right: var(--wui-spacing-s);\n }\n\n .wui-padding-right-m {\n padding-right: var(--wui-spacing-m);\n }\n\n .wui-padding-right-l {\n padding-right: var(--wui-spacing-l);\n }\n\n .wui-padding-right-xl {\n padding-right: var(--wui-spacing-xl);\n }\n\n .wui-padding-right-2xl {\n padding-right: var(--wui-spacing-2xl);\n }\n\n .wui-padding-right-3xl {\n padding-right: var(--wui-spacing-3xl);\n }\n\n .wui-padding-right-4xl {\n padding-right: var(--wui-spacing-4xl);\n }\n\n .wui-padding-right-5xl {\n padding-right: var(--wui-spacing-5xl);\n }\n\n wui-icon + .wui-size-lg,\n wui-loading-spinner + .wui-size-lg {\n padding-left: 50px;\n }\n\n wui-icon[data-input='lg'] {\n left: var(--wui-spacing-l);\n }\n\n .wui-size-mdl {\n padding: 17.25px var(--wui-spacing-m) 17.25px var(--wui-spacing-m);\n }\n wui-icon + .wui-size-mdl,\n wui-loading-spinner + .wui-size-mdl {\n padding: 17.25px var(--wui-spacing-3xl) 17.25px 40px;\n }\n wui-icon[data-input='mdl'] {\n left: var(--wui-spacing-m);\n }\n\n input:placeholder-shown ~ ::slotted(wui-input-element),\n input:placeholder-shown ~ ::slotted(wui-icon) {\n opacity: 0;\n pointer-events: none;\n }\n\n input::-webkit-outer-spin-button,\n input::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n\n input[type='number'] {\n -moz-appearance: textfield;\n }\n\n ::slotted(wui-input-element),\n ::slotted(wui-icon) {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n }\n\n ::slotted(wui-input-element) {\n right: var(--wui-spacing-m);\n }\n\n ::slotted(wui-icon) {\n right: 0px;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { createRef, ref } from 'lit/directives/ref.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport '../../components/wui-icon/index.js';\nimport { elementStyles, resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nlet WuiInputText = class WuiInputText extends LitElement {\n constructor() {\n super(...arguments);\n this.inputElementRef = createRef();\n this.size = 'md';\n this.disabled = false;\n this.placeholder = '';\n this.type = 'text';\n this.value = '';\n }\n render() {\n const inputClass = `wui-padding-right-${this.inputRightPadding}`;\n const sizeClass = `wui-size-${this.size}`;\n const classes = {\n [sizeClass]: true,\n [inputClass]: Boolean(this.inputRightPadding)\n };\n return html `${this.templateIcon()}\n \n `;\n }\n templateIcon() {\n if (this.icon) {\n return html ``;\n }\n return null;\n }\n dispatchInputChangeEvent() {\n this.dispatchEvent(new CustomEvent('inputChange', {\n detail: this.inputElementRef.value?.value,\n bubbles: true,\n composed: true\n }));\n }\n};\nWuiInputText.styles = [resetStyles, elementStyles, styles];\n__decorate([\n property()\n], WuiInputText.prototype, \"size\", void 0);\n__decorate([\n property()\n], WuiInputText.prototype, \"icon\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiInputText.prototype, \"disabled\", void 0);\n__decorate([\n property()\n], WuiInputText.prototype, \"placeholder\", void 0);\n__decorate([\n property()\n], WuiInputText.prototype, \"type\", void 0);\n__decorate([\n property()\n], WuiInputText.prototype, \"keyHint\", void 0);\n__decorate([\n property()\n], WuiInputText.prototype, \"value\", void 0);\n__decorate([\n property()\n], WuiInputText.prototype, \"inputRightPadding\", void 0);\nWuiInputText = __decorate([\n customElement('wui-input-text')\n], WuiInputText);\nexport { WuiInputText };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n position: relative;\n display: inline-block;\n }\n\n wui-text {\n margin: var(--wui-spacing-xxs) var(--wui-spacing-m) var(--wui-spacing-0) var(--wui-spacing-m);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport '../../components/wui-icon/index.js';\nimport '../../components/wui-text/index.js';\nimport { resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport '../wui-input-text/index.js';\nimport styles from './styles.js';\nlet WuiEmailInput = class WuiEmailInput extends LitElement {\n constructor() {\n super(...arguments);\n this.disabled = false;\n }\n render() {\n return html `\n \n ${this.templateError()}\n `;\n }\n templateError() {\n if (this.errorMessage) {\n return html `${this.errorMessage}`;\n }\n return null;\n }\n};\nWuiEmailInput.styles = [resetStyles, styles];\n__decorate([\n property()\n], WuiEmailInput.prototype, \"errorMessage\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiEmailInput.prototype, \"disabled\", void 0);\n__decorate([\n property()\n], WuiEmailInput.prototype, \"value\", void 0);\nWuiEmailInput = __decorate([\n customElement('wui-email-input')\n], WuiEmailInput);\nexport { WuiEmailInput };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n position: relative;\n width: 100%;\n display: inline-block;\n color: var(--wui-color-fg-275);\n }\n\n .error {\n margin: var(--wui-spacing-xxs) var(--wui-spacing-m) var(--wui-spacing-0) var(--wui-spacing-m);\n }\n\n .base-name {\n position: absolute;\n right: 45px;\n top: 15px;\n text-align: right;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport '../../components/wui-icon/index.js';\nimport '../../components/wui-text/index.js';\nimport { resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport '../wui-input-text/index.js';\nimport styles from './styles.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { ConstantsUtil } from '@web3modal/common';\nlet WuiEnsInput = class WuiEnsInput extends LitElement {\n constructor() {\n super(...arguments);\n this.disabled = false;\n this.loading = false;\n }\n render() {\n return html `\n \n ${this.baseNameTemplate()} ${this.errorTemplate()}${this.loadingTemplate()}\n \n `;\n }\n baseNameTemplate() {\n return html `\n ${ConstantsUtil.WC_NAME_SUFFIX}\n `;\n }\n loadingTemplate() {\n return this.loading\n ? html ``\n : null;\n }\n errorTemplate() {\n if (this.errorMessage) {\n return html `${this.errorMessage}`;\n }\n return null;\n }\n};\nWuiEnsInput.styles = [resetStyles, styles];\n__decorate([\n property()\n], WuiEnsInput.prototype, \"errorMessage\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiEnsInput.prototype, \"disabled\", void 0);\n__decorate([\n property()\n], WuiEnsInput.prototype, \"value\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiEnsInput.prototype, \"loading\", void 0);\nWuiEnsInput = __decorate([\n customElement('wui-ens-input')\n], WuiEnsInput);\nexport { WuiEnsInput };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n button {\n border-radius: var(--local-border-radius);\n color: var(--wui-color-fg-100);\n padding: var(--local-padding);\n }\n\n button:hover:enabled {\n background-color: var(--wui-color-gray-glass-005);\n }\n\n @media (max-width: 700px) {\n button {\n padding: var(--wui-spacing-s);\n }\n }\n\n button > wui-icon {\n pointer-events: none;\n }\n\n button:disabled > wui-icon {\n color: var(--wui-color-bg-300) !important;\n }\n\n button:disabled {\n background-color: transparent;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport '../../components/wui-icon/index.js';\nimport { colorStyles, elementStyles, resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nlet WuiIconLink = class WuiIconLink extends LitElement {\n constructor() {\n super(...arguments);\n this.size = 'md';\n this.disabled = false;\n this.icon = 'copy';\n this.iconColor = 'inherit';\n }\n render() {\n const borderRadius = this.size === 'lg' ? '--wui-border-radius-xs' : '--wui-border-radius-xxs';\n const padding = this.size === 'lg' ? '--wui-spacing-1xs' : '--wui-spacing-2xs';\n this.style.cssText = `\n --local-border-radius: var(${borderRadius});\n --local-padding: var(${padding});\n`;\n return html `\n \n `;\n }\n};\nWuiIconLink.styles = [resetStyles, elementStyles, colorStyles, styles];\n__decorate([\n property()\n], WuiIconLink.prototype, \"size\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiIconLink.prototype, \"disabled\", void 0);\n__decorate([\n property()\n], WuiIconLink.prototype, \"icon\", void 0);\n__decorate([\n property()\n], WuiIconLink.prototype, \"iconColor\", void 0);\nWuiIconLink = __decorate([\n customElement('wui-icon-link')\n], WuiIconLink);\nexport { WuiIconLink };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n button {\n background-color: var(--wui-color-fg-300);\n border-radius: var(--wui-border-radius-4xs);\n width: 16px;\n height: 16px;\n }\n\n button:disabled {\n background-color: var(--wui-color-bg-300);\n }\n\n wui-icon {\n color: var(--wui-color-bg-200) !important;\n }\n\n button:focus-visible {\n background-color: var(--wui-color-fg-250);\n border: 1px solid var(--wui-color-accent-100);\n }\n\n button:active:enabled {\n background-color: var(--wui-color-fg-225);\n }\n\n @media (hover: hover) and (pointer: fine) {\n button:hover:enabled {\n background-color: var(--wui-color-fg-250);\n }\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport '../../components/wui-icon/index.js';\nimport { elementStyles, resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nlet WuiInputElement = class WuiInputElement extends LitElement {\n constructor() {\n super(...arguments);\n this.icon = 'copy';\n }\n render() {\n return html `\n \n `;\n }\n};\nWuiInputElement.styles = [resetStyles, elementStyles, styles];\n__decorate([\n property()\n], WuiInputElement.prototype, \"icon\", void 0);\nWuiInputElement = __decorate([\n customElement('wui-input-element')\n], WuiInputElement);\nexport { WuiInputElement };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n position: relative;\n display: inline-block;\n }\n\n input {\n width: 50px;\n height: 50px;\n background: var(--wui-color-gray-glass-010);\n border-radius: var(--wui-border-radius-xs);\n border: 1px solid var(--wui-color-gray-glass-005);\n font-family: var(--wui-font-family);\n font-size: var(--wui-font-size-large);\n font-weight: var(--wui-font-weight-regular);\n letter-spacing: var(--wui-letter-spacing-large);\n text-align: center;\n color: var(--wui-color-fg-100);\n caret-color: var(--wui-color-accent-100);\n transition:\n background-color var(--wui-ease-inout-power-1) var(--wui-duration-md),\n border-color var(--wui-ease-inout-power-1) var(--wui-duration-md),\n box-shadow var(--wui-ease-inout-power-1) var(--wui-duration-md);\n will-change: background-color, border-color, box-shadow;\n box-sizing: border-box;\n -webkit-appearance: none;\n -moz-appearance: textfield;\n padding: 0px;\n }\n\n input::-webkit-outer-spin-button,\n input::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n\n input[type='number'] {\n -moz-appearance: textfield;\n }\n\n input:disabled {\n cursor: not-allowed;\n border: 1px solid var(--wui-color-gray-glass-010);\n background: var(--wui-color-gray-glass-005);\n }\n\n input:focus:enabled {\n background-color: var(--wui-color-gray-glass-015);\n border: 1px solid var(--wui-color-accent-100);\n -webkit-box-shadow: 0px 0px 0px 4px var(--wui-box-shadow-blue);\n -moz-box-shadow: 0px 0px 0px 4px var(--wui-box-shadow-blue);\n box-shadow: 0px 0px 0px 4px var(--wui-box-shadow-blue);\n }\n\n @media (hover: hover) and (pointer: fine) {\n input:hover:enabled {\n background-color: var(--wui-color-gray-glass-015);\n }\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { elementStyles, resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nlet WuiInputNumeric = class WuiInputNumeric extends LitElement {\n constructor() {\n super(...arguments);\n this.disabled = false;\n this.value = '';\n }\n render() {\n return html ` `;\n }\n};\nWuiInputNumeric.styles = [resetStyles, elementStyles, styles];\n__decorate([\n property({ type: Boolean })\n], WuiInputNumeric.prototype, \"disabled\", void 0);\n__decorate([\n property({ type: String })\n], WuiInputNumeric.prototype, \"value\", void 0);\nWuiInputNumeric = __decorate([\n customElement('wui-input-numeric')\n], WuiInputNumeric);\nexport { WuiInputNumeric };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n button {\n padding: var(--wui-spacing-4xs) var(--wui-spacing-xxs);\n border-radius: var(--wui-border-radius-3xs);\n background-color: transparent;\n color: var(--wui-color-accent-100);\n }\n\n button:disabled {\n background-color: transparent;\n color: var(--wui-color-gray-glass-015);\n }\n\n button:hover {\n background-color: var(--wui-color-gray-glass-005);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport '../../components/wui-icon/index.js';\nimport '../../components/wui-text/index.js';\nimport { elementStyles, resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nlet WuiLink = class WuiLink extends LitElement {\n constructor() {\n super(...arguments);\n this.disabled = false;\n this.color = 'inherit';\n }\n render() {\n return html `\n \n `;\n }\n};\nWuiLink.styles = [resetStyles, elementStyles, styles];\n__decorate([\n property({ type: Boolean })\n], WuiLink.prototype, \"disabled\", void 0);\n__decorate([\n property()\n], WuiLink.prototype, \"color\", void 0);\nWuiLink = __decorate([\n customElement('wui-link')\n], WuiLink);\nexport { WuiLink };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n button {\n column-gap: var(--wui-spacing-s);\n padding: 11px 18px 11px var(--wui-spacing-s);\n width: 100%;\n background-color: var(--wui-color-gray-glass-002);\n border-radius: var(--wui-border-radius-xs);\n color: var(--wui-color-fg-250);\n transition:\n color var(--wui-ease-out-power-1) var(--wui-duration-md),\n background-color var(--wui-ease-out-power-1) var(--wui-duration-md);\n will-change: color, background-color;\n }\n\n button[data-iconvariant='square'],\n button[data-iconvariant='square-blue'] {\n padding: 6px 18px 6px 9px;\n }\n\n button > wui-flex {\n flex: 1;\n }\n\n button > wui-image {\n width: 32px;\n height: 32px;\n box-shadow: 0 0 0 2px var(--wui-color-gray-glass-005);\n border-radius: var(--wui-border-radius-3xl);\n }\n\n button > wui-icon {\n width: 36px;\n height: 36px;\n transition: opacity var(--wui-ease-out-power-1) var(--wui-duration-md);\n will-change: opacity;\n }\n\n button > wui-icon-box[data-variant='blue'] {\n box-shadow: 0 0 0 2px var(--wui-color-accent-glass-005);\n }\n\n button > wui-icon-box[data-variant='overlay'] {\n box-shadow: 0 0 0 2px var(--wui-color-gray-glass-005);\n }\n\n button > wui-icon-box[data-variant='square-blue'] {\n border-radius: var(--wui-border-radius-3xs);\n position: relative;\n border: none;\n width: 36px;\n height: 36px;\n }\n\n button > wui-icon-box[data-variant='square-blue']::after {\n content: '';\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n border-radius: inherit;\n border: 1px solid var(--wui-color-accent-glass-010);\n pointer-events: none;\n }\n\n button > wui-icon:last-child {\n width: 14px;\n height: 14px;\n }\n\n button:hover:enabled {\n background-color: var(--wui-color-gray-glass-005);\n }\n\n button:disabled {\n background-color: var(--wui-color-gray-glass-015);\n color: var(--wui-color-gray-glass-015);\n }\n\n button[data-loading='true'] > wui-icon {\n opacity: 0;\n }\n\n wui-loading-spinner {\n position: absolute;\n right: 18px;\n top: 50%;\n transform: translateY(-50%);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport '../../components/wui-icon/index.js';\nimport '../../components/wui-image/index.js';\nimport '../../components/wui-loading-spinner/index.js';\nimport '../../components/wui-text/index.js';\nimport '../../layout/wui-flex/index.js';\nimport { elementStyles, resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport '../wui-icon-box/index.js';\nimport styles from './styles.js';\nlet WuiListItem = class WuiListItem extends LitElement {\n constructor() {\n super(...arguments);\n this.variant = 'icon';\n this.disabled = false;\n this.imageSrc = undefined;\n this.alt = undefined;\n this.chevron = false;\n this.loading = false;\n }\n render() {\n return html `\n \n ${this.loadingTemplate()} ${this.visualTemplate()}\n \n \n \n ${this.chevronTemplate()}\n \n `;\n }\n visualTemplate() {\n if (this.variant === 'image' && this.imageSrc) {\n return html ``;\n }\n if (this.iconVariant === 'square' && this.icon && this.variant === 'icon') {\n return html ``;\n }\n if (this.variant === 'icon' && this.icon && this.iconVariant) {\n const color = ['blue', 'square-blue'].includes(this.iconVariant) ? 'accent-100' : 'fg-200';\n const size = this.iconVariant === 'square-blue' ? 'mdl' : 'md';\n const iconSize = this.iconSize ? this.iconSize : size;\n return html `\n \n `;\n }\n return null;\n }\n loadingTemplate() {\n if (this.loading) {\n return html ``;\n }\n return html ``;\n }\n chevronTemplate() {\n if (this.chevron) {\n return html ``;\n }\n return null;\n }\n};\nWuiListItem.styles = [resetStyles, elementStyles, styles];\n__decorate([\n property()\n], WuiListItem.prototype, \"icon\", void 0);\n__decorate([\n property()\n], WuiListItem.prototype, \"iconSize\", void 0);\n__decorate([\n property()\n], WuiListItem.prototype, \"variant\", void 0);\n__decorate([\n property()\n], WuiListItem.prototype, \"iconVariant\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiListItem.prototype, \"disabled\", void 0);\n__decorate([\n property()\n], WuiListItem.prototype, \"imageSrc\", void 0);\n__decorate([\n property()\n], WuiListItem.prototype, \"alt\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiListItem.prototype, \"chevron\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiListItem.prototype, \"loading\", void 0);\nWuiListItem = __decorate([\n customElement('wui-list-item')\n], WuiListItem);\nexport { WuiListItem };\n//# sourceMappingURL=index.js.map","export var TransactionTypePastTense;\n(function (TransactionTypePastTense) {\n TransactionTypePastTense[\"approve\"] = \"approved\";\n TransactionTypePastTense[\"bought\"] = \"bought\";\n TransactionTypePastTense[\"borrow\"] = \"borrowed\";\n TransactionTypePastTense[\"burn\"] = \"burnt\";\n TransactionTypePastTense[\"cancel\"] = \"canceled\";\n TransactionTypePastTense[\"claim\"] = \"claimed\";\n TransactionTypePastTense[\"deploy\"] = \"deployed\";\n TransactionTypePastTense[\"deposit\"] = \"deposited\";\n TransactionTypePastTense[\"execute\"] = \"executed\";\n TransactionTypePastTense[\"mint\"] = \"minted\";\n TransactionTypePastTense[\"receive\"] = \"received\";\n TransactionTypePastTense[\"repay\"] = \"repaid\";\n TransactionTypePastTense[\"send\"] = \"sent\";\n TransactionTypePastTense[\"sell\"] = \"sold\";\n TransactionTypePastTense[\"stake\"] = \"staked\";\n TransactionTypePastTense[\"trade\"] = \"swapped\";\n TransactionTypePastTense[\"unstake\"] = \"unstaked\";\n TransactionTypePastTense[\"withdraw\"] = \"withdrawn\";\n})(TransactionTypePastTense || (TransactionTypePastTense = {}));\n//# sourceMappingURL=TypeUtil.js.map","import { css } from 'lit';\nexport default css `\n :host > wui-flex {\n display: flex;\n justify-content: center;\n align-items: center;\n position: relative;\n width: 40px;\n height: 40px;\n box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-005);\n background-color: var(--wui-color-gray-glass-005);\n }\n\n :host > wui-flex wui-image {\n display: block;\n }\n\n :host > wui-flex,\n :host > wui-flex wui-image,\n .swap-images-container,\n .swap-images-container.nft,\n wui-image.nft {\n border-top-left-radius: var(--local-left-border-radius);\n border-top-right-radius: var(--local-right-border-radius);\n border-bottom-left-radius: var(--local-left-border-radius);\n border-bottom-right-radius: var(--local-right-border-radius);\n }\n\n wui-icon {\n width: 20px;\n height: 20px;\n }\n\n wui-icon-box {\n position: absolute;\n right: 0;\n bottom: 0;\n transform: translate(20%, 20%);\n }\n\n .swap-images-container {\n position: relative;\n width: 40px;\n height: 40px;\n overflow: hidden;\n }\n\n .swap-images-container wui-image:first-child {\n position: absolute;\n width: 40px;\n height: 40px;\n top: 0;\n left: 0%;\n clip-path: inset(0px calc(50% + 2px) 0px 0%);\n }\n\n .swap-images-container wui-image:last-child {\n clip-path: inset(0px 0px 0px calc(50% + 2px));\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport '../../components/wui-image/index.js';\nimport '../wui-icon-box/index.js';\nimport styles from './styles.js';\nlet WuiTransactionVisual = class WuiTransactionVisual extends LitElement {\n constructor() {\n super(...arguments);\n this.images = [];\n this.secondImage = {\n type: undefined,\n url: ''\n };\n }\n render() {\n const [firstImage, secondImage] = this.images;\n const isLeftNFT = firstImage?.type === 'NFT';\n const isRightNFT = secondImage?.url ? secondImage.type === 'NFT' : isLeftNFT;\n const leftRadius = isLeftNFT ? 'var(--wui-border-radius-xxs)' : 'var(--wui-border-radius-s)';\n const rightRadius = isRightNFT ? 'var(--wui-border-radius-xxs)' : 'var(--wui-border-radius-s)';\n this.style.cssText = `\n --local-left-border-radius: ${leftRadius};\n --local-right-border-radius: ${rightRadius};\n `;\n return html ` ${this.templateVisual()} ${this.templateIcon()} `;\n }\n templateVisual() {\n const [firstImage, secondImage] = this.images;\n const firstImageType = firstImage?.type;\n const haveTwoImages = this.images.length === 2;\n if (haveTwoImages && (firstImage?.url || secondImage?.url)) {\n return html `
\n ${firstImage?.url\n ? html ``\n : null}\n ${secondImage?.url\n ? html ``\n : null}\n
`;\n }\n else if (firstImage?.url) {\n return html ``;\n }\n else if (firstImageType === 'NFT') {\n return html ``;\n }\n return html ``;\n }\n templateIcon() {\n let color = 'accent-100';\n let icon = undefined;\n icon = this.getIcon();\n if (this.status) {\n color = this.getStatusColor();\n }\n if (!icon) {\n return null;\n }\n return html `\n \n `;\n }\n getDirectionIcon() {\n switch (this.direction) {\n case 'in':\n return 'arrowBottom';\n case 'out':\n return 'arrowTop';\n default:\n return undefined;\n }\n }\n getIcon() {\n if (this.onlyDirectionIcon) {\n return this.getDirectionIcon();\n }\n if (this.type === 'trade') {\n return 'swapHorizontalBold';\n }\n else if (this.type === 'approve') {\n return 'checkmark';\n }\n else if (this.type === 'cancel') {\n return 'close';\n }\n return this.getDirectionIcon();\n }\n getStatusColor() {\n switch (this.status) {\n case 'confirmed':\n return 'success-100';\n case 'failed':\n return 'error-100';\n case 'pending':\n return 'inverse-100';\n default:\n return 'accent-100';\n }\n }\n};\nWuiTransactionVisual.styles = [styles];\n__decorate([\n property()\n], WuiTransactionVisual.prototype, \"type\", void 0);\n__decorate([\n property()\n], WuiTransactionVisual.prototype, \"status\", void 0);\n__decorate([\n property()\n], WuiTransactionVisual.prototype, \"direction\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiTransactionVisual.prototype, \"onlyDirectionIcon\", void 0);\n__decorate([\n property({ type: Array })\n], WuiTransactionVisual.prototype, \"images\", void 0);\n__decorate([\n property({ type: Object })\n], WuiTransactionVisual.prototype, \"secondImage\", void 0);\nWuiTransactionVisual = __decorate([\n customElement('wui-transaction-visual')\n], WuiTransactionVisual);\nexport { WuiTransactionVisual };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host > wui-flex:first-child {\n align-items: center;\n column-gap: var(--wui-spacing-s);\n padding: 6.5px var(--wui-spacing-xs) 6.5px var(--wui-spacing-xs);\n width: 100%;\n }\n\n :host > wui-flex:first-child wui-text:nth-child(1) {\n text-transform: capitalize;\n }\n\n wui-transaction-visual {\n width: 40px;\n height: 40px;\n }\n\n wui-flex {\n flex: 1;\n }\n\n :host wui-flex wui-flex {\n overflow: hidden;\n }\n\n :host .description-container wui-text span {\n word-break: break-all;\n }\n\n :host .description-container wui-text {\n overflow: hidden;\n }\n\n :host .description-separator-icon {\n margin: 0px 6px;\n }\n\n :host wui-text > span {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport { TransactionTypePastTense } from '../../utils/TypeUtil.js';\nimport { resetStyles } from '../../utils/ThemeUtil.js';\nimport '../../components/wui-text/index.js';\nimport '../wui-transaction-visual/index.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport styles from './styles.js';\nlet WuiTransactionListItem = class WuiTransactionListItem extends LitElement {\n constructor() {\n super(...arguments);\n this.type = 'approve';\n this.onlyDirectionIcon = false;\n this.images = [];\n this.price = [];\n this.amount = [];\n this.symbol = [];\n }\n render() {\n return html `\n \n \n \n \n ${TransactionTypePastTense[this.type] || this.type}\n \n \n ${this.templateDescription()} ${this.templateSecondDescription()}\n \n \n ${this.date}\n \n `;\n }\n templateDescription() {\n const description = this.descriptions?.[0];\n return description\n ? html `\n \n ${description}\n \n `\n : null;\n }\n templateSecondDescription() {\n const description = this.descriptions?.[1];\n return description\n ? html `\n \n \n ${description}\n \n `\n : null;\n }\n};\nWuiTransactionListItem.styles = [resetStyles, styles];\n__decorate([\n property()\n], WuiTransactionListItem.prototype, \"type\", void 0);\n__decorate([\n property({ type: Array })\n], WuiTransactionListItem.prototype, \"descriptions\", void 0);\n__decorate([\n property()\n], WuiTransactionListItem.prototype, \"date\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiTransactionListItem.prototype, \"onlyDirectionIcon\", void 0);\n__decorate([\n property()\n], WuiTransactionListItem.prototype, \"status\", void 0);\n__decorate([\n property()\n], WuiTransactionListItem.prototype, \"direction\", void 0);\n__decorate([\n property({ type: Array })\n], WuiTransactionListItem.prototype, \"images\", void 0);\n__decorate([\n property({ type: Array })\n], WuiTransactionListItem.prototype, \"price\", void 0);\n__decorate([\n property({ type: Array })\n], WuiTransactionListItem.prototype, \"amount\", void 0);\n__decorate([\n property({ type: Array })\n], WuiTransactionListItem.prototype, \"symbol\", void 0);\nWuiTransactionListItem = __decorate([\n customElement('wui-transaction-list-item')\n], WuiTransactionListItem);\nexport { WuiTransactionListItem };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host > wui-flex:first-child {\n column-gap: var(--wui-spacing-s);\n padding: 7px var(--wui-spacing-l) 7px var(--wui-spacing-xs);\n width: 100%;\n }\n\n wui-flex {\n display: flex;\n flex: 1;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport { resetStyles } from '../../utils/ThemeUtil.js';\nimport '../../components/wui-text/index.js';\nimport '../wui-transaction-visual/index.js';\nimport styles from './styles.js';\nlet WuiTransactionListItemLoader = class WuiTransactionListItemLoader extends LitElement {\n render() {\n return html `\n \n \n \n \n \n \n \n \n `;\n }\n};\nWuiTransactionListItemLoader.styles = [resetStyles, styles];\nWuiTransactionListItemLoader = __decorate([\n customElement('wui-transaction-list-item-loader')\n], WuiTransactionListItemLoader);\nexport { WuiTransactionListItemLoader };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n display: flex;\n justify-content: center;\n align-items: center;\n height: var(--wui-spacing-m);\n padding: 0 var(--wui-spacing-3xs) !important;\n border-radius: var(--wui-border-radius-5xs);\n }\n\n :host > wui-text {\n transform: translateY(5%);\n }\n\n :host([data-variant='main']) {\n background-color: var(--wui-color-accent-glass-015);\n color: var(--wui-color-accent-100);\n }\n\n :host([data-variant='shade']) {\n background-color: var(--wui-color-gray-glass-010);\n color: var(--wui-color-fg-200);\n }\n\n :host([data-variant='success']) {\n background-color: var(--wui-icon-box-bg-success-100);\n color: var(--wui-color-success-100);\n }\n\n :host([data-variant='error']) {\n background-color: var(--wui-icon-box-bg-error-100);\n color: var(--wui-color-error-100);\n }\n\n :host([data-size='lg']) {\n padding: 11px 5px !important;\n }\n\n :host([data-size='lg']) > wui-text {\n transform: translateY(2%);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport '../../components/wui-text/index.js';\nimport { resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nlet WuiTag = class WuiTag extends LitElement {\n constructor() {\n super(...arguments);\n this.variant = 'main';\n this.size = 'lg';\n }\n render() {\n this.dataset['variant'] = this.variant;\n this.dataset['size'] = this.size;\n const textVariant = this.size === 'md' ? 'mini-700' : 'micro-700';\n return html `\n \n \n \n `;\n }\n};\nWuiTag.styles = [resetStyles, styles];\n__decorate([\n property()\n], WuiTag.prototype, \"variant\", void 0);\n__decorate([\n property()\n], WuiTag.prototype, \"size\", void 0);\nWuiTag = __decorate([\n customElement('wui-tag')\n], WuiTag);\nexport { WuiTag };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n button {\n column-gap: var(--wui-spacing-s);\n padding: 7px var(--wui-spacing-l) 7px var(--wui-spacing-xs);\n width: 100%;\n background-color: var(--wui-color-gray-glass-002);\n border-radius: var(--wui-border-radius-xs);\n color: var(--wui-color-fg-100);\n }\n\n button > wui-text:nth-child(2) {\n display: flex;\n flex: 1;\n }\n\n button:hover:enabled {\n background-color: var(--wui-color-gray-glass-005);\n }\n\n button:disabled {\n background-color: var(--wui-color-gray-glass-015);\n color: var(--wui-color-gray-glass-015);\n }\n\n button:disabled > wui-tag {\n background-color: var(--wui-color-gray-glass-010);\n color: var(--wui-color-fg-300);\n }\n\n wui-icon {\n color: var(--wui-color-fg-200) !important;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport '../../components/wui-icon/index.js';\nimport '../../composites/wui-icon-box/index.js';\nimport '../../components/wui-text/index.js';\nimport { elementStyles, resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport '../wui-all-wallets-image/index.js';\nimport '../wui-tag/index.js';\nimport '../wui-wallet-image/index.js';\nimport styles from './styles.js';\nlet WuiListWallet = class WuiListWallet extends LitElement {\n constructor() {\n super(...arguments);\n this.walletImages = [];\n this.imageSrc = '';\n this.name = '';\n this.installed = false;\n this.disabled = false;\n this.showAllWallets = false;\n }\n render() {\n return html `\n \n `;\n }\n templateAllWallets() {\n if (this.showAllWallets && this.imageSrc) {\n return html ` `;\n }\n else if (this.showAllWallets && this.walletIcon) {\n return html ` `;\n }\n return null;\n }\n templateWalletImage() {\n if (!this.showAllWallets && this.imageSrc) {\n return html ``;\n }\n else if (!this.showAllWallets && !this.imageSrc) {\n return html ``;\n }\n return null;\n }\n templateStatus() {\n if (this.tagLabel && this.tagVariant) {\n return html `${this.tagLabel}`;\n }\n else if (this.icon) {\n return html ``;\n }\n return null;\n }\n};\nWuiListWallet.styles = [resetStyles, elementStyles, styles];\n__decorate([\n property({ type: Array })\n], WuiListWallet.prototype, \"walletImages\", void 0);\n__decorate([\n property()\n], WuiListWallet.prototype, \"imageSrc\", void 0);\n__decorate([\n property()\n], WuiListWallet.prototype, \"name\", void 0);\n__decorate([\n property()\n], WuiListWallet.prototype, \"tagLabel\", void 0);\n__decorate([\n property()\n], WuiListWallet.prototype, \"tagVariant\", void 0);\n__decorate([\n property()\n], WuiListWallet.prototype, \"icon\", void 0);\n__decorate([\n property()\n], WuiListWallet.prototype, \"walletIcon\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiListWallet.prototype, \"installed\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiListWallet.prototype, \"disabled\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiListWallet.prototype, \"showAllWallets\", void 0);\nWuiListWallet = __decorate([\n customElement('wui-list-wallet')\n], WuiListWallet);\nexport { WuiListWallet };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n display: flex;\n justify-content: center;\n align-items: center;\n width: 40px;\n height: 40px;\n border-radius: var(--wui-border-radius-3xl);\n border: 1px solid var(--wui-color-gray-glass-005);\n overflow: hidden;\n }\n\n wui-icon {\n width: 100%;\n height: 100%;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport '../../components/wui-icon/index.js';\nimport { resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nlet WuiLogo = class WuiLogo extends LitElement {\n constructor() {\n super(...arguments);\n this.logo = 'google';\n }\n render() {\n return html ` `;\n }\n};\nWuiLogo.styles = [resetStyles, styles];\n__decorate([\n property()\n], WuiLogo.prototype, \"logo\", void 0);\nWuiLogo = __decorate([\n customElement('wui-logo')\n], WuiLogo);\nexport { WuiLogo };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n display: block;\n width: 100%;\n }\n\n button {\n width: 100%;\n height: 56px;\n background: var(--wui-color-gray-glass-002);\n border-radius: var(--wui-border-radius-xs);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { elementStyles, resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport '../wui-logo/index.js';\nimport styles from './styles.js';\nlet WuiLogoSelect = class WuiLogoSelect extends LitElement {\n constructor() {\n super(...arguments);\n this.logo = 'google';\n this.disabled = false;\n }\n render() {\n return html `\n \n `;\n }\n};\nWuiLogoSelect.styles = [resetStyles, elementStyles, styles];\n__decorate([\n property()\n], WuiLogoSelect.prototype, \"logo\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiLogoSelect.prototype, \"disabled\", void 0);\nWuiLogoSelect = __decorate([\n customElement('wui-logo-select')\n], WuiLogoSelect);\nexport { WuiLogoSelect };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n display: block;\n }\n\n button {\n border-radius: var(--wui-border-radius-3xl);\n display: flex;\n gap: var(--wui-spacing-xs);\n padding: var(--wui-spacing-2xs) var(--wui-spacing-s) var(--wui-spacing-2xs)\n var(--wui-spacing-xs);\n border: 1px solid var(--wui-color-gray-glass-010);\n background-color: var(--wui-color-gray-glass-005);\n color: var(--wui-color-fg-100);\n }\n\n button:disabled {\n border: 1px solid var(--wui-color-gray-glass-005);\n background-color: var(--wui-color-gray-glass-015);\n color: var(--wui-color-gray-glass-015);\n }\n\n @media (hover: hover) and (pointer: fine) {\n button:hover:enabled {\n background-color: var(--wui-color-gray-glass-010);\n }\n\n button:active:enabled {\n background-color: var(--wui-color-gray-glass-015);\n }\n }\n\n wui-image,\n wui-icon-box {\n border-radius: var(--wui-border-radius-3xl);\n width: 24px;\n height: 24px;\n box-shadow: 0 0 0 2px var(--wui-color-gray-glass-005);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport '../../components/wui-image/index.js';\nimport '../../components/wui-text/index.js';\nimport { elementStyles, resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport '../wui-icon-box/index.js';\nimport styles from './styles.js';\nlet WuiNetworkButton = class WuiNetworkButton extends LitElement {\n constructor() {\n super(...arguments);\n this.imageSrc = undefined;\n this.isUnsupportedChain = undefined;\n this.disabled = false;\n }\n render() {\n return html `\n \n `;\n }\n visualTemplate() {\n if (this.isUnsupportedChain) {\n return html `\n \n `;\n }\n if (this.imageSrc) {\n return html ``;\n }\n return html `\n \n `;\n }\n};\nWuiNetworkButton.styles = [resetStyles, elementStyles, styles];\n__decorate([\n property()\n], WuiNetworkButton.prototype, \"imageSrc\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiNetworkButton.prototype, \"isUnsupportedChain\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiNetworkButton.prototype, \"disabled\", void 0);\nWuiNetworkButton = __decorate([\n customElement('wui-network-button')\n], WuiNetworkButton);\nexport { WuiNetworkButton };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n position: relative;\n display: block;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport '../../layout/wui-flex/index.js';\nimport { resetStyles } from '../../utils/ThemeUtil.js';\nimport { UiHelperUtil } from '../../utils/UiHelperUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport '../wui-input-numeric/index.js';\nimport { WuiInputNumeric } from '../wui-input-numeric/index.js';\nimport styles from './styles.js';\nlet WuiOtp = class WuiOtp extends LitElement {\n constructor() {\n super(...arguments);\n this.length = 6;\n this.otp = '';\n this.values = Array.from({ length: this.length }).map(() => '');\n this.numerics = [];\n this.shouldInputBeEnabled = (index) => {\n const previousInputs = this.values.slice(0, index);\n return previousInputs.every(input => input !== '');\n };\n this.handleKeyDown = (e, index) => {\n const inputElement = e.target;\n const input = this.getInputElement(inputElement);\n const keyArr = ['ArrowLeft', 'ArrowRight', 'Shift', 'Delete'];\n if (!input) {\n return;\n }\n if (keyArr.includes(e.key)) {\n e.preventDefault();\n }\n const currentCaretPos = input.selectionStart;\n switch (e.key) {\n case 'ArrowLeft':\n if (currentCaretPos) {\n input.setSelectionRange(currentCaretPos + 1, currentCaretPos + 1);\n }\n this.focusInputField('prev', index);\n break;\n case 'ArrowRight':\n this.focusInputField('next', index);\n break;\n case 'Shift':\n this.focusInputField('next', index);\n break;\n case 'Delete':\n if (input.value === '') {\n this.focusInputField('prev', index);\n }\n else {\n this.updateInput(input, index, '');\n }\n break;\n case 'Backspace':\n if (input.value === '') {\n this.focusInputField('prev', index);\n }\n else {\n this.updateInput(input, index, '');\n }\n break;\n default:\n }\n };\n this.focusInputField = (dir, index) => {\n if (dir === 'next') {\n const nextIndex = index + 1;\n if (!this.shouldInputBeEnabled(nextIndex)) {\n return;\n }\n const numeric = this.numerics[nextIndex < this.length ? nextIndex : index];\n const input = numeric ? this.getInputElement(numeric) : undefined;\n if (input) {\n input.disabled = false;\n input.focus();\n }\n }\n if (dir === 'prev') {\n const nextIndex = index - 1;\n const numeric = this.numerics[nextIndex > -1 ? nextIndex : index];\n const input = numeric ? this.getInputElement(numeric) : undefined;\n if (input) {\n input.focus();\n }\n }\n };\n }\n firstUpdated() {\n if (this.otp) {\n this.values = this.otp.split('');\n }\n const numericElements = this.shadowRoot?.querySelectorAll('wui-input-numeric');\n if (numericElements) {\n this.numerics = Array.from(numericElements);\n }\n this.numerics[0]?.focus();\n }\n render() {\n return html `\n \n ${Array.from({ length: this.length }).map((_, index) => html `\n this.handleInput(e, index)}\n @click=${(e) => this.selectInput(e)}\n @keydown=${(e) => this.handleKeyDown(e, index)}\n .disabled=${!this.shouldInputBeEnabled(index)}\n .value=${this.values[index] || ''}\n >\n \n `)}\n \n `;\n }\n updateInput(element, index, value) {\n const numeric = this.numerics[index];\n const input = element || (numeric ? this.getInputElement(numeric) : undefined);\n if (input) {\n input.value = value;\n this.values = this.values.map((val, i) => (i === index ? value : val));\n }\n }\n selectInput(e) {\n const targetElement = e.target;\n if (targetElement) {\n const inputElement = this.getInputElement(targetElement);\n inputElement?.select();\n }\n }\n handleInput(e, index) {\n const inputElement = e.target;\n const input = this.getInputElement(inputElement);\n if (input) {\n const inputValue = input.value;\n if (e.inputType === 'insertFromPaste') {\n this.handlePaste(input, inputValue, index);\n }\n else {\n const isValid = UiHelperUtil.isNumber(inputValue);\n if (isValid && e.data) {\n this.updateInput(input, index, e.data);\n this.focusInputField('next', index);\n }\n else {\n this.updateInput(input, index, '');\n }\n }\n }\n this.dispatchInputChangeEvent();\n }\n handlePaste(input, inputValue, index) {\n const value = inputValue[0];\n const isValid = value && UiHelperUtil.isNumber(value);\n if (isValid) {\n this.updateInput(input, index, value);\n const inputString = inputValue.substring(1);\n if (index + 1 < this.length && inputString.length) {\n const nextNumeric = this.numerics[index + 1];\n const nextInput = nextNumeric ? this.getInputElement(nextNumeric) : undefined;\n if (nextInput) {\n this.handlePaste(nextInput, inputString, index + 1);\n }\n }\n else {\n this.focusInputField('next', index);\n }\n }\n else {\n this.updateInput(input, index, '');\n }\n }\n getInputElement(el) {\n if (el.shadowRoot?.querySelector('input')) {\n return el.shadowRoot.querySelector('input');\n }\n return null;\n }\n dispatchInputChangeEvent() {\n const value = this.values.join('');\n this.dispatchEvent(new CustomEvent('inputChange', {\n detail: value,\n bubbles: true,\n composed: true\n }));\n }\n};\nWuiOtp.styles = [resetStyles, styles];\n__decorate([\n property({ type: Number })\n], WuiOtp.prototype, \"length\", void 0);\n__decorate([\n property({ type: String })\n], WuiOtp.prototype, \"otp\", void 0);\n__decorate([\n state()\n], WuiOtp.prototype, \"values\", void 0);\nWuiOtp = __decorate([\n customElement('wui-otp')\n], WuiOtp);\nexport { WuiOtp };\n//# sourceMappingURL=index.js.map","// can-promise has a crash in some versions of react native that dont have\n// standard global objects\n// https://github.com/soldair/node-qrcode/issues/157\n\nmodule.exports = function () {\n return typeof Promise === 'function' && Promise.prototype && Promise.prototype.then\n}\n","let toSJISFunction\nconst CODEWORDS_COUNT = [\n 0, // Not used\n 26, 44, 70, 100, 134, 172, 196, 242, 292, 346,\n 404, 466, 532, 581, 655, 733, 815, 901, 991, 1085,\n 1156, 1258, 1364, 1474, 1588, 1706, 1828, 1921, 2051, 2185,\n 2323, 2465, 2611, 2761, 2876, 3034, 3196, 3362, 3532, 3706\n]\n\n/**\n * Returns the QR Code size for the specified version\n *\n * @param {Number} version QR Code version\n * @return {Number} size of QR code\n */\nexports.getSymbolSize = function getSymbolSize (version) {\n if (!version) throw new Error('\"version\" cannot be null or undefined')\n if (version < 1 || version > 40) throw new Error('\"version\" should be in range from 1 to 40')\n return version * 4 + 17\n}\n\n/**\n * Returns the total number of codewords used to store data and EC information.\n *\n * @param {Number} version QR Code version\n * @return {Number} Data length in bits\n */\nexports.getSymbolTotalCodewords = function getSymbolTotalCodewords (version) {\n return CODEWORDS_COUNT[version]\n}\n\n/**\n * Encode data with Bose-Chaudhuri-Hocquenghem\n *\n * @param {Number} data Value to encode\n * @return {Number} Encoded value\n */\nexports.getBCHDigit = function (data) {\n let digit = 0\n\n while (data !== 0) {\n digit++\n data >>>= 1\n }\n\n return digit\n}\n\nexports.setToSJISFunction = function setToSJISFunction (f) {\n if (typeof f !== 'function') {\n throw new Error('\"toSJISFunc\" is not a valid function.')\n }\n\n toSJISFunction = f\n}\n\nexports.isKanjiModeEnabled = function () {\n return typeof toSJISFunction !== 'undefined'\n}\n\nexports.toSJIS = function toSJIS (kanji) {\n return toSJISFunction(kanji)\n}\n","exports.L = { bit: 1 }\nexports.M = { bit: 0 }\nexports.Q = { bit: 3 }\nexports.H = { bit: 2 }\n\nfunction fromString (string) {\n if (typeof string !== 'string') {\n throw new Error('Param is not a string')\n }\n\n const lcStr = string.toLowerCase()\n\n switch (lcStr) {\n case 'l':\n case 'low':\n return exports.L\n\n case 'm':\n case 'medium':\n return exports.M\n\n case 'q':\n case 'quartile':\n return exports.Q\n\n case 'h':\n case 'high':\n return exports.H\n\n default:\n throw new Error('Unknown EC Level: ' + string)\n }\n}\n\nexports.isValid = function isValid (level) {\n return level && typeof level.bit !== 'undefined' &&\n level.bit >= 0 && level.bit < 4\n}\n\nexports.from = function from (value, defaultValue) {\n if (exports.isValid(value)) {\n return value\n }\n\n try {\n return fromString(value)\n } catch (e) {\n return defaultValue\n }\n}\n","function BitBuffer () {\n this.buffer = []\n this.length = 0\n}\n\nBitBuffer.prototype = {\n\n get: function (index) {\n const bufIndex = Math.floor(index / 8)\n return ((this.buffer[bufIndex] >>> (7 - index % 8)) & 1) === 1\n },\n\n put: function (num, length) {\n for (let i = 0; i < length; i++) {\n this.putBit(((num >>> (length - i - 1)) & 1) === 1)\n }\n },\n\n getLengthInBits: function () {\n return this.length\n },\n\n putBit: function (bit) {\n const bufIndex = Math.floor(this.length / 8)\n if (this.buffer.length <= bufIndex) {\n this.buffer.push(0)\n }\n\n if (bit) {\n this.buffer[bufIndex] |= (0x80 >>> (this.length % 8))\n }\n\n this.length++\n }\n}\n\nmodule.exports = BitBuffer\n","/**\n * Helper class to handle QR Code symbol modules\n *\n * @param {Number} size Symbol size\n */\nfunction BitMatrix (size) {\n if (!size || size < 1) {\n throw new Error('BitMatrix size must be defined and greater than 0')\n }\n\n this.size = size\n this.data = new Uint8Array(size * size)\n this.reservedBit = new Uint8Array(size * size)\n}\n\n/**\n * Set bit value at specified location\n * If reserved flag is set, this bit will be ignored during masking process\n *\n * @param {Number} row\n * @param {Number} col\n * @param {Boolean} value\n * @param {Boolean} reserved\n */\nBitMatrix.prototype.set = function (row, col, value, reserved) {\n const index = row * this.size + col\n this.data[index] = value\n if (reserved) this.reservedBit[index] = true\n}\n\n/**\n * Returns bit value at specified location\n *\n * @param {Number} row\n * @param {Number} col\n * @return {Boolean}\n */\nBitMatrix.prototype.get = function (row, col) {\n return this.data[row * this.size + col]\n}\n\n/**\n * Applies xor operator at specified location\n * (used during masking process)\n *\n * @param {Number} row\n * @param {Number} col\n * @param {Boolean} value\n */\nBitMatrix.prototype.xor = function (row, col, value) {\n this.data[row * this.size + col] ^= value\n}\n\n/**\n * Check if bit at specified location is reserved\n *\n * @param {Number} row\n * @param {Number} col\n * @return {Boolean}\n */\nBitMatrix.prototype.isReserved = function (row, col) {\n return this.reservedBit[row * this.size + col]\n}\n\nmodule.exports = BitMatrix\n","/**\n * Alignment pattern are fixed reference pattern in defined positions\n * in a matrix symbology, which enables the decode software to re-synchronise\n * the coordinate mapping of the image modules in the event of moderate amounts\n * of distortion of the image.\n *\n * Alignment patterns are present only in QR Code symbols of version 2 or larger\n * and their number depends on the symbol version.\n */\n\nconst getSymbolSize = require('./utils').getSymbolSize\n\n/**\n * Calculate the row/column coordinates of the center module of each alignment pattern\n * for the specified QR Code version.\n *\n * The alignment patterns are positioned symmetrically on either side of the diagonal\n * running from the top left corner of the symbol to the bottom right corner.\n *\n * Since positions are simmetrical only half of the coordinates are returned.\n * Each item of the array will represent in turn the x and y coordinate.\n * @see {@link getPositions}\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinate\n */\nexports.getRowColCoords = function getRowColCoords (version) {\n if (version === 1) return []\n\n const posCount = Math.floor(version / 7) + 2\n const size = getSymbolSize(version)\n const intervals = size === 145 ? 26 : Math.ceil((size - 13) / (2 * posCount - 2)) * 2\n const positions = [size - 7] // Last coord is always (size - 7)\n\n for (let i = 1; i < posCount - 1; i++) {\n positions[i] = positions[i - 1] - intervals\n }\n\n positions.push(6) // First coord is always 6\n\n return positions.reverse()\n}\n\n/**\n * Returns an array containing the positions of each alignment pattern.\n * Each array's element represent the center point of the pattern as (x, y) coordinates\n *\n * Coordinates are calculated expanding the row/column coordinates returned by {@link getRowColCoords}\n * and filtering out the items that overlaps with finder pattern\n *\n * @example\n * For a Version 7 symbol {@link getRowColCoords} returns values 6, 22 and 38.\n * The alignment patterns, therefore, are to be centered on (row, column)\n * positions (6,22), (22,6), (22,22), (22,38), (38,22), (38,38).\n * Note that the coordinates (6,6), (6,38), (38,6) are occupied by finder patterns\n * and are not therefore used for alignment patterns.\n *\n * let pos = getPositions(7)\n * // [[6,22], [22,6], [22,22], [22,38], [38,22], [38,38]]\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinates\n */\nexports.getPositions = function getPositions (version) {\n const coords = []\n const pos = exports.getRowColCoords(version)\n const posLength = pos.length\n\n for (let i = 0; i < posLength; i++) {\n for (let j = 0; j < posLength; j++) {\n // Skip if position is occupied by finder patterns\n if ((i === 0 && j === 0) || // top-left\n (i === 0 && j === posLength - 1) || // bottom-left\n (i === posLength - 1 && j === 0)) { // top-right\n continue\n }\n\n coords.push([pos[i], pos[j]])\n }\n }\n\n return coords\n}\n","const getSymbolSize = require('./utils').getSymbolSize\nconst FINDER_PATTERN_SIZE = 7\n\n/**\n * Returns an array containing the positions of each finder pattern.\n * Each array's element represent the top-left point of the pattern as (x, y) coordinates\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinates\n */\nexports.getPositions = function getPositions (version) {\n const size = getSymbolSize(version)\n\n return [\n // top-left\n [0, 0],\n // top-right\n [size - FINDER_PATTERN_SIZE, 0],\n // bottom-left\n [0, size - FINDER_PATTERN_SIZE]\n ]\n}\n","/**\n * Data mask pattern reference\n * @type {Object}\n */\nexports.Patterns = {\n PATTERN000: 0,\n PATTERN001: 1,\n PATTERN010: 2,\n PATTERN011: 3,\n PATTERN100: 4,\n PATTERN101: 5,\n PATTERN110: 6,\n PATTERN111: 7\n}\n\n/**\n * Weighted penalty scores for the undesirable features\n * @type {Object}\n */\nconst PenaltyScores = {\n N1: 3,\n N2: 3,\n N3: 40,\n N4: 10\n}\n\n/**\n * Check if mask pattern value is valid\n *\n * @param {Number} mask Mask pattern\n * @return {Boolean} true if valid, false otherwise\n */\nexports.isValid = function isValid (mask) {\n return mask != null && mask !== '' && !isNaN(mask) && mask >= 0 && mask <= 7\n}\n\n/**\n * Returns mask pattern from a value.\n * If value is not valid, returns undefined\n *\n * @param {Number|String} value Mask pattern value\n * @return {Number} Valid mask pattern or undefined\n */\nexports.from = function from (value) {\n return exports.isValid(value) ? parseInt(value, 10) : undefined\n}\n\n/**\n* Find adjacent modules in row/column with the same color\n* and assign a penalty value.\n*\n* Points: N1 + i\n* i is the amount by which the number of adjacent modules of the same color exceeds 5\n*/\nexports.getPenaltyN1 = function getPenaltyN1 (data) {\n const size = data.size\n let points = 0\n let sameCountCol = 0\n let sameCountRow = 0\n let lastCol = null\n let lastRow = null\n\n for (let row = 0; row < size; row++) {\n sameCountCol = sameCountRow = 0\n lastCol = lastRow = null\n\n for (let col = 0; col < size; col++) {\n let module = data.get(row, col)\n if (module === lastCol) {\n sameCountCol++\n } else {\n if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5)\n lastCol = module\n sameCountCol = 1\n }\n\n module = data.get(col, row)\n if (module === lastRow) {\n sameCountRow++\n } else {\n if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5)\n lastRow = module\n sameCountRow = 1\n }\n }\n\n if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5)\n if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5)\n }\n\n return points\n}\n\n/**\n * Find 2x2 blocks with the same color and assign a penalty value\n *\n * Points: N2 * (m - 1) * (n - 1)\n */\nexports.getPenaltyN2 = function getPenaltyN2 (data) {\n const size = data.size\n let points = 0\n\n for (let row = 0; row < size - 1; row++) {\n for (let col = 0; col < size - 1; col++) {\n const last = data.get(row, col) +\n data.get(row, col + 1) +\n data.get(row + 1, col) +\n data.get(row + 1, col + 1)\n\n if (last === 4 || last === 0) points++\n }\n }\n\n return points * PenaltyScores.N2\n}\n\n/**\n * Find 1:1:3:1:1 ratio (dark:light:dark:light:dark) pattern in row/column,\n * preceded or followed by light area 4 modules wide\n *\n * Points: N3 * number of pattern found\n */\nexports.getPenaltyN3 = function getPenaltyN3 (data) {\n const size = data.size\n let points = 0\n let bitsCol = 0\n let bitsRow = 0\n\n for (let row = 0; row < size; row++) {\n bitsCol = bitsRow = 0\n for (let col = 0; col < size; col++) {\n bitsCol = ((bitsCol << 1) & 0x7FF) | data.get(row, col)\n if (col >= 10 && (bitsCol === 0x5D0 || bitsCol === 0x05D)) points++\n\n bitsRow = ((bitsRow << 1) & 0x7FF) | data.get(col, row)\n if (col >= 10 && (bitsRow === 0x5D0 || bitsRow === 0x05D)) points++\n }\n }\n\n return points * PenaltyScores.N3\n}\n\n/**\n * Calculate proportion of dark modules in entire symbol\n *\n * Points: N4 * k\n *\n * k is the rating of the deviation of the proportion of dark modules\n * in the symbol from 50% in steps of 5%\n */\nexports.getPenaltyN4 = function getPenaltyN4 (data) {\n let darkCount = 0\n const modulesCount = data.data.length\n\n for (let i = 0; i < modulesCount; i++) darkCount += data.data[i]\n\n const k = Math.abs(Math.ceil((darkCount * 100 / modulesCount) / 5) - 10)\n\n return k * PenaltyScores.N4\n}\n\n/**\n * Return mask value at given position\n *\n * @param {Number} maskPattern Pattern reference value\n * @param {Number} i Row\n * @param {Number} j Column\n * @return {Boolean} Mask value\n */\nfunction getMaskAt (maskPattern, i, j) {\n switch (maskPattern) {\n case exports.Patterns.PATTERN000: return (i + j) % 2 === 0\n case exports.Patterns.PATTERN001: return i % 2 === 0\n case exports.Patterns.PATTERN010: return j % 3 === 0\n case exports.Patterns.PATTERN011: return (i + j) % 3 === 0\n case exports.Patterns.PATTERN100: return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 === 0\n case exports.Patterns.PATTERN101: return (i * j) % 2 + (i * j) % 3 === 0\n case exports.Patterns.PATTERN110: return ((i * j) % 2 + (i * j) % 3) % 2 === 0\n case exports.Patterns.PATTERN111: return ((i * j) % 3 + (i + j) % 2) % 2 === 0\n\n default: throw new Error('bad maskPattern:' + maskPattern)\n }\n}\n\n/**\n * Apply a mask pattern to a BitMatrix\n *\n * @param {Number} pattern Pattern reference number\n * @param {BitMatrix} data BitMatrix data\n */\nexports.applyMask = function applyMask (pattern, data) {\n const size = data.size\n\n for (let col = 0; col < size; col++) {\n for (let row = 0; row < size; row++) {\n if (data.isReserved(row, col)) continue\n data.xor(row, col, getMaskAt(pattern, row, col))\n }\n }\n}\n\n/**\n * Returns the best mask pattern for data\n *\n * @param {BitMatrix} data\n * @return {Number} Mask pattern reference number\n */\nexports.getBestMask = function getBestMask (data, setupFormatFunc) {\n const numPatterns = Object.keys(exports.Patterns).length\n let bestPattern = 0\n let lowerPenalty = Infinity\n\n for (let p = 0; p < numPatterns; p++) {\n setupFormatFunc(p)\n exports.applyMask(p, data)\n\n // Calculate penalty\n const penalty =\n exports.getPenaltyN1(data) +\n exports.getPenaltyN2(data) +\n exports.getPenaltyN3(data) +\n exports.getPenaltyN4(data)\n\n // Undo previously applied mask\n exports.applyMask(p, data)\n\n if (penalty < lowerPenalty) {\n lowerPenalty = penalty\n bestPattern = p\n }\n }\n\n return bestPattern\n}\n","const ECLevel = require('./error-correction-level')\r\n\r\nconst EC_BLOCKS_TABLE = [\r\n// L M Q H\r\n 1, 1, 1, 1,\r\n 1, 1, 1, 1,\r\n 1, 1, 2, 2,\r\n 1, 2, 2, 4,\r\n 1, 2, 4, 4,\r\n 2, 4, 4, 4,\r\n 2, 4, 6, 5,\r\n 2, 4, 6, 6,\r\n 2, 5, 8, 8,\r\n 4, 5, 8, 8,\r\n 4, 5, 8, 11,\r\n 4, 8, 10, 11,\r\n 4, 9, 12, 16,\r\n 4, 9, 16, 16,\r\n 6, 10, 12, 18,\r\n 6, 10, 17, 16,\r\n 6, 11, 16, 19,\r\n 6, 13, 18, 21,\r\n 7, 14, 21, 25,\r\n 8, 16, 20, 25,\r\n 8, 17, 23, 25,\r\n 9, 17, 23, 34,\r\n 9, 18, 25, 30,\r\n 10, 20, 27, 32,\r\n 12, 21, 29, 35,\r\n 12, 23, 34, 37,\r\n 12, 25, 34, 40,\r\n 13, 26, 35, 42,\r\n 14, 28, 38, 45,\r\n 15, 29, 40, 48,\r\n 16, 31, 43, 51,\r\n 17, 33, 45, 54,\r\n 18, 35, 48, 57,\r\n 19, 37, 51, 60,\r\n 19, 38, 53, 63,\r\n 20, 40, 56, 66,\r\n 21, 43, 59, 70,\r\n 22, 45, 62, 74,\r\n 24, 47, 65, 77,\r\n 25, 49, 68, 81\r\n]\r\n\r\nconst EC_CODEWORDS_TABLE = [\r\n// L M Q H\r\n 7, 10, 13, 17,\r\n 10, 16, 22, 28,\r\n 15, 26, 36, 44,\r\n 20, 36, 52, 64,\r\n 26, 48, 72, 88,\r\n 36, 64, 96, 112,\r\n 40, 72, 108, 130,\r\n 48, 88, 132, 156,\r\n 60, 110, 160, 192,\r\n 72, 130, 192, 224,\r\n 80, 150, 224, 264,\r\n 96, 176, 260, 308,\r\n 104, 198, 288, 352,\r\n 120, 216, 320, 384,\r\n 132, 240, 360, 432,\r\n 144, 280, 408, 480,\r\n 168, 308, 448, 532,\r\n 180, 338, 504, 588,\r\n 196, 364, 546, 650,\r\n 224, 416, 600, 700,\r\n 224, 442, 644, 750,\r\n 252, 476, 690, 816,\r\n 270, 504, 750, 900,\r\n 300, 560, 810, 960,\r\n 312, 588, 870, 1050,\r\n 336, 644, 952, 1110,\r\n 360, 700, 1020, 1200,\r\n 390, 728, 1050, 1260,\r\n 420, 784, 1140, 1350,\r\n 450, 812, 1200, 1440,\r\n 480, 868, 1290, 1530,\r\n 510, 924, 1350, 1620,\r\n 540, 980, 1440, 1710,\r\n 570, 1036, 1530, 1800,\r\n 570, 1064, 1590, 1890,\r\n 600, 1120, 1680, 1980,\r\n 630, 1204, 1770, 2100,\r\n 660, 1260, 1860, 2220,\r\n 720, 1316, 1950, 2310,\r\n 750, 1372, 2040, 2430\r\n]\r\n\r\n/**\r\n * Returns the number of error correction block that the QR Code should contain\r\n * for the specified version and error correction level.\r\n *\r\n * @param {Number} version QR Code version\r\n * @param {Number} errorCorrectionLevel Error correction level\r\n * @return {Number} Number of error correction blocks\r\n */\r\nexports.getBlocksCount = function getBlocksCount (version, errorCorrectionLevel) {\r\n switch (errorCorrectionLevel) {\r\n case ECLevel.L:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 0]\r\n case ECLevel.M:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 1]\r\n case ECLevel.Q:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 2]\r\n case ECLevel.H:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 3]\r\n default:\r\n return undefined\r\n }\r\n}\r\n\r\n/**\r\n * Returns the number of error correction codewords to use for the specified\r\n * version and error correction level.\r\n *\r\n * @param {Number} version QR Code version\r\n * @param {Number} errorCorrectionLevel Error correction level\r\n * @return {Number} Number of error correction codewords\r\n */\r\nexports.getTotalCodewordsCount = function getTotalCodewordsCount (version, errorCorrectionLevel) {\r\n switch (errorCorrectionLevel) {\r\n case ECLevel.L:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 0]\r\n case ECLevel.M:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 1]\r\n case ECLevel.Q:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 2]\r\n case ECLevel.H:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 3]\r\n default:\r\n return undefined\r\n }\r\n}\r\n","const EXP_TABLE = new Uint8Array(512)\nconst LOG_TABLE = new Uint8Array(256)\n/**\n * Precompute the log and anti-log tables for faster computation later\n *\n * For each possible value in the galois field 2^8, we will pre-compute\n * the logarithm and anti-logarithm (exponential) of this value\n *\n * ref {@link https://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_for_coders#Introduction_to_mathematical_fields}\n */\n;(function initTables () {\n let x = 1\n for (let i = 0; i < 255; i++) {\n EXP_TABLE[i] = x\n LOG_TABLE[x] = i\n\n x <<= 1 // multiply by 2\n\n // The QR code specification says to use byte-wise modulo 100011101 arithmetic.\n // This means that when a number is 256 or larger, it should be XORed with 0x11D.\n if (x & 0x100) { // similar to x >= 256, but a lot faster (because 0x100 == 256)\n x ^= 0x11D\n }\n }\n\n // Optimization: double the size of the anti-log table so that we don't need to mod 255 to\n // stay inside the bounds (because we will mainly use this table for the multiplication of\n // two GF numbers, no more).\n // @see {@link mul}\n for (let i = 255; i < 512; i++) {\n EXP_TABLE[i] = EXP_TABLE[i - 255]\n }\n}())\n\n/**\n * Returns log value of n inside Galois Field\n *\n * @param {Number} n\n * @return {Number}\n */\nexports.log = function log (n) {\n if (n < 1) throw new Error('log(' + n + ')')\n return LOG_TABLE[n]\n}\n\n/**\n * Returns anti-log value of n inside Galois Field\n *\n * @param {Number} n\n * @return {Number}\n */\nexports.exp = function exp (n) {\n return EXP_TABLE[n]\n}\n\n/**\n * Multiplies two number inside Galois Field\n *\n * @param {Number} x\n * @param {Number} y\n * @return {Number}\n */\nexports.mul = function mul (x, y) {\n if (x === 0 || y === 0) return 0\n\n // should be EXP_TABLE[(LOG_TABLE[x] + LOG_TABLE[y]) % 255] if EXP_TABLE wasn't oversized\n // @see {@link initTables}\n return EXP_TABLE[LOG_TABLE[x] + LOG_TABLE[y]]\n}\n","const GF = require('./galois-field')\n\n/**\n * Multiplies two polynomials inside Galois Field\n *\n * @param {Uint8Array} p1 Polynomial\n * @param {Uint8Array} p2 Polynomial\n * @return {Uint8Array} Product of p1 and p2\n */\nexports.mul = function mul (p1, p2) {\n const coeff = new Uint8Array(p1.length + p2.length - 1)\n\n for (let i = 0; i < p1.length; i++) {\n for (let j = 0; j < p2.length; j++) {\n coeff[i + j] ^= GF.mul(p1[i], p2[j])\n }\n }\n\n return coeff\n}\n\n/**\n * Calculate the remainder of polynomials division\n *\n * @param {Uint8Array} divident Polynomial\n * @param {Uint8Array} divisor Polynomial\n * @return {Uint8Array} Remainder\n */\nexports.mod = function mod (divident, divisor) {\n let result = new Uint8Array(divident)\n\n while ((result.length - divisor.length) >= 0) {\n const coeff = result[0]\n\n for (let i = 0; i < divisor.length; i++) {\n result[i] ^= GF.mul(divisor[i], coeff)\n }\n\n // remove all zeros from buffer head\n let offset = 0\n while (offset < result.length && result[offset] === 0) offset++\n result = result.slice(offset)\n }\n\n return result\n}\n\n/**\n * Generate an irreducible generator polynomial of specified degree\n * (used by Reed-Solomon encoder)\n *\n * @param {Number} degree Degree of the generator polynomial\n * @return {Uint8Array} Buffer containing polynomial coefficients\n */\nexports.generateECPolynomial = function generateECPolynomial (degree) {\n let poly = new Uint8Array([1])\n for (let i = 0; i < degree; i++) {\n poly = exports.mul(poly, new Uint8Array([1, GF.exp(i)]))\n }\n\n return poly\n}\n","const Polynomial = require('./polynomial')\n\nfunction ReedSolomonEncoder (degree) {\n this.genPoly = undefined\n this.degree = degree\n\n if (this.degree) this.initialize(this.degree)\n}\n\n/**\n * Initialize the encoder.\n * The input param should correspond to the number of error correction codewords.\n *\n * @param {Number} degree\n */\nReedSolomonEncoder.prototype.initialize = function initialize (degree) {\n // create an irreducible generator polynomial\n this.degree = degree\n this.genPoly = Polynomial.generateECPolynomial(this.degree)\n}\n\n/**\n * Encodes a chunk of data\n *\n * @param {Uint8Array} data Buffer containing input data\n * @return {Uint8Array} Buffer containing encoded data\n */\nReedSolomonEncoder.prototype.encode = function encode (data) {\n if (!this.genPoly) {\n throw new Error('Encoder not initialized')\n }\n\n // Calculate EC for this data block\n // extends data size to data+genPoly size\n const paddedData = new Uint8Array(data.length + this.degree)\n paddedData.set(data)\n\n // The error correction codewords are the remainder after dividing the data codewords\n // by a generator polynomial\n const remainder = Polynomial.mod(paddedData, this.genPoly)\n\n // return EC data blocks (last n byte, where n is the degree of genPoly)\n // If coefficients number in remainder are less than genPoly degree,\n // pad with 0s to the left to reach the needed number of coefficients\n const start = this.degree - remainder.length\n if (start > 0) {\n const buff = new Uint8Array(this.degree)\n buff.set(remainder, start)\n\n return buff\n }\n\n return remainder\n}\n\nmodule.exports = ReedSolomonEncoder\n","/**\n * Check if QR Code version is valid\n *\n * @param {Number} version QR Code version\n * @return {Boolean} true if valid version, false otherwise\n */\nexports.isValid = function isValid (version) {\n return !isNaN(version) && version >= 1 && version <= 40\n}\n","const numeric = '[0-9]+'\nconst alphanumeric = '[A-Z $%*+\\\\-./:]+'\nlet kanji = '(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|' +\n '[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|' +\n '[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|' +\n '[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+'\nkanji = kanji.replace(/u/g, '\\\\u')\n\nconst byte = '(?:(?![A-Z0-9 $%*+\\\\-./:]|' + kanji + ')(?:.|[\\r\\n]))+'\n\nexports.KANJI = new RegExp(kanji, 'g')\nexports.BYTE_KANJI = new RegExp('[^A-Z0-9 $%*+\\\\-./:]+', 'g')\nexports.BYTE = new RegExp(byte, 'g')\nexports.NUMERIC = new RegExp(numeric, 'g')\nexports.ALPHANUMERIC = new RegExp(alphanumeric, 'g')\n\nconst TEST_KANJI = new RegExp('^' + kanji + '$')\nconst TEST_NUMERIC = new RegExp('^' + numeric + '$')\nconst TEST_ALPHANUMERIC = new RegExp('^[A-Z0-9 $%*+\\\\-./:]+$')\n\nexports.testKanji = function testKanji (str) {\n return TEST_KANJI.test(str)\n}\n\nexports.testNumeric = function testNumeric (str) {\n return TEST_NUMERIC.test(str)\n}\n\nexports.testAlphanumeric = function testAlphanumeric (str) {\n return TEST_ALPHANUMERIC.test(str)\n}\n","const VersionCheck = require('./version-check')\nconst Regex = require('./regex')\n\n/**\n * Numeric mode encodes data from the decimal digit set (0 - 9)\n * (byte values 30HEX to 39HEX).\n * Normally, 3 data characters are represented by 10 bits.\n *\n * @type {Object}\n */\nexports.NUMERIC = {\n id: 'Numeric',\n bit: 1 << 0,\n ccBits: [10, 12, 14]\n}\n\n/**\n * Alphanumeric mode encodes data from a set of 45 characters,\n * i.e. 10 numeric digits (0 - 9),\n * 26 alphabetic characters (A - Z),\n * and 9 symbols (SP, $, %, *, +, -, ., /, :).\n * Normally, two input characters are represented by 11 bits.\n *\n * @type {Object}\n */\nexports.ALPHANUMERIC = {\n id: 'Alphanumeric',\n bit: 1 << 1,\n ccBits: [9, 11, 13]\n}\n\n/**\n * In byte mode, data is encoded at 8 bits per character.\n *\n * @type {Object}\n */\nexports.BYTE = {\n id: 'Byte',\n bit: 1 << 2,\n ccBits: [8, 16, 16]\n}\n\n/**\n * The Kanji mode efficiently encodes Kanji characters in accordance with\n * the Shift JIS system based on JIS X 0208.\n * The Shift JIS values are shifted from the JIS X 0208 values.\n * JIS X 0208 gives details of the shift coded representation.\n * Each two-byte character value is compacted to a 13-bit binary codeword.\n *\n * @type {Object}\n */\nexports.KANJI = {\n id: 'Kanji',\n bit: 1 << 3,\n ccBits: [8, 10, 12]\n}\n\n/**\n * Mixed mode will contain a sequences of data in a combination of any of\n * the modes described above\n *\n * @type {Object}\n */\nexports.MIXED = {\n bit: -1\n}\n\n/**\n * Returns the number of bits needed to store the data length\n * according to QR Code specifications.\n *\n * @param {Mode} mode Data mode\n * @param {Number} version QR Code version\n * @return {Number} Number of bits\n */\nexports.getCharCountIndicator = function getCharCountIndicator (mode, version) {\n if (!mode.ccBits) throw new Error('Invalid mode: ' + mode)\n\n if (!VersionCheck.isValid(version)) {\n throw new Error('Invalid version: ' + version)\n }\n\n if (version >= 1 && version < 10) return mode.ccBits[0]\n else if (version < 27) return mode.ccBits[1]\n return mode.ccBits[2]\n}\n\n/**\n * Returns the most efficient mode to store the specified data\n *\n * @param {String} dataStr Input data string\n * @return {Mode} Best mode\n */\nexports.getBestModeForData = function getBestModeForData (dataStr) {\n if (Regex.testNumeric(dataStr)) return exports.NUMERIC\n else if (Regex.testAlphanumeric(dataStr)) return exports.ALPHANUMERIC\n else if (Regex.testKanji(dataStr)) return exports.KANJI\n else return exports.BYTE\n}\n\n/**\n * Return mode name as string\n *\n * @param {Mode} mode Mode object\n * @returns {String} Mode name\n */\nexports.toString = function toString (mode) {\n if (mode && mode.id) return mode.id\n throw new Error('Invalid mode')\n}\n\n/**\n * Check if input param is a valid mode object\n *\n * @param {Mode} mode Mode object\n * @returns {Boolean} True if valid mode, false otherwise\n */\nexports.isValid = function isValid (mode) {\n return mode && mode.bit && mode.ccBits\n}\n\n/**\n * Get mode object from its name\n *\n * @param {String} string Mode name\n * @returns {Mode} Mode object\n */\nfunction fromString (string) {\n if (typeof string !== 'string') {\n throw new Error('Param is not a string')\n }\n\n const lcStr = string.toLowerCase()\n\n switch (lcStr) {\n case 'numeric':\n return exports.NUMERIC\n case 'alphanumeric':\n return exports.ALPHANUMERIC\n case 'kanji':\n return exports.KANJI\n case 'byte':\n return exports.BYTE\n default:\n throw new Error('Unknown mode: ' + string)\n }\n}\n\n/**\n * Returns mode from a value.\n * If value is not a valid mode, returns defaultValue\n *\n * @param {Mode|String} value Encoding mode\n * @param {Mode} defaultValue Fallback value\n * @return {Mode} Encoding mode\n */\nexports.from = function from (value, defaultValue) {\n if (exports.isValid(value)) {\n return value\n }\n\n try {\n return fromString(value)\n } catch (e) {\n return defaultValue\n }\n}\n","const Utils = require('./utils')\nconst ECCode = require('./error-correction-code')\nconst ECLevel = require('./error-correction-level')\nconst Mode = require('./mode')\nconst VersionCheck = require('./version-check')\n\n// Generator polynomial used to encode version information\nconst G18 = (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0)\nconst G18_BCH = Utils.getBCHDigit(G18)\n\nfunction getBestVersionForDataLength (mode, length, errorCorrectionLevel) {\n for (let currentVersion = 1; currentVersion <= 40; currentVersion++) {\n if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, mode)) {\n return currentVersion\n }\n }\n\n return undefined\n}\n\nfunction getReservedBitsCount (mode, version) {\n // Character count indicator + mode indicator bits\n return Mode.getCharCountIndicator(mode, version) + 4\n}\n\nfunction getTotalBitsFromDataArray (segments, version) {\n let totalBits = 0\n\n segments.forEach(function (data) {\n const reservedBits = getReservedBitsCount(data.mode, version)\n totalBits += reservedBits + data.getBitsLength()\n })\n\n return totalBits\n}\n\nfunction getBestVersionForMixedData (segments, errorCorrectionLevel) {\n for (let currentVersion = 1; currentVersion <= 40; currentVersion++) {\n const length = getTotalBitsFromDataArray(segments, currentVersion)\n if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, Mode.MIXED)) {\n return currentVersion\n }\n }\n\n return undefined\n}\n\n/**\n * Returns version number from a value.\n * If value is not a valid version, returns defaultValue\n *\n * @param {Number|String} value QR Code version\n * @param {Number} defaultValue Fallback value\n * @return {Number} QR Code version number\n */\nexports.from = function from (value, defaultValue) {\n if (VersionCheck.isValid(value)) {\n return parseInt(value, 10)\n }\n\n return defaultValue\n}\n\n/**\n * Returns how much data can be stored with the specified QR code version\n * and error correction level\n *\n * @param {Number} version QR Code version (1-40)\n * @param {Number} errorCorrectionLevel Error correction level\n * @param {Mode} mode Data mode\n * @return {Number} Quantity of storable data\n */\nexports.getCapacity = function getCapacity (version, errorCorrectionLevel, mode) {\n if (!VersionCheck.isValid(version)) {\n throw new Error('Invalid QR Code version')\n }\n\n // Use Byte mode as default\n if (typeof mode === 'undefined') mode = Mode.BYTE\n\n // Total codewords for this QR code version (Data + Error correction)\n const totalCodewords = Utils.getSymbolTotalCodewords(version)\n\n // Total number of error correction codewords\n const ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n\n // Total number of data codewords\n const dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8\n\n if (mode === Mode.MIXED) return dataTotalCodewordsBits\n\n const usableBits = dataTotalCodewordsBits - getReservedBitsCount(mode, version)\n\n // Return max number of storable codewords\n switch (mode) {\n case Mode.NUMERIC:\n return Math.floor((usableBits / 10) * 3)\n\n case Mode.ALPHANUMERIC:\n return Math.floor((usableBits / 11) * 2)\n\n case Mode.KANJI:\n return Math.floor(usableBits / 13)\n\n case Mode.BYTE:\n default:\n return Math.floor(usableBits / 8)\n }\n}\n\n/**\n * Returns the minimum version needed to contain the amount of data\n *\n * @param {Segment} data Segment of data\n * @param {Number} [errorCorrectionLevel=H] Error correction level\n * @param {Mode} mode Data mode\n * @return {Number} QR Code version\n */\nexports.getBestVersionForData = function getBestVersionForData (data, errorCorrectionLevel) {\n let seg\n\n const ecl = ECLevel.from(errorCorrectionLevel, ECLevel.M)\n\n if (Array.isArray(data)) {\n if (data.length > 1) {\n return getBestVersionForMixedData(data, ecl)\n }\n\n if (data.length === 0) {\n return 1\n }\n\n seg = data[0]\n } else {\n seg = data\n }\n\n return getBestVersionForDataLength(seg.mode, seg.getLength(), ecl)\n}\n\n/**\n * Returns version information with relative error correction bits\n *\n * The version information is included in QR Code symbols of version 7 or larger.\n * It consists of an 18-bit sequence containing 6 data bits,\n * with 12 error correction bits calculated using the (18, 6) Golay code.\n *\n * @param {Number} version QR Code version\n * @return {Number} Encoded version info bits\n */\nexports.getEncodedBits = function getEncodedBits (version) {\n if (!VersionCheck.isValid(version) || version < 7) {\n throw new Error('Invalid QR Code version')\n }\n\n let d = version << 12\n\n while (Utils.getBCHDigit(d) - G18_BCH >= 0) {\n d ^= (G18 << (Utils.getBCHDigit(d) - G18_BCH))\n }\n\n return (version << 12) | d\n}\n","const Utils = require('./utils')\n\nconst G15 = (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0)\nconst G15_MASK = (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1)\nconst G15_BCH = Utils.getBCHDigit(G15)\n\n/**\n * Returns format information with relative error correction bits\n *\n * The format information is a 15-bit sequence containing 5 data bits,\n * with 10 error correction bits calculated using the (15, 5) BCH code.\n *\n * @param {Number} errorCorrectionLevel Error correction level\n * @param {Number} mask Mask pattern\n * @return {Number} Encoded format information bits\n */\nexports.getEncodedBits = function getEncodedBits (errorCorrectionLevel, mask) {\n const data = ((errorCorrectionLevel.bit << 3) | mask)\n let d = data << 10\n\n while (Utils.getBCHDigit(d) - G15_BCH >= 0) {\n d ^= (G15 << (Utils.getBCHDigit(d) - G15_BCH))\n }\n\n // xor final data with mask pattern in order to ensure that\n // no combination of Error Correction Level and data mask pattern\n // will result in an all-zero data string\n return ((data << 10) | d) ^ G15_MASK\n}\n","const Mode = require('./mode')\n\nfunction NumericData (data) {\n this.mode = Mode.NUMERIC\n this.data = data.toString()\n}\n\nNumericData.getBitsLength = function getBitsLength (length) {\n return 10 * Math.floor(length / 3) + ((length % 3) ? ((length % 3) * 3 + 1) : 0)\n}\n\nNumericData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nNumericData.prototype.getBitsLength = function getBitsLength () {\n return NumericData.getBitsLength(this.data.length)\n}\n\nNumericData.prototype.write = function write (bitBuffer) {\n let i, group, value\n\n // The input data string is divided into groups of three digits,\n // and each group is converted to its 10-bit binary equivalent.\n for (i = 0; i + 3 <= this.data.length; i += 3) {\n group = this.data.substr(i, 3)\n value = parseInt(group, 10)\n\n bitBuffer.put(value, 10)\n }\n\n // If the number of input digits is not an exact multiple of three,\n // the final one or two digits are converted to 4 or 7 bits respectively.\n const remainingNum = this.data.length - i\n if (remainingNum > 0) {\n group = this.data.substr(i)\n value = parseInt(group, 10)\n\n bitBuffer.put(value, remainingNum * 3 + 1)\n }\n}\n\nmodule.exports = NumericData\n","const Mode = require('./mode')\n\n/**\n * Array of characters available in alphanumeric mode\n *\n * As per QR Code specification, to each character\n * is assigned a value from 0 to 44 which in this case coincides\n * with the array index\n *\n * @type {Array}\n */\nconst ALPHA_NUM_CHARS = [\n '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',\n 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',\n 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',\n ' ', '$', '%', '*', '+', '-', '.', '/', ':'\n]\n\nfunction AlphanumericData (data) {\n this.mode = Mode.ALPHANUMERIC\n this.data = data\n}\n\nAlphanumericData.getBitsLength = function getBitsLength (length) {\n return 11 * Math.floor(length / 2) + 6 * (length % 2)\n}\n\nAlphanumericData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nAlphanumericData.prototype.getBitsLength = function getBitsLength () {\n return AlphanumericData.getBitsLength(this.data.length)\n}\n\nAlphanumericData.prototype.write = function write (bitBuffer) {\n let i\n\n // Input data characters are divided into groups of two characters\n // and encoded as 11-bit binary codes.\n for (i = 0; i + 2 <= this.data.length; i += 2) {\n // The character value of the first character is multiplied by 45\n let value = ALPHA_NUM_CHARS.indexOf(this.data[i]) * 45\n\n // The character value of the second digit is added to the product\n value += ALPHA_NUM_CHARS.indexOf(this.data[i + 1])\n\n // The sum is then stored as 11-bit binary number\n bitBuffer.put(value, 11)\n }\n\n // If the number of input data characters is not a multiple of two,\n // the character value of the final character is encoded as a 6-bit binary number.\n if (this.data.length % 2) {\n bitBuffer.put(ALPHA_NUM_CHARS.indexOf(this.data[i]), 6)\n }\n}\n\nmodule.exports = AlphanumericData\n","'use strict'\n\nmodule.exports = function encodeUtf8 (input) {\n var result = []\n var size = input.length\n\n for (var index = 0; index < size; index++) {\n var point = input.charCodeAt(index)\n\n if (point >= 0xD800 && point <= 0xDBFF && size > index + 1) {\n var second = input.charCodeAt(index + 1)\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n point = (point - 0xD800) * 0x400 + second - 0xDC00 + 0x10000\n index += 1\n }\n }\n\n // US-ASCII\n if (point < 0x80) {\n result.push(point)\n continue\n }\n\n // 2-byte UTF-8\n if (point < 0x800) {\n result.push((point >> 6) | 192)\n result.push((point & 63) | 128)\n continue\n }\n\n // 3-byte UTF-8\n if (point < 0xD800 || (point >= 0xE000 && point < 0x10000)) {\n result.push((point >> 12) | 224)\n result.push(((point >> 6) & 63) | 128)\n result.push((point & 63) | 128)\n continue\n }\n\n // 4-byte UTF-8\n if (point >= 0x10000 && point <= 0x10FFFF) {\n result.push((point >> 18) | 240)\n result.push(((point >> 12) & 63) | 128)\n result.push(((point >> 6) & 63) | 128)\n result.push((point & 63) | 128)\n continue\n }\n\n // Invalid character\n result.push(0xEF, 0xBF, 0xBD)\n }\n\n return new Uint8Array(result).buffer\n}\n","const encodeUtf8 = require('encode-utf8')\nconst Mode = require('./mode')\n\nfunction ByteData (data) {\n this.mode = Mode.BYTE\n if (typeof (data) === 'string') {\n data = encodeUtf8(data)\n }\n this.data = new Uint8Array(data)\n}\n\nByteData.getBitsLength = function getBitsLength (length) {\n return length * 8\n}\n\nByteData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nByteData.prototype.getBitsLength = function getBitsLength () {\n return ByteData.getBitsLength(this.data.length)\n}\n\nByteData.prototype.write = function (bitBuffer) {\n for (let i = 0, l = this.data.length; i < l; i++) {\n bitBuffer.put(this.data[i], 8)\n }\n}\n\nmodule.exports = ByteData\n","const Mode = require('./mode')\nconst Utils = require('./utils')\n\nfunction KanjiData (data) {\n this.mode = Mode.KANJI\n this.data = data\n}\n\nKanjiData.getBitsLength = function getBitsLength (length) {\n return length * 13\n}\n\nKanjiData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nKanjiData.prototype.getBitsLength = function getBitsLength () {\n return KanjiData.getBitsLength(this.data.length)\n}\n\nKanjiData.prototype.write = function (bitBuffer) {\n let i\n\n // In the Shift JIS system, Kanji characters are represented by a two byte combination.\n // These byte values are shifted from the JIS X 0208 values.\n // JIS X 0208 gives details of the shift coded representation.\n for (i = 0; i < this.data.length; i++) {\n let value = Utils.toSJIS(this.data[i])\n\n // For characters with Shift JIS values from 0x8140 to 0x9FFC:\n if (value >= 0x8140 && value <= 0x9FFC) {\n // Subtract 0x8140 from Shift JIS value\n value -= 0x8140\n\n // For characters with Shift JIS values from 0xE040 to 0xEBBF\n } else if (value >= 0xE040 && value <= 0xEBBF) {\n // Subtract 0xC140 from Shift JIS value\n value -= 0xC140\n } else {\n throw new Error(\n 'Invalid SJIS character: ' + this.data[i] + '\\n' +\n 'Make sure your charset is UTF-8')\n }\n\n // Multiply most significant byte of result by 0xC0\n // and add least significant byte to product\n value = (((value >>> 8) & 0xff) * 0xC0) + (value & 0xff)\n\n // Convert result to a 13-bit binary string\n bitBuffer.put(value, 13)\n }\n}\n\nmodule.exports = KanjiData\n","'use strict';\n\n/******************************************************************************\n * Created 2008-08-19.\n *\n * Dijkstra path-finding functions. Adapted from the Dijkstar Python project.\n *\n * Copyright (C) 2008\n * Wyatt Baldwin \n * All rights reserved\n *\n * Licensed under the MIT license.\n *\n * http://www.opensource.org/licenses/mit-license.php\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *****************************************************************************/\nvar dijkstra = {\n single_source_shortest_paths: function(graph, s, d) {\n // Predecessor map for each node that has been encountered.\n // node ID => predecessor node ID\n var predecessors = {};\n\n // Costs of shortest paths from s to all nodes encountered.\n // node ID => cost\n var costs = {};\n costs[s] = 0;\n\n // Costs of shortest paths from s to all nodes encountered; differs from\n // `costs` in that it provides easy access to the node that currently has\n // the known shortest path from s.\n // XXX: Do we actually need both `costs` and `open`?\n var open = dijkstra.PriorityQueue.make();\n open.push(s, 0);\n\n var closest,\n u, v,\n cost_of_s_to_u,\n adjacent_nodes,\n cost_of_e,\n cost_of_s_to_u_plus_cost_of_e,\n cost_of_s_to_v,\n first_visit;\n while (!open.empty()) {\n // In the nodes remaining in graph that have a known cost from s,\n // find the node, u, that currently has the shortest path from s.\n closest = open.pop();\n u = closest.value;\n cost_of_s_to_u = closest.cost;\n\n // Get nodes adjacent to u...\n adjacent_nodes = graph[u] || {};\n\n // ...and explore the edges that connect u to those nodes, updating\n // the cost of the shortest paths to any or all of those nodes as\n // necessary. v is the node across the current edge from u.\n for (v in adjacent_nodes) {\n if (adjacent_nodes.hasOwnProperty(v)) {\n // Get the cost of the edge running from u to v.\n cost_of_e = adjacent_nodes[v];\n\n // Cost of s to u plus the cost of u to v across e--this is *a*\n // cost from s to v that may or may not be less than the current\n // known cost to v.\n cost_of_s_to_u_plus_cost_of_e = cost_of_s_to_u + cost_of_e;\n\n // If we haven't visited v yet OR if the current known cost from s to\n // v is greater than the new cost we just found (cost of s to u plus\n // cost of u to v across e), update v's cost in the cost list and\n // update v's predecessor in the predecessor list (it's now u).\n cost_of_s_to_v = costs[v];\n first_visit = (typeof costs[v] === 'undefined');\n if (first_visit || cost_of_s_to_v > cost_of_s_to_u_plus_cost_of_e) {\n costs[v] = cost_of_s_to_u_plus_cost_of_e;\n open.push(v, cost_of_s_to_u_plus_cost_of_e);\n predecessors[v] = u;\n }\n }\n }\n }\n\n if (typeof d !== 'undefined' && typeof costs[d] === 'undefined') {\n var msg = ['Could not find a path from ', s, ' to ', d, '.'].join('');\n throw new Error(msg);\n }\n\n return predecessors;\n },\n\n extract_shortest_path_from_predecessor_list: function(predecessors, d) {\n var nodes = [];\n var u = d;\n var predecessor;\n while (u) {\n nodes.push(u);\n predecessor = predecessors[u];\n u = predecessors[u];\n }\n nodes.reverse();\n return nodes;\n },\n\n find_path: function(graph, s, d) {\n var predecessors = dijkstra.single_source_shortest_paths(graph, s, d);\n return dijkstra.extract_shortest_path_from_predecessor_list(\n predecessors, d);\n },\n\n /**\n * A very naive priority queue implementation.\n */\n PriorityQueue: {\n make: function (opts) {\n var T = dijkstra.PriorityQueue,\n t = {},\n key;\n opts = opts || {};\n for (key in T) {\n if (T.hasOwnProperty(key)) {\n t[key] = T[key];\n }\n }\n t.queue = [];\n t.sorter = opts.sorter || T.default_sorter;\n return t;\n },\n\n default_sorter: function (a, b) {\n return a.cost - b.cost;\n },\n\n /**\n * Add a new item to the queue and ensure the highest priority element\n * is at the front of the queue.\n */\n push: function (value, cost) {\n var item = {value: value, cost: cost};\n this.queue.push(item);\n this.queue.sort(this.sorter);\n },\n\n /**\n * Return the highest priority element in the queue.\n */\n pop: function () {\n return this.queue.shift();\n },\n\n empty: function () {\n return this.queue.length === 0;\n }\n }\n};\n\n\n// node.js module exports\nif (typeof module !== 'undefined') {\n module.exports = dijkstra;\n}\n","const Mode = require('./mode')\nconst NumericData = require('./numeric-data')\nconst AlphanumericData = require('./alphanumeric-data')\nconst ByteData = require('./byte-data')\nconst KanjiData = require('./kanji-data')\nconst Regex = require('./regex')\nconst Utils = require('./utils')\nconst dijkstra = require('dijkstrajs')\n\n/**\n * Returns UTF8 byte length\n *\n * @param {String} str Input string\n * @return {Number} Number of byte\n */\nfunction getStringByteLength (str) {\n return unescape(encodeURIComponent(str)).length\n}\n\n/**\n * Get a list of segments of the specified mode\n * from a string\n *\n * @param {Mode} mode Segment mode\n * @param {String} str String to process\n * @return {Array} Array of object with segments data\n */\nfunction getSegments (regex, mode, str) {\n const segments = []\n let result\n\n while ((result = regex.exec(str)) !== null) {\n segments.push({\n data: result[0],\n index: result.index,\n mode: mode,\n length: result[0].length\n })\n }\n\n return segments\n}\n\n/**\n * Extracts a series of segments with the appropriate\n * modes from a string\n *\n * @param {String} dataStr Input string\n * @return {Array} Array of object with segments data\n */\nfunction getSegmentsFromString (dataStr) {\n const numSegs = getSegments(Regex.NUMERIC, Mode.NUMERIC, dataStr)\n const alphaNumSegs = getSegments(Regex.ALPHANUMERIC, Mode.ALPHANUMERIC, dataStr)\n let byteSegs\n let kanjiSegs\n\n if (Utils.isKanjiModeEnabled()) {\n byteSegs = getSegments(Regex.BYTE, Mode.BYTE, dataStr)\n kanjiSegs = getSegments(Regex.KANJI, Mode.KANJI, dataStr)\n } else {\n byteSegs = getSegments(Regex.BYTE_KANJI, Mode.BYTE, dataStr)\n kanjiSegs = []\n }\n\n const segs = numSegs.concat(alphaNumSegs, byteSegs, kanjiSegs)\n\n return segs\n .sort(function (s1, s2) {\n return s1.index - s2.index\n })\n .map(function (obj) {\n return {\n data: obj.data,\n mode: obj.mode,\n length: obj.length\n }\n })\n}\n\n/**\n * Returns how many bits are needed to encode a string of\n * specified length with the specified mode\n *\n * @param {Number} length String length\n * @param {Mode} mode Segment mode\n * @return {Number} Bit length\n */\nfunction getSegmentBitsLength (length, mode) {\n switch (mode) {\n case Mode.NUMERIC:\n return NumericData.getBitsLength(length)\n case Mode.ALPHANUMERIC:\n return AlphanumericData.getBitsLength(length)\n case Mode.KANJI:\n return KanjiData.getBitsLength(length)\n case Mode.BYTE:\n return ByteData.getBitsLength(length)\n }\n}\n\n/**\n * Merges adjacent segments which have the same mode\n *\n * @param {Array} segs Array of object with segments data\n * @return {Array} Array of object with segments data\n */\nfunction mergeSegments (segs) {\n return segs.reduce(function (acc, curr) {\n const prevSeg = acc.length - 1 >= 0 ? acc[acc.length - 1] : null\n if (prevSeg && prevSeg.mode === curr.mode) {\n acc[acc.length - 1].data += curr.data\n return acc\n }\n\n acc.push(curr)\n return acc\n }, [])\n}\n\n/**\n * Generates a list of all possible nodes combination which\n * will be used to build a segments graph.\n *\n * Nodes are divided by groups. Each group will contain a list of all the modes\n * in which is possible to encode the given text.\n *\n * For example the text '12345' can be encoded as Numeric, Alphanumeric or Byte.\n * The group for '12345' will contain then 3 objects, one for each\n * possible encoding mode.\n *\n * Each node represents a possible segment.\n *\n * @param {Array} segs Array of object with segments data\n * @return {Array} Array of object with segments data\n */\nfunction buildNodes (segs) {\n const nodes = []\n for (let i = 0; i < segs.length; i++) {\n const seg = segs[i]\n\n switch (seg.mode) {\n case Mode.NUMERIC:\n nodes.push([seg,\n { data: seg.data, mode: Mode.ALPHANUMERIC, length: seg.length },\n { data: seg.data, mode: Mode.BYTE, length: seg.length }\n ])\n break\n case Mode.ALPHANUMERIC:\n nodes.push([seg,\n { data: seg.data, mode: Mode.BYTE, length: seg.length }\n ])\n break\n case Mode.KANJI:\n nodes.push([seg,\n { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n ])\n break\n case Mode.BYTE:\n nodes.push([\n { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n ])\n }\n }\n\n return nodes\n}\n\n/**\n * Builds a graph from a list of nodes.\n * All segments in each node group will be connected with all the segments of\n * the next group and so on.\n *\n * At each connection will be assigned a weight depending on the\n * segment's byte length.\n *\n * @param {Array} nodes Array of object with segments data\n * @param {Number} version QR Code version\n * @return {Object} Graph of all possible segments\n */\nfunction buildGraph (nodes, version) {\n const table = {}\n const graph = { start: {} }\n let prevNodeIds = ['start']\n\n for (let i = 0; i < nodes.length; i++) {\n const nodeGroup = nodes[i]\n const currentNodeIds = []\n\n for (let j = 0; j < nodeGroup.length; j++) {\n const node = nodeGroup[j]\n const key = '' + i + j\n\n currentNodeIds.push(key)\n table[key] = { node: node, lastCount: 0 }\n graph[key] = {}\n\n for (let n = 0; n < prevNodeIds.length; n++) {\n const prevNodeId = prevNodeIds[n]\n\n if (table[prevNodeId] && table[prevNodeId].node.mode === node.mode) {\n graph[prevNodeId][key] =\n getSegmentBitsLength(table[prevNodeId].lastCount + node.length, node.mode) -\n getSegmentBitsLength(table[prevNodeId].lastCount, node.mode)\n\n table[prevNodeId].lastCount += node.length\n } else {\n if (table[prevNodeId]) table[prevNodeId].lastCount = node.length\n\n graph[prevNodeId][key] = getSegmentBitsLength(node.length, node.mode) +\n 4 + Mode.getCharCountIndicator(node.mode, version) // switch cost\n }\n }\n }\n\n prevNodeIds = currentNodeIds\n }\n\n for (let n = 0; n < prevNodeIds.length; n++) {\n graph[prevNodeIds[n]].end = 0\n }\n\n return { map: graph, table: table }\n}\n\n/**\n * Builds a segment from a specified data and mode.\n * If a mode is not specified, the more suitable will be used.\n *\n * @param {String} data Input data\n * @param {Mode | String} modesHint Data mode\n * @return {Segment} Segment\n */\nfunction buildSingleSegment (data, modesHint) {\n let mode\n const bestMode = Mode.getBestModeForData(data)\n\n mode = Mode.from(modesHint, bestMode)\n\n // Make sure data can be encoded\n if (mode !== Mode.BYTE && mode.bit < bestMode.bit) {\n throw new Error('\"' + data + '\"' +\n ' cannot be encoded with mode ' + Mode.toString(mode) +\n '.\\n Suggested mode is: ' + Mode.toString(bestMode))\n }\n\n // Use Mode.BYTE if Kanji support is disabled\n if (mode === Mode.KANJI && !Utils.isKanjiModeEnabled()) {\n mode = Mode.BYTE\n }\n\n switch (mode) {\n case Mode.NUMERIC:\n return new NumericData(data)\n\n case Mode.ALPHANUMERIC:\n return new AlphanumericData(data)\n\n case Mode.KANJI:\n return new KanjiData(data)\n\n case Mode.BYTE:\n return new ByteData(data)\n }\n}\n\n/**\n * Builds a list of segments from an array.\n * Array can contain Strings or Objects with segment's info.\n *\n * For each item which is a string, will be generated a segment with the given\n * string and the more appropriate encoding mode.\n *\n * For each item which is an object, will be generated a segment with the given\n * data and mode.\n * Objects must contain at least the property \"data\".\n * If property \"mode\" is not present, the more suitable mode will be used.\n *\n * @param {Array} array Array of objects with segments data\n * @return {Array} Array of Segments\n */\nexports.fromArray = function fromArray (array) {\n return array.reduce(function (acc, seg) {\n if (typeof seg === 'string') {\n acc.push(buildSingleSegment(seg, null))\n } else if (seg.data) {\n acc.push(buildSingleSegment(seg.data, seg.mode))\n }\n\n return acc\n }, [])\n}\n\n/**\n * Builds an optimized sequence of segments from a string,\n * which will produce the shortest possible bitstream.\n *\n * @param {String} data Input string\n * @param {Number} version QR Code version\n * @return {Array} Array of segments\n */\nexports.fromString = function fromString (data, version) {\n const segs = getSegmentsFromString(data, Utils.isKanjiModeEnabled())\n\n const nodes = buildNodes(segs)\n const graph = buildGraph(nodes, version)\n const path = dijkstra.find_path(graph.map, 'start', 'end')\n\n const optimizedSegs = []\n for (let i = 1; i < path.length - 1; i++) {\n optimizedSegs.push(graph.table[path[i]].node)\n }\n\n return exports.fromArray(mergeSegments(optimizedSegs))\n}\n\n/**\n * Splits a string in various segments with the modes which\n * best represent their content.\n * The produced segments are far from being optimized.\n * The output of this function is only used to estimate a QR Code version\n * which may contain the data.\n *\n * @param {string} data Input string\n * @return {Array} Array of segments\n */\nexports.rawSplit = function rawSplit (data) {\n return exports.fromArray(\n getSegmentsFromString(data, Utils.isKanjiModeEnabled())\n )\n}\n","const Utils = require('./utils')\nconst ECLevel = require('./error-correction-level')\nconst BitBuffer = require('./bit-buffer')\nconst BitMatrix = require('./bit-matrix')\nconst AlignmentPattern = require('./alignment-pattern')\nconst FinderPattern = require('./finder-pattern')\nconst MaskPattern = require('./mask-pattern')\nconst ECCode = require('./error-correction-code')\nconst ReedSolomonEncoder = require('./reed-solomon-encoder')\nconst Version = require('./version')\nconst FormatInfo = require('./format-info')\nconst Mode = require('./mode')\nconst Segments = require('./segments')\n\n/**\n * QRCode for JavaScript\n *\n * modified by Ryan Day for nodejs support\n * Copyright (c) 2011 Ryan Day\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/mit-license.php\n *\n//---------------------------------------------------------------------\n// QRCode for JavaScript\n//\n// Copyright (c) 2009 Kazuhiko Arase\n//\n// URL: http://www.d-project.com/\n//\n// Licensed under the MIT license:\n// http://www.opensource.org/licenses/mit-license.php\n//\n// The word \"QR Code\" is registered trademark of\n// DENSO WAVE INCORPORATED\n// http://www.denso-wave.com/qrcode/faqpatent-e.html\n//\n//---------------------------------------------------------------------\n*/\n\n/**\n * Add finder patterns bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupFinderPattern (matrix, version) {\n const size = matrix.size\n const pos = FinderPattern.getPositions(version)\n\n for (let i = 0; i < pos.length; i++) {\n const row = pos[i][0]\n const col = pos[i][1]\n\n for (let r = -1; r <= 7; r++) {\n if (row + r <= -1 || size <= row + r) continue\n\n for (let c = -1; c <= 7; c++) {\n if (col + c <= -1 || size <= col + c) continue\n\n if ((r >= 0 && r <= 6 && (c === 0 || c === 6)) ||\n (c >= 0 && c <= 6 && (r === 0 || r === 6)) ||\n (r >= 2 && r <= 4 && c >= 2 && c <= 4)) {\n matrix.set(row + r, col + c, true, true)\n } else {\n matrix.set(row + r, col + c, false, true)\n }\n }\n }\n }\n}\n\n/**\n * Add timing pattern bits to matrix\n *\n * Note: this function must be called before {@link setupAlignmentPattern}\n *\n * @param {BitMatrix} matrix Modules matrix\n */\nfunction setupTimingPattern (matrix) {\n const size = matrix.size\n\n for (let r = 8; r < size - 8; r++) {\n const value = r % 2 === 0\n matrix.set(r, 6, value, true)\n matrix.set(6, r, value, true)\n }\n}\n\n/**\n * Add alignment patterns bits to matrix\n *\n * Note: this function must be called after {@link setupTimingPattern}\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupAlignmentPattern (matrix, version) {\n const pos = AlignmentPattern.getPositions(version)\n\n for (let i = 0; i < pos.length; i++) {\n const row = pos[i][0]\n const col = pos[i][1]\n\n for (let r = -2; r <= 2; r++) {\n for (let c = -2; c <= 2; c++) {\n if (r === -2 || r === 2 || c === -2 || c === 2 ||\n (r === 0 && c === 0)) {\n matrix.set(row + r, col + c, true, true)\n } else {\n matrix.set(row + r, col + c, false, true)\n }\n }\n }\n }\n}\n\n/**\n * Add version info bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupVersionInfo (matrix, version) {\n const size = matrix.size\n const bits = Version.getEncodedBits(version)\n let row, col, mod\n\n for (let i = 0; i < 18; i++) {\n row = Math.floor(i / 3)\n col = i % 3 + size - 8 - 3\n mod = ((bits >> i) & 1) === 1\n\n matrix.set(row, col, mod, true)\n matrix.set(col, row, mod, true)\n }\n}\n\n/**\n * Add format info bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @param {Number} maskPattern Mask pattern reference value\n */\nfunction setupFormatInfo (matrix, errorCorrectionLevel, maskPattern) {\n const size = matrix.size\n const bits = FormatInfo.getEncodedBits(errorCorrectionLevel, maskPattern)\n let i, mod\n\n for (i = 0; i < 15; i++) {\n mod = ((bits >> i) & 1) === 1\n\n // vertical\n if (i < 6) {\n matrix.set(i, 8, mod, true)\n } else if (i < 8) {\n matrix.set(i + 1, 8, mod, true)\n } else {\n matrix.set(size - 15 + i, 8, mod, true)\n }\n\n // horizontal\n if (i < 8) {\n matrix.set(8, size - i - 1, mod, true)\n } else if (i < 9) {\n matrix.set(8, 15 - i - 1 + 1, mod, true)\n } else {\n matrix.set(8, 15 - i - 1, mod, true)\n }\n }\n\n // fixed module\n matrix.set(size - 8, 8, 1, true)\n}\n\n/**\n * Add encoded data bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Uint8Array} data Data codewords\n */\nfunction setupData (matrix, data) {\n const size = matrix.size\n let inc = -1\n let row = size - 1\n let bitIndex = 7\n let byteIndex = 0\n\n for (let col = size - 1; col > 0; col -= 2) {\n if (col === 6) col--\n\n while (true) {\n for (let c = 0; c < 2; c++) {\n if (!matrix.isReserved(row, col - c)) {\n let dark = false\n\n if (byteIndex < data.length) {\n dark = (((data[byteIndex] >>> bitIndex) & 1) === 1)\n }\n\n matrix.set(row, col - c, dark)\n bitIndex--\n\n if (bitIndex === -1) {\n byteIndex++\n bitIndex = 7\n }\n }\n }\n\n row += inc\n\n if (row < 0 || size <= row) {\n row -= inc\n inc = -inc\n break\n }\n }\n }\n}\n\n/**\n * Create encoded codewords from data input\n *\n * @param {Number} version QR Code version\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @param {ByteData} data Data input\n * @return {Uint8Array} Buffer containing encoded codewords\n */\nfunction createData (version, errorCorrectionLevel, segments) {\n // Prepare data buffer\n const buffer = new BitBuffer()\n\n segments.forEach(function (data) {\n // prefix data with mode indicator (4 bits)\n buffer.put(data.mode.bit, 4)\n\n // Prefix data with character count indicator.\n // The character count indicator is a string of bits that represents the\n // number of characters that are being encoded.\n // The character count indicator must be placed after the mode indicator\n // and must be a certain number of bits long, depending on the QR version\n // and data mode\n // @see {@link Mode.getCharCountIndicator}.\n buffer.put(data.getLength(), Mode.getCharCountIndicator(data.mode, version))\n\n // add binary data sequence to buffer\n data.write(buffer)\n })\n\n // Calculate required number of bits\n const totalCodewords = Utils.getSymbolTotalCodewords(version)\n const ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n const dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8\n\n // Add a terminator.\n // If the bit string is shorter than the total number of required bits,\n // a terminator of up to four 0s must be added to the right side of the string.\n // If the bit string is more than four bits shorter than the required number of bits,\n // add four 0s to the end.\n if (buffer.getLengthInBits() + 4 <= dataTotalCodewordsBits) {\n buffer.put(0, 4)\n }\n\n // If the bit string is fewer than four bits shorter, add only the number of 0s that\n // are needed to reach the required number of bits.\n\n // After adding the terminator, if the number of bits in the string is not a multiple of 8,\n // pad the string on the right with 0s to make the string's length a multiple of 8.\n while (buffer.getLengthInBits() % 8 !== 0) {\n buffer.putBit(0)\n }\n\n // Add pad bytes if the string is still shorter than the total number of required bits.\n // Extend the buffer to fill the data capacity of the symbol corresponding to\n // the Version and Error Correction Level by adding the Pad Codewords 11101100 (0xEC)\n // and 00010001 (0x11) alternately.\n const remainingByte = (dataTotalCodewordsBits - buffer.getLengthInBits()) / 8\n for (let i = 0; i < remainingByte; i++) {\n buffer.put(i % 2 ? 0x11 : 0xEC, 8)\n }\n\n return createCodewords(buffer, version, errorCorrectionLevel)\n}\n\n/**\n * Encode input data with Reed-Solomon and return codewords with\n * relative error correction bits\n *\n * @param {BitBuffer} bitBuffer Data to encode\n * @param {Number} version QR Code version\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @return {Uint8Array} Buffer containing encoded codewords\n */\nfunction createCodewords (bitBuffer, version, errorCorrectionLevel) {\n // Total codewords for this QR code version (Data + Error correction)\n const totalCodewords = Utils.getSymbolTotalCodewords(version)\n\n // Total number of error correction codewords\n const ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n\n // Total number of data codewords\n const dataTotalCodewords = totalCodewords - ecTotalCodewords\n\n // Total number of blocks\n const ecTotalBlocks = ECCode.getBlocksCount(version, errorCorrectionLevel)\n\n // Calculate how many blocks each group should contain\n const blocksInGroup2 = totalCodewords % ecTotalBlocks\n const blocksInGroup1 = ecTotalBlocks - blocksInGroup2\n\n const totalCodewordsInGroup1 = Math.floor(totalCodewords / ecTotalBlocks)\n\n const dataCodewordsInGroup1 = Math.floor(dataTotalCodewords / ecTotalBlocks)\n const dataCodewordsInGroup2 = dataCodewordsInGroup1 + 1\n\n // Number of EC codewords is the same for both groups\n const ecCount = totalCodewordsInGroup1 - dataCodewordsInGroup1\n\n // Initialize a Reed-Solomon encoder with a generator polynomial of degree ecCount\n const rs = new ReedSolomonEncoder(ecCount)\n\n let offset = 0\n const dcData = new Array(ecTotalBlocks)\n const ecData = new Array(ecTotalBlocks)\n let maxDataSize = 0\n const buffer = new Uint8Array(bitBuffer.buffer)\n\n // Divide the buffer into the required number of blocks\n for (let b = 0; b < ecTotalBlocks; b++) {\n const dataSize = b < blocksInGroup1 ? dataCodewordsInGroup1 : dataCodewordsInGroup2\n\n // extract a block of data from buffer\n dcData[b] = buffer.slice(offset, offset + dataSize)\n\n // Calculate EC codewords for this data block\n ecData[b] = rs.encode(dcData[b])\n\n offset += dataSize\n maxDataSize = Math.max(maxDataSize, dataSize)\n }\n\n // Create final data\n // Interleave the data and error correction codewords from each block\n const data = new Uint8Array(totalCodewords)\n let index = 0\n let i, r\n\n // Add data codewords\n for (i = 0; i < maxDataSize; i++) {\n for (r = 0; r < ecTotalBlocks; r++) {\n if (i < dcData[r].length) {\n data[index++] = dcData[r][i]\n }\n }\n }\n\n // Apped EC codewords\n for (i = 0; i < ecCount; i++) {\n for (r = 0; r < ecTotalBlocks; r++) {\n data[index++] = ecData[r][i]\n }\n }\n\n return data\n}\n\n/**\n * Build QR Code symbol\n *\n * @param {String} data Input string\n * @param {Number} version QR Code version\n * @param {ErrorCorretionLevel} errorCorrectionLevel Error level\n * @param {MaskPattern} maskPattern Mask pattern\n * @return {Object} Object containing symbol data\n */\nfunction createSymbol (data, version, errorCorrectionLevel, maskPattern) {\n let segments\n\n if (Array.isArray(data)) {\n segments = Segments.fromArray(data)\n } else if (typeof data === 'string') {\n let estimatedVersion = version\n\n if (!estimatedVersion) {\n const rawSegments = Segments.rawSplit(data)\n\n // Estimate best version that can contain raw splitted segments\n estimatedVersion = Version.getBestVersionForData(rawSegments, errorCorrectionLevel)\n }\n\n // Build optimized segments\n // If estimated version is undefined, try with the highest version\n segments = Segments.fromString(data, estimatedVersion || 40)\n } else {\n throw new Error('Invalid data')\n }\n\n // Get the min version that can contain data\n const bestVersion = Version.getBestVersionForData(segments, errorCorrectionLevel)\n\n // If no version is found, data cannot be stored\n if (!bestVersion) {\n throw new Error('The amount of data is too big to be stored in a QR Code')\n }\n\n // If not specified, use min version as default\n if (!version) {\n version = bestVersion\n\n // Check if the specified version can contain the data\n } else if (version < bestVersion) {\n throw new Error('\\n' +\n 'The chosen QR Code version cannot contain this amount of data.\\n' +\n 'Minimum version required to store current data is: ' + bestVersion + '.\\n'\n )\n }\n\n const dataBits = createData(version, errorCorrectionLevel, segments)\n\n // Allocate matrix buffer\n const moduleCount = Utils.getSymbolSize(version)\n const modules = new BitMatrix(moduleCount)\n\n // Add function modules\n setupFinderPattern(modules, version)\n setupTimingPattern(modules)\n setupAlignmentPattern(modules, version)\n\n // Add temporary dummy bits for format info just to set them as reserved.\n // This is needed to prevent these bits from being masked by {@link MaskPattern.applyMask}\n // since the masking operation must be performed only on the encoding region.\n // These blocks will be replaced with correct values later in code.\n setupFormatInfo(modules, errorCorrectionLevel, 0)\n\n if (version >= 7) {\n setupVersionInfo(modules, version)\n }\n\n // Add data codewords\n setupData(modules, dataBits)\n\n if (isNaN(maskPattern)) {\n // Find best mask pattern\n maskPattern = MaskPattern.getBestMask(modules,\n setupFormatInfo.bind(null, modules, errorCorrectionLevel))\n }\n\n // Apply mask pattern\n MaskPattern.applyMask(maskPattern, modules)\n\n // Replace format info bits with correct values\n setupFormatInfo(modules, errorCorrectionLevel, maskPattern)\n\n return {\n modules: modules,\n version: version,\n errorCorrectionLevel: errorCorrectionLevel,\n maskPattern: maskPattern,\n segments: segments\n }\n}\n\n/**\n * QR Code\n *\n * @param {String | Array} data Input data\n * @param {Object} options Optional configurations\n * @param {Number} options.version QR Code version\n * @param {String} options.errorCorrectionLevel Error correction level\n * @param {Function} options.toSJISFunc Helper func to convert utf8 to sjis\n */\nexports.create = function create (data, options) {\n if (typeof data === 'undefined' || data === '') {\n throw new Error('No input text')\n }\n\n let errorCorrectionLevel = ECLevel.M\n let version\n let mask\n\n if (typeof options !== 'undefined') {\n // Use higher error correction level as default\n errorCorrectionLevel = ECLevel.from(options.errorCorrectionLevel, ECLevel.M)\n version = Version.from(options.version)\n mask = MaskPattern.from(options.maskPattern)\n\n if (options.toSJISFunc) {\n Utils.setToSJISFunction(options.toSJISFunc)\n }\n }\n\n return createSymbol(data, version, errorCorrectionLevel, mask)\n}\n","function hex2rgba (hex) {\n if (typeof hex === 'number') {\n hex = hex.toString()\n }\n\n if (typeof hex !== 'string') {\n throw new Error('Color should be defined as hex string')\n }\n\n let hexCode = hex.slice().replace('#', '').split('')\n if (hexCode.length < 3 || hexCode.length === 5 || hexCode.length > 8) {\n throw new Error('Invalid hex color: ' + hex)\n }\n\n // Convert from short to long form (fff -> ffffff)\n if (hexCode.length === 3 || hexCode.length === 4) {\n hexCode = Array.prototype.concat.apply([], hexCode.map(function (c) {\n return [c, c]\n }))\n }\n\n // Add default alpha value\n if (hexCode.length === 6) hexCode.push('F', 'F')\n\n const hexValue = parseInt(hexCode.join(''), 16)\n\n return {\n r: (hexValue >> 24) & 255,\n g: (hexValue >> 16) & 255,\n b: (hexValue >> 8) & 255,\n a: hexValue & 255,\n hex: '#' + hexCode.slice(0, 6).join('')\n }\n}\n\nexports.getOptions = function getOptions (options) {\n if (!options) options = {}\n if (!options.color) options.color = {}\n\n const margin = typeof options.margin === 'undefined' ||\n options.margin === null ||\n options.margin < 0\n ? 4\n : options.margin\n\n const width = options.width && options.width >= 21 ? options.width : undefined\n const scale = options.scale || 4\n\n return {\n width: width,\n scale: width ? 4 : scale,\n margin: margin,\n color: {\n dark: hex2rgba(options.color.dark || '#000000ff'),\n light: hex2rgba(options.color.light || '#ffffffff')\n },\n type: options.type,\n rendererOpts: options.rendererOpts || {}\n }\n}\n\nexports.getScale = function getScale (qrSize, opts) {\n return opts.width && opts.width >= qrSize + opts.margin * 2\n ? opts.width / (qrSize + opts.margin * 2)\n : opts.scale\n}\n\nexports.getImageWidth = function getImageWidth (qrSize, opts) {\n const scale = exports.getScale(qrSize, opts)\n return Math.floor((qrSize + opts.margin * 2) * scale)\n}\n\nexports.qrToImageData = function qrToImageData (imgData, qr, opts) {\n const size = qr.modules.size\n const data = qr.modules.data\n const scale = exports.getScale(size, opts)\n const symbolSize = Math.floor((size + opts.margin * 2) * scale)\n const scaledMargin = opts.margin * scale\n const palette = [opts.color.light, opts.color.dark]\n\n for (let i = 0; i < symbolSize; i++) {\n for (let j = 0; j < symbolSize; j++) {\n let posDst = (i * symbolSize + j) * 4\n let pxColor = opts.color.light\n\n if (i >= scaledMargin && j >= scaledMargin &&\n i < symbolSize - scaledMargin && j < symbolSize - scaledMargin) {\n const iSrc = Math.floor((i - scaledMargin) / scale)\n const jSrc = Math.floor((j - scaledMargin) / scale)\n pxColor = palette[data[iSrc * size + jSrc] ? 1 : 0]\n }\n\n imgData[posDst++] = pxColor.r\n imgData[posDst++] = pxColor.g\n imgData[posDst++] = pxColor.b\n imgData[posDst] = pxColor.a\n }\n }\n}\n","const Utils = require('./utils')\n\nfunction clearCanvas (ctx, canvas, size) {\n ctx.clearRect(0, 0, canvas.width, canvas.height)\n\n if (!canvas.style) canvas.style = {}\n canvas.height = size\n canvas.width = size\n canvas.style.height = size + 'px'\n canvas.style.width = size + 'px'\n}\n\nfunction getCanvasElement () {\n try {\n return document.createElement('canvas')\n } catch (e) {\n throw new Error('You need to specify a canvas element')\n }\n}\n\nexports.render = function render (qrData, canvas, options) {\n let opts = options\n let canvasEl = canvas\n\n if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n opts = canvas\n canvas = undefined\n }\n\n if (!canvas) {\n canvasEl = getCanvasElement()\n }\n\n opts = Utils.getOptions(opts)\n const size = Utils.getImageWidth(qrData.modules.size, opts)\n\n const ctx = canvasEl.getContext('2d')\n const image = ctx.createImageData(size, size)\n Utils.qrToImageData(image.data, qrData, opts)\n\n clearCanvas(ctx, canvasEl, size)\n ctx.putImageData(image, 0, 0)\n\n return canvasEl\n}\n\nexports.renderToDataURL = function renderToDataURL (qrData, canvas, options) {\n let opts = options\n\n if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n opts = canvas\n canvas = undefined\n }\n\n if (!opts) opts = {}\n\n const canvasEl = exports.render(qrData, canvas, opts)\n\n const type = opts.type || 'image/png'\n const rendererOpts = opts.rendererOpts || {}\n\n return canvasEl.toDataURL(type, rendererOpts.quality)\n}\n","const Utils = require('./utils')\n\nfunction getColorAttrib (color, attrib) {\n const alpha = color.a / 255\n const str = attrib + '=\"' + color.hex + '\"'\n\n return alpha < 1\n ? str + ' ' + attrib + '-opacity=\"' + alpha.toFixed(2).slice(1) + '\"'\n : str\n}\n\nfunction svgCmd (cmd, x, y) {\n let str = cmd + x\n if (typeof y !== 'undefined') str += ' ' + y\n\n return str\n}\n\nfunction qrToPath (data, size, margin) {\n let path = ''\n let moveBy = 0\n let newRow = false\n let lineLength = 0\n\n for (let i = 0; i < data.length; i++) {\n const col = Math.floor(i % size)\n const row = Math.floor(i / size)\n\n if (!col && !newRow) newRow = true\n\n if (data[i]) {\n lineLength++\n\n if (!(i > 0 && col > 0 && data[i - 1])) {\n path += newRow\n ? svgCmd('M', col + margin, 0.5 + row + margin)\n : svgCmd('m', moveBy, 0)\n\n moveBy = 0\n newRow = false\n }\n\n if (!(col + 1 < size && data[i + 1])) {\n path += svgCmd('h', lineLength)\n lineLength = 0\n }\n } else {\n moveBy++\n }\n }\n\n return path\n}\n\nexports.render = function render (qrData, options, cb) {\n const opts = Utils.getOptions(options)\n const size = qrData.modules.size\n const data = qrData.modules.data\n const qrcodesize = size + opts.margin * 2\n\n const bg = !opts.color.light.a\n ? ''\n : ''\n\n const path =\n ''\n\n const viewBox = 'viewBox=\"' + '0 0 ' + qrcodesize + ' ' + qrcodesize + '\"'\n\n const width = !opts.width ? '' : 'width=\"' + opts.width + '\" height=\"' + opts.width + '\" '\n\n const svgTag = '' + bg + path + '\\n'\n\n if (typeof cb === 'function') {\n cb(null, svgTag)\n }\n\n return svgTag\n}\n","\nconst canPromise = require('./can-promise')\n\nconst QRCode = require('./core/qrcode')\nconst CanvasRenderer = require('./renderer/canvas')\nconst SvgRenderer = require('./renderer/svg-tag.js')\n\nfunction renderCanvas (renderFunc, canvas, text, opts, cb) {\n const args = [].slice.call(arguments, 1)\n const argsNum = args.length\n const isLastArgCb = typeof args[argsNum - 1] === 'function'\n\n if (!isLastArgCb && !canPromise()) {\n throw new Error('Callback required as last argument')\n }\n\n if (isLastArgCb) {\n if (argsNum < 2) {\n throw new Error('Too few arguments provided')\n }\n\n if (argsNum === 2) {\n cb = text\n text = canvas\n canvas = opts = undefined\n } else if (argsNum === 3) {\n if (canvas.getContext && typeof cb === 'undefined') {\n cb = opts\n opts = undefined\n } else {\n cb = opts\n opts = text\n text = canvas\n canvas = undefined\n }\n }\n } else {\n if (argsNum < 1) {\n throw new Error('Too few arguments provided')\n }\n\n if (argsNum === 1) {\n text = canvas\n canvas = opts = undefined\n } else if (argsNum === 2 && !canvas.getContext) {\n opts = text\n text = canvas\n canvas = undefined\n }\n\n return new Promise(function (resolve, reject) {\n try {\n const data = QRCode.create(text, opts)\n resolve(renderFunc(data, canvas, opts))\n } catch (e) {\n reject(e)\n }\n })\n }\n\n try {\n const data = QRCode.create(text, opts)\n cb(null, renderFunc(data, canvas, opts))\n } catch (e) {\n cb(e)\n }\n}\n\nexports.create = QRCode.create\nexports.toCanvas = renderCanvas.bind(null, CanvasRenderer.render)\nexports.toDataURL = renderCanvas.bind(null, CanvasRenderer.renderToDataURL)\n\n// only svg for now.\nexports.toString = renderCanvas.bind(null, function (data, _, opts) {\n return SvgRenderer.render(data, opts)\n})\n","import { svg } from 'lit';\nimport QRCodeUtil from 'qrcode';\nconst CONNECTING_ERROR_MARGIN = 0.1;\nconst CIRCLE_SIZE_MODIFIER = 2.5;\nconst QRCODE_MATRIX_MARGIN = 7;\nfunction isAdjecentDots(cy, otherCy, cellSize) {\n if (cy === otherCy) {\n return false;\n }\n const diff = cy - otherCy < 0 ? otherCy - cy : cy - otherCy;\n return diff <= cellSize + CONNECTING_ERROR_MARGIN;\n}\nfunction getMatrix(value, errorCorrectionLevel) {\n const arr = Array.prototype.slice.call(QRCodeUtil.create(value, { errorCorrectionLevel }).modules.data, 0);\n const sqrt = Math.sqrt(arr.length);\n return arr.reduce((rows, key, index) => (index % sqrt === 0 ? rows.push([key]) : rows[rows.length - 1].push(key)) && rows, []);\n}\nexport const QrCodeUtil = {\n generate(uri, size, logoSize) {\n const dotColor = '#141414';\n const edgeColor = 'transparent';\n const strokeWidth = 5;\n const dots = [];\n const matrix = getMatrix(uri, 'Q');\n const cellSize = size / matrix.length;\n const qrList = [\n { x: 0, y: 0 },\n { x: 1, y: 0 },\n { x: 0, y: 1 }\n ];\n qrList.forEach(({ x, y }) => {\n const x1 = (matrix.length - QRCODE_MATRIX_MARGIN) * cellSize * x;\n const y1 = (matrix.length - QRCODE_MATRIX_MARGIN) * cellSize * y;\n const borderRadius = 0.45;\n for (let i = 0; i < qrList.length; i += 1) {\n const dotSize = cellSize * (QRCODE_MATRIX_MARGIN - i * 2);\n dots.push(svg `\n \n `);\n }\n });\n const clearArenaSize = Math.floor((logoSize + 25) / cellSize);\n const matrixMiddleStart = matrix.length / 2 - clearArenaSize / 2;\n const matrixMiddleEnd = matrix.length / 2 + clearArenaSize / 2 - 1;\n const circles = [];\n matrix.forEach((row, i) => {\n row.forEach((_, j) => {\n if (matrix[i][j]) {\n if (!((i < QRCODE_MATRIX_MARGIN && j < QRCODE_MATRIX_MARGIN) ||\n (i > matrix.length - (QRCODE_MATRIX_MARGIN + 1) && j < QRCODE_MATRIX_MARGIN) ||\n (i < QRCODE_MATRIX_MARGIN && j > matrix.length - (QRCODE_MATRIX_MARGIN + 1)))) {\n if (!(i > matrixMiddleStart &&\n i < matrixMiddleEnd &&\n j > matrixMiddleStart &&\n j < matrixMiddleEnd)) {\n const cx = i * cellSize + cellSize / 2;\n const cy = j * cellSize + cellSize / 2;\n circles.push([cx, cy]);\n }\n }\n }\n });\n });\n const circlesToConnect = {};\n circles.forEach(([cx, cy]) => {\n if (circlesToConnect[cx]) {\n circlesToConnect[cx]?.push(cy);\n }\n else {\n circlesToConnect[cx] = [cy];\n }\n });\n Object.entries(circlesToConnect)\n .map(([cx, cys]) => {\n const newCys = cys.filter(cy => cys.every(otherCy => !isAdjecentDots(cy, otherCy, cellSize)));\n return [Number(cx), newCys];\n })\n .forEach(([cx, cys]) => {\n cys.forEach(cy => {\n dots.push(svg ``);\n });\n });\n Object.entries(circlesToConnect)\n .filter(([_, cys]) => cys.length > 1)\n .map(([cx, cys]) => {\n const newCys = cys.filter(cy => cys.some(otherCy => isAdjecentDots(cy, otherCy, cellSize)));\n return [Number(cx), newCys];\n })\n .map(([cx, cys]) => {\n cys.sort((a, b) => (a < b ? -1 : 1));\n const groups = [];\n for (const cy of cys) {\n const group = groups.find(item => item.some(otherCy => isAdjecentDots(cy, otherCy, cellSize)));\n if (group) {\n group.push(cy);\n }\n else {\n groups.push([cy]);\n }\n }\n return [cx, groups.map(item => [item[0], item[item.length - 1]])];\n })\n .forEach(([cx, groups]) => {\n groups.forEach(([y1, y2]) => {\n dots.push(svg `\n \n `);\n });\n });\n return dots;\n }\n};\n//# sourceMappingURL=QrCode.js.map","import { css } from 'lit';\nexport default css `\n :host {\n position: relative;\n user-select: none;\n display: block;\n overflow: hidden;\n aspect-ratio: 1 / 1;\n width: var(--local-size);\n }\n\n :host([data-theme='dark']) {\n border-radius: clamp(0px, var(--wui-border-radius-l), 40px);\n background-color: var(--wui-color-inverse-100);\n padding: var(--wui-spacing-l);\n }\n\n :host([data-theme='light']) {\n box-shadow: 0 0 0 1px var(--wui-color-bg-125);\n background-color: var(--wui-color-bg-125);\n }\n\n :host([data-clear='true']) > wui-icon {\n display: none;\n }\n\n svg:first-child,\n wui-image,\n wui-icon {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translateY(-50%) translateX(-50%);\n }\n\n wui-image {\n width: 25%;\n height: 25%;\n border-radius: var(--wui-border-radius-xs);\n }\n\n wui-icon {\n width: 100%;\n height: 100%;\n color: #3396ff !important;\n transform: translateY(-50%) translateX(-50%) scale(0.25);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement, svg } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport '../../components/wui-icon/index.js';\nimport '../../components/wui-image/index.js';\nimport { QrCodeUtil } from '../../utils/QrCode.js';\nimport { resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nlet WuiQrCode = class WuiQrCode extends LitElement {\n constructor() {\n super(...arguments);\n this.uri = '';\n this.size = 0;\n this.theme = 'dark';\n this.imageSrc = undefined;\n this.alt = undefined;\n this.arenaClear = undefined;\n }\n render() {\n this.dataset['theme'] = this.theme;\n this.dataset['clear'] = String(this.arenaClear);\n this.style.cssText = `--local-size: ${this.size}px`;\n return html `${this.templateVisual()} ${this.templateSvg()}`;\n }\n templateSvg() {\n const size = this.theme === 'light' ? this.size : this.size - 16 * 2;\n return svg `\n \n ${QrCodeUtil.generate(this.uri, size, this.arenaClear ? 0 : size / 4)}\n \n `;\n }\n templateVisual() {\n if (this.imageSrc) {\n return html ``;\n }\n return html ``;\n }\n};\nWuiQrCode.styles = [resetStyles, styles];\n__decorate([\n property()\n], WuiQrCode.prototype, \"uri\", void 0);\n__decorate([\n property({ type: Number })\n], WuiQrCode.prototype, \"size\", void 0);\n__decorate([\n property()\n], WuiQrCode.prototype, \"theme\", void 0);\n__decorate([\n property()\n], WuiQrCode.prototype, \"imageSrc\", void 0);\n__decorate([\n property()\n], WuiQrCode.prototype, \"alt\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiQrCode.prototype, \"arenaClear\", void 0);\nWuiQrCode = __decorate([\n customElement('wui-qr-code')\n], WuiQrCode);\nexport { WuiQrCode };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n position: relative;\n display: inline-block;\n width: 100%;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { createRef, ref } from 'lit/directives/ref.js';\nimport '../../composites/wui-input-element/index.js';\nimport { resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport '../wui-input-text/index.js';\nimport styles from './styles.js';\nlet WuiSearchBar = class WuiSearchBar extends LitElement {\n constructor() {\n super(...arguments);\n this.inputComponentRef = createRef();\n }\n render() {\n return html `\n \n \n \n `;\n }\n clearValue() {\n const inputComponent = this.inputComponentRef.value;\n const inputElement = inputComponent?.inputElementRef.value;\n if (inputElement) {\n inputElement.value = '';\n inputElement.focus();\n inputElement.dispatchEvent(new Event('input'));\n }\n }\n};\nWuiSearchBar.styles = [resetStyles, styles];\nWuiSearchBar = __decorate([\n customElement('wui-search-bar')\n], WuiSearchBar);\nexport { WuiSearchBar };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n display: flex;\n column-gap: var(--wui-spacing-xs);\n align-items: center;\n padding: var(--wui-spacing-xs) var(--wui-spacing-m) var(--wui-spacing-xs) var(--wui-spacing-xs);\n border-radius: var(--wui-border-radius-3xl);\n border: 1px solid var(--wui-color-gray-glass-005);\n box-sizing: border-box;\n max-height: 40px;\n background-color: var(--wui-color-bg-175);\n box-shadow:\n 0px 14px 64px -4px rgba(0, 0, 0, 0.15),\n 0px 8px 22px -6px rgba(0, 0, 0, 0.15);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport '../../components/wui-text/index.js';\nimport { resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport '../wui-icon-box/index.js';\nimport styles from './styles.js';\nlet WuiSnackbar = class WuiSnackbar extends LitElement {\n constructor() {\n super(...arguments);\n this.backgroundColor = 'accent-100';\n this.iconColor = 'accent-100';\n this.icon = 'checkmark';\n this.message = '';\n }\n render() {\n return html `\n \n ${this.message}\n `;\n }\n};\nWuiSnackbar.styles = [resetStyles, styles];\n__decorate([\n property()\n], WuiSnackbar.prototype, \"backgroundColor\", void 0);\n__decorate([\n property()\n], WuiSnackbar.prototype, \"iconColor\", void 0);\n__decorate([\n property()\n], WuiSnackbar.prototype, \"icon\", void 0);\n__decorate([\n property()\n], WuiSnackbar.prototype, \"message\", void 0);\nWuiSnackbar = __decorate([\n customElement('wui-snackbar')\n], WuiSnackbar);\nexport { WuiSnackbar };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n display: inline-flex;\n background-color: var(--wui-color-gray-glass-002);\n border-radius: var(--wui-border-radius-3xl);\n padding: var(--wui-spacing-3xs);\n position: relative;\n height: 36px;\n overflow: hidden;\n }\n\n :host::before {\n content: '';\n position: absolute;\n pointer-events: none;\n top: 4px;\n left: 4px;\n display: block;\n width: var(--local-tab-width);\n height: 28px;\n border-radius: var(--wui-border-radius-3xl);\n background-color: var(--wui-color-gray-glass-002);\n box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-002);\n transform: translateX(calc(var(--local-tab) * var(--local-tab-width)));\n transition: transform var(--wui-ease-out-power-1) var(--wui-duration-md);\n will-change: background-color, opacity;\n }\n\n :host([data-type='flex'])::before {\n left: 3px;\n transform: translateX(calc((var(--local-tab) * 34px) + (var(--local-tab) * 4px)));\n }\n\n :host([data-type='flex']) {\n display: flex;\n padding: 0px 0px 0px 12px;\n gap: 4px;\n }\n\n :host([data-type='flex']) > button > wui-text {\n position: absolute;\n left: 18px;\n opacity: 0;\n }\n\n button[data-active='true'] > wui-icon,\n button[data-active='true'] > wui-text {\n color: var(--wui-color-fg-100);\n }\n\n button[data-active='false'] > wui-icon,\n button[data-active='false'] > wui-text {\n color: var(--wui-color-fg-200);\n }\n\n button[data-active='true']:disabled,\n button[data-active='false']:disabled {\n background-color: transparent;\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n button[data-active='true']:disabled > wui-text {\n color: var(--wui-color-fg-200);\n }\n\n button[data-active='false']:disabled > wui-text {\n color: var(--wui-color-fg-300);\n }\n\n button > wui-icon,\n button > wui-text {\n pointer-events: none;\n transition: color var(--wui-e ase-out-power-1) var(--wui-duration-md);\n will-change: color;\n }\n\n button {\n width: var(--local-tab-width);\n transition: background-color var(--wui-ease-out-power-1) var(--wui-duration-md);\n will-change: background-color;\n }\n\n :host([data-type='flex']) > button {\n width: 34px;\n position: relative;\n display: flex;\n justify-content: flex-start;\n }\n\n button:hover:enabled,\n button:active:enabled {\n background-color: transparent !important;\n }\n\n button:hover:enabled > wui-icon,\n button:active:enabled > wui-icon {\n color: var(--wui-color-fg-125);\n }\n\n button:hover:enabled > wui-text,\n button:active:enabled > wui-text {\n color: var(--wui-color-fg-125);\n }\n\n button {\n border-radius: var(--wui-border-radius-3xl);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { elementStyles, resetStyles } from '../../utils/ThemeUtil.js';\nimport '../../components/wui-icon/index.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nlet WuiTabs = class WuiTabs extends LitElement {\n constructor() {\n super(...arguments);\n this.tabs = [];\n this.onTabChange = () => null;\n this.buttons = [];\n this.disabled = false;\n this.localTabWidth = '100px';\n this.activeTab = 0;\n this.isDense = false;\n }\n render() {\n this.isDense = this.tabs.length > 3;\n this.style.cssText = `\n --local-tab: ${this.activeTab};\n --local-tab-width: ${this.localTabWidth};\n `;\n this.dataset['type'] = this.isDense ? 'flex' : 'block';\n return this.tabs.map((tab, index) => {\n const isActive = index === this.activeTab;\n return html `\n this.onTabClick(index)}\n data-active=${isActive}\n data-testid=\"tab-${tab.label?.toLowerCase()}\"\n >\n ${this.iconTemplate(tab)}\n ${tab.label} \n \n `;\n });\n }\n firstUpdated() {\n if (this.shadowRoot && this.isDense) {\n this.buttons = [...this.shadowRoot.querySelectorAll('button')];\n setTimeout(() => {\n this.animateTabs(0, true);\n }, 0);\n }\n }\n iconTemplate(tab) {\n if (tab.icon) {\n return html ``;\n }\n return null;\n }\n onTabClick(index) {\n if (this.buttons) {\n this.animateTabs(index, false);\n }\n this.activeTab = index;\n this.onTabChange(index);\n }\n animateTabs(index, initialAnimation) {\n const passiveBtn = this.buttons[this.activeTab];\n const activeBtn = this.buttons[index];\n const passiveBtnText = passiveBtn?.querySelector('wui-text');\n const activeBtnText = activeBtn?.querySelector('wui-text');\n const activeBtnBounds = activeBtn?.getBoundingClientRect();\n const activeBtnTextBounds = activeBtnText?.getBoundingClientRect();\n if (passiveBtn && passiveBtnText && !initialAnimation && index !== this.activeTab) {\n passiveBtnText.animate([{ opacity: 0 }], {\n duration: 50,\n easing: 'ease',\n fill: 'forwards'\n });\n passiveBtn.animate([{ width: `34px` }], {\n duration: 500,\n easing: 'ease',\n fill: 'forwards'\n });\n }\n if (activeBtn && activeBtnBounds && activeBtnTextBounds && activeBtnText) {\n if (index !== this.activeTab || initialAnimation) {\n this.localTabWidth = `${Math.round(activeBtnBounds.width + activeBtnTextBounds.width) + 6}px`;\n activeBtn.animate([{ width: `${activeBtnBounds.width + activeBtnTextBounds.width}px` }], {\n duration: initialAnimation ? 0 : 500,\n fill: 'forwards',\n easing: 'ease'\n });\n activeBtnText.animate([{ opacity: 1 }], {\n duration: initialAnimation ? 0 : 125,\n delay: initialAnimation ? 0 : 200,\n fill: 'forwards',\n easing: 'ease'\n });\n }\n }\n }\n};\nWuiTabs.styles = [resetStyles, elementStyles, styles];\n__decorate([\n property({ type: Array })\n], WuiTabs.prototype, \"tabs\", void 0);\n__decorate([\n property()\n], WuiTabs.prototype, \"onTabChange\", void 0);\n__decorate([\n property({ type: Array })\n], WuiTabs.prototype, \"buttons\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiTabs.prototype, \"disabled\", void 0);\n__decorate([\n property()\n], WuiTabs.prototype, \"localTabWidth\", void 0);\n__decorate([\n state()\n], WuiTabs.prototype, \"activeTab\", void 0);\n__decorate([\n state()\n], WuiTabs.prototype, \"isDense\", void 0);\nWuiTabs = __decorate([\n customElement('wui-tabs')\n], WuiTabs);\nexport { WuiTabs };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n display: block;\n }\n\n :host > button {\n gap: var(--wui-spacing-xxs);\n padding: var(--wui-spacing-xs);\n padding-right: var(--wui-spacing-1xs);\n height: 40px;\n border-radius: var(--wui-border-radius-l);\n background: var(--wui-color-gray-glass-002);\n border-width: 0px;\n box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-002);\n }\n\n :host > button wui-image {\n width: 24px;\n height: 24px;\n border-radius: var(--wui-border-radius-s);\n box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-010);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport { elementStyles, resetStyles } from '../../utils/ThemeUtil.js';\nimport '../../components/wui-text/index.js';\nimport '../../components/wui-image/index.js';\nimport '../wui-icon-box/index.js';\nimport styles from './styles.js';\nlet WuiTokenButton = class WuiTokenButton extends LitElement {\n constructor() {\n super(...arguments);\n this.text = '';\n }\n render() {\n return html `\n \n `;\n }\n tokenTemplate() {\n if (this.imageSrc) {\n return html ``;\n }\n return html `\n \n `;\n }\n};\nWuiTokenButton.styles = [resetStyles, elementStyles, styles];\n__decorate([\n property()\n], WuiTokenButton.prototype, \"imageSrc\", void 0);\n__decorate([\n property()\n], WuiTokenButton.prototype, \"text\", void 0);\nWuiTokenButton = __decorate([\n customElement('wui-token-button')\n], WuiTokenButton);\nexport { WuiTokenButton };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n display: block;\n padding: 9px var(--wui-spacing-s) 10px var(--wui-spacing-s);\n border-radius: var(--wui-border-radius-xxs);\n\n color: var(--wui-color-bg-100);\n position: relative;\n }\n\n :host([data-variant='shade']) {\n background-color: var(--wui-color-bg-150);\n border: 1px solid var(--wui-color-gray-glass-005);\n }\n\n :host([data-variant='shade']) > wui-text {\n color: var(--wui-color-fg-150);\n }\n\n :host([data-variant='fill']) {\n background-color: var(--wui-color-fg-100);\n border: none;\n }\n\n wui-icon {\n position: absolute;\n width: 12px !important;\n height: 4px !important;\n }\n\n wui-icon[data-placement='top'] {\n bottom: 0px;\n left: 50%;\n transform: translate(-50%, 95%);\n }\n\n wui-icon[data-placement='bottom'] {\n top: 0;\n left: 50%;\n transform: translate(-50%, -95%) rotate(180deg);\n }\n\n wui-icon[data-placement='right'] {\n top: 50%;\n left: 0;\n transform: translate(-65%, -50%) rotate(90deg);\n }\n\n wui-icon[data-placement='left'] {\n top: 50%;\n right: 0%;\n transform: translate(65%, -50%) rotate(270deg);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport '../../components/wui-icon/index.js';\nimport '../../components/wui-text/index.js';\nimport { elementStyles, resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nlet WuiTooltip = class WuiTooltip extends LitElement {\n constructor() {\n super(...arguments);\n this.placement = 'top';\n this.variant = 'fill';\n this.message = '';\n }\n render() {\n this.dataset['variant'] = this.variant;\n return html `\n ${this.message}`;\n }\n};\nWuiTooltip.styles = [resetStyles, elementStyles, styles];\n__decorate([\n property()\n], WuiTooltip.prototype, \"placement\", void 0);\n__decorate([\n property()\n], WuiTooltip.prototype, \"variant\", void 0);\n__decorate([\n property()\n], WuiTooltip.prototype, \"message\", void 0);\nWuiTooltip = __decorate([\n customElement('wui-tooltip')\n], WuiTooltip);\nexport { WuiTooltip };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host > wui-flex {\n cursor: pointer;\n display: flex;\n column-gap: var(--wui-spacing-s);\n padding: var(--wui-spacing-xs);\n padding-right: var(--wui-spacing-l);\n width: 100%;\n background-color: transparent;\n border-radius: var(--wui-border-radius-xs);\n color: var(--wui-color-fg-250);\n transition: background-color 0.2s linear;\n }\n\n :host > wui-flex:hover {\n background-color: var(--wui-color-gray-glass-002);\n }\n\n :host([disabled]) > wui-flex {\n opacity: 0.6;\n }\n\n :host([disabled]) > wui-flex:hover {\n background-color: transparent;\n }\n\n :host > wui-flex > wui-flex {\n flex: 1;\n }\n\n :host > wui-flex > wui-image {\n width: 40px;\n height: 40px;\n border-radius: var(--wui-border-radius-3xl);\n position: relative;\n }\n\n :host > wui-flex > wui-image::after {\n position: absolute;\n content: '';\n inset: 0;\n box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-010);\n border-radius: var(--wui-border-radius-l);\n }\n\n button > wui-icon-box[data-variant='square-blue'] {\n border-radius: var(--wui-border-radius-3xs);\n position: relative;\n border: none;\n width: 36px;\n height: 36px;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport '../../components/wui-image/index.js';\nimport '../../components/wui-text/index.js';\nimport '../../layout/wui-flex/index.js';\nimport { elementStyles, resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nimport { UiHelperUtil } from '../../utils/UiHelperUtil.js';\nimport { NumberUtil } from '@web3modal/common';\nlet WuiTokenListItem = class WuiTokenListItem extends LitElement {\n constructor() {\n super(...arguments);\n this.imageSrc = undefined;\n this.name = undefined;\n this.symbol = undefined;\n this.price = undefined;\n this.amount = undefined;\n }\n render() {\n const value = this.amount && this.price ? NumberUtil.multiply(this.price, this.amount)?.toFixed(3) : null;\n return html `\n \n ${this.visualTemplate()}\n \n \n ${this.name}\n ${value\n ? html `\n \n $${UiHelperUtil.formatNumberToLocalString(value, 3)}\n \n `\n : null}\n \n \n ${this.symbol}\n ${this.amount\n ? html `\n ${UiHelperUtil.formatNumberToLocalString(this.amount, 4)}\n `\n : null}\n \n \n \n `;\n }\n visualTemplate() {\n if (this.imageSrc) {\n return html ``;\n }\n return null;\n }\n};\nWuiTokenListItem.styles = [resetStyles, elementStyles, styles];\n__decorate([\n property()\n], WuiTokenListItem.prototype, \"imageSrc\", void 0);\n__decorate([\n property()\n], WuiTokenListItem.prototype, \"name\", void 0);\n__decorate([\n property()\n], WuiTokenListItem.prototype, \"symbol\", void 0);\n__decorate([\n property()\n], WuiTokenListItem.prototype, \"price\", void 0);\n__decorate([\n property()\n], WuiTokenListItem.prototype, \"amount\", void 0);\nWuiTokenListItem = __decorate([\n customElement('wui-token-list-item')\n], WuiTokenListItem);\nexport { WuiTokenListItem };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n display: flex;\n justify-content: center;\n align-items: center;\n width: var(--wui-icon-box-size-xl);\n height: var(--wui-icon-box-size-xl);\n box-shadow: 0 0 0 8px var(--wui-thumbnail-border);\n border-radius: var(--local-border-radius);\n overflow: hidden;\n }\n\n wui-icon {\n width: 32px;\n height: 32px;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport '../../components/wui-image/index.js';\nimport '../../components/wui-icon/index.js';\nimport { resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nlet WuiVisualThumbnail = class WuiVisualThumbnail extends LitElement {\n render() {\n this.style.cssText = `--local-border-radius: ${this.borderRadiusFull ? '1000px' : '20px'};`;\n return html `${this.templateVisual()}`;\n }\n templateVisual() {\n if (this.imageSrc) {\n return html ``;\n }\n return html ``;\n }\n};\nWuiVisualThumbnail.styles = [resetStyles, styles];\n__decorate([\n property()\n], WuiVisualThumbnail.prototype, \"imageSrc\", void 0);\n__decorate([\n property()\n], WuiVisualThumbnail.prototype, \"alt\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiVisualThumbnail.prototype, \"borderRadiusFull\", void 0);\nWuiVisualThumbnail = __decorate([\n customElement('wui-visual-thumbnail')\n], WuiVisualThumbnail);\nexport { WuiVisualThumbnail };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n display: block;\n }\n\n button {\n width: 100%;\n display: block;\n padding-top: var(--wui-spacing-l);\n padding-bottom: var(--wui-spacing-l);\n padding-left: var(--wui-spacing-s);\n padding-right: var(--wui-spacing-2l);\n border-radius: var(--wui-border-radius-s);\n background-color: var(--wui-color-accent-glass-015);\n }\n\n button:hover {\n background-color: var(--wui-color-accent-glass-010) !important;\n }\n\n button:active {\n background-color: var(--wui-color-accent-glass-020) !important;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport '../../layout/wui-flex/index.js';\nimport '../../components/wui-text/index.js';\nimport '../../composites/wui-button/index.js';\nimport '../../composites/wui-icon-box/index.js';\nimport { resetStyles, elementStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nimport { property } from 'lit/decorators.js';\nlet WuiNoticeCard = class WuiNoticeCard extends LitElement {\n constructor() {\n super(...arguments);\n this.label = '';\n this.description = '';\n this.icon = 'wallet';\n }\n render() {\n return html `\n \n `;\n }\n};\nWuiNoticeCard.styles = [resetStyles, elementStyles, styles];\n__decorate([\n property()\n], WuiNoticeCard.prototype, \"label\", void 0);\n__decorate([\n property()\n], WuiNoticeCard.prototype, \"description\", void 0);\n__decorate([\n property()\n], WuiNoticeCard.prototype, \"icon\", void 0);\nWuiNoticeCard = __decorate([\n customElement('wui-notice-card')\n], WuiNoticeCard);\nexport { WuiNoticeCard };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n button {\n height: auto;\n position: relative;\n flex-direction: column;\n gap: var(--wui-spacing-s);\n padding: 17px 18px 17px var(--wui-spacing-m);\n width: 100%;\n background-color: var(--wui-color-gray-glass-002);\n border-radius: var(--wui-border-radius-xs);\n color: var(--wui-color-fg-250);\n }\n\n .overflowedContent {\n width: 100%;\n overflow: hidden;\n }\n\n .overflowedContent[data-active='false']:after {\n content: '';\n position: absolute;\n top: 50%;\n left: 0;\n right: 0;\n bottom: 0;\n background: linear-gradient(to top, var(--wui-color-bg-200), transparent);\n border-bottom-left-radius: var(--wui-border-radius-xs);\n border-bottom-right-radius: var(--wui-border-radius-xs);\n }\n\n .heightContent {\n max-height: 100px;\n }\n\n pre {\n text-align: left;\n white-space: pre-wrap;\n height: auto;\n overflow-x: auto;\n overflow-wrap: anywhere;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport '../../components/wui-icon/index.js';\nimport '../../components/wui-text/index.js';\nimport '../../layout/wui-flex/index.js';\nimport { elementStyles, resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nconst MAX_HEIGHT = 100;\nlet WuiListAccordion = class WuiListAccordion extends LitElement {\n constructor() {\n super(...arguments);\n this.textTitle = '';\n this.overflowedContent = '';\n this.toggled = false;\n this.enableAccordion = false;\n this.scrollElement = undefined;\n this.scrollHeightElement = 0;\n }\n updated(changedProperties) {\n super.updated(changedProperties);\n if (changedProperties.has('textTitle') || changedProperties.has('overflowedContent')) {\n setTimeout(() => {\n this.checkHeight();\n }, 1);\n }\n }\n checkHeight() {\n this.updateComplete.then(() => {\n const heightElement = this.shadowRoot?.querySelector('.heightContent');\n const textElement = this.shadowRoot?.querySelector('.textContent');\n if (heightElement && textElement) {\n this.scrollElement = heightElement;\n const scrollHeight = textElement?.scrollHeight;\n if (scrollHeight && scrollHeight > MAX_HEIGHT) {\n this.enableAccordion = true;\n this.scrollHeightElement = scrollHeight;\n this.requestUpdate();\n }\n }\n });\n }\n render() {\n return html `\n \n `;\n }\n onClick() {\n const icon = this.shadowRoot?.querySelector('wui-icon');\n if (this.enableAccordion) {\n this.toggled = !this.toggled;\n this.requestUpdate();\n if (this.scrollElement) {\n this.scrollElement.animate([\n { maxHeight: this.toggled ? `${MAX_HEIGHT}px` : `${this.scrollHeightElement}px` },\n { maxHeight: this.toggled ? `${this.scrollHeightElement}px` : `${MAX_HEIGHT}px` }\n ], {\n duration: 300,\n fill: 'forwards',\n easing: 'ease'\n });\n }\n if (icon) {\n icon.animate([\n { transform: this.toggled ? `rotate(0deg)` : `rotate(180deg)` },\n { transform: this.toggled ? `rotate(180deg)` : `rotate(0deg)` }\n ], {\n duration: 300,\n fill: 'forwards',\n easing: 'ease'\n });\n }\n }\n }\n chevronTemplate() {\n if (this.enableAccordion) {\n return html ` `;\n }\n return null;\n }\n};\nWuiListAccordion.styles = [resetStyles, elementStyles, styles];\n__decorate([\n property()\n], WuiListAccordion.prototype, \"textTitle\", void 0);\n__decorate([\n property()\n], WuiListAccordion.prototype, \"overflowedContent\", void 0);\nWuiListAccordion = __decorate([\n customElement('wui-list-accordion')\n], WuiListAccordion);\nexport { WuiListAccordion };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n display: flex;\n column-gap: var(--wui-spacing-s);\n padding: 17px 18px 17px var(--wui-spacing-m);\n width: 100%;\n background-color: var(--wui-color-gray-glass-002);\n border-radius: var(--wui-border-radius-xs);\n color: var(--wui-color-fg-250);\n }\n\n wui-image {\n width: var(--wui-icon-size-lg);\n height: var(--wui-icon-size-lg);\n border-radius: var(--wui-border-radius-3xl);\n }\n\n wui-icon {\n width: var(--wui-icon-size-lg);\n height: var(--wui-icon-size-lg);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport '../../components/wui-icon/index.js';\nimport '../../components/wui-image/index.js';\nimport '../../components/wui-text/index.js';\nimport '../../layout/wui-flex/index.js';\nimport { elementStyles, resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nlet WuiListContent = class WuiListContent extends LitElement {\n constructor() {\n super(...arguments);\n this.imageSrc = undefined;\n this.textTitle = '';\n this.textValue = undefined;\n }\n render() {\n return html `\n \n \n ${this.textTitle}\n \n ${this.templateContent()}\n \n `;\n }\n templateContent() {\n if (this.imageSrc) {\n return html ``;\n }\n else if (this.textValue) {\n return html ` ${this.textValue} `;\n }\n return html ``;\n }\n};\nWuiListContent.styles = [resetStyles, elementStyles, styles];\n__decorate([\n property()\n], WuiListContent.prototype, \"imageSrc\", void 0);\n__decorate([\n property()\n], WuiListContent.prototype, \"textTitle\", void 0);\n__decorate([\n property()\n], WuiListContent.prototype, \"textValue\", void 0);\nWuiListContent = __decorate([\n customElement('wui-list-content')\n], WuiListContent);\nexport { WuiListContent };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n button {\n column-gap: var(--wui-spacing-s);\n padding: 7px var(--wui-spacing-l) 7px var(--wui-spacing-xs);\n width: 100%;\n background-color: var(--wui-color-gray-glass-002);\n border-radius: var(--wui-border-radius-xs);\n color: var(--wui-color-fg-100);\n }\n\n button > wui-text:nth-child(2) {\n display: flex;\n flex: 1;\n }\n\n button[data-transparent='true'] {\n pointer-events: none;\n background-color: transparent;\n }\n\n wui-icon {\n color: var(--wui-color-fg-200) !important;\n }\n\n button:disabled {\n background-color: var(--wui-color-gray-glass-015);\n color: var(--wui-color-gray-glass-015);\n }\n\n button:disabled > wui-tag {\n background-color: var(--wui-color-gray-glass-010);\n color: var(--wui-color-fg-300);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport '../../components/wui-text/index.js';\nimport { elementStyles, resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport '../wui-network-image/index.js';\nimport styles from './styles.js';\nlet WuiListNetwork = class WuiListNetwork extends LitElement {\n constructor() {\n super(...arguments);\n this.imageSrc = '';\n this.name = '';\n this.disabled = false;\n this.transparent = false;\n }\n render() {\n return html `\n \n `;\n }\n templateNetworkImage() {\n if (this.imageSrc) {\n return html ``;\n }\n if (!this.imageSrc) {\n return html ``;\n }\n return null;\n }\n};\nWuiListNetwork.styles = [resetStyles, elementStyles, styles];\n__decorate([\n property()\n], WuiListNetwork.prototype, \"imageSrc\", void 0);\n__decorate([\n property()\n], WuiListNetwork.prototype, \"name\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiListNetwork.prototype, \"disabled\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiListNetwork.prototype, \"transparent\", void 0);\nWuiListNetwork = __decorate([\n customElement('wui-list-network')\n], WuiListNetwork);\nexport { WuiListNetwork };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n display: flex;\n flex-direction: column;\n gap: var(--wui-spacing-l);\n padding: 17px 18px 17px var(--wui-spacing-m);\n width: 100%;\n background-color: var(--wui-color-gray-glass-002);\n border-radius: var(--wui-border-radius-xs);\n color: var(--wui-color-fg-250);\n }\n\n wui-image {\n width: var(--wui-icon-size-lg);\n height: var(--wui-icon-size-lg);\n border-radius: var(--wui-border-radius-3xl);\n }\n\n wui-icon {\n width: var(--wui-icon-size-lg);\n height: var(--wui-icon-size-lg);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport '../../components/wui-icon/index.js';\nimport '../../components/wui-image/index.js';\nimport '../../components/wui-text/index.js';\nimport '../wui-chip/index.js';\nimport '../../layout/wui-flex/index.js';\nimport { elementStyles, resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nlet WuiListWalletTransaction = class WuiListWalletTransaction extends LitElement {\n constructor() {\n super(...arguments);\n this.amount = '';\n this.networkCurreny = '';\n this.networkImageUrl = '';\n this.receiverAddress = '';\n this.addressExplorerUrl = '';\n }\n render() {\n return html `\n \n Sending\n \n \n ${this.amount} ${this.networkCurreny}\n \n ${this.templateNetworkVisual()}\n \n \n \n To\n \n \n `;\n }\n templateNetworkVisual() {\n if (this.networkImageUrl) {\n return html ``;\n }\n return html ``;\n }\n};\nWuiListWalletTransaction.styles = [resetStyles, elementStyles, styles];\n__decorate([\n property()\n], WuiListWalletTransaction.prototype, \"amount\", void 0);\n__decorate([\n property()\n], WuiListWalletTransaction.prototype, \"networkCurreny\", void 0);\n__decorate([\n property()\n], WuiListWalletTransaction.prototype, \"networkImageUrl\", void 0);\n__decorate([\n property()\n], WuiListWalletTransaction.prototype, \"receiverAddress\", void 0);\n__decorate([\n property()\n], WuiListWalletTransaction.prototype, \"addressExplorerUrl\", void 0);\nWuiListWalletTransaction = __decorate([\n customElement('wui-list-wallet-transaction')\n], WuiListWalletTransaction);\nexport { WuiListWalletTransaction };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n width: 100%;\n }\n\n :host > wui-flex {\n width: 100%;\n padding: var(--wui-spacing-s);\n border-radius: var(--wui-border-radius-xs);\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n gap: var(--wui-spacing-s);\n }\n\n :host > wui-flex:hover {\n background-color: var(--wui-color-gray-glass-002);\n }\n\n .purchase-image-container {\n display: flex;\n justify-content: center;\n align-items: center;\n position: relative;\n width: var(--wui-icon-box-size-lg);\n height: var(--wui-icon-box-size-lg);\n }\n\n .purchase-image-container wui-image {\n width: 100%;\n height: 100%;\n position: relative;\n border-radius: calc(var(--wui-icon-box-size-lg) / 2);\n }\n\n .purchase-image-container wui-image::after {\n content: '';\n display: block;\n width: 100%;\n height: 100%;\n position: absolute;\n inset: 0;\n border-radius: calc(var(--wui-icon-box-size-lg) / 2);\n box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-005);\n }\n\n .purchase-image-container wui-icon-box {\n position: absolute;\n right: 0;\n bottom: 0;\n transform: translate(20%, 20%);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport '../../components/wui-icon/index.js';\nimport '../../components/wui-text/index.js';\nimport { elementStyles, resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nimport { ApiController } from '@web3modal/core';\nlet WuiOnRampActivityItem = class WuiOnRampActivityItem extends LitElement {\n constructor() {\n super(...arguments);\n this.disabled = false;\n this.color = 'inherit';\n this.label = 'Bought';\n this.purchaseValue = '';\n this.purchaseCurrency = '';\n this.date = '';\n this.completed = false;\n this.inProgress = false;\n this.failed = false;\n this.onClick = null;\n this.symbol = '';\n }\n firstUpdated() {\n if (!this.icon) {\n this.fetchTokenImage();\n }\n }\n render() {\n return html `\n \n ${this.imageTemplate()}\n \n \n ${this.statusIconTemplate()}\n ${this.label}\n \n \n + ${this.purchaseValue} ${this.purchaseCurrency}\n \n \n ${this.inProgress\n ? html ``\n : html `${this.date}`}\n \n `;\n }\n async fetchTokenImage() {\n await ApiController._fetchTokenImage(this.purchaseCurrency);\n }\n statusIconTemplate() {\n if (this.inProgress) {\n return null;\n }\n return this.completed ? this.boughtIconTemplate() : this.errorIconTemplate();\n }\n errorIconTemplate() {\n return html ``;\n }\n imageTemplate() {\n const icon = this.icon || `https://avatar.vercel.sh/andrew.svg?size=50&text=${this.symbol}`;\n return html `\n \n `;\n }\n boughtIconTemplate() {\n return html ``;\n }\n};\nWuiOnRampActivityItem.styles = [resetStyles, elementStyles, styles];\n__decorate([\n property({ type: Boolean })\n], WuiOnRampActivityItem.prototype, \"disabled\", void 0);\n__decorate([\n property()\n], WuiOnRampActivityItem.prototype, \"color\", void 0);\n__decorate([\n property()\n], WuiOnRampActivityItem.prototype, \"label\", void 0);\n__decorate([\n property()\n], WuiOnRampActivityItem.prototype, \"purchaseValue\", void 0);\n__decorate([\n property()\n], WuiOnRampActivityItem.prototype, \"purchaseCurrency\", void 0);\n__decorate([\n property()\n], WuiOnRampActivityItem.prototype, \"date\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiOnRampActivityItem.prototype, \"completed\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiOnRampActivityItem.prototype, \"inProgress\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiOnRampActivityItem.prototype, \"failed\", void 0);\n__decorate([\n property()\n], WuiOnRampActivityItem.prototype, \"onClick\", void 0);\n__decorate([\n property()\n], WuiOnRampActivityItem.prototype, \"symbol\", void 0);\n__decorate([\n property()\n], WuiOnRampActivityItem.prototype, \"icon\", void 0);\nWuiOnRampActivityItem = __decorate([\n customElement('wui-onramp-activity-item')\n], WuiOnRampActivityItem);\nexport { WuiOnRampActivityItem };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n button {\n padding: var(--wui-spacing-s);\n border-radius: var(--wui-border-radius-xs);\n background-color: var(--wui-color-gray-glass-002);\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n gap: var(--wui-spacing-s);\n transition: background-color var(--wui-ease-out-power-1) var(--wui-duration-md);\n will-change: background-color;\n }\n\n button:hover {\n background-color: var(--wui-color-gray-glass-005);\n }\n\n .provider-image {\n width: var(--wui-spacing-3xl);\n min-width: var(--wui-spacing-3xl);\n height: var(--wui-spacing-3xl);\n border-radius: calc(var(--wui-border-radius-xs) - calc(var(--wui-spacing-s) / 2));\n position: relative;\n overflow: hidden;\n }\n\n .provider-image::after {\n content: '';\n display: block;\n width: 100%;\n height: 100%;\n position: absolute;\n inset: 0;\n border-radius: calc(var(--wui-border-radius-xs) - calc(var(--wui-spacing-s) / 2));\n box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-005);\n }\n\n .network-icon {\n width: var(--wui-spacing-m);\n height: var(--wui-spacing-m);\n border-radius: calc(var(--wui-spacing-m) / 2);\n overflow: hidden;\n box-shadow:\n 0 0 0 3px var(--wui-color-gray-glass-002),\n 0 0 0 3px var(--wui-color-modal-bg);\n transition: box-shadow var(--wui-ease-out-power-1) var(--wui-duration-md);\n will-change: box-shadow;\n }\n\n button:hover .network-icon {\n box-shadow:\n 0 0 0 3px var(--wui-color-gray-glass-005),\n 0 0 0 3px var(--wui-color-modal-bg);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { AssetUtil, NetworkController } from '@web3modal/core';\nimport '../../components/wui-icon/index.js';\nimport '../../components/wui-text/index.js';\nimport { elementStyles, resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nlet WuiOnRampProviderItem = class WuiOnRampProviderItem extends LitElement {\n constructor() {\n super(...arguments);\n this.disabled = false;\n this.color = 'inherit';\n this.label = '';\n this.feeRange = '';\n this.loading = false;\n this.onClick = null;\n }\n render() {\n return html `\n \n `;\n }\n networksTemplate() {\n const networks = NetworkController.getRequestedCaipNetworks();\n const slicedNetworks = networks?.filter(network => network?.imageId)?.slice(0, 5);\n return html `\n \n ${slicedNetworks?.map(network => html `\n \n \n \n `)}\n \n `;\n }\n};\nWuiOnRampProviderItem.styles = [resetStyles, elementStyles, styles];\n__decorate([\n property({ type: Boolean })\n], WuiOnRampProviderItem.prototype, \"disabled\", void 0);\n__decorate([\n property()\n], WuiOnRampProviderItem.prototype, \"color\", void 0);\n__decorate([\n property()\n], WuiOnRampProviderItem.prototype, \"name\", void 0);\n__decorate([\n property()\n], WuiOnRampProviderItem.prototype, \"label\", void 0);\n__decorate([\n property()\n], WuiOnRampProviderItem.prototype, \"feeRange\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiOnRampProviderItem.prototype, \"loading\", void 0);\n__decorate([\n property()\n], WuiOnRampProviderItem.prototype, \"onClick\", void 0);\nWuiOnRampProviderItem = __decorate([\n customElement('wui-onramp-provider-item')\n], WuiOnRampProviderItem);\nexport { WuiOnRampProviderItem };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n button {\n display: flex;\n gap: var(--wui-spacing-3xs);\n align-items: center;\n padding: 6.25px var(--wui-spacing-xs) 7.25px var(--wui-spacing-s);\n background-color: var(--wui-color-gray-glass-090);\n border-radius: var(--wui-border-radius-3xl);\n border: 1px solid var(--wui-color-gray-glass-060);\n transition: background-color var(--wui-duration-md) var(--wui-ease-inout-power-1);\n will-change: background-color;\n }\n\n @media (hover: hover) and (pointer: fine) {\n button:hover:enabled {\n background-color: var(--wui-color-gray-glass-080);\n }\n\n button:active:enabled {\n background-color: var(--wui-color-gray-glass-060);\n }\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nimport '../../components/wui-text/index.js';\nimport '../../components/wui-icon/index.js';\nimport { elementStyles, resetStyles } from '../../utils/ThemeUtil.js';\nlet WuiPromo = class WuiPromo extends LitElement {\n constructor() {\n super(...arguments);\n this.text = '';\n }\n render() {\n return html ``;\n }\n};\nWuiPromo.styles = [resetStyles, elementStyles, styles];\n__decorate([\n property()\n], WuiPromo.prototype, \"text\", void 0);\nWuiPromo = __decorate([\n customElement('wui-promo')\n], WuiPromo);\nexport { WuiPromo };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n span {\n font-weight: 500;\n font-size: 40px;\n color: var(--wui-color-fg-100);\n line-height: 130%; /* 52px */\n letter-spacing: -1.6px;\n text-align: center;\n }\n\n .pennies {\n color: var(--wui-color-fg-200);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nimport { resetStyles } from '../../utils/ThemeUtil.js';\nlet WuiBalance = class WuiBalance extends LitElement {\n constructor() {\n super(...arguments);\n this.dollars = '0';\n this.pennies = '00';\n }\n render() {\n return html `$${this.dollars}.${this.pennies}`;\n }\n};\nWuiBalance.styles = [resetStyles, styles];\n__decorate([\n property()\n], WuiBalance.prototype, \"dollars\", void 0);\n__decorate([\n property()\n], WuiBalance.prototype, \"pennies\", void 0);\nWuiBalance = __decorate([\n customElement('wui-balance')\n], WuiBalance);\nexport { WuiBalance };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n button {\n background-color: var(--wui-color-gray-glass-002);\n border-radius: var(--wui-border-radius-3xl);\n border: 1px solid var(--wui-color-gray-glass-002);\n padding: var(--wui-spacing-xs) var(--wui-spacing-s) var(--wui-spacing-xs) var(--wui-spacing-xs);\n position: relative;\n }\n\n wui-avatar {\n width: 32px;\n height: 32px;\n box-shadow: 0 0 0 0;\n outline: 3px solid var(--wui-color-gray-glass-005);\n }\n\n wui-icon-box,\n wui-image {\n width: 16px;\n height: 16px;\n border-radius: var(--wui-border-radius-3xl);\n position: absolute;\n left: 26px;\n top: 24px;\n }\n\n wui-image {\n outline: 2px solid var(--wui-color-bg-125);\n }\n\n wui-icon-box {\n outline: 2px solid var(--wui-color-bg-200);\n background-color: var(--wui-color-bg-250);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport '../../components/wui-icon/index.js';\nimport '../../components/wui-text/index.js';\nimport '../../components/wui-image/index.js';\nimport '../../layout/wui-flex/index.js';\nimport '../wui-avatar/index.js';\nimport '../wui-icon-box/index.js';\nimport { elementStyles, resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nimport { UiHelperUtil } from '../../utils/UiHelperUtil.js';\nlet WuiProfileButton = class WuiProfileButton extends LitElement {\n constructor() {\n super(...arguments);\n this.networkSrc = undefined;\n this.avatarSrc = undefined;\n this.profileName = '';\n this.address = '';\n this.icon = 'chevronBottom';\n }\n render() {\n return html ``;\n }\n networkImageTemplate() {\n if (this.networkSrc) {\n return html ``;\n }\n return html `\n \n `;\n }\n};\nWuiProfileButton.styles = [resetStyles, elementStyles, styles];\n__decorate([\n property()\n], WuiProfileButton.prototype, \"networkSrc\", void 0);\n__decorate([\n property()\n], WuiProfileButton.prototype, \"avatarSrc\", void 0);\n__decorate([\n property()\n], WuiProfileButton.prototype, \"profileName\", void 0);\n__decorate([\n property()\n], WuiProfileButton.prototype, \"address\", void 0);\n__decorate([\n property()\n], WuiProfileButton.prototype, \"icon\", void 0);\nWuiProfileButton = __decorate([\n customElement('wui-profile-button')\n], WuiProfileButton);\nexport { WuiProfileButton };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n button {\n border: none;\n border-radius: var(--wui-border-radius-3xl);\n }\n\n button[data-variant='main'] {\n background-color: var(--wui-color-accent-100);\n color: var(--wui-color-inverse-100);\n box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-010);\n }\n\n button[data-variant='accent'] {\n background-color: var(--wui-color-accent-glass-010);\n color: var(--wui-color-accent-100);\n box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-005);\n }\n\n button[data-variant='gray'] {\n background-color: transparent;\n color: var(--wui-color-fg-200);\n box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-010);\n }\n\n button[data-variant='shade'] {\n background-color: transparent;\n color: var(--wui-color-accent-100);\n box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-010);\n }\n\n button[data-size='sm'] {\n height: 32px;\n padding: 0 var(--wui-spacing-s);\n }\n\n button[data-size='md'] {\n height: 40px;\n padding: 0 var(--wui-spacing-l);\n }\n\n button[data-size='sm'] > wui-image {\n width: 16px;\n height: 16px;\n }\n\n button[data-size='md'] > wui-image {\n width: 24px;\n height: 24px;\n }\n\n button[data-size='sm'] > wui-icon {\n width: 12px;\n height: 12px;\n }\n\n button[data-size='md'] > wui-icon {\n width: 14px;\n height: 14px;\n }\n\n wui-image {\n border-radius: var(--wui-border-radius-3xl);\n overflow: hidden;\n }\n\n button.disabled > wui-icon,\n button.disabled > wui-image {\n filter: grayscale(1);\n }\n\n button[data-variant='main'] > wui-image {\n box-shadow: inset 0 0 0 1px var(--wui-color-accent-090);\n }\n\n button[data-variant='shade'] > wui-image,\n button[data-variant='gray'] > wui-image {\n box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-010);\n }\n\n @media (hover: hover) and (pointer: fine) {\n button[data-variant='main']:focus-visible {\n background-color: var(--wui-color-accent-090);\n }\n\n button[data-variant='shade']:focus-visible,\n button[data-variant='gray']:focus-visible,\n button[data-variant='shade']:hover,\n button[data-variant='gray']:hover {\n background-color: var(--wui-color-gray-glass-002);\n }\n\n button[data-variant='gray']:active,\n button[data-variant='shade']:active {\n background-color: var(--wui-color-gray-glass-005);\n }\n }\n\n button.disabled {\n color: var(--wui-color-gray-glass-020);\n background-color: var(--wui-color-gray-glass-002);\n box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-002);\n pointer-events: none;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport '../../components/wui-icon/index.js';\nimport '../../components/wui-image/index.js';\nimport '../../components/wui-text/index.js';\nimport { elementStyles, resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nlet WuiChipButton = class WuiChipButton extends LitElement {\n constructor() {\n super(...arguments);\n this.variant = 'accent';\n this.imageSrc = '';\n this.disabled = false;\n this.icon = 'externalLink';\n this.size = 'md';\n this.text = '';\n }\n render() {\n const textVariant = this.size === 'sm' ? 'small-600' : 'paragraph-600';\n return html `\n \n ${this.imageSrc ? html `` : null}\n ${this.text} \n \n \n `;\n }\n};\nWuiChipButton.styles = [resetStyles, elementStyles, styles];\n__decorate([\n property()\n], WuiChipButton.prototype, \"variant\", void 0);\n__decorate([\n property()\n], WuiChipButton.prototype, \"imageSrc\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiChipButton.prototype, \"disabled\", void 0);\n__decorate([\n property()\n], WuiChipButton.prototype, \"icon\", void 0);\n__decorate([\n property()\n], WuiChipButton.prototype, \"size\", void 0);\n__decorate([\n property()\n], WuiChipButton.prototype, \"text\", void 0);\nWuiChipButton = __decorate([\n customElement('wui-chip-button')\n], WuiChipButton);\nexport { WuiChipButton };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n button {\n display: flex;\n gap: var(--wui-spacing-xl);\n width: 100%;\n background-color: var(--wui-color-gray-glass-002);\n border-radius: var(--wui-border-radius-xxs);\n padding: var(--wui-spacing-m) var(--wui-spacing-s);\n }\n\n wui-text {\n width: 100%;\n }\n\n wui-flex {\n width: auto;\n }\n\n .network-icon {\n width: var(--wui-spacing-2l);\n height: var(--wui-spacing-2l);\n border-radius: calc(var(--wui-spacing-2l) / 2);\n overflow: hidden;\n box-shadow:\n 0 0 0 3px var(--wui-color-gray-glass-002),\n 0 0 0 3px var(--wui-color-modal-bg);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport '../../components/wui-icon/index.js';\nimport '../../components/wui-text/index.js';\nimport '../../components/wui-image/index.js';\nimport '../../layout/wui-flex/index.js';\nimport { elementStyles, resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nlet WuiCompatibleNetwork = class WuiCompatibleNetwork extends LitElement {\n constructor() {\n super(...arguments);\n this.networkImages = [''];\n this.text = '';\n }\n render() {\n return html `\n \n `;\n }\n networksTemplate() {\n const slicedNetworks = this.networkImages.slice(0, 5);\n return html ` \n ${slicedNetworks?.map(network => html ` `)}\n `;\n }\n};\nWuiCompatibleNetwork.styles = [resetStyles, elementStyles, styles];\n__decorate([\n property({ type: Array })\n], WuiCompatibleNetwork.prototype, \"networkImages\", void 0);\n__decorate([\n property()\n], WuiCompatibleNetwork.prototype, \"text\", void 0);\nWuiCompatibleNetwork = __decorate([\n customElement('wui-compatible-network')\n], WuiCompatibleNetwork);\nexport { WuiCompatibleNetwork };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n wui-flex {\n width: 100%;\n background-color: var(--wui-color-gray-glass-005);\n border-radius: var(--wui-border-radius-s);\n padding: var(--wui-spacing-1xs) var(--wui-spacing-s) var(--wui-spacing-1xs)\n var(--wui-spacing-1xs);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport '../../components/wui-text/index.js';\nimport '../wui-icon-box/index.js';\nimport { elementStyles, resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nlet WuiBanner = class WuiBanner extends LitElement {\n constructor() {\n super(...arguments);\n this.icon = 'externalLink';\n this.text = '';\n }\n render() {\n return html `\n \n \n ${this.text}\n \n `;\n }\n};\nWuiBanner.styles = [resetStyles, elementStyles, styles];\n__decorate([\n property()\n], WuiBanner.prototype, \"icon\", void 0);\n__decorate([\n property()\n], WuiBanner.prototype, \"text\", void 0);\nWuiBanner = __decorate([\n customElement('wui-banner')\n], WuiBanner);\nexport { WuiBanner };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n button {\n padding: 6.5px var(--wui-spacing-l) 6.5px var(--wui-spacing-xs);\n display: flex;\n justify-content: space-between;\n width: 100%;\n border-radius: var(--wui-border-radius-xs);\n background-color: var(--wui-color-gray-glass-002);\n }\n\n button[data-clickable='false'] {\n pointer-events: none;\n background-color: transparent;\n }\n\n wui-image,\n wui-icon {\n width: var(--wui-spacing-3xl);\n height: var(--wui-spacing-3xl);\n }\n\n wui-image {\n border-radius: var(--wui-border-radius-3xl);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport '../../components/wui-text/index.js';\nimport '../../components/wui-image/index.js';\nimport '../../layout/wui-flex/index.js';\nimport { elementStyles, resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nimport { UiHelperUtil } from '../../utils/UiHelperUtil.js';\nlet WuiListToken = class WuiListToken extends LitElement {\n constructor() {\n super(...arguments);\n this.tokenName = '';\n this.tokenImageUrl = '';\n this.tokenValue = 0.0;\n this.tokenAmount = '0.0';\n this.tokenCurrency = '';\n this.clickable = false;\n }\n render() {\n return html `\n \n `;\n }\n visualTemplate() {\n if (this.tokenName && this.tokenImageUrl) {\n return html ``;\n }\n return html ``;\n }\n};\nWuiListToken.styles = [resetStyles, elementStyles, styles];\n__decorate([\n property()\n], WuiListToken.prototype, \"tokenName\", void 0);\n__decorate([\n property()\n], WuiListToken.prototype, \"tokenImageUrl\", void 0);\n__decorate([\n property({ type: Number })\n], WuiListToken.prototype, \"tokenValue\", void 0);\n__decorate([\n property()\n], WuiListToken.prototype, \"tokenAmount\", void 0);\n__decorate([\n property()\n], WuiListToken.prototype, \"tokenCurrency\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiListToken.prototype, \"clickable\", void 0);\nWuiListToken = __decorate([\n customElement('wui-list-token')\n], WuiListToken);\nexport { WuiListToken };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n button {\n width: 100%;\n display: flex;\n gap: var(--wui-spacing-s);\n align-items: center;\n justify-content: flex-start;\n padding: var(--wui-spacing-s) var(--wui-spacing-m) var(--wui-spacing-s) var(--wui-spacing-s);\n background-color: var(--wui-color-gray-glass-002);\n border-radius: var(--wui-border-radius-xs);\n }\n\n wui-icon-box {\n width: var(--wui-spacing-2xl);\n height: var(--wui-spacing-2xl);\n }\n\n wui-flex {\n width: auto;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport '../../components/wui-text/index.js';\nimport '../../components/wui-image/index.js';\nimport '../../layout/wui-flex/index.js';\nimport { elementStyles, resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nlet WuiListDescription = class WuiListDescription extends LitElement {\n constructor() {\n super(...arguments);\n this.icon = 'card';\n this.text = '';\n this.description = '';\n this.tag = undefined;\n this.iconBackgroundColor = 'accent-100';\n this.iconColor = 'accent-100';\n this.disabled = false;\n }\n render() {\n return html `\n \n `;\n }\n titleTemplate() {\n if (this.tag) {\n return html ` ${this.text}${this.tag}\n `;\n }\n return html `${this.text}`;\n }\n};\nWuiListDescription.styles = [resetStyles, elementStyles, styles];\n__decorate([\n property()\n], WuiListDescription.prototype, \"icon\", void 0);\n__decorate([\n property()\n], WuiListDescription.prototype, \"text\", void 0);\n__decorate([\n property()\n], WuiListDescription.prototype, \"description\", void 0);\n__decorate([\n property()\n], WuiListDescription.prototype, \"tag\", void 0);\n__decorate([\n property()\n], WuiListDescription.prototype, \"iconBackgroundColor\", void 0);\n__decorate([\n property()\n], WuiListDescription.prototype, \"iconColor\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiListDescription.prototype, \"disabled\", void 0);\nWuiListDescription = __decorate([\n customElement('wui-list-description')\n], WuiListDescription);\nexport { WuiListDescription };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n position: relative;\n display: inline-block;\n }\n\n input {\n background: transparent;\n width: 100%;\n height: auto;\n font-family: var(--wui-font-family);\n color: var(--wui-color-fg-100);\n\n font-feature-settings: 'case' on;\n font-size: 32px;\n font-weight: var(--wui-font-weight-light);\n caret-color: var(--wui-color-accent-100);\n line-height: 130%;\n letter-spacing: -1.28px;\n box-sizing: border-box;\n -webkit-appearance: none;\n -moz-appearance: textfield;\n padding: 0px;\n }\n\n input::-webkit-outer-spin-button,\n input::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n\n input::placeholder {\n color: var(--wui-color-fg-275);\n }\n`;\n//# sourceMappingURL=styles.js.map","export const specialCharactersRegex = /[.*+?^${}()|[\\]\\\\]/gu;\nexport const numbersRegex = /[0-9,.]/u;\n//# sourceMappingURL=ConstantsUtil.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { elementStyles, resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nimport { createRef, ref } from 'lit/directives/ref.js';\nimport { numbersRegex, specialCharactersRegex } from '../../utils/ConstantsUtil.js';\nlet WuiInputAmount = class WuiInputAmount extends LitElement {\n constructor() {\n super(...arguments);\n this.inputElementRef = createRef();\n this.disabled = false;\n this.value = '';\n this.placeholder = '0';\n }\n render() {\n if (this.inputElementRef?.value && this.value) {\n this.inputElementRef.value.value = this.value;\n }\n return html ` `;\n }\n dispatchInputChangeEvent(e) {\n const inputChar = e.data;\n if (inputChar && this.inputElementRef?.value) {\n if (inputChar === ',') {\n const inputValue = this.inputElementRef.value.value.replace(',', '.');\n this.inputElementRef.value.value = inputValue;\n this.value = `${this.value}${inputValue}`;\n }\n else if (!numbersRegex.test(inputChar)) {\n this.inputElementRef.value.value = this.value.replace(new RegExp(inputChar.replace(specialCharactersRegex, '\\\\$&'), 'gu'), '');\n }\n }\n this.dispatchEvent(new CustomEvent('inputChange', {\n detail: this.inputElementRef.value?.value,\n bubbles: true,\n composed: true\n }));\n }\n};\nWuiInputAmount.styles = [resetStyles, elementStyles, styles];\n__decorate([\n property({ type: Boolean })\n], WuiInputAmount.prototype, \"disabled\", void 0);\n__decorate([\n property({ type: String })\n], WuiInputAmount.prototype, \"value\", void 0);\n__decorate([\n property({ type: String })\n], WuiInputAmount.prototype, \"placeholder\", void 0);\nWuiInputAmount = __decorate([\n customElement('wui-input-amount')\n], WuiInputAmount);\nexport { WuiInputAmount };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n display: flex;\n gap: var(--wui-spacing-xs);\n border-radius: var(--wui-border-radius-3xl);\n border: 1px solid var(--wui-color-gray-glass-002);\n background: var(--wui-color-gray-glass-002);\n padding: var(--wui-spacing-2xs) var(--wui-spacing-xs) var(--wui-spacing-2xs)\n var(--wui-spacing-s);\n align-items: center;\n }\n\n wui-avatar,\n wui-icon,\n wui-image {\n width: 32px;\n height: 32px;\n border: 1px solid var(--wui-color-gray-glass-002);\n border-radius: var(--wui-border-radius-3xl);\n box-shadow: 0 0 0 2px var(--wui-color-gray-glass-002);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport '../../components/wui-text/index.js';\nimport '../../components/wui-image/index.js';\nimport '../../components/wui-icon/index.js';\nimport '../wui-avatar/index.js';\nimport '../../layout/wui-flex/index.js';\nimport { elementStyles, resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nlet WuiPreviewItem = class WuiPreviewItem extends LitElement {\n constructor() {\n super(...arguments);\n this.text = '';\n this.address = '';\n this.isAddress = false;\n }\n render() {\n return html `${this.text}\n ${this.imageTemplate()}`;\n }\n imageTemplate() {\n if (this.isAddress) {\n return html ``;\n }\n else if (this.imageSrc) {\n return html ``;\n }\n return html ``;\n }\n};\nWuiPreviewItem.styles = [resetStyles, elementStyles, styles];\n__decorate([\n property()\n], WuiPreviewItem.prototype, \"text\", void 0);\n__decorate([\n property()\n], WuiPreviewItem.prototype, \"address\", void 0);\n__decorate([\n property()\n], WuiPreviewItem.prototype, \"imageSrc\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiPreviewItem.prototype, \"isAddress\", void 0);\nWuiPreviewItem = __decorate([\n customElement('wui-preview-item')\n], WuiPreviewItem);\nexport { WuiPreviewItem };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n position: relative;\n }\n\n button {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 48px;\n width: 100%;\n background-color: var(--wui-color-accent-glass-010);\n border-radius: var(--wui-border-radius-xs);\n border: 1px solid var(--wui-color-accent-glass-010);\n transition: background-color var(--wui-ease-out-power-1) var(--wui-duration-md);\n will-change: background-color;\n }\n\n wui-tooltip {\n padding: 7px var(--wui-spacing-s) 8px var(--wui-spacing-s);\n position: absolute;\n top: -8px;\n left: 50%;\n transform: translate(-50%, -100%);\n opacity: 0;\n display: none;\n }\n\n @media (hover: hover) and (pointer: fine) {\n button:hover:enabled {\n background-color: var(--wui-color-accent-glass-015);\n }\n\n button:active:enabled {\n background-color: var(--wui-color-accent-glass-020);\n }\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nimport '../wui-tooltip/index.js';\nimport '../../components/wui-icon/index.js';\nimport { elementStyles, resetStyles } from '../../utils/ThemeUtil.js';\nlet WuiIconButton = class WuiIconButton extends LitElement {\n constructor() {\n super(...arguments);\n this.text = '';\n this.icon = 'card';\n }\n render() {\n return html ``;\n }\n};\nWuiIconButton.styles = [resetStyles, elementStyles, styles];\n__decorate([\n property()\n], WuiIconButton.prototype, \"text\", void 0);\n__decorate([\n property()\n], WuiIconButton.prototype, \"icon\", void 0);\nWuiIconButton = __decorate([\n customElement('wui-icon-button')\n], WuiIconButton);\nexport { WuiIconButton };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n button {\n column-gap: var(--wui-spacing-s);\n padding: 16.5px var(--wui-spacing-l) 16.5px var(--wui-spacing-xs);\n width: 100%;\n background-color: var(--wui-color-gray-glass-002);\n border-radius: var(--wui-border-radius-xs);\n color: var(--wui-color-fg-100);\n justify-content: center;\n align-items: center;\n }\n\n button:disabled {\n background-color: var(--wui-color-gray-glass-015);\n color: var(--wui-color-gray-glass-015);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport '../../components/wui-text/index.js';\nimport { elementStyles, resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nlet WuiListButton = class WuiListButton extends LitElement {\n constructor() {\n super(...arguments);\n this.text = '';\n this.disabled = false;\n }\n render() {\n return html `\n \n `;\n }\n};\nWuiListButton.styles = [resetStyles, elementStyles, styles];\n__decorate([\n property()\n], WuiListButton.prototype, \"text\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiListButton.prototype, \"disabled\", void 0);\nWuiListButton = __decorate([\n customElement('wui-list-button')\n], WuiListButton);\nexport { WuiListButton };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n button {\n column-gap: var(--wui-spacing-s);\n padding: 7px var(--wui-spacing-l) 7px var(--wui-spacing-xs);\n width: 100%;\n justify-content: flex-start;\n background-color: var(--wui-color-gray-glass-002);\n border-radius: var(--wui-border-radius-xs);\n color: var(--wui-color-fg-100);\n }\n\n wui-text {\n text-transform: capitalize;\n }\n\n wui-text[data-align='left'] {\n display: flex;\n flex: 1;\n }\n\n wui-text[data-align='center'] {\n display: flex;\n flex: 1;\n justify-content: center;\n }\n\n .invisible {\n opacity: 0;\n pointer-events: none;\n }\n\n button:disabled {\n background-color: var(--wui-color-gray-glass-015);\n color: var(--wui-color-gray-glass-015);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport '../../components/wui-text/index.js';\nimport { elementStyles, resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport '../wui-logo/index.js';\nimport styles from './styles.js';\nlet WuiListSocial = class WuiListSocial extends LitElement {\n constructor() {\n super(...arguments);\n this.logo = 'google';\n this.name = 'Continue with google';\n this.align = 'left';\n this.disabled = false;\n }\n render() {\n return html `\n \n `;\n }\n templatePlacement() {\n if (this.align === 'center') {\n return html ` `;\n }\n return null;\n }\n};\nWuiListSocial.styles = [resetStyles, elementStyles, styles];\n__decorate([\n property()\n], WuiListSocial.prototype, \"logo\", void 0);\n__decorate([\n property()\n], WuiListSocial.prototype, \"name\", void 0);\n__decorate([\n property()\n], WuiListSocial.prototype, \"align\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiListSocial.prototype, \"disabled\", void 0);\nWuiListSocial = __decorate([\n customElement('wui-list-social')\n], WuiListSocial);\nexport { WuiListSocial };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n display: grid;\n width: inherit;\n height: inherit;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { resetStyles } from '../../utils/ThemeUtil.js';\nimport { UiHelperUtil } from '../../utils/UiHelperUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nlet WuiGrid = class WuiGrid extends LitElement {\n render() {\n this.style.cssText = `\n grid-template-rows: ${this.gridTemplateRows};\n grid-template-columns: ${this.gridTemplateColumns};\n justify-items: ${this.justifyItems};\n align-items: ${this.alignItems};\n justify-content: ${this.justifyContent};\n align-content: ${this.alignContent};\n column-gap: ${this.columnGap && `var(--wui-spacing-${this.columnGap})`};\n row-gap: ${this.rowGap && `var(--wui-spacing-${this.rowGap})`};\n gap: ${this.gap && `var(--wui-spacing-${this.gap})`};\n padding-top: ${this.padding && UiHelperUtil.getSpacingStyles(this.padding, 0)};\n padding-right: ${this.padding && UiHelperUtil.getSpacingStyles(this.padding, 1)};\n padding-bottom: ${this.padding && UiHelperUtil.getSpacingStyles(this.padding, 2)};\n padding-left: ${this.padding && UiHelperUtil.getSpacingStyles(this.padding, 3)};\n margin-top: ${this.margin && UiHelperUtil.getSpacingStyles(this.margin, 0)};\n margin-right: ${this.margin && UiHelperUtil.getSpacingStyles(this.margin, 1)};\n margin-bottom: ${this.margin && UiHelperUtil.getSpacingStyles(this.margin, 2)};\n margin-left: ${this.margin && UiHelperUtil.getSpacingStyles(this.margin, 3)};\n `;\n return html ``;\n }\n};\nWuiGrid.styles = [resetStyles, styles];\n__decorate([\n property()\n], WuiGrid.prototype, \"gridTemplateRows\", void 0);\n__decorate([\n property()\n], WuiGrid.prototype, \"gridTemplateColumns\", void 0);\n__decorate([\n property()\n], WuiGrid.prototype, \"justifyItems\", void 0);\n__decorate([\n property()\n], WuiGrid.prototype, \"alignItems\", void 0);\n__decorate([\n property()\n], WuiGrid.prototype, \"justifyContent\", void 0);\n__decorate([\n property()\n], WuiGrid.prototype, \"alignContent\", void 0);\n__decorate([\n property()\n], WuiGrid.prototype, \"columnGap\", void 0);\n__decorate([\n property()\n], WuiGrid.prototype, \"rowGap\", void 0);\n__decorate([\n property()\n], WuiGrid.prototype, \"gap\", void 0);\n__decorate([\n property()\n], WuiGrid.prototype, \"padding\", void 0);\n__decorate([\n property()\n], WuiGrid.prototype, \"margin\", void 0);\nWuiGrid = __decorate([\n customElement('wui-grid')\n], WuiGrid);\nexport { WuiGrid };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n position: relative;\n display: flex;\n width: 100%;\n height: 1px;\n background-color: var(--wui-color-gray-glass-005);\n justify-content: center;\n align-items: center;\n }\n\n :host > wui-text {\n position: absolute;\n padding: 0px 10px;\n background-color: var(--wui-color-modal-bg);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport '../../components/wui-text/index.js';\nimport { resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nlet WuiSeparator = class WuiSeparator extends LitElement {\n constructor() {\n super(...arguments);\n this.text = '';\n }\n render() {\n return html `${this.template()}`;\n }\n template() {\n if (this.text) {\n return html `${this.text}`;\n }\n return null;\n }\n};\nWuiSeparator.styles = [resetStyles, styles];\n__decorate([\n property()\n], WuiSeparator.prototype, \"text\", void 0);\nWuiSeparator = __decorate([\n customElement('wui-separator')\n], WuiSeparator);\nexport { WuiSeparator };\n//# sourceMappingURL=index.js.map","export const MathUtil = {\n interpolate(inputRange, outputRange, value) {\n if (inputRange.length !== 2 || outputRange.length !== 2) {\n throw new Error('inputRange and outputRange must be an array of length 2');\n }\n const originalRangeMin = inputRange[0] || 0;\n const originalRangeMax = inputRange[1] || 0;\n const newRangeMin = outputRange[0] || 0;\n const newRangeMax = outputRange[1] || 0;\n if (value < originalRangeMin) {\n return newRangeMin;\n }\n if (value > originalRangeMax) {\n return newRangeMax;\n }\n return (((newRangeMax - newRangeMin) / (originalRangeMax - originalRangeMin)) *\n (value - originalRangeMin) +\n newRangeMin);\n }\n};\n//# sourceMappingURL=MathUtil.js.map","import { DateUtil } from '@web3modal/common';\nimport { UiHelperUtil } from './UiHelperUtil.js';\nconst FLOAT_FIXED_VALUE = 3;\nconst plusTypes = ['receive', 'deposit', 'borrow', 'claim'];\nconst minusTypes = ['withdraw', 'repay', 'burn'];\nexport const TransactionUtil = {\n getMonthName(monthNumber) {\n const date = new Date();\n date.setMonth(monthNumber);\n return date.toLocaleString('en-US', {\n month: 'long'\n });\n },\n getTransactionGroupTitle(year, month) {\n const currentYear = DateUtil.getYear();\n const monthName = this.getMonthName(month);\n const isCurrentYear = year === currentYear;\n const groupTitle = isCurrentYear ? monthName : `${monthName} ${year}`;\n return groupTitle;\n },\n getTransactionImages(transfers) {\n const [transfer, secondTransfer] = transfers;\n const isAllNFT = Boolean(transfer) && transfers?.every(item => Boolean(item.nft_info));\n const haveMultipleTransfers = transfers?.length > 1;\n const haveTwoTransfers = transfers?.length === 2;\n if (haveTwoTransfers && !isAllNFT) {\n return [this.getTransactionImage(transfer), this.getTransactionImage(secondTransfer)];\n }\n if (haveMultipleTransfers) {\n return transfers.map(item => this.getTransactionImage(item));\n }\n return [this.getTransactionImage(transfer)];\n },\n getTransactionImage(transfer) {\n return {\n type: TransactionUtil.getTransactionTransferTokenType(transfer),\n url: TransactionUtil.getTransactionImageURL(transfer)\n };\n },\n getTransactionImageURL(transfer) {\n let imageURL = undefined;\n const isNFT = Boolean(transfer?.nft_info);\n const isFungible = Boolean(transfer?.fungible_info);\n if (transfer && isNFT) {\n imageURL = transfer?.nft_info?.content?.preview?.url;\n }\n else if (transfer && isFungible) {\n imageURL = transfer?.fungible_info?.icon?.url;\n }\n return imageURL;\n },\n getTransactionTransferTokenType(transfer) {\n if (transfer?.fungible_info) {\n return 'FUNGIBLE';\n }\n else if (transfer?.nft_info) {\n return 'NFT';\n }\n return undefined;\n },\n getTransactionDescriptions(transaction) {\n const type = transaction?.metadata?.operationType;\n const transfers = transaction?.transfers;\n const haveTransfer = transaction?.transfers?.length > 0;\n const haveMultipleTransfers = transaction?.transfers?.length > 1;\n const isFungible = haveTransfer && transfers?.every(transfer => Boolean(transfer?.fungible_info));\n const [firstTransfer, secondTransfer] = transfers;\n let firstDescription = this.getTransferDescription(firstTransfer);\n let secondDescription = this.getTransferDescription(secondTransfer);\n if (!haveTransfer) {\n const isSendOrReceive = type === 'send' || type === 'receive';\n if (isSendOrReceive && isFungible) {\n firstDescription = UiHelperUtil.getTruncateString({\n string: transaction?.metadata.sentFrom,\n charsStart: 4,\n charsEnd: 6,\n truncate: 'middle'\n });\n secondDescription = UiHelperUtil.getTruncateString({\n string: transaction?.metadata.sentTo,\n charsStart: 4,\n charsEnd: 6,\n truncate: 'middle'\n });\n return [firstDescription, secondDescription];\n }\n return [transaction.metadata.status];\n }\n if (haveMultipleTransfers) {\n return transfers.map(item => this.getTransferDescription(item));\n }\n let prefix = '';\n if (plusTypes.includes(type)) {\n prefix = '+';\n }\n else if (minusTypes.includes(type)) {\n prefix = '-';\n }\n firstDescription = prefix.concat(firstDescription);\n return [firstDescription];\n },\n getTransferDescription(transfer) {\n let description = '';\n if (!transfer) {\n return description;\n }\n if (transfer?.nft_info) {\n description = transfer?.nft_info?.name || '-';\n }\n else if (transfer?.fungible_info) {\n description = this.getFungibleTransferDescription(transfer) || '-';\n }\n return description;\n },\n getFungibleTransferDescription(transfer) {\n if (!transfer) {\n return null;\n }\n const quantity = this.getQuantityFixedValue(transfer?.quantity.numeric);\n const description = [quantity, transfer?.fungible_info?.symbol].join(' ').trim();\n return description;\n },\n getQuantityFixedValue(value) {\n if (!value) {\n return null;\n }\n const parsedValue = parseFloat(value);\n return parsedValue.toFixed(FLOAT_FIXED_VALUE);\n }\n};\n//# sourceMappingURL=TransactionUtil.js.map","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce(((e,s,o)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[o+1]),t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,adoptStyles,css,getCompatibleStyle,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:r,getOwnPropertyNames:h,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),y={attribute:!0,type:String,converter:u,reflect:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class b extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=y){if(s.state&&(s.attribute=!1),this._$Ei(),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),r=this.getPropertyDescriptor(t,i,s);void 0!==r&&e(this.prototype,t,r)}}static getPropertyDescriptor(t,s,i){const{get:e,set:h}=r(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get(){return e?.call(this)},set(s){const r=e?.call(this);h.call(this,s),this.requestUpdate(t,r,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??y}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...h(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$EC(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const r=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==r?this.removeAttribute(e):this.setAttribute(e,r),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),r=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e,this[e]=r.fromAttribute(s,t.type),this._$Em=null}}requestUpdate(t,s,i){if(void 0!==t){if(i??=this.constructor.getPropertyOptions(t),!(i.hasChanged??f)(this[t],s))return;this.P(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$ET())}P(t,s,i){this._$AL.has(t)||this._$AL.set(t,s),!0===i.reflect&&this._$Em!==t&&(this._$Ej??=new Set).add(t)}async _$ET(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t)!0!==i.wrapped||this._$AL.has(s)||void 0===this[s]||this.P(s,this[s],i)}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$EU()}catch(s){throw t=!1,this._$EU(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Ej&&=this._$Ej.forEach((t=>this._$EC(t,this[t]))),this._$EU()}updated(t){}firstUpdated(t){}}b.elementStyles=[],b.shadowRootOptions={mode:\"open\"},b[d(\"elementProperties\")]=new Map,b[d(\"finalized\")]=new Map,p?.({ReactiveElement:b}),(a.reactiveElementVersions??=[]).push(\"2.0.4\");export{b as ReactiveElement,u as defaultConverter,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,i=t.trustedTypes,s=i?i.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,e=\"$lit$\",h=`lit$${Math.random().toFixed(9).slice(2)}$`,o=\"?\"+h,n=`<${o}>`,r=document,l=()=>r.createComment(\"\"),c=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,a=Array.isArray,u=t=>a(t)||\"function\"==typeof t?.[Symbol.iterator],d=\"[ \\t\\n\\f\\r]\",f=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,v=/-->/g,_=/>/g,m=RegExp(`>|${d}(?:([^\\\\s\"'>=/]+)(${d}*=${d}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),p=/'/g,g=/\"/g,$=/^(?:script|style|textarea|title)$/i,y=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=y(1),b=y(2),w=y(3),T=Symbol.for(\"lit-noChange\"),E=Symbol.for(\"lit-nothing\"),A=new WeakMap,C=r.createTreeWalker(r,129);function P(t,i){if(!a(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==s?s.createHTML(i):i}const V=(t,i)=>{const s=t.length-1,o=[];let r,l=2===i?\"\":3===i?\"\":\"\",c=f;for(let i=0;i\"===u[0]?(c=r??f,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?m:'\"'===u[3]?g:p):c===g||c===p?c=m:c===v||c===_?c=f:(c=m,r=void 0);const x=c===m&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===f?s+n:d>=0?(o.push(a),s.slice(0,d)+e+s.slice(d)+h+x):s+h+(-2===d?i:x)}return[P(t,l+(t[s]||\"\")+(2===i?\"\":3===i?\"\":\"\")),o]};class N{constructor({strings:t,_$litType$:s},n){let r;this.parts=[];let c=0,a=0;const u=t.length-1,d=this.parts,[f,v]=V(t,s);if(this.el=N.createElement(f,n),C.currentNode=this.el.content,2===s||3===s){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=C.nextNode())&&d.length0){r.textContent=i?i.emptyScript:\"\";for(let i=0;i2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=E}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=S(this,t,i,0),o=!c(t)||t!==this._$AH&&t!==T,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new R(i.insertBefore(l(),t),t,void 0,s??{})}return h._$AI(t),h};export{Z as _$LH,x as html,w as mathml,T as noChange,E as nothing,B as render,b as svg};\n//# sourceMappingURL=lit-html.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as s}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class r extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const s=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(s,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return s}}r._$litElement$=!0,r[\"finalized\"]=!0,globalThis.litElementHydrateSupport?.({LitElement:r});const i=globalThis.litElementPolyfillSupport;i?.({LitElement:r});const o={_$AK:(t,e,s)=>{t._$AK(e,s)},_$AL:t=>t._$AL};(globalThis.litElementVersions??=[]).push(\"4.1.1\");export{r as LitElement,o as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","import{defaultConverter as t,notEqual as e}from\"../reactive-element.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o={attribute:!0,type:String,converter:t,reflect:!1,hasChanged:e},r=(t=o,e,r)=>{const{kind:n,metadata:i}=r;let s=globalThis.litPropertyMetadata.get(i);if(void 0===s&&globalThis.litPropertyMetadata.set(i,s=new Map),s.set(r.name,t),\"accessor\"===n){const{name:o}=r;return{set(r){const n=e.get.call(this);e.set.call(this,r),this.requestUpdate(o,n,t)},init(e){return void 0!==e&&this.P(o,void 0,t),e}}}if(\"setter\"===n){const{name:o}=r;return function(r){const n=this[o];e.call(this,r),this.requestUpdate(o,n,t)}}throw Error(\"Unsupported decorator location: \"+n)};function n(t){return(e,o)=>\"object\"==typeof o?r(t,e,o):((t,e,o)=>{const r=e.hasOwnProperty(o);return e.constructor.createProperty(o,r?{...t,wrapped:!0}:t),r?Object.getOwnPropertyDescriptor(e,o):void 0})(t,e,o)}export{n as property,r as standardProperty};\n//# sourceMappingURL=property.js.map\n","import{property as t}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function r(r){return t({...r,state:!0,attribute:!1})}export{r as state};\n//# sourceMappingURL=state.js.map\n","import{nothing as t}from\"../lit-html.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o=o=>o??t;export{o as ifDefined};\n//# sourceMappingURL=if-defined.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { AccountController, AssetUtil, CoreHelperUtil, ModalController, NetworkController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nlet W3mAccountButton = class W3mAccountButton extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.disabled = false;\n this.balance = 'show';\n this.charsStart = 4;\n this.charsEnd = 6;\n this.address = AccountController.state.address;\n this.balanceVal = AccountController.state.balance;\n this.balanceSymbol = AccountController.state.balanceSymbol;\n this.profileName = AccountController.state.profileName;\n this.profileImage = AccountController.state.profileImage;\n this.network = NetworkController.state.caipNetwork;\n this.isUnsupportedChain = NetworkController.state.isUnsupportedChain;\n this.unsubscribe.push(...[\n AccountController.subscribe(val => {\n if (val.isConnected) {\n this.address = val.address;\n this.balanceVal = val.balance;\n this.profileName = val.profileName;\n this.profileImage = val.profileImage;\n this.balanceSymbol = val.balanceSymbol;\n }\n else {\n this.address = '';\n this.balanceVal = '';\n this.profileName = '';\n this.profileImage = '';\n this.balanceSymbol = '';\n }\n }),\n NetworkController.subscribeKey('caipNetwork', val => (this.network = val)),\n NetworkController.subscribeKey('isUnsupportedChain', val => (this.isUnsupportedChain = val))\n ]);\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n const networkImage = AssetUtil.getNetworkImage(this.network);\n const showBalance = this.balance === 'show';\n return html `\n \n \n `;\n }\n onClick() {\n if (this.isUnsupportedChain) {\n ModalController.open({ view: 'UnsupportedChain' });\n }\n else {\n ModalController.open();\n }\n }\n};\n__decorate([\n property({ type: Boolean })\n], W3mAccountButton.prototype, \"disabled\", void 0);\n__decorate([\n property()\n], W3mAccountButton.prototype, \"balance\", void 0);\n__decorate([\n property()\n], W3mAccountButton.prototype, \"charsStart\", void 0);\n__decorate([\n property()\n], W3mAccountButton.prototype, \"charsEnd\", void 0);\n__decorate([\n state()\n], W3mAccountButton.prototype, \"address\", void 0);\n__decorate([\n state()\n], W3mAccountButton.prototype, \"balanceVal\", void 0);\n__decorate([\n state()\n], W3mAccountButton.prototype, \"balanceSymbol\", void 0);\n__decorate([\n state()\n], W3mAccountButton.prototype, \"profileName\", void 0);\n__decorate([\n state()\n], W3mAccountButton.prototype, \"profileImage\", void 0);\n__decorate([\n state()\n], W3mAccountButton.prototype, \"network\", void 0);\n__decorate([\n state()\n], W3mAccountButton.prototype, \"isUnsupportedChain\", void 0);\nW3mAccountButton = __decorate([\n customElement('w3m-account-button')\n], W3mAccountButton);\nexport { W3mAccountButton };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n display: block;\n width: max-content;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { AccountController, ModalController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport styles from './styles.js';\nlet W3mButton = class W3mButton extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.disabled = false;\n this.balance = undefined;\n this.size = undefined;\n this.label = undefined;\n this.loadingLabel = undefined;\n this.charsStart = 4;\n this.charsEnd = 6;\n this.isAccount = AccountController.state.isConnected;\n this.isLoading = ModalController.state.loading;\n this.unsubscribe.push(AccountController.subscribeKey('isConnected', val => {\n this.isAccount = val;\n }), ModalController.subscribeKey('loading', val => {\n this.isLoading = val;\n }));\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n return this.isAccount && !this.isLoading\n ? html `\n \n \n `\n : html `\n \n `;\n }\n};\nW3mButton.styles = styles;\n__decorate([\n property({ type: Boolean })\n], W3mButton.prototype, \"disabled\", void 0);\n__decorate([\n property()\n], W3mButton.prototype, \"balance\", void 0);\n__decorate([\n property()\n], W3mButton.prototype, \"size\", void 0);\n__decorate([\n property()\n], W3mButton.prototype, \"label\", void 0);\n__decorate([\n property()\n], W3mButton.prototype, \"loadingLabel\", void 0);\n__decorate([\n property()\n], W3mButton.prototype, \"charsStart\", void 0);\n__decorate([\n property()\n], W3mButton.prototype, \"charsEnd\", void 0);\n__decorate([\n state()\n], W3mButton.prototype, \"isAccount\", void 0);\n__decorate([\n state()\n], W3mButton.prototype, \"isLoading\", void 0);\nW3mButton = __decorate([\n customElement('w3m-button')\n], W3mButton);\nexport { W3mButton };\n//# sourceMappingURL=index.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { ModalController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nlet W3mConnectButton = class W3mConnectButton extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.size = 'md';\n this.label = 'Connect Wallet';\n this.loadingLabel = 'Connecting...';\n this.open = ModalController.state.open;\n this.loading = ModalController.state.loading;\n this.unsubscribe.push(ModalController.subscribe(val => {\n this.open = val.open;\n this.loading = val.loading;\n }));\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n const isLoading = this.loading || this.open;\n return html `\n \n ${isLoading ? this.loadingLabel : this.label}\n \n `;\n }\n onClick() {\n if (this.open) {\n ModalController.close();\n }\n else if (!this.loading) {\n ModalController.open();\n }\n }\n};\n__decorate([\n property()\n], W3mConnectButton.prototype, \"size\", void 0);\n__decorate([\n property()\n], W3mConnectButton.prototype, \"label\", void 0);\n__decorate([\n property()\n], W3mConnectButton.prototype, \"loadingLabel\", void 0);\n__decorate([\n state()\n], W3mConnectButton.prototype, \"open\", void 0);\n__decorate([\n state()\n], W3mConnectButton.prototype, \"loading\", void 0);\nW3mConnectButton = __decorate([\n customElement('w3m-connect-button')\n], W3mConnectButton);\nexport { W3mConnectButton };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n z-index: var(--w3m-z-index);\n display: block;\n backface-visibility: hidden;\n will-change: opacity;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n opacity: 0;\n background-color: var(--wui-cover);\n transition: opacity 0.2s var(--wui-ease-out-power-2);\n will-change: opacity;\n }\n\n :host(.open) {\n opacity: 1;\n }\n\n @keyframes zoom-in {\n 0% {\n transform: scale(0.95) translateY(0);\n }\n 100% {\n transform: scale(1) translateY(0);\n }\n }\n\n @keyframes slide-in {\n 0% {\n transform: scale(1) translateY(50px);\n }\n 100% {\n transform: scale(1) translateY(0);\n }\n }\n\n wui-card {\n max-width: var(--w3m-modal-width);\n width: 100%;\n position: relative;\n animation-duration: 0.2s;\n animation-name: zoom-in;\n animation-fill-mode: backwards;\n animation-timing-function: var(--wui-ease-out-power-2);\n outline: none;\n }\n\n wui-flex {\n overflow-x: hidden;\n overflow-y: auto;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n }\n\n @media (max-height: 700px) and (min-width: 431px) {\n wui-flex {\n align-items: flex-start;\n }\n\n wui-card {\n margin: var(--wui-spacing-xxl) 0px;\n }\n }\n\n @media (max-width: 430px) {\n wui-flex {\n align-items: flex-end;\n }\n\n wui-card {\n max-width: 100%;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n border-bottom: none;\n animation-name: slide-in;\n }\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { AccountController, ApiController, ConnectionController, CoreHelperUtil, EventsController, ModalController, OptionsController, RouterController, SnackController, ThemeController } from '@web3modal/core';\nimport { UiHelperUtil, customElement, initializeTheming } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport styles from './styles.js';\nconst SCROLL_LOCK = 'scroll-lock';\nlet W3mModal = class W3mModal extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.abortController = undefined;\n this.open = ModalController.state.open;\n this.caipAddress = AccountController.state.caipAddress;\n this.isSiweEnabled = OptionsController.state.isSiweEnabled;\n this.connected = AccountController.state.isConnected;\n this.loading = ModalController.state.loading;\n this.initializeTheming();\n ApiController.prefetch();\n this.unsubscribe.push(ModalController.subscribeKey('open', val => (val ? this.onOpen() : this.onClose())), ModalController.subscribeKey('loading', val => {\n this.loading = val;\n this.onNewAddress(AccountController.state.caipAddress);\n }), AccountController.subscribeKey('isConnected', val => (this.connected = val)), AccountController.subscribeKey('caipAddress', val => this.onNewAddress(val)), OptionsController.subscribeKey('isSiweEnabled', val => (this.isSiweEnabled = val)));\n EventsController.sendEvent({ type: 'track', event: 'MODAL_LOADED' });\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n this.onRemoveKeyboardListener();\n }\n render() {\n return this.open\n ? html `\n \n \n \n \n \n \n \n \n `\n : null;\n }\n async onOverlayClick(event) {\n if (event.target === event.currentTarget) {\n await this.handleClose();\n }\n }\n async handleClose() {\n if (this.isSiweEnabled) {\n const { SIWEController } = await import('@web3modal/siwe');\n if (SIWEController.state.status !== 'success') {\n await ConnectionController.disconnect();\n }\n }\n ModalController.close();\n }\n initializeTheming() {\n const { themeVariables, themeMode } = ThemeController.state;\n const defaultThemeMode = UiHelperUtil.getColorTheme(themeMode);\n initializeTheming(themeVariables, defaultThemeMode);\n }\n onClose() {\n this.open = false;\n this.classList.remove('open');\n this.onScrollUnlock();\n SnackController.hide();\n this.onRemoveKeyboardListener();\n }\n onOpen() {\n this.open = true;\n this.classList.add('open');\n this.onScrollLock();\n this.onAddKeyboardListener();\n }\n onScrollLock() {\n const styleTag = document.createElement('style');\n styleTag.dataset['w3m'] = SCROLL_LOCK;\n styleTag.textContent = `\n html, body {\n touch-action: none;\n overflow: hidden;\n overscroll-behavior: contain;\n }\n w3m-modal {\n pointer-events: auto;\n }\n `;\n document.head.appendChild(styleTag);\n }\n onScrollUnlock() {\n const styleTag = document.head.querySelector(`style[data-w3m=\"${SCROLL_LOCK}\"]`);\n if (styleTag) {\n styleTag.remove();\n }\n }\n onAddKeyboardListener() {\n this.abortController = new AbortController();\n const card = this.shadowRoot?.querySelector('wui-card');\n card?.focus();\n window.addEventListener('keydown', event => {\n if (event.key === 'Escape') {\n this.handleClose();\n }\n else if (event.key === 'Tab') {\n const { tagName } = event.target;\n if (tagName && !tagName.includes('W3M-') && !tagName.includes('WUI-')) {\n card?.focus();\n }\n }\n }, this.abortController);\n }\n onRemoveKeyboardListener() {\n this.abortController?.abort();\n this.abortController = undefined;\n }\n async onNewAddress(caipAddress) {\n if (!this.connected || this.loading) {\n return;\n }\n const previousAddress = CoreHelperUtil.getPlainAddress(this.caipAddress);\n const newAddress = CoreHelperUtil.getPlainAddress(caipAddress);\n const previousNetworkId = CoreHelperUtil.getNetworkId(this.caipAddress);\n const newNetworkId = CoreHelperUtil.getNetworkId(caipAddress);\n this.caipAddress = caipAddress;\n if (this.isSiweEnabled) {\n const { SIWEController } = await import('@web3modal/siwe');\n const session = await SIWEController.getSession();\n if (session && previousAddress && newAddress && previousAddress !== newAddress) {\n if (SIWEController.state._client?.options.signOutOnAccountChange) {\n await SIWEController.signOut();\n this.onSiweNavigation();\n }\n return;\n }\n if (session && previousNetworkId && newNetworkId && previousNetworkId !== newNetworkId) {\n if (SIWEController.state._client?.options.signOutOnNetworkChange) {\n await SIWEController.signOut();\n this.onSiweNavigation();\n }\n return;\n }\n this.onSiweNavigation();\n }\n }\n onSiweNavigation() {\n if (this.open) {\n RouterController.push('ConnectingSiwe');\n }\n else {\n ModalController.open({\n view: 'ConnectingSiwe'\n });\n }\n }\n};\nW3mModal.styles = styles;\n__decorate([\n state()\n], W3mModal.prototype, \"open\", void 0);\n__decorate([\n state()\n], W3mModal.prototype, \"caipAddress\", void 0);\n__decorate([\n state()\n], W3mModal.prototype, \"isSiweEnabled\", void 0);\n__decorate([\n state()\n], W3mModal.prototype, \"connected\", void 0);\n__decorate([\n state()\n], W3mModal.prototype, \"loading\", void 0);\nW3mModal = __decorate([\n customElement('w3m-modal')\n], W3mModal);\nexport { W3mModal };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n display: block;\n width: max-content;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { AccountController, AssetUtil, EventsController, ModalController, NetworkController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport styles from './styles.js';\nlet W3mNetworkButton = class W3mNetworkButton extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.disabled = false;\n this.network = NetworkController.state.caipNetwork;\n this.connected = AccountController.state.isConnected;\n this.loading = ModalController.state.loading;\n this.isUnsupportedChain = NetworkController.state.isUnsupportedChain;\n this.unsubscribe.push(...[\n NetworkController.subscribeKey('caipNetwork', val => (this.network = val)),\n AccountController.subscribeKey('isConnected', val => (this.connected = val)),\n ModalController.subscribeKey('loading', val => (this.loading = val)),\n NetworkController.subscribeKey('isUnsupportedChain', val => (this.isUnsupportedChain = val))\n ]);\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n return html `\n \n ${this.isUnsupportedChain\n ? 'Switch Network'\n : this.network?.name ?? (this.connected ? 'Unknown Network' : 'Select Network')}\n \n `;\n }\n onClick() {\n if (!this.loading) {\n EventsController.sendEvent({ type: 'track', event: 'CLICK_NETWORKS' });\n ModalController.open({ view: 'Networks' });\n }\n }\n};\nW3mNetworkButton.styles = styles;\n__decorate([\n property({ type: Boolean })\n], W3mNetworkButton.prototype, \"disabled\", void 0);\n__decorate([\n state()\n], W3mNetworkButton.prototype, \"network\", void 0);\n__decorate([\n state()\n], W3mNetworkButton.prototype, \"connected\", void 0);\n__decorate([\n state()\n], W3mNetworkButton.prototype, \"loading\", void 0);\n__decorate([\n state()\n], W3mNetworkButton.prototype, \"isUnsupportedChain\", void 0);\nW3mNetworkButton = __decorate([\n customElement('w3m-network-button')\n], W3mNetworkButton);\nexport { W3mNetworkButton };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n display: block;\n will-change: transform, opacity;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { RouterController, TooltipController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport styles from './styles.js';\nlet W3mRouter = class W3mRouter extends LitElement {\n constructor() {\n super();\n this.resizeObserver = undefined;\n this.prevHeight = '0px';\n this.prevHistoryLength = 1;\n this.unsubscribe = [];\n this.view = RouterController.state.view;\n this.unsubscribe.push(RouterController.subscribeKey('view', val => this.onViewChange(val)));\n }\n firstUpdated() {\n this.resizeObserver = new ResizeObserver(async ([content]) => {\n const height = `${content?.contentRect.height}px`;\n if (this.prevHeight !== '0px') {\n await this.animate([{ height: this.prevHeight }, { height }], {\n duration: 150,\n easing: 'ease',\n fill: 'forwards'\n }).finished;\n this.style.height = 'auto';\n }\n this.prevHeight = height;\n });\n this.resizeObserver.observe(this.getWrapper());\n }\n disconnectedCallback() {\n this.resizeObserver?.unobserve(this.getWrapper());\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n return html `
${this.viewTemplate()}
`;\n }\n viewTemplate() {\n switch (this.view) {\n case 'Account':\n return html ``;\n case 'AccountSettings':\n return html ``;\n case 'AllWallets':\n return html ``;\n case 'ApproveTransaction':\n return html ``;\n case 'BuyInProgress':\n return html ``;\n case 'ChooseAccountName':\n return html ``;\n case 'Connect':\n return html ``;\n case 'ConnectingWalletConnect':\n return html ``;\n case 'ConnectingExternal':\n return html ``;\n case 'ConnectingSiwe':\n return html ``;\n case 'ConnectWallets':\n return html ``;\n case 'ConnectSocials':\n return html ``;\n case 'ConnectingSocial':\n return html ``;\n case 'Downloads':\n return html ``;\n case 'EmailVerifyOtp':\n return html ``;\n case 'EmailVerifyDevice':\n return html ``;\n case 'Networks':\n return html ``;\n case 'RegisterAccountName':\n return html ``;\n case 'RegisterAccountNameSuccess':\n return html ``;\n case 'SwitchNetwork':\n return html ``;\n case 'GetWallet':\n return html ``;\n case 'Transactions':\n return html ``;\n case 'OnRampProviders':\n return html ``;\n case 'OnRampActivity':\n return html ``;\n case 'OnRampTokenSelect':\n return html ``;\n case 'OnRampFiatSelect':\n return html ``;\n case 'UpgradeEmailWallet':\n return html ``;\n case 'UpgradeToSmartAccount':\n return html ``;\n case 'UpdateEmailWallet':\n return html ``;\n case 'UpdateEmailPrimaryOtp':\n return html ``;\n case 'UpdateEmailSecondaryOtp':\n return html ``;\n case 'UnsupportedChain':\n return html ``;\n case 'WalletReceive':\n return html ``;\n case 'WalletCompatibleNetworks':\n return html ``;\n case 'Swap':\n return html ``;\n case 'SwapSelectToken':\n return html ``;\n case 'SwapPreview':\n return html ``;\n case 'WalletSend':\n return html ``;\n case 'WalletSendSelectToken':\n return html ``;\n case 'WalletSendPreview':\n return html ``;\n case 'WhatIsABuy':\n return html ``;\n case 'WhatIsANetwork':\n return html ``;\n case 'WhatIsAWallet':\n return html ``;\n default:\n return html ``;\n }\n }\n async onViewChange(newView) {\n TooltipController.hide();\n const { history } = RouterController.state;\n let xOut = -10;\n let xIn = 10;\n if (history.length < this.prevHistoryLength) {\n xOut = 10;\n xIn = -10;\n }\n this.prevHistoryLength = history.length;\n await this.animate([\n { opacity: 1, transform: 'translateX(0px)' },\n { opacity: 0, transform: `translateX(${xOut}px)` }\n ], { duration: 150, easing: 'ease', fill: 'forwards' }).finished;\n this.view = newView;\n await this.animate([\n { opacity: 0, transform: `translateX(${xIn}px)` },\n { opacity: 1, transform: 'translateX(0px)' }\n ], { duration: 150, easing: 'ease', fill: 'forwards', delay: 50 }).finished;\n }\n getWrapper() {\n return this.shadowRoot?.querySelector('div');\n }\n};\nW3mRouter.styles = styles;\n__decorate([\n state()\n], W3mRouter.prototype, \"view\", void 0);\nW3mRouter = __decorate([\n customElement('w3m-router')\n], W3mRouter);\nexport { W3mRouter };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host > wui-flex {\n width: 100%;\n max-width: 360px;\n }\n\n :host > wui-flex > wui-flex {\n border-radius: var(--wui-border-radius-l);\n width: 100%;\n }\n\n .amounts-container {\n width: 100%;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { AccountController, ModalController, OnRampController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport styles from './styles.js';\nconst PAYMENT_CURRENCY_SYMBOLS = {\n USD: '$',\n EUR: '€',\n GBP: '£'\n};\nconst BUY_PRESET_AMOUNTS = [100, 250, 500, 1000];\nlet W3mOnrampWidget = class W3mOnrampWidget extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.disabled = false;\n this.connected = AccountController.state.isConnected;\n this.loading = ModalController.state.loading;\n this.paymentCurrency = OnRampController.state.paymentCurrency;\n this.paymentAmount = OnRampController.state.paymentAmount;\n this.purchaseAmount = OnRampController.state.purchaseAmount;\n this.quoteLoading = OnRampController.state.quotesLoading;\n this.unsubscribe.push(...[\n AccountController.subscribeKey('isConnected', val => {\n this.connected = val;\n }),\n ModalController.subscribeKey('loading', val => {\n this.loading = val;\n }),\n OnRampController.subscribe(val => {\n this.paymentCurrency = val.paymentCurrency;\n this.paymentAmount = val.paymentAmount;\n this.purchaseAmount = val.purchaseAmount;\n this.quoteLoading = val.quotesLoading;\n })\n ]);\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n return html `\n \n \n \n \n \n ${BUY_PRESET_AMOUNTS.map(amount => html ` this.selectPresetAmount(amount)}\n >${`${PAYMENT_CURRENCY_SYMBOLS[this.paymentCurrency?.id || 'USD']} ${amount}`}`)}\n \n ${this.templateButton()}\n \n \n `;\n }\n templateButton() {\n return this.connected\n ? html `\n Get quotes\n `\n : html `\n Connect wallet\n `;\n }\n getQuotes() {\n if (!this.loading) {\n ModalController.open({ view: 'OnRampProviders' });\n }\n }\n openModal() {\n ModalController.open({ view: 'Connect' });\n }\n async onPaymentAmountChange(event) {\n OnRampController.setPaymentAmount(Number(event.detail));\n await OnRampController.getQuote();\n }\n async selectPresetAmount(amount) {\n OnRampController.setPaymentAmount(amount);\n await OnRampController.getQuote();\n }\n};\nW3mOnrampWidget.styles = styles;\n__decorate([\n property({ type: Boolean })\n], W3mOnrampWidget.prototype, \"disabled\", void 0);\n__decorate([\n state()\n], W3mOnrampWidget.prototype, \"connected\", void 0);\n__decorate([\n state()\n], W3mOnrampWidget.prototype, \"loading\", void 0);\n__decorate([\n state()\n], W3mOnrampWidget.prototype, \"paymentCurrency\", void 0);\n__decorate([\n state()\n], W3mOnrampWidget.prototype, \"paymentAmount\", void 0);\n__decorate([\n state()\n], W3mOnrampWidget.prototype, \"purchaseAmount\", void 0);\n__decorate([\n state()\n], W3mOnrampWidget.prototype, \"quoteLoading\", void 0);\nW3mOnrampWidget = __decorate([\n customElement('w3m-onramp-widget')\n], W3mOnrampWidget);\nexport { W3mOnrampWidget };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n wui-flex {\n width: 100%;\n }\n\n wui-icon-link {\n margin-right: calc(var(--wui-icon-box-size-md) * -1);\n }\n\n .account-links {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n .account-links wui-flex {\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n flex: 1;\n background: red;\n align-items: center;\n justify-content: center;\n height: 48px;\n padding: 10px;\n flex: 1 0 0;\n\n border-radius: var(--XS, 16px);\n border: 1px solid var(--dark-accent-glass-010, rgba(71, 161, 255, 0.1));\n background: var(--dark-accent-glass-010, rgba(71, 161, 255, 0.1));\n transition: background-color var(--wui-ease-out-power-1) var(--wui-duration-md);\n will-change: background-color;\n }\n\n .account-links wui-flex:hover {\n background: var(--dark-accent-glass-015, rgba(71, 161, 255, 0.15));\n }\n\n .account-links wui-flex wui-icon {\n width: var(--S, 20px);\n height: var(--S, 20px);\n }\n\n .account-links wui-flex wui-icon svg path {\n stroke: #47a1ff;\n }\n`;\n//# sourceMappingURL=styles.js.map","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).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 true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","import { Buffer } from 'buffer';\nif (typeof window !== 'undefined') {\n if (!window.Buffer) {\n window.Buffer = Buffer;\n }\n if (!window.global) {\n window.global = window;\n }\n if (!window.process) {\n window.process = {};\n }\n if (!window.process?.env) {\n window.process = { env: {} };\n }\n}\n//# sourceMappingURL=index.js.map","export const SECURE_SITE_SDK = process.env['NEXT_PUBLIC_SECURE_SITE_SDK_URL'] || 'https://secure.walletconnect.com/sdk';\nexport const W3mFrameConstants = {\n APP_EVENT_KEY: '@w3m-app/',\n FRAME_EVENT_KEY: '@w3m-frame/',\n RPC_METHOD_KEY: 'RPC_',\n STORAGE_KEY: '@w3m-storage/',\n SESSION_TOKEN_KEY: 'SESSION_TOKEN_KEY',\n EMAIL_LOGIN_USED_KEY: 'EMAIL_LOGIN_USED_KEY',\n LAST_USED_CHAIN_KEY: 'LAST_USED_CHAIN_KEY',\n LAST_EMAIL_LOGIN_TIME: 'LAST_EMAIL_LOGIN_TIME',\n EMAIL: 'EMAIL',\n PREFERRED_ACCOUNT_TYPE: 'PREFERRED_ACCOUNT_TYPE',\n SMART_ACCOUNT_ENABLED: 'SMART_ACCOUNT_ENABLED',\n SMART_ACCOUNT_ENABLED_NETWORKS: 'SMART_ACCOUNT_ENABLED_NETWORKS',\n SOCIAL_USERNAME: 'SOCIAL_USERNAME',\n SOCIAL: '@w3m/connected_social',\n APP_SWITCH_NETWORK: '@w3m-app/SWITCH_NETWORK',\n APP_CONNECT_EMAIL: '@w3m-app/CONNECT_EMAIL',\n APP_CONNECT_DEVICE: '@w3m-app/CONNECT_DEVICE',\n APP_CONNECT_OTP: '@w3m-app/CONNECT_OTP',\n APP_CONNECT_SOCIAL: '@w3m-app/CONNECT_SOCIAL',\n APP_GET_SOCIAL_REDIRECT_URI: '@w3m-app/GET_SOCIAL_REDIRECT_URI',\n APP_GET_USER: '@w3m-app/GET_USER',\n APP_SIGN_OUT: '@w3m-app/SIGN_OUT',\n APP_IS_CONNECTED: '@w3m-app/IS_CONNECTED',\n APP_GET_CHAIN_ID: '@w3m-app/GET_CHAIN_ID',\n APP_RPC_REQUEST: '@w3m-app/RPC_REQUEST',\n APP_UPDATE_EMAIL: '@w3m-app/UPDATE_EMAIL',\n APP_UPDATE_EMAIL_PRIMARY_OTP: '@w3m-app/UPDATE_EMAIL_PRIMARY_OTP',\n APP_UPDATE_EMAIL_SECONDARY_OTP: '@w3m-app/UPDATE_EMAIL_SECONDARY_OTP',\n APP_AWAIT_UPDATE_EMAIL: '@w3m-app/AWAIT_UPDATE_EMAIL',\n APP_SYNC_THEME: '@w3m-app/SYNC_THEME',\n APP_SYNC_DAPP_DATA: '@w3m-app/SYNC_DAPP_DATA',\n APP_GET_SMART_ACCOUNT_ENABLED_NETWORKS: '@w3m-app/GET_SMART_ACCOUNT_ENABLED_NETWORKS',\n APP_INIT_SMART_ACCOUNT: '@w3m-app/INIT_SMART_ACCOUNT',\n APP_SET_PREFERRED_ACCOUNT: '@w3m-app/SET_PREFERRED_ACCOUNT',\n FRAME_SWITCH_NETWORK_ERROR: '@w3m-frame/SWITCH_NETWORK_ERROR',\n FRAME_SWITCH_NETWORK_SUCCESS: '@w3m-frame/SWITCH_NETWORK_SUCCESS',\n FRAME_CONNECT_EMAIL_ERROR: '@w3m-frame/CONNECT_EMAIL_ERROR',\n FRAME_CONNECT_EMAIL_SUCCESS: '@w3m-frame/CONNECT_EMAIL_SUCCESS',\n FRAME_CONNECT_DEVICE_ERROR: '@w3m-frame/CONNECT_DEVICE_ERROR',\n FRAME_CONNECT_DEVICE_SUCCESS: '@w3m-frame/CONNECT_DEVICE_SUCCESS',\n FRAME_CONNECT_OTP_SUCCESS: '@w3m-frame/CONNECT_OTP_SUCCESS',\n FRAME_CONNECT_OTP_ERROR: '@w3m-frame/CONNECT_OTP_ERROR',\n FRAME_CONNECT_SOCIAL_SUCCESS: '@w3m-frame/CONNECT_SOCIAL_SUCCESS',\n FRAME_CONNECT_SOCIAL_ERROR: '@w3m-frame/CONNECT_SOCIAL_ERROR',\n FRAME_GET_SOCIAL_REDIRECT_URI_SUCCESS: '@w3m-frame/GET_SOCIAL_REDIRECT_URI_SUCCESS',\n FRAME_GET_SOCIAL_REDIRECT_URI_ERROR: '@w3m-frame/GET_SOCIAL_REDIRECT_URI_ERROR',\n FRAME_GET_USER_SUCCESS: '@w3m-frame/GET_USER_SUCCESS',\n FRAME_GET_USER_ERROR: '@w3m-frame/GET_USER_ERROR',\n FRAME_SIGN_OUT_SUCCESS: '@w3m-frame/SIGN_OUT_SUCCESS',\n FRAME_SIGN_OUT_ERROR: '@w3m-frame/SIGN_OUT_ERROR',\n FRAME_IS_CONNECTED_SUCCESS: '@w3m-frame/IS_CONNECTED_SUCCESS',\n FRAME_IS_CONNECTED_ERROR: '@w3m-frame/IS_CONNECTED_ERROR',\n FRAME_GET_CHAIN_ID_SUCCESS: '@w3m-frame/GET_CHAIN_ID_SUCCESS',\n FRAME_GET_CHAIN_ID_ERROR: '@w3m-frame/GET_CHAIN_ID_ERROR',\n FRAME_RPC_REQUEST_SUCCESS: '@w3m-frame/RPC_REQUEST_SUCCESS',\n FRAME_RPC_REQUEST_ERROR: '@w3m-frame/RPC_REQUEST_ERROR',\n FRAME_SESSION_UPDATE: '@w3m-frame/SESSION_UPDATE',\n FRAME_UPDATE_EMAIL_SUCCESS: '@w3m-frame/UPDATE_EMAIL_SUCCESS',\n FRAME_UPDATE_EMAIL_ERROR: '@w3m-frame/UPDATE_EMAIL_ERROR',\n FRAME_UPDATE_EMAIL_PRIMARY_OTP_SUCCESS: '@w3m-frame/UPDATE_EMAIL_PRIMARY_OTP_SUCCESS',\n FRAME_UPDATE_EMAIL_PRIMARY_OTP_ERROR: '@w3m-frame/UPDATE_EMAIL_PRIMARY_OTP_ERROR',\n FRAME_UPDATE_EMAIL_SECONDARY_OTP_SUCCESS: '@w3m-frame/UPDATE_EMAIL_SECONDARY_OTP_SUCCESS',\n FRAME_UPDATE_EMAIL_SECONDARY_OTP_ERROR: '@w3m-frame/UPDATE_EMAIL_SECONDARY_OTP_ERROR',\n FRAME_SYNC_THEME_SUCCESS: '@w3m-frame/SYNC_THEME_SUCCESS',\n FRAME_SYNC_THEME_ERROR: '@w3m-frame/SYNC_THEME_ERROR',\n FRAME_SYNC_DAPP_DATA_SUCCESS: '@w3m-frame/SYNC_DAPP_DATA_SUCCESS',\n FRAME_SYNC_DAPP_DATA_ERROR: '@w3m-frame/SYNC_DAPP_DATA_ERROR',\n FRAME_GET_SMART_ACCOUNT_ENABLED_NETWORKS_SUCCESS: '@w3m-frame/GET_SMART_ACCOUNT_ENABLED_NETWORKS_SUCCESS',\n FRAME_GET_SMART_ACCOUNT_ENABLED_NETWORKS_ERROR: '@w3m-frame/GET_SMART_ACCOUNT_ENABLED_NETWORKS_ERROR',\n FRAME_INIT_SMART_ACCOUNT_SUCCESS: '@w3m-frame/INIT_SMART_ACCOUNT_SUCCESS',\n FRAME_INIT_SMART_ACCOUNT_ERROR: '@w3m-frame/INIT_SMART_ACCOUNT_ERROR',\n FRAME_SET_PREFERRED_ACCOUNT_SUCCESS: '@w3m-frame/SET_PREFERRED_ACCOUNT_SUCCESS',\n FRAME_SET_PREFERRED_ACCOUNT_ERROR: '@w3m-frame/SET_PREFERRED_ACCOUNT_ERROR',\n RPC_RESPONSE_TYPE_ERROR: 'RPC_RESPONSE_ERROR',\n RPC_RESPONSE_TYPE_TX: 'RPC_RESPONSE_TRANSACTION_HASH',\n RPC_RESPONSE_TYPE_OBJECT: 'RPC_RESPONSE_OBJECT'\n};\nexport const W3mFrameRpcConstants = {\n SAFE_RPC_METHODS: [\n 'eth_accounts',\n 'eth_blockNumber',\n 'eth_call',\n 'eth_chainId',\n 'eth_estimateGas',\n 'eth_feeHistory',\n 'eth_gasPrice',\n 'eth_getAccount',\n 'eth_getBalance',\n 'eth_getBlockByHash',\n 'eth_getBlockByNumber',\n 'eth_getBlockReceipts',\n 'eth_getBlockTransactionCountByHash',\n 'eth_getBlockTransactionCountByNumber',\n 'eth_getCode',\n 'eth_getFilterChanges',\n 'eth_getFilterLogs',\n 'eth_getLogs',\n 'eth_getProof',\n 'eth_getStorageAt',\n 'eth_getTransactionByBlockHashAndIndex',\n 'eth_getTransactionByBlockNumberAndIndex',\n 'eth_getTransactionByHash',\n 'eth_getTransactionCount',\n 'eth_getTransactionReceipt',\n 'eth_getUncleCountByBlockHash',\n 'eth_getUncleCountByBlockNumber',\n 'eth_maxPriorityFeePerGas',\n 'eth_newBlockFilter',\n 'eth_newFilter',\n 'eth_newPendingTransactionFilter',\n 'eth_sendRawTransaction',\n 'eth_syncing',\n 'eth_uninstallFilter'\n ],\n NOT_SAFE_RPC_METHODS: ['personal_sign', 'eth_signTypedData_v4', 'eth_sendTransaction'],\n GET_CHAIN_ID: 'eth_chainId',\n RPC_METHOD_NOT_ALLOWED_MESSAGE: 'Requested RPC call is not allowed',\n RPC_METHOD_NOT_ALLOWED_UI_MESSAGE: 'Action not allowed',\n ACCOUNT_TYPES: {\n EOA: 'eoa',\n SMART_ACCOUNT: 'smartAccount'\n }\n};\n//# sourceMappingURL=W3mFrameConstants.js.map","var util;\n(function (util) {\n util.assertEqual = (val) => val;\n function assertIs(_arg) { }\n util.assertIs = assertIs;\n function assertNever(_x) {\n throw new Error();\n }\n util.assertNever = assertNever;\n util.arrayToEnum = (items) => {\n const obj = {};\n for (const item of items) {\n obj[item] = item;\n }\n return obj;\n };\n util.getValidEnumValues = (obj) => {\n const validKeys = util.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n const filtered = {};\n for (const k of validKeys) {\n filtered[k] = obj[k];\n }\n return util.objectValues(filtered);\n };\n util.objectValues = (obj) => {\n return util.objectKeys(obj).map(function (e) {\n return obj[e];\n });\n };\n util.objectKeys = typeof Object.keys === \"function\" // eslint-disable-line ban/ban\n ? (obj) => Object.keys(obj) // eslint-disable-line ban/ban\n : (object) => {\n const keys = [];\n for (const key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n keys.push(key);\n }\n }\n return keys;\n };\n util.find = (arr, checker) => {\n for (const item of arr) {\n if (checker(item))\n return item;\n }\n return undefined;\n };\n util.isInteger = typeof Number.isInteger === \"function\"\n ? (val) => Number.isInteger(val) // eslint-disable-line ban/ban\n : (val) => typeof val === \"number\" && isFinite(val) && Math.floor(val) === val;\n function joinValues(array, separator = \" | \") {\n return array\n .map((val) => (typeof val === \"string\" ? `'${val}'` : val))\n .join(separator);\n }\n util.joinValues = joinValues;\n util.jsonStringifyReplacer = (_, value) => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n };\n})(util || (util = {}));\nvar objectUtil;\n(function (objectUtil) {\n objectUtil.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second, // second overwrites first\n };\n };\n})(objectUtil || (objectUtil = {}));\nconst ZodParsedType = util.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\",\n]);\nconst getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return ZodParsedType.undefined;\n case \"string\":\n return ZodParsedType.string;\n case \"number\":\n return isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n case \"boolean\":\n return ZodParsedType.boolean;\n case \"function\":\n return ZodParsedType.function;\n case \"bigint\":\n return ZodParsedType.bigint;\n case \"symbol\":\n return ZodParsedType.symbol;\n case \"object\":\n if (Array.isArray(data)) {\n return ZodParsedType.array;\n }\n if (data === null) {\n return ZodParsedType.null;\n }\n if (data.then &&\n typeof data.then === \"function\" &&\n data.catch &&\n typeof data.catch === \"function\") {\n return ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return ZodParsedType.date;\n }\n return ZodParsedType.object;\n default:\n return ZodParsedType.unknown;\n }\n};\n\nconst ZodIssueCode = util.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n \"not_finite\",\n]);\nconst quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nclass ZodError extends Error {\n constructor(issues) {\n super();\n this.issues = [];\n this.addIssue = (sub) => {\n this.issues = [...this.issues, sub];\n };\n this.addIssues = (subs = []) => {\n this.issues = [...this.issues, ...subs];\n };\n const actualProto = new.target.prototype;\n if (Object.setPrototypeOf) {\n // eslint-disable-next-line ban/ban\n Object.setPrototypeOf(this, actualProto);\n }\n else {\n this.__proto__ = actualProto;\n }\n this.name = \"ZodError\";\n this.issues = issues;\n }\n get errors() {\n return this.issues;\n }\n format(_mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\") {\n issue.unionErrors.map(processError);\n }\n else if (issue.code === \"invalid_return_type\") {\n processError(issue.returnTypeError);\n }\n else if (issue.code === \"invalid_arguments\") {\n processError(issue.argumentsError);\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n // if (typeof el === \"string\") {\n // curr[el] = curr[el] || { _errors: [] };\n // } else if (typeof el === \"number\") {\n // const errorArray: any = [];\n // errorArray._errors = [];\n // curr[el] = curr[el] || errorArray;\n // }\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(this);\n return fieldErrors;\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of this.issues) {\n if (sub.path.length > 0) {\n fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];\n fieldErrors[sub.path[0]].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n }\n get formErrors() {\n return this.flatten();\n }\n}\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\n\nconst errorMap = (issue, _ctx) => {\n let message;\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n if (issue.received === ZodParsedType.undefined) {\n message = \"Required\";\n }\n else {\n message = `Expected ${issue.expected}, received ${issue.received}`;\n }\n break;\n case ZodIssueCode.invalid_literal:\n message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;\n break;\n case ZodIssueCode.unrecognized_keys:\n message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, \", \")}`;\n break;\n case ZodIssueCode.invalid_union:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_union_discriminator:\n message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;\n break;\n case ZodIssueCode.invalid_enum_value:\n message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;\n break;\n case ZodIssueCode.invalid_arguments:\n message = `Invalid function arguments`;\n break;\n case ZodIssueCode.invalid_return_type:\n message = `Invalid function return type`;\n break;\n case ZodIssueCode.invalid_date:\n message = `Invalid date`;\n break;\n case ZodIssueCode.invalid_string:\n if (typeof issue.validation === \"object\") {\n if (\"includes\" in issue.validation) {\n message = `Invalid input: must include \"${issue.validation.includes}\"`;\n if (typeof issue.validation.position === \"number\") {\n message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`;\n }\n }\n else if (\"startsWith\" in issue.validation) {\n message = `Invalid input: must start with \"${issue.validation.startsWith}\"`;\n }\n else if (\"endsWith\" in issue.validation) {\n message = `Invalid input: must end with \"${issue.validation.endsWith}\"`;\n }\n else {\n util.assertNever(issue.validation);\n }\n }\n else if (issue.validation !== \"regex\") {\n message = `Invalid ${issue.validation}`;\n }\n else {\n message = \"Invalid\";\n }\n break;\n case ZodIssueCode.too_small:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact\n ? `exactly equal to `\n : issue.inclusive\n ? `greater than or equal to `\n : `greater than `}${issue.minimum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact\n ? `exactly equal to `\n : issue.inclusive\n ? `greater than or equal to `\n : `greater than `}${new Date(Number(issue.minimum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.too_big:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact\n ? `exactly`\n : issue.inclusive\n ? `less than or equal to`\n : `less than`} ${issue.maximum}`;\n else if (issue.type === \"bigint\")\n message = `BigInt must be ${issue.exact\n ? `exactly`\n : issue.inclusive\n ? `less than or equal to`\n : `less than`} ${issue.maximum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact\n ? `exactly`\n : issue.inclusive\n ? `smaller than or equal to`\n : `smaller than`} ${new Date(Number(issue.maximum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.custom:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_intersection_types:\n message = `Intersection results could not be merged`;\n break;\n case ZodIssueCode.not_multiple_of:\n message = `Number must be a multiple of ${issue.multipleOf}`;\n break;\n case ZodIssueCode.not_finite:\n message = \"Number must be finite\";\n break;\n default:\n message = _ctx.defaultError;\n util.assertNever(issue);\n }\n return { message };\n};\n\nlet overrideErrorMap = errorMap;\nfunction setErrorMap(map) {\n overrideErrorMap = map;\n}\nfunction getErrorMap() {\n return overrideErrorMap;\n}\n\nconst makeIssue = (params) => {\n const { data, path, errorMaps, issueData } = params;\n const fullPath = [...path, ...(issueData.path || [])];\n const fullIssue = {\n ...issueData,\n path: fullPath,\n };\n let errorMessage = \"\";\n const maps = errorMaps\n .filter((m) => !!m)\n .slice()\n .reverse();\n for (const map of maps) {\n errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;\n }\n return {\n ...issueData,\n path: fullPath,\n message: issueData.message || errorMessage,\n };\n};\nconst EMPTY_PATH = [];\nfunction addIssueToContext(ctx, issueData) {\n const issue = makeIssue({\n issueData: issueData,\n data: ctx.data,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap, // then global default map\n ].filter((x) => !!x),\n });\n ctx.common.issues.push(issue);\n}\nclass ParseStatus {\n constructor() {\n this.value = \"valid\";\n }\n dirty() {\n if (this.value === \"valid\")\n this.value = \"dirty\";\n }\n abort() {\n if (this.value !== \"aborted\")\n this.value = \"aborted\";\n }\n static mergeArray(status, results) {\n const arrayValue = [];\n for (const s of results) {\n if (s.status === \"aborted\")\n return INVALID;\n if (s.status === \"dirty\")\n status.dirty();\n arrayValue.push(s.value);\n }\n return { status: status.value, value: arrayValue };\n }\n static async mergeObjectAsync(status, pairs) {\n const syncPairs = [];\n for (const pair of pairs) {\n syncPairs.push({\n key: await pair.key,\n value: await pair.value,\n });\n }\n return ParseStatus.mergeObjectSync(status, syncPairs);\n }\n static mergeObjectSync(status, pairs) {\n const finalObject = {};\n for (const pair of pairs) {\n const { key, value } = pair;\n if (key.status === \"aborted\")\n return INVALID;\n if (value.status === \"aborted\")\n return INVALID;\n if (key.status === \"dirty\")\n status.dirty();\n if (value.status === \"dirty\")\n status.dirty();\n if (key.value !== \"__proto__\" &&\n (typeof value.value !== \"undefined\" || pair.alwaysSet)) {\n finalObject[key.value] = value.value;\n }\n }\n return { status: status.value, value: finalObject };\n }\n}\nconst INVALID = Object.freeze({\n status: \"aborted\",\n});\nconst DIRTY = (value) => ({ status: \"dirty\", value });\nconst OK = (value) => ({ status: \"valid\", value });\nconst isAborted = (x) => x.status === \"aborted\";\nconst isDirty = (x) => x.status === \"dirty\";\nconst isValid = (x) => x.status === \"valid\";\nconst isAsync = (x) => typeof Promise !== \"undefined\" && x instanceof Promise;\n\nvar errorUtil;\n(function (errorUtil) {\n errorUtil.errToObj = (message) => typeof message === \"string\" ? { message } : message || {};\n errorUtil.toString = (message) => typeof message === \"string\" ? message : message === null || message === void 0 ? void 0 : message.message;\n})(errorUtil || (errorUtil = {}));\n\nclass ParseInputLazyPath {\n constructor(parent, value, path, key) {\n this._cachedPath = [];\n this.parent = parent;\n this.data = value;\n this._path = path;\n this._key = key;\n }\n get path() {\n if (!this._cachedPath.length) {\n if (this._key instanceof Array) {\n this._cachedPath.push(...this._path, ...this._key);\n }\n else {\n this._cachedPath.push(...this._path, this._key);\n }\n }\n return this._cachedPath;\n }\n}\nconst handleResult = (ctx, result) => {\n if (isValid(result)) {\n return { success: true, data: result.value };\n }\n else {\n if (!ctx.common.issues.length) {\n throw new Error(\"Validation failed but no issues detected.\");\n }\n return {\n success: false,\n get error() {\n if (this._error)\n return this._error;\n const error = new ZodError(ctx.common.issues);\n this._error = error;\n return this._error;\n },\n };\n }\n};\nfunction processCreateParams(params) {\n if (!params)\n return {};\n const { errorMap, invalid_type_error, required_error, description } = params;\n if (errorMap && (invalid_type_error || required_error)) {\n throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n }\n if (errorMap)\n return { errorMap: errorMap, description };\n const customMap = (iss, ctx) => {\n if (iss.code !== \"invalid_type\")\n return { message: ctx.defaultError };\n if (typeof ctx.data === \"undefined\") {\n return { message: required_error !== null && required_error !== void 0 ? required_error : ctx.defaultError };\n }\n return { message: invalid_type_error !== null && invalid_type_error !== void 0 ? invalid_type_error : ctx.defaultError };\n };\n return { errorMap: customMap, description };\n}\nclass ZodType {\n constructor(def) {\n /** Alias of safeParseAsync */\n this.spa = this.safeParseAsync;\n this._def = def;\n this.parse = this.parse.bind(this);\n this.safeParse = this.safeParse.bind(this);\n this.parseAsync = this.parseAsync.bind(this);\n this.safeParseAsync = this.safeParseAsync.bind(this);\n this.spa = this.spa.bind(this);\n this.refine = this.refine.bind(this);\n this.refinement = this.refinement.bind(this);\n this.superRefine = this.superRefine.bind(this);\n this.optional = this.optional.bind(this);\n this.nullable = this.nullable.bind(this);\n this.nullish = this.nullish.bind(this);\n this.array = this.array.bind(this);\n this.promise = this.promise.bind(this);\n this.or = this.or.bind(this);\n this.and = this.and.bind(this);\n this.transform = this.transform.bind(this);\n this.brand = this.brand.bind(this);\n this.default = this.default.bind(this);\n this.catch = this.catch.bind(this);\n this.describe = this.describe.bind(this);\n this.pipe = this.pipe.bind(this);\n this.readonly = this.readonly.bind(this);\n this.isNullable = this.isNullable.bind(this);\n this.isOptional = this.isOptional.bind(this);\n }\n get description() {\n return this._def.description;\n }\n _getType(input) {\n return getParsedType(input.data);\n }\n _getOrReturnCtx(input, ctx) {\n return (ctx || {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n });\n }\n _processInputParams(input) {\n return {\n status: new ParseStatus(),\n ctx: {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n },\n };\n }\n _parseSync(input) {\n const result = this._parse(input);\n if (isAsync(result)) {\n throw new Error(\"Synchronous parse encountered promise.\");\n }\n return result;\n }\n _parseAsync(input) {\n const result = this._parse(input);\n return Promise.resolve(result);\n }\n parse(data, params) {\n const result = this.safeParse(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n safeParse(data, params) {\n var _a;\n const ctx = {\n common: {\n issues: [],\n async: (_a = params === null || params === void 0 ? void 0 : params.async) !== null && _a !== void 0 ? _a : false,\n contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap,\n },\n path: (params === null || params === void 0 ? void 0 : params.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const result = this._parseSync({ data, path: ctx.path, parent: ctx });\n return handleResult(ctx, result);\n }\n async parseAsync(data, params) {\n const result = await this.safeParseAsync(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n async safeParseAsync(data, params) {\n const ctx = {\n common: {\n issues: [],\n contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap,\n async: true,\n },\n path: (params === null || params === void 0 ? void 0 : params.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });\n const result = await (isAsync(maybeAsyncResult)\n ? maybeAsyncResult\n : Promise.resolve(maybeAsyncResult));\n return handleResult(ctx, result);\n }\n refine(check, message) {\n const getIssueProperties = (val) => {\n if (typeof message === \"string\" || typeof message === \"undefined\") {\n return { message };\n }\n else if (typeof message === \"function\") {\n return message(val);\n }\n else {\n return message;\n }\n };\n return this._refinement((val, ctx) => {\n const result = check(val);\n const setError = () => ctx.addIssue({\n code: ZodIssueCode.custom,\n ...getIssueProperties(val),\n });\n if (typeof Promise !== \"undefined\" && result instanceof Promise) {\n return result.then((data) => {\n if (!data) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n if (!result) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n refinement(check, refinementData) {\n return this._refinement((val, ctx) => {\n if (!check(val)) {\n ctx.addIssue(typeof refinementData === \"function\"\n ? refinementData(val, ctx)\n : refinementData);\n return false;\n }\n else {\n return true;\n }\n });\n }\n _refinement(refinement) {\n return new ZodEffects({\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"refinement\", refinement },\n });\n }\n superRefine(refinement) {\n return this._refinement(refinement);\n }\n optional() {\n return ZodOptional.create(this, this._def);\n }\n nullable() {\n return ZodNullable.create(this, this._def);\n }\n nullish() {\n return this.nullable().optional();\n }\n array() {\n return ZodArray.create(this, this._def);\n }\n promise() {\n return ZodPromise.create(this, this._def);\n }\n or(option) {\n return ZodUnion.create([this, option], this._def);\n }\n and(incoming) {\n return ZodIntersection.create(this, incoming, this._def);\n }\n transform(transform) {\n return new ZodEffects({\n ...processCreateParams(this._def),\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"transform\", transform },\n });\n }\n default(def) {\n const defaultValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodDefault({\n ...processCreateParams(this._def),\n innerType: this,\n defaultValue: defaultValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n });\n }\n brand() {\n return new ZodBranded({\n typeName: ZodFirstPartyTypeKind.ZodBranded,\n type: this,\n ...processCreateParams(this._def),\n });\n }\n catch(def) {\n const catchValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodCatch({\n ...processCreateParams(this._def),\n innerType: this,\n catchValue: catchValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n });\n }\n describe(description) {\n const This = this.constructor;\n return new This({\n ...this._def,\n description,\n });\n }\n pipe(target) {\n return ZodPipeline.create(this, target);\n }\n readonly() {\n return ZodReadonly.create(this);\n }\n isOptional() {\n return this.safeParse(undefined).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n}\nconst cuidRegex = /^c[^\\s-]{8,}$/i;\nconst cuid2Regex = /^[a-z][a-z0-9]*$/;\nconst ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/;\n// const uuidRegex =\n// /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i;\nconst uuidRegex = /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/i;\n// from https://stackoverflow.com/a/46181/1550155\n// old version: too slow, didn't support unicode\n// const emailRegex = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i;\n//old email regex\n// const emailRegex = /^(([^<>()[\\].,;:\\s@\"]+(\\.[^<>()[\\].,;:\\s@\"]+)*)|(\".+\"))@((?!-)([^<>()[\\].,;:\\s@\"]+\\.)+[^<>()[\\].,;:\\s@\"]{1,})[^-<>()[\\].,;:\\s@\"]$/i;\n// eslint-disable-next-line\n// const emailRegex =\n// /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\])|(\\[IPv6:(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))\\])|([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])*(\\.[A-Za-z]{2,})+))$/;\n// const emailRegex =\n// /^[a-zA-Z0-9\\.\\!\\#\\$\\%\\&\\'\\*\\+\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~\\-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// const emailRegex =\n// /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])$/i;\nconst emailRegex = /^(?!\\.)(?!.*\\.\\.)([A-Z0-9_+-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i;\n// const emailRegex =\n// /^[a-z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-z0-9-]+(?:\\.[a-z0-9\\-]+)*$/i;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emojiRegex = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nlet emojiRegex;\nconst ipv4Regex = /^(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))$/;\nconst ipv6Regex = /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/;\n// Adapted from https://stackoverflow.com/a/3143231\nconst datetimeRegex = (args) => {\n if (args.precision) {\n if (args.offset) {\n return new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}\\\\.\\\\d{${args.precision}}(([+-]\\\\d{2}(:?\\\\d{2})?)|Z)$`);\n }\n else {\n return new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}\\\\.\\\\d{${args.precision}}Z$`);\n }\n }\n else if (args.precision === 0) {\n if (args.offset) {\n return new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(([+-]\\\\d{2}(:?\\\\d{2})?)|Z)$`);\n }\n else {\n return new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}Z$`);\n }\n }\n else {\n if (args.offset) {\n return new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(\\\\.\\\\d+)?(([+-]\\\\d{2}(:?\\\\d{2})?)|Z)$`);\n }\n else {\n return new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(\\\\.\\\\d+)?Z$`);\n }\n }\n};\nfunction isValidIP(ip, version) {\n if ((version === \"v4\" || !version) && ipv4Regex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6Regex.test(ip)) {\n return true;\n }\n return false;\n}\nclass ZodString extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = String(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.string) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.string,\n received: ctx.parsedType,\n }\n //\n );\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.length < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.length > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"length\") {\n const tooBig = input.data.length > check.value;\n const tooSmall = input.data.length < check.value;\n if (tooBig || tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n if (tooBig) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n else if (tooSmall) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n status.dirty();\n }\n }\n else if (check.kind === \"email\") {\n if (!emailRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"email\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"emoji\") {\n if (!emojiRegex) {\n emojiRegex = new RegExp(_emojiRegex, \"u\");\n }\n if (!emojiRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"emoji\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"uuid\") {\n if (!uuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"uuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid\") {\n if (!cuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid2\") {\n if (!cuid2Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid2\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ulid\") {\n if (!ulidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ulid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"url\") {\n try {\n new URL(input.data);\n }\n catch (_a) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"regex\") {\n check.regex.lastIndex = 0;\n const testResult = check.regex.test(input.data);\n if (!testResult) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"regex\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"trim\") {\n input.data = input.data.trim();\n }\n else if (check.kind === \"includes\") {\n if (!input.data.includes(check.value, check.position)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { includes: check.value, position: check.position },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"toLowerCase\") {\n input.data = input.data.toLowerCase();\n }\n else if (check.kind === \"toUpperCase\") {\n input.data = input.data.toUpperCase();\n }\n else if (check.kind === \"startsWith\") {\n if (!input.data.startsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { startsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"endsWith\") {\n if (!input.data.endsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { endsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"datetime\") {\n const regex = datetimeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"datetime\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ip\") {\n if (!isValidIP(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ip\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _regex(regex, validation, message) {\n return this.refinement((data) => regex.test(data), {\n validation,\n code: ZodIssueCode.invalid_string,\n ...errorUtil.errToObj(message),\n });\n }\n _addCheck(check) {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n email(message) {\n return this._addCheck({ kind: \"email\", ...errorUtil.errToObj(message) });\n }\n url(message) {\n return this._addCheck({ kind: \"url\", ...errorUtil.errToObj(message) });\n }\n emoji(message) {\n return this._addCheck({ kind: \"emoji\", ...errorUtil.errToObj(message) });\n }\n uuid(message) {\n return this._addCheck({ kind: \"uuid\", ...errorUtil.errToObj(message) });\n }\n cuid(message) {\n return this._addCheck({ kind: \"cuid\", ...errorUtil.errToObj(message) });\n }\n cuid2(message) {\n return this._addCheck({ kind: \"cuid2\", ...errorUtil.errToObj(message) });\n }\n ulid(message) {\n return this._addCheck({ kind: \"ulid\", ...errorUtil.errToObj(message) });\n }\n ip(options) {\n return this._addCheck({ kind: \"ip\", ...errorUtil.errToObj(options) });\n }\n datetime(options) {\n var _a;\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"datetime\",\n precision: null,\n offset: false,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"datetime\",\n precision: typeof (options === null || options === void 0 ? void 0 : options.precision) === \"undefined\" ? null : options === null || options === void 0 ? void 0 : options.precision,\n offset: (_a = options === null || options === void 0 ? void 0 : options.offset) !== null && _a !== void 0 ? _a : false,\n ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message),\n });\n }\n regex(regex, message) {\n return this._addCheck({\n kind: \"regex\",\n regex: regex,\n ...errorUtil.errToObj(message),\n });\n }\n includes(value, options) {\n return this._addCheck({\n kind: \"includes\",\n value: value,\n position: options === null || options === void 0 ? void 0 : options.position,\n ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message),\n });\n }\n startsWith(value, message) {\n return this._addCheck({\n kind: \"startsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n endsWith(value, message) {\n return this._addCheck({\n kind: \"endsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n min(minLength, message) {\n return this._addCheck({\n kind: \"min\",\n value: minLength,\n ...errorUtil.errToObj(message),\n });\n }\n max(maxLength, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxLength,\n ...errorUtil.errToObj(message),\n });\n }\n length(len, message) {\n return this._addCheck({\n kind: \"length\",\n value: len,\n ...errorUtil.errToObj(message),\n });\n }\n /**\n * @deprecated Use z.string().min(1) instead.\n * @see {@link ZodString.min}\n */\n nonempty(message) {\n return this.min(1, errorUtil.errToObj(message));\n }\n trim() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"trim\" }],\n });\n }\n toLowerCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toLowerCase\" }],\n });\n }\n toUpperCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toUpperCase\" }],\n });\n }\n get isDatetime() {\n return !!this._def.checks.find((ch) => ch.kind === \"datetime\");\n }\n get isEmail() {\n return !!this._def.checks.find((ch) => ch.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((ch) => ch.kind === \"url\");\n }\n get isEmoji() {\n return !!this._def.checks.find((ch) => ch.kind === \"emoji\");\n }\n get isUUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"uuid\");\n }\n get isCUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid\");\n }\n get isCUID2() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid2\");\n }\n get isULID() {\n return !!this._def.checks.find((ch) => ch.kind === \"ulid\");\n }\n get isIP() {\n return !!this._def.checks.find((ch) => ch.kind === \"ip\");\n }\n get minLength() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxLength() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodString.create = (params) => {\n var _a;\n return new ZodString({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodString,\n coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false,\n ...processCreateParams(params),\n });\n};\n// https://stackoverflow.com/questions/3966484/why-does-modulus-operator-return-fractional-number-in-javascript/31711034#31711034\nfunction floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / Math.pow(10, decCount);\n}\nclass ZodNumber extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n this.step = this.multipleOf;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = Number(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.number) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.number,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"int\") {\n if (!util.isInteger(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: \"integer\",\n received: \"float\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"min\") {\n const tooSmall = check.inclusive\n ? input.data < check.value\n : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive\n ? input.data > check.value\n : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (floatSafeRemainder(input.data, check.value) !== 0) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"finite\") {\n if (!Number.isFinite(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_finite,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodNumber({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodNumber({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n int(message) {\n return this._addCheck({\n kind: \"int\",\n message: errorUtil.toString(message),\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: value,\n message: errorUtil.toString(message),\n });\n }\n finite(message) {\n return this._addCheck({\n kind: \"finite\",\n message: errorUtil.toString(message),\n });\n }\n safe(message) {\n return this._addCheck({\n kind: \"min\",\n inclusive: true,\n value: Number.MIN_SAFE_INTEGER,\n message: errorUtil.toString(message),\n })._addCheck({\n kind: \"max\",\n inclusive: true,\n value: Number.MAX_SAFE_INTEGER,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n get isInt() {\n return !!this._def.checks.find((ch) => ch.kind === \"int\" ||\n (ch.kind === \"multipleOf\" && util.isInteger(ch.value)));\n }\n get isFinite() {\n let max = null, min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"finite\" ||\n ch.kind === \"int\" ||\n ch.kind === \"multipleOf\") {\n return true;\n }\n else if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n else if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return Number.isFinite(min) && Number.isFinite(max);\n }\n}\nZodNumber.create = (params) => {\n return new ZodNumber({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodNumber,\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n ...processCreateParams(params),\n });\n};\nclass ZodBigInt extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = BigInt(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.bigint) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.bigint,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n const tooSmall = check.inclusive\n ? input.data < check.value\n : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n type: \"bigint\",\n minimum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive\n ? input.data > check.value\n : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n type: \"bigint\",\n maximum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (input.data % check.value !== BigInt(0)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodBigInt({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodBigInt({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodBigInt.create = (params) => {\n var _a;\n return new ZodBigInt({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodBigInt,\n coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false,\n ...processCreateParams(params),\n });\n};\nclass ZodBoolean extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = Boolean(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.boolean) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.boolean,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodBoolean.create = (params) => {\n return new ZodBoolean({\n typeName: ZodFirstPartyTypeKind.ZodBoolean,\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n ...processCreateParams(params),\n });\n};\nclass ZodDate extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = new Date(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.date) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.date,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (isNaN(input.data.getTime())) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_date,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.getTime() < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n message: check.message,\n inclusive: true,\n exact: false,\n minimum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.getTime() > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n message: check.message,\n inclusive: true,\n exact: false,\n maximum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return {\n status: status.value,\n value: new Date(input.data.getTime()),\n };\n }\n _addCheck(check) {\n return new ZodDate({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n min(minDate, message) {\n return this._addCheck({\n kind: \"min\",\n value: minDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n max(maxDate, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n get minDate() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min != null ? new Date(min) : null;\n }\n get maxDate() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max != null ? new Date(max) : null;\n }\n}\nZodDate.create = (params) => {\n return new ZodDate({\n checks: [],\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n typeName: ZodFirstPartyTypeKind.ZodDate,\n ...processCreateParams(params),\n });\n};\nclass ZodSymbol extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.symbol) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.symbol,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodSymbol.create = (params) => {\n return new ZodSymbol({\n typeName: ZodFirstPartyTypeKind.ZodSymbol,\n ...processCreateParams(params),\n });\n};\nclass ZodUndefined extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.undefined,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodUndefined.create = (params) => {\n return new ZodUndefined({\n typeName: ZodFirstPartyTypeKind.ZodUndefined,\n ...processCreateParams(params),\n });\n};\nclass ZodNull extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.null) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.null,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodNull.create = (params) => {\n return new ZodNull({\n typeName: ZodFirstPartyTypeKind.ZodNull,\n ...processCreateParams(params),\n });\n};\nclass ZodAny extends ZodType {\n constructor() {\n super(...arguments);\n // to prevent instances of other classes from extending ZodAny. this causes issues with catchall in ZodObject.\n this._any = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodAny.create = (params) => {\n return new ZodAny({\n typeName: ZodFirstPartyTypeKind.ZodAny,\n ...processCreateParams(params),\n });\n};\nclass ZodUnknown extends ZodType {\n constructor() {\n super(...arguments);\n // required\n this._unknown = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodUnknown.create = (params) => {\n return new ZodUnknown({\n typeName: ZodFirstPartyTypeKind.ZodUnknown,\n ...processCreateParams(params),\n });\n};\nclass ZodNever extends ZodType {\n _parse(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.never,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n}\nZodNever.create = (params) => {\n return new ZodNever({\n typeName: ZodFirstPartyTypeKind.ZodNever,\n ...processCreateParams(params),\n });\n};\nclass ZodVoid extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.void,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodVoid.create = (params) => {\n return new ZodVoid({\n typeName: ZodFirstPartyTypeKind.ZodVoid,\n ...processCreateParams(params),\n });\n};\nclass ZodArray extends ZodType {\n _parse(input) {\n const { ctx, status } = this._processInputParams(input);\n const def = this._def;\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (def.exactLength !== null) {\n const tooBig = ctx.data.length > def.exactLength.value;\n const tooSmall = ctx.data.length < def.exactLength.value;\n if (tooBig || tooSmall) {\n addIssueToContext(ctx, {\n code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small,\n minimum: (tooSmall ? def.exactLength.value : undefined),\n maximum: (tooBig ? def.exactLength.value : undefined),\n type: \"array\",\n inclusive: true,\n exact: true,\n message: def.exactLength.message,\n });\n status.dirty();\n }\n }\n if (def.minLength !== null) {\n if (ctx.data.length < def.minLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.minLength.message,\n });\n status.dirty();\n }\n }\n if (def.maxLength !== null) {\n if (ctx.data.length > def.maxLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.maxLength.message,\n });\n status.dirty();\n }\n }\n if (ctx.common.async) {\n return Promise.all([...ctx.data].map((item, i) => {\n return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n })).then((result) => {\n return ParseStatus.mergeArray(status, result);\n });\n }\n const result = [...ctx.data].map((item, i) => {\n return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n });\n return ParseStatus.mergeArray(status, result);\n }\n get element() {\n return this._def.type;\n }\n min(minLength, message) {\n return new ZodArray({\n ...this._def,\n minLength: { value: minLength, message: errorUtil.toString(message) },\n });\n }\n max(maxLength, message) {\n return new ZodArray({\n ...this._def,\n maxLength: { value: maxLength, message: errorUtil.toString(message) },\n });\n }\n length(len, message) {\n return new ZodArray({\n ...this._def,\n exactLength: { value: len, message: errorUtil.toString(message) },\n });\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodArray.create = (schema, params) => {\n return new ZodArray({\n type: schema,\n minLength: null,\n maxLength: null,\n exactLength: null,\n typeName: ZodFirstPartyTypeKind.ZodArray,\n ...processCreateParams(params),\n });\n};\nfunction deepPartialify(schema) {\n if (schema instanceof ZodObject) {\n const newShape = {};\n for (const key in schema.shape) {\n const fieldSchema = schema.shape[key];\n newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));\n }\n return new ZodObject({\n ...schema._def,\n shape: () => newShape,\n });\n }\n else if (schema instanceof ZodArray) {\n return new ZodArray({\n ...schema._def,\n type: deepPartialify(schema.element),\n });\n }\n else if (schema instanceof ZodOptional) {\n return ZodOptional.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodNullable) {\n return ZodNullable.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodTuple) {\n return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));\n }\n else {\n return schema;\n }\n}\nclass ZodObject extends ZodType {\n constructor() {\n super(...arguments);\n this._cached = null;\n /**\n * @deprecated In most cases, this is no longer needed - unknown properties are now silently stripped.\n * If you want to pass through unknown properties, use `.passthrough()` instead.\n */\n this.nonstrict = this.passthrough;\n // extend<\n // Augmentation extends ZodRawShape,\n // NewOutput extends util.flatten<{\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // }>,\n // NewInput extends util.flatten<{\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }>\n // >(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape,\n // UnknownKeys,\n // Catchall,\n // NewOutput,\n // NewInput\n // > {\n // return new ZodObject({\n // ...this._def,\n // shape: () => ({\n // ...this._def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // }\n /**\n * @deprecated Use `.extend` instead\n * */\n this.augment = this.extend;\n }\n _getCached() {\n if (this._cached !== null)\n return this._cached;\n const shape = this._def.shape();\n const keys = util.objectKeys(shape);\n return (this._cached = { shape, keys });\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.object) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const { status, ctx } = this._processInputParams(input);\n const { shape, keys: shapeKeys } = this._getCached();\n const extraKeys = [];\n if (!(this._def.catchall instanceof ZodNever &&\n this._def.unknownKeys === \"strip\")) {\n for (const key in ctx.data) {\n if (!shapeKeys.includes(key)) {\n extraKeys.push(key);\n }\n }\n }\n const pairs = [];\n for (const key of shapeKeys) {\n const keyValidator = shape[key];\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (this._def.catchall instanceof ZodNever) {\n const unknownKeys = this._def.unknownKeys;\n if (unknownKeys === \"passthrough\") {\n for (const key of extraKeys) {\n pairs.push({\n key: { status: \"valid\", value: key },\n value: { status: \"valid\", value: ctx.data[key] },\n });\n }\n }\n else if (unknownKeys === \"strict\") {\n if (extraKeys.length > 0) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.unrecognized_keys,\n keys: extraKeys,\n });\n status.dirty();\n }\n }\n else if (unknownKeys === \"strip\") ;\n else {\n throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);\n }\n }\n else {\n // run catchall validation\n const catchall = this._def.catchall;\n for (const key of extraKeys) {\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: catchall._parse(new ParseInputLazyPath(ctx, value, ctx.path, key) //, ctx.child(key), value, getParsedType(value)\n ),\n alwaysSet: key in ctx.data,\n });\n }\n }\n if (ctx.common.async) {\n return Promise.resolve()\n .then(async () => {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n syncPairs.push({\n key,\n value: await pair.value,\n alwaysSet: pair.alwaysSet,\n });\n }\n return syncPairs;\n })\n .then((syncPairs) => {\n return ParseStatus.mergeObjectSync(status, syncPairs);\n });\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get shape() {\n return this._def.shape();\n }\n strict(message) {\n errorUtil.errToObj;\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strict\",\n ...(message !== undefined\n ? {\n errorMap: (issue, ctx) => {\n var _a, _b, _c, _d;\n const defaultError = (_c = (_b = (_a = this._def).errorMap) === null || _b === void 0 ? void 0 : _b.call(_a, issue, ctx).message) !== null && _c !== void 0 ? _c : ctx.defaultError;\n if (issue.code === \"unrecognized_keys\")\n return {\n message: (_d = errorUtil.errToObj(message).message) !== null && _d !== void 0 ? _d : defaultError,\n };\n return {\n message: defaultError,\n };\n },\n }\n : {}),\n });\n }\n strip() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strip\",\n });\n }\n passthrough() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"passthrough\",\n });\n }\n // const AugmentFactory =\n // (def: Def) =>\n // (\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape, Augmentation>,\n // Def[\"unknownKeys\"],\n // Def[\"catchall\"]\n // > => {\n // return new ZodObject({\n // ...def,\n // shape: () => ({\n // ...def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // };\n extend(augmentation) {\n return new ZodObject({\n ...this._def,\n shape: () => ({\n ...this._def.shape(),\n ...augmentation,\n }),\n });\n }\n /**\n * Prior to zod@1.0.12 there was a bug in the\n * inferred type of merged objects. Please\n * upgrade if you are experiencing issues.\n */\n merge(merging) {\n const merged = new ZodObject({\n unknownKeys: merging._def.unknownKeys,\n catchall: merging._def.catchall,\n shape: () => ({\n ...this._def.shape(),\n ...merging._def.shape(),\n }),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n });\n return merged;\n }\n // merge<\n // Incoming extends AnyZodObject,\n // Augmentation extends Incoming[\"shape\"],\n // NewOutput extends {\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // },\n // NewInput extends {\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }\n // >(\n // merging: Incoming\n // ): ZodObject<\n // extendShape>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"],\n // NewOutput,\n // NewInput\n // > {\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n setKey(key, schema) {\n return this.augment({ [key]: schema });\n }\n // merge(\n // merging: Incoming\n // ): //ZodObject = (merging) => {\n // ZodObject<\n // extendShape>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"]\n // > {\n // // const mergedShape = objectUtil.mergeShapes(\n // // this._def.shape(),\n // // merging._def.shape()\n // // );\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n catchall(index) {\n return new ZodObject({\n ...this._def,\n catchall: index,\n });\n }\n pick(mask) {\n const shape = {};\n util.objectKeys(mask).forEach((key) => {\n if (mask[key] && this.shape[key]) {\n shape[key] = this.shape[key];\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n omit(mask) {\n const shape = {};\n util.objectKeys(this.shape).forEach((key) => {\n if (!mask[key]) {\n shape[key] = this.shape[key];\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n /**\n * @deprecated\n */\n deepPartial() {\n return deepPartialify(this);\n }\n partial(mask) {\n const newShape = {};\n util.objectKeys(this.shape).forEach((key) => {\n const fieldSchema = this.shape[key];\n if (mask && !mask[key]) {\n newShape[key] = fieldSchema;\n }\n else {\n newShape[key] = fieldSchema.optional();\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n required(mask) {\n const newShape = {};\n util.objectKeys(this.shape).forEach((key) => {\n if (mask && !mask[key]) {\n newShape[key] = this.shape[key];\n }\n else {\n const fieldSchema = this.shape[key];\n let newField = fieldSchema;\n while (newField instanceof ZodOptional) {\n newField = newField._def.innerType;\n }\n newShape[key] = newField;\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n keyof() {\n return createZodEnum(util.objectKeys(this.shape));\n }\n}\nZodObject.create = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.strictCreate = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strict\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.lazycreate = (shape, params) => {\n return new ZodObject({\n shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nclass ZodUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const options = this._def.options;\n function handleResults(results) {\n // return first issue-free validation if it exists\n for (const result of results) {\n if (result.result.status === \"valid\") {\n return result.result;\n }\n }\n for (const result of results) {\n if (result.result.status === \"dirty\") {\n // add issues from dirty option\n ctx.common.issues.push(...result.ctx.common.issues);\n return result.result;\n }\n }\n // return invalid\n const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return Promise.all(options.map(async (option) => {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n return {\n result: await option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n }),\n ctx: childCtx,\n };\n })).then(handleResults);\n }\n else {\n let dirty = undefined;\n const issues = [];\n for (const option of options) {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n const result = option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n });\n if (result.status === \"valid\") {\n return result;\n }\n else if (result.status === \"dirty\" && !dirty) {\n dirty = { result, ctx: childCtx };\n }\n if (childCtx.common.issues.length) {\n issues.push(childCtx.common.issues);\n }\n }\n if (dirty) {\n ctx.common.issues.push(...dirty.ctx.common.issues);\n return dirty.result;\n }\n const unionErrors = issues.map((issues) => new ZodError(issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n }\n get options() {\n return this._def.options;\n }\n}\nZodUnion.create = (types, params) => {\n return new ZodUnion({\n options: types,\n typeName: ZodFirstPartyTypeKind.ZodUnion,\n ...processCreateParams(params),\n });\n};\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\n////////// //////////\n////////// ZodDiscriminatedUnion //////////\n////////// //////////\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\nconst getDiscriminator = (type) => {\n if (type instanceof ZodLazy) {\n return getDiscriminator(type.schema);\n }\n else if (type instanceof ZodEffects) {\n return getDiscriminator(type.innerType());\n }\n else if (type instanceof ZodLiteral) {\n return [type.value];\n }\n else if (type instanceof ZodEnum) {\n return type.options;\n }\n else if (type instanceof ZodNativeEnum) {\n // eslint-disable-next-line ban/ban\n return Object.keys(type.enum);\n }\n else if (type instanceof ZodDefault) {\n return getDiscriminator(type._def.innerType);\n }\n else if (type instanceof ZodUndefined) {\n return [undefined];\n }\n else if (type instanceof ZodNull) {\n return [null];\n }\n else {\n return null;\n }\n};\nclass ZodDiscriminatedUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const discriminator = this.discriminator;\n const discriminatorValue = ctx.data[discriminator];\n const option = this.optionsMap.get(discriminatorValue);\n if (!option) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union_discriminator,\n options: Array.from(this.optionsMap.keys()),\n path: [discriminator],\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n else {\n return option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n get discriminator() {\n return this._def.discriminator;\n }\n get options() {\n return this._def.options;\n }\n get optionsMap() {\n return this._def.optionsMap;\n }\n /**\n * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.\n * However, it only allows a union of objects, all of which need to share a discriminator property. This property must\n * have a different value for each object in the union.\n * @param discriminator the name of the discriminator property\n * @param types an array of object schemas\n * @param params\n */\n static create(discriminator, options, params) {\n // Get all the valid discriminator values\n const optionsMap = new Map();\n // try {\n for (const type of options) {\n const discriminatorValues = getDiscriminator(type.shape[discriminator]);\n if (!discriminatorValues) {\n throw new Error(`A discriminator value for key \\`${discriminator}\\` could not be extracted from all schema options`);\n }\n for (const value of discriminatorValues) {\n if (optionsMap.has(value)) {\n throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);\n }\n optionsMap.set(value, type);\n }\n }\n return new ZodDiscriminatedUnion({\n typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,\n discriminator,\n options,\n optionsMap,\n ...processCreateParams(params),\n });\n }\n}\nfunction mergeValues(a, b) {\n const aType = getParsedType(a);\n const bType = getParsedType(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {\n const bKeys = util.objectKeys(b);\n const sharedKeys = util\n .objectKeys(a)\n .filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {\n if (a.length !== b.length) {\n return { valid: false };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n else if (aType === ZodParsedType.date &&\n bType === ZodParsedType.date &&\n +a === +b) {\n return { valid: true, data: a };\n }\n else {\n return { valid: false };\n }\n}\nclass ZodIntersection extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const handleParsed = (parsedLeft, parsedRight) => {\n if (isAborted(parsedLeft) || isAborted(parsedRight)) {\n return INVALID;\n }\n const merged = mergeValues(parsedLeft.value, parsedRight.value);\n if (!merged.valid) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_intersection_types,\n });\n return INVALID;\n }\n if (isDirty(parsedLeft) || isDirty(parsedRight)) {\n status.dirty();\n }\n return { status: status.value, value: merged.data };\n };\n if (ctx.common.async) {\n return Promise.all([\n this._def.left._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n this._def.right._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n ]).then(([left, right]) => handleParsed(left, right));\n }\n else {\n return handleParsed(this._def.left._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }), this._def.right._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }));\n }\n }\n}\nZodIntersection.create = (left, right, params) => {\n return new ZodIntersection({\n left: left,\n right: right,\n typeName: ZodFirstPartyTypeKind.ZodIntersection,\n ...processCreateParams(params),\n });\n};\nclass ZodTuple extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (ctx.data.length < this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n return INVALID;\n }\n const rest = this._def.rest;\n if (!rest && ctx.data.length > this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n status.dirty();\n }\n const items = [...ctx.data]\n .map((item, itemIndex) => {\n const schema = this._def.items[itemIndex] || this._def.rest;\n if (!schema)\n return null;\n return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));\n })\n .filter((x) => !!x); // filter nulls\n if (ctx.common.async) {\n return Promise.all(items).then((results) => {\n return ParseStatus.mergeArray(status, results);\n });\n }\n else {\n return ParseStatus.mergeArray(status, items);\n }\n }\n get items() {\n return this._def.items;\n }\n rest(rest) {\n return new ZodTuple({\n ...this._def,\n rest,\n });\n }\n}\nZodTuple.create = (schemas, params) => {\n if (!Array.isArray(schemas)) {\n throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n }\n return new ZodTuple({\n items: schemas,\n typeName: ZodFirstPartyTypeKind.ZodTuple,\n rest: null,\n ...processCreateParams(params),\n });\n};\nclass ZodRecord extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const pairs = [];\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n for (const key in ctx.data) {\n pairs.push({\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),\n value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)),\n });\n }\n if (ctx.common.async) {\n return ParseStatus.mergeObjectAsync(status, pairs);\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get element() {\n return this._def.valueType;\n }\n static create(first, second, third) {\n if (second instanceof ZodType) {\n return new ZodRecord({\n keyType: first,\n valueType: second,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(third),\n });\n }\n return new ZodRecord({\n keyType: ZodString.create(),\n valueType: first,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(second),\n });\n }\n}\nclass ZodMap extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.map) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.map,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n const pairs = [...ctx.data.entries()].map(([key, value], index) => {\n return {\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, \"key\"])),\n value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, \"value\"])),\n };\n });\n if (ctx.common.async) {\n const finalMap = new Map();\n return Promise.resolve().then(async () => {\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n });\n }\n else {\n const finalMap = new Map();\n for (const pair of pairs) {\n const key = pair.key;\n const value = pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n }\n }\n}\nZodMap.create = (keyType, valueType, params) => {\n return new ZodMap({\n valueType,\n keyType,\n typeName: ZodFirstPartyTypeKind.ZodMap,\n ...processCreateParams(params),\n });\n};\nclass ZodSet extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.set) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.set,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const def = this._def;\n if (def.minSize !== null) {\n if (ctx.data.size < def.minSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.minSize.message,\n });\n status.dirty();\n }\n }\n if (def.maxSize !== null) {\n if (ctx.data.size > def.maxSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.maxSize.message,\n });\n status.dirty();\n }\n }\n const valueType = this._def.valueType;\n function finalizeSet(elements) {\n const parsedSet = new Set();\n for (const element of elements) {\n if (element.status === \"aborted\")\n return INVALID;\n if (element.status === \"dirty\")\n status.dirty();\n parsedSet.add(element.value);\n }\n return { status: status.value, value: parsedSet };\n }\n const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));\n if (ctx.common.async) {\n return Promise.all(elements).then((elements) => finalizeSet(elements));\n }\n else {\n return finalizeSet(elements);\n }\n }\n min(minSize, message) {\n return new ZodSet({\n ...this._def,\n minSize: { value: minSize, message: errorUtil.toString(message) },\n });\n }\n max(maxSize, message) {\n return new ZodSet({\n ...this._def,\n maxSize: { value: maxSize, message: errorUtil.toString(message) },\n });\n }\n size(size, message) {\n return this.min(size, message).max(size, message);\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodSet.create = (valueType, params) => {\n return new ZodSet({\n valueType,\n minSize: null,\n maxSize: null,\n typeName: ZodFirstPartyTypeKind.ZodSet,\n ...processCreateParams(params),\n });\n};\nclass ZodFunction extends ZodType {\n constructor() {\n super(...arguments);\n this.validate = this.implement;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.function) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.function,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n function makeArgsIssue(args, error) {\n return makeIssue({\n data: args,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap,\n ].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_arguments,\n argumentsError: error,\n },\n });\n }\n function makeReturnsIssue(returns, error) {\n return makeIssue({\n data: returns,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap,\n ].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_return_type,\n returnTypeError: error,\n },\n });\n }\n const params = { errorMap: ctx.common.contextualErrorMap };\n const fn = ctx.data;\n if (this._def.returns instanceof ZodPromise) {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(async function (...args) {\n const error = new ZodError([]);\n const parsedArgs = await me._def.args\n .parseAsync(args, params)\n .catch((e) => {\n error.addIssue(makeArgsIssue(args, e));\n throw error;\n });\n const result = await Reflect.apply(fn, this, parsedArgs);\n const parsedReturns = await me._def.returns._def.type\n .parseAsync(result, params)\n .catch((e) => {\n error.addIssue(makeReturnsIssue(result, e));\n throw error;\n });\n return parsedReturns;\n });\n }\n else {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(function (...args) {\n const parsedArgs = me._def.args.safeParse(args, params);\n if (!parsedArgs.success) {\n throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);\n }\n const result = Reflect.apply(fn, this, parsedArgs.data);\n const parsedReturns = me._def.returns.safeParse(result, params);\n if (!parsedReturns.success) {\n throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);\n }\n return parsedReturns.data;\n });\n }\n }\n parameters() {\n return this._def.args;\n }\n returnType() {\n return this._def.returns;\n }\n args(...items) {\n return new ZodFunction({\n ...this._def,\n args: ZodTuple.create(items).rest(ZodUnknown.create()),\n });\n }\n returns(returnType) {\n return new ZodFunction({\n ...this._def,\n returns: returnType,\n });\n }\n implement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n strictImplement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n static create(args, returns, params) {\n return new ZodFunction({\n args: (args\n ? args\n : ZodTuple.create([]).rest(ZodUnknown.create())),\n returns: returns || ZodUnknown.create(),\n typeName: ZodFirstPartyTypeKind.ZodFunction,\n ...processCreateParams(params),\n });\n }\n}\nclass ZodLazy extends ZodType {\n get schema() {\n return this._def.getter();\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const lazySchema = this._def.getter();\n return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });\n }\n}\nZodLazy.create = (getter, params) => {\n return new ZodLazy({\n getter: getter,\n typeName: ZodFirstPartyTypeKind.ZodLazy,\n ...processCreateParams(params),\n });\n};\nclass ZodLiteral extends ZodType {\n _parse(input) {\n if (input.data !== this._def.value) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_literal,\n expected: this._def.value,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n get value() {\n return this._def.value;\n }\n}\nZodLiteral.create = (value, params) => {\n return new ZodLiteral({\n value: value,\n typeName: ZodFirstPartyTypeKind.ZodLiteral,\n ...processCreateParams(params),\n });\n};\nfunction createZodEnum(values, params) {\n return new ZodEnum({\n values,\n typeName: ZodFirstPartyTypeKind.ZodEnum,\n ...processCreateParams(params),\n });\n}\nclass ZodEnum extends ZodType {\n _parse(input) {\n if (typeof input.data !== \"string\") {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (this._def.values.indexOf(input.data) === -1) {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get options() {\n return this._def.values;\n }\n get enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Values() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n extract(values) {\n return ZodEnum.create(values);\n }\n exclude(values) {\n return ZodEnum.create(this.options.filter((opt) => !values.includes(opt)));\n }\n}\nZodEnum.create = createZodEnum;\nclass ZodNativeEnum extends ZodType {\n _parse(input) {\n const nativeEnumValues = util.getValidEnumValues(this._def.values);\n const ctx = this._getOrReturnCtx(input);\n if (ctx.parsedType !== ZodParsedType.string &&\n ctx.parsedType !== ZodParsedType.number) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (nativeEnumValues.indexOf(input.data) === -1) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get enum() {\n return this._def.values;\n }\n}\nZodNativeEnum.create = (values, params) => {\n return new ZodNativeEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n ...processCreateParams(params),\n });\n};\nclass ZodPromise extends ZodType {\n unwrap() {\n return this._def.type;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.promise &&\n ctx.common.async === false) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.promise,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const promisified = ctx.parsedType === ZodParsedType.promise\n ? ctx.data\n : Promise.resolve(ctx.data);\n return OK(promisified.then((data) => {\n return this._def.type.parseAsync(data, {\n path: ctx.path,\n errorMap: ctx.common.contextualErrorMap,\n });\n }));\n }\n}\nZodPromise.create = (schema, params) => {\n return new ZodPromise({\n type: schema,\n typeName: ZodFirstPartyTypeKind.ZodPromise,\n ...processCreateParams(params),\n });\n};\nclass ZodEffects extends ZodType {\n innerType() {\n return this._def.schema;\n }\n sourceType() {\n return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects\n ? this._def.schema.sourceType()\n : this._def.schema;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const effect = this._def.effect || null;\n const checkCtx = {\n addIssue: (arg) => {\n addIssueToContext(ctx, arg);\n if (arg.fatal) {\n status.abort();\n }\n else {\n status.dirty();\n }\n },\n get path() {\n return ctx.path;\n },\n };\n checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);\n if (effect.type === \"preprocess\") {\n const processed = effect.transform(ctx.data, checkCtx);\n if (ctx.common.issues.length) {\n return {\n status: \"dirty\",\n value: ctx.data,\n };\n }\n if (ctx.common.async) {\n return Promise.resolve(processed).then((processed) => {\n return this._def.schema._parseAsync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n });\n }\n else {\n return this._def.schema._parseSync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n if (effect.type === \"refinement\") {\n const executeRefinement = (acc\n // effect: RefinementEffect\n ) => {\n const result = effect.refinement(acc, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(result);\n }\n if (result instanceof Promise) {\n throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n }\n return acc;\n };\n if (ctx.common.async === false) {\n const inner = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n // return value is ignored\n executeRefinement(inner.value);\n return { status: status.value, value: inner.value };\n }\n else {\n return this._def.schema\n ._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx })\n .then((inner) => {\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n return executeRefinement(inner.value).then(() => {\n return { status: status.value, value: inner.value };\n });\n });\n }\n }\n if (effect.type === \"transform\") {\n if (ctx.common.async === false) {\n const base = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (!isValid(base))\n return base;\n const result = effect.transform(base.value, checkCtx);\n if (result instanceof Promise) {\n throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);\n }\n return { status: status.value, value: result };\n }\n else {\n return this._def.schema\n ._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx })\n .then((base) => {\n if (!isValid(base))\n return base;\n return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({ status: status.value, value: result }));\n });\n }\n }\n util.assertNever(effect);\n }\n}\nZodEffects.create = (schema, effect, params) => {\n return new ZodEffects({\n schema,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect,\n ...processCreateParams(params),\n });\n};\nZodEffects.createWithPreprocess = (preprocess, schema, params) => {\n return new ZodEffects({\n schema,\n effect: { type: \"preprocess\", transform: preprocess },\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n ...processCreateParams(params),\n });\n};\nclass ZodOptional extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.undefined) {\n return OK(undefined);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodOptional.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params),\n });\n};\nclass ZodNullable extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.null) {\n return OK(null);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodNullable.create = (type, params) => {\n return new ZodNullable({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodNullable,\n ...processCreateParams(params),\n });\n};\nclass ZodDefault extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n let data = ctx.data;\n if (ctx.parsedType === ZodParsedType.undefined) {\n data = this._def.defaultValue();\n }\n return this._def.innerType._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n removeDefault() {\n return this._def.innerType;\n }\n}\nZodDefault.create = (type, params) => {\n return new ZodDefault({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n defaultValue: typeof params.default === \"function\"\n ? params.default\n : () => params.default,\n ...processCreateParams(params),\n });\n};\nclass ZodCatch extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n // newCtx is used to not collect issues from inner types in ctx\n const newCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n };\n const result = this._def.innerType._parse({\n data: newCtx.data,\n path: newCtx.path,\n parent: {\n ...newCtx,\n },\n });\n if (isAsync(result)) {\n return result.then((result) => {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n });\n }\n else {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n }\n }\n removeCatch() {\n return this._def.innerType;\n }\n}\nZodCatch.create = (type, params) => {\n return new ZodCatch({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n catchValue: typeof params.catch === \"function\" ? params.catch : () => params.catch,\n ...processCreateParams(params),\n });\n};\nclass ZodNaN extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.nan) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.nan,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n}\nZodNaN.create = (params) => {\n return new ZodNaN({\n typeName: ZodFirstPartyTypeKind.ZodNaN,\n ...processCreateParams(params),\n });\n};\nconst BRAND = Symbol(\"zod_brand\");\nclass ZodBranded extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const data = ctx.data;\n return this._def.type._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n unwrap() {\n return this._def.type;\n }\n}\nclass ZodPipeline extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.common.async) {\n const handleAsync = async () => {\n const inResult = await this._def.in._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return DIRTY(inResult.value);\n }\n else {\n return this._def.out._parseAsync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n };\n return handleAsync();\n }\n else {\n const inResult = this._def.in._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return {\n status: \"dirty\",\n value: inResult.value,\n };\n }\n else {\n return this._def.out._parseSync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n }\n static create(a, b) {\n return new ZodPipeline({\n in: a,\n out: b,\n typeName: ZodFirstPartyTypeKind.ZodPipeline,\n });\n }\n}\nclass ZodReadonly extends ZodType {\n _parse(input) {\n const result = this._def.innerType._parse(input);\n if (isValid(result)) {\n result.value = Object.freeze(result.value);\n }\n return result;\n }\n}\nZodReadonly.create = (type, params) => {\n return new ZodReadonly({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodReadonly,\n ...processCreateParams(params),\n });\n};\nconst custom = (check, params = {}, \n/**\n * @deprecated\n *\n * Pass `fatal` into the params object instead:\n *\n * ```ts\n * z.string().custom((val) => val.length > 5, { fatal: false })\n * ```\n *\n */\nfatal) => {\n if (check)\n return ZodAny.create().superRefine((data, ctx) => {\n var _a, _b;\n if (!check(data)) {\n const p = typeof params === \"function\"\n ? params(data)\n : typeof params === \"string\"\n ? { message: params }\n : params;\n const _fatal = (_b = (_a = p.fatal) !== null && _a !== void 0 ? _a : fatal) !== null && _b !== void 0 ? _b : true;\n const p2 = typeof p === \"string\" ? { message: p } : p;\n ctx.addIssue({ code: \"custom\", ...p2, fatal: _fatal });\n }\n });\n return ZodAny.create();\n};\nconst late = {\n object: ZodObject.lazycreate,\n};\nvar ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n ZodFirstPartyTypeKind[\"ZodString\"] = \"ZodString\";\n ZodFirstPartyTypeKind[\"ZodNumber\"] = \"ZodNumber\";\n ZodFirstPartyTypeKind[\"ZodNaN\"] = \"ZodNaN\";\n ZodFirstPartyTypeKind[\"ZodBigInt\"] = \"ZodBigInt\";\n ZodFirstPartyTypeKind[\"ZodBoolean\"] = \"ZodBoolean\";\n ZodFirstPartyTypeKind[\"ZodDate\"] = \"ZodDate\";\n ZodFirstPartyTypeKind[\"ZodSymbol\"] = \"ZodSymbol\";\n ZodFirstPartyTypeKind[\"ZodUndefined\"] = \"ZodUndefined\";\n ZodFirstPartyTypeKind[\"ZodNull\"] = \"ZodNull\";\n ZodFirstPartyTypeKind[\"ZodAny\"] = \"ZodAny\";\n ZodFirstPartyTypeKind[\"ZodUnknown\"] = \"ZodUnknown\";\n ZodFirstPartyTypeKind[\"ZodNever\"] = \"ZodNever\";\n ZodFirstPartyTypeKind[\"ZodVoid\"] = \"ZodVoid\";\n ZodFirstPartyTypeKind[\"ZodArray\"] = \"ZodArray\";\n ZodFirstPartyTypeKind[\"ZodObject\"] = \"ZodObject\";\n ZodFirstPartyTypeKind[\"ZodUnion\"] = \"ZodUnion\";\n ZodFirstPartyTypeKind[\"ZodDiscriminatedUnion\"] = \"ZodDiscriminatedUnion\";\n ZodFirstPartyTypeKind[\"ZodIntersection\"] = \"ZodIntersection\";\n ZodFirstPartyTypeKind[\"ZodTuple\"] = \"ZodTuple\";\n ZodFirstPartyTypeKind[\"ZodRecord\"] = \"ZodRecord\";\n ZodFirstPartyTypeKind[\"ZodMap\"] = \"ZodMap\";\n ZodFirstPartyTypeKind[\"ZodSet\"] = \"ZodSet\";\n ZodFirstPartyTypeKind[\"ZodFunction\"] = \"ZodFunction\";\n ZodFirstPartyTypeKind[\"ZodLazy\"] = \"ZodLazy\";\n ZodFirstPartyTypeKind[\"ZodLiteral\"] = \"ZodLiteral\";\n ZodFirstPartyTypeKind[\"ZodEnum\"] = \"ZodEnum\";\n ZodFirstPartyTypeKind[\"ZodEffects\"] = \"ZodEffects\";\n ZodFirstPartyTypeKind[\"ZodNativeEnum\"] = \"ZodNativeEnum\";\n ZodFirstPartyTypeKind[\"ZodOptional\"] = \"ZodOptional\";\n ZodFirstPartyTypeKind[\"ZodNullable\"] = \"ZodNullable\";\n ZodFirstPartyTypeKind[\"ZodDefault\"] = \"ZodDefault\";\n ZodFirstPartyTypeKind[\"ZodCatch\"] = \"ZodCatch\";\n ZodFirstPartyTypeKind[\"ZodPromise\"] = \"ZodPromise\";\n ZodFirstPartyTypeKind[\"ZodBranded\"] = \"ZodBranded\";\n ZodFirstPartyTypeKind[\"ZodPipeline\"] = \"ZodPipeline\";\n ZodFirstPartyTypeKind[\"ZodReadonly\"] = \"ZodReadonly\";\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\nconst instanceOfType = (\n// const instanceOfType = any>(\ncls, params = {\n message: `Input not instance of ${cls.name}`,\n}) => custom((data) => data instanceof cls, params);\nconst stringType = ZodString.create;\nconst numberType = ZodNumber.create;\nconst nanType = ZodNaN.create;\nconst bigIntType = ZodBigInt.create;\nconst booleanType = ZodBoolean.create;\nconst dateType = ZodDate.create;\nconst symbolType = ZodSymbol.create;\nconst undefinedType = ZodUndefined.create;\nconst nullType = ZodNull.create;\nconst anyType = ZodAny.create;\nconst unknownType = ZodUnknown.create;\nconst neverType = ZodNever.create;\nconst voidType = ZodVoid.create;\nconst arrayType = ZodArray.create;\nconst objectType = ZodObject.create;\nconst strictObjectType = ZodObject.strictCreate;\nconst unionType = ZodUnion.create;\nconst discriminatedUnionType = ZodDiscriminatedUnion.create;\nconst intersectionType = ZodIntersection.create;\nconst tupleType = ZodTuple.create;\nconst recordType = ZodRecord.create;\nconst mapType = ZodMap.create;\nconst setType = ZodSet.create;\nconst functionType = ZodFunction.create;\nconst lazyType = ZodLazy.create;\nconst literalType = ZodLiteral.create;\nconst enumType = ZodEnum.create;\nconst nativeEnumType = ZodNativeEnum.create;\nconst promiseType = ZodPromise.create;\nconst effectsType = ZodEffects.create;\nconst optionalType = ZodOptional.create;\nconst nullableType = ZodNullable.create;\nconst preprocessType = ZodEffects.createWithPreprocess;\nconst pipelineType = ZodPipeline.create;\nconst ostring = () => stringType().optional();\nconst onumber = () => numberType().optional();\nconst oboolean = () => booleanType().optional();\nconst coerce = {\n string: ((arg) => ZodString.create({ ...arg, coerce: true })),\n number: ((arg) => ZodNumber.create({ ...arg, coerce: true })),\n boolean: ((arg) => ZodBoolean.create({\n ...arg,\n coerce: true,\n })),\n bigint: ((arg) => ZodBigInt.create({ ...arg, coerce: true })),\n date: ((arg) => ZodDate.create({ ...arg, coerce: true })),\n};\nconst NEVER = INVALID;\n\nvar z = /*#__PURE__*/Object.freeze({\n __proto__: null,\n defaultErrorMap: errorMap,\n setErrorMap: setErrorMap,\n getErrorMap: getErrorMap,\n makeIssue: makeIssue,\n EMPTY_PATH: EMPTY_PATH,\n addIssueToContext: addIssueToContext,\n ParseStatus: ParseStatus,\n INVALID: INVALID,\n DIRTY: DIRTY,\n OK: OK,\n isAborted: isAborted,\n isDirty: isDirty,\n isValid: isValid,\n isAsync: isAsync,\n get util () { return util; },\n get objectUtil () { return objectUtil; },\n ZodParsedType: ZodParsedType,\n getParsedType: getParsedType,\n ZodType: ZodType,\n ZodString: ZodString,\n ZodNumber: ZodNumber,\n ZodBigInt: ZodBigInt,\n ZodBoolean: ZodBoolean,\n ZodDate: ZodDate,\n ZodSymbol: ZodSymbol,\n ZodUndefined: ZodUndefined,\n ZodNull: ZodNull,\n ZodAny: ZodAny,\n ZodUnknown: ZodUnknown,\n ZodNever: ZodNever,\n ZodVoid: ZodVoid,\n ZodArray: ZodArray,\n ZodObject: ZodObject,\n ZodUnion: ZodUnion,\n ZodDiscriminatedUnion: ZodDiscriminatedUnion,\n ZodIntersection: ZodIntersection,\n ZodTuple: ZodTuple,\n ZodRecord: ZodRecord,\n ZodMap: ZodMap,\n ZodSet: ZodSet,\n ZodFunction: ZodFunction,\n ZodLazy: ZodLazy,\n ZodLiteral: ZodLiteral,\n ZodEnum: ZodEnum,\n ZodNativeEnum: ZodNativeEnum,\n ZodPromise: ZodPromise,\n ZodEffects: ZodEffects,\n ZodTransformer: ZodEffects,\n ZodOptional: ZodOptional,\n ZodNullable: ZodNullable,\n ZodDefault: ZodDefault,\n ZodCatch: ZodCatch,\n ZodNaN: ZodNaN,\n BRAND: BRAND,\n ZodBranded: ZodBranded,\n ZodPipeline: ZodPipeline,\n ZodReadonly: ZodReadonly,\n custom: custom,\n Schema: ZodType,\n ZodSchema: ZodType,\n late: late,\n get ZodFirstPartyTypeKind () { return ZodFirstPartyTypeKind; },\n coerce: coerce,\n any: anyType,\n array: arrayType,\n bigint: bigIntType,\n boolean: booleanType,\n date: dateType,\n discriminatedUnion: discriminatedUnionType,\n effect: effectsType,\n 'enum': enumType,\n 'function': functionType,\n 'instanceof': instanceOfType,\n intersection: intersectionType,\n lazy: lazyType,\n literal: literalType,\n map: mapType,\n nan: nanType,\n nativeEnum: nativeEnumType,\n never: neverType,\n 'null': nullType,\n nullable: nullableType,\n number: numberType,\n object: objectType,\n oboolean: oboolean,\n onumber: onumber,\n optional: optionalType,\n ostring: ostring,\n pipeline: pipelineType,\n preprocess: preprocessType,\n promise: promiseType,\n record: recordType,\n set: setType,\n strictObject: strictObjectType,\n string: stringType,\n symbol: symbolType,\n transformer: effectsType,\n tuple: tupleType,\n 'undefined': undefinedType,\n union: unionType,\n unknown: unknownType,\n 'void': voidType,\n NEVER: NEVER,\n ZodIssueCode: ZodIssueCode,\n quotelessJson: quotelessJson,\n ZodError: ZodError\n});\n\nexport { BRAND, DIRTY, EMPTY_PATH, INVALID, NEVER, OK, ParseStatus, ZodType as Schema, ZodAny, ZodArray, ZodBigInt, ZodBoolean, ZodBranded, ZodCatch, ZodDate, ZodDefault, ZodDiscriminatedUnion, ZodEffects, ZodEnum, ZodError, ZodFirstPartyTypeKind, ZodFunction, ZodIntersection, ZodIssueCode, ZodLazy, ZodLiteral, ZodMap, ZodNaN, ZodNativeEnum, ZodNever, ZodNull, ZodNullable, ZodNumber, ZodObject, ZodOptional, ZodParsedType, ZodPipeline, ZodPromise, ZodReadonly, ZodRecord, ZodType as ZodSchema, ZodSet, ZodString, ZodSymbol, ZodEffects as ZodTransformer, ZodTuple, ZodType, ZodUndefined, ZodUnion, ZodUnknown, ZodVoid, addIssueToContext, anyType as any, arrayType as array, bigIntType as bigint, booleanType as boolean, coerce, custom, dateType as date, z as default, errorMap as defaultErrorMap, discriminatedUnionType as discriminatedUnion, effectsType as effect, enumType as enum, functionType as function, getErrorMap, getParsedType, instanceOfType as instanceof, intersectionType as intersection, isAborted, isAsync, isDirty, isValid, late, lazyType as lazy, literalType as literal, makeIssue, mapType as map, nanType as nan, nativeEnumType as nativeEnum, neverType as never, nullType as null, nullableType as nullable, numberType as number, objectType as object, objectUtil, oboolean, onumber, optionalType as optional, ostring, pipelineType as pipeline, preprocessType as preprocess, promiseType as promise, quotelessJson, recordType as record, setType as set, setErrorMap, strictObjectType as strictObject, stringType as string, symbolType as symbol, effectsType as transformer, tupleType as tuple, undefinedType as undefined, unionType as union, unknownType as unknown, util, voidType as void, z };\n","import { z } from 'zod';\nimport { W3mFrameConstants } from './W3mFrameConstants.js';\nconst zError = z.object({ message: z.string() });\nfunction zType(key) {\n return z.literal(W3mFrameConstants[key]);\n}\nexport const GetTransactionByHashResponse = z.object({\n accessList: z.array(z.string()),\n blockHash: z.string().nullable(),\n blockNumber: z.string().nullable(),\n chainId: z.string(),\n from: z.string(),\n gas: z.string(),\n hash: z.string(),\n input: z.string().nullable(),\n maxFeePerGas: z.string(),\n maxPriorityFeePerGas: z.string(),\n nonce: z.string(),\n r: z.string(),\n s: z.string(),\n to: z.string(),\n transactionIndex: z.string().nullable(),\n type: z.string(),\n v: z.string(),\n value: z.string()\n});\nexport const AppSwitchNetworkRequest = z.object({ chainId: z.number() });\nexport const AppConnectEmailRequest = z.object({ email: z.string().email() });\nexport const AppConnectOtpRequest = z.object({ otp: z.string() });\nexport const AppConnectSocialRequest = z.object({ uri: z.string() });\nexport const AppGetUserRequest = z.object({\n chainId: z.optional(z.number()),\n preferredAccountType: z.optional(z.string())\n});\nexport const AppGetSocialRedirectUriRequest = z.object({\n provider: z.enum(['google', 'github', 'apple', 'facebook', 'x', 'discord'])\n});\nexport const AppUpdateEmailRequest = z.object({ email: z.string().email() });\nexport const AppUpdateEmailPrimaryOtpRequest = z.object({ otp: z.string() });\nexport const AppUpdateEmailSecondaryOtpRequest = z.object({ otp: z.string() });\nexport const AppSyncThemeRequest = z.object({\n themeMode: z.optional(z.enum(['light', 'dark'])),\n themeVariables: z.optional(z.record(z.string(), z.string().or(z.number()))),\n w3mThemeVariables: z.optional(z.record(z.string(), z.string()))\n});\nexport const AppSyncDappDataRequest = z.object({\n metadata: z\n .object({\n name: z.string(),\n description: z.string(),\n url: z.string(),\n icons: z.array(z.string())\n })\n .optional(),\n sdkVersion: z.string(),\n projectId: z.string()\n});\nexport const AppSetPreferredAccountRequest = z.object({ type: z.string() });\nexport const FrameConnectEmailResponse = z.object({\n action: z.enum(['VERIFY_DEVICE', 'VERIFY_OTP'])\n});\nexport const FrameConnectSocialResponse = z.object({\n email: z.string(),\n address: z.string(),\n chainId: z.number(),\n userName: z.string().optional()\n});\nexport const FrameUpdateEmailResponse = z.object({\n action: z.enum(['VERIFY_PRIMARY_OTP', 'VERIFY_SECONDARY_OTP'])\n});\nexport const FrameGetUserResponse = z.object({\n email: z.string().email(),\n address: z.string(),\n chainId: z.number(),\n smartAccountDeployed: z.optional(z.boolean()),\n preferredAccountType: z.optional(z.string())\n});\nexport const FrameGetSocialRedirectUriResponse = z.object({ uri: z.string() });\nexport const FrameIsConnectedResponse = z.object({ isConnected: z.boolean() });\nexport const FrameGetChainIdResponse = z.object({ chainId: z.number() });\nexport const FrameSwitchNetworkResponse = z.object({ chainId: z.number() });\nexport const FrameUpdateEmailSecondaryOtpResolver = z.object({ newEmail: z.string().email() });\nexport const FrameGetSmartAccountEnabledNetworksResponse = z.object({\n smartAccountEnabledNetworks: z.array(z.number())\n});\nexport const FrameInitSmartAccountResponse = z.object({\n address: z.string(),\n isDeployed: z.boolean()\n});\nexport const FrameSetPreferredAccountResponse = z.object({ type: z.string(), address: z.string() });\nexport const RpcResponse = z.any();\nexport const RpcEthAccountsRequest = z.object({\n method: z.literal('eth_accounts')\n});\nexport const RpcEthBlockNumber = z.object({\n method: z.literal('eth_blockNumber')\n});\nexport const RpcEthCall = z.object({\n method: z.literal('eth_call'),\n params: z.array(z.any())\n});\nexport const RpcEthChainId = z.object({\n method: z.literal('eth_chainId')\n});\nexport const RpcEthEstimateGas = z.object({\n method: z.literal('eth_estimateGas'),\n params: z.array(z.any())\n});\nexport const RpcEthFeeHistory = z.object({\n method: z.literal('eth_feeHistory'),\n params: z.array(z.any())\n});\nexport const RpcEthGasPrice = z.object({\n method: z.literal('eth_gasPrice')\n});\nexport const RpcEthGetAccount = z.object({\n method: z.literal('eth_getAccount'),\n params: z.array(z.any())\n});\nexport const RpcEthGetBalance = z.object({\n method: z.literal('eth_getBalance'),\n params: z.array(z.any())\n});\nexport const RpcEthGetBlockyByHash = z.object({\n method: z.literal('eth_getBlockByHash'),\n params: z.array(z.any())\n});\nexport const RpcEthGetBlockByNumber = z.object({\n method: z.literal('eth_getBlockByNumber'),\n params: z.array(z.any())\n});\nexport const RpcEthGetBlockReceipts = z.object({\n method: z.literal('eth_getBlockReceipts'),\n params: z.array(z.any())\n});\nexport const RcpEthGetBlockTransactionCountByHash = z.object({\n method: z.literal('eth_getBlockTransactionCountByHash'),\n params: z.array(z.any())\n});\nexport const RcpEthGetBlockTransactionCountByNumber = z.object({\n method: z.literal('eth_getBlockTransactionCountByNumber'),\n params: z.array(z.any())\n});\nexport const RpcEthGetCode = z.object({\n method: z.literal('eth_getCode'),\n params: z.array(z.any())\n});\nexport const RpcEthGetFilter = z.object({\n method: z.literal('eth_getFilterChanges'),\n params: z.array(z.any())\n});\nexport const RpcEthGetFilterLogs = z.object({\n method: z.literal('eth_getFilterLogs'),\n params: z.array(z.any())\n});\nexport const RpcEthGetLogs = z.object({\n method: z.literal('eth_getLogs'),\n params: z.array(z.any())\n});\nexport const RpcEthGetProof = z.object({\n method: z.literal('eth_getProof'),\n params: z.array(z.any())\n});\nexport const RpcEthGetStorageAt = z.object({\n method: z.literal('eth_getStorageAt'),\n params: z.array(z.any())\n});\nexport const RpcEthGetTransactionByBlockHashAndIndex = z.object({\n method: z.literal('eth_getTransactionByBlockHashAndIndex'),\n params: z.array(z.any())\n});\nexport const RpcEthGetTransactionByBlockNumberAndIndex = z.object({\n method: z.literal('eth_getTransactionByBlockNumberAndIndex'),\n params: z.array(z.any())\n});\nexport const RpcEthGetTransactionByHash = z.object({\n method: z.literal('eth_getTransactionByHash'),\n params: z.array(z.any())\n});\nexport const RpcEthGetTransactionCount = z.object({\n method: z.literal('eth_getTransactionCount'),\n params: z.array(z.any())\n});\nexport const RpcEthGetTransactionReceipt = z.object({\n method: z.literal('eth_getTransactionReceipt'),\n params: z.array(z.any())\n});\nexport const RpcEthGetUncleCountByBlockHash = z.object({\n method: z.literal('eth_getUncleCountByBlockHash'),\n params: z.array(z.any())\n});\nexport const RpcEthGetUncleCountByBlockNumber = z.object({\n method: z.literal('eth_getUncleCountByBlockNumber'),\n params: z.array(z.any())\n});\nexport const RpcEthMaxPriorityFeePerGas = z.object({\n method: z.literal('eth_maxPriorityFeePerGas')\n});\nexport const RpcEthNewBlockFilter = z.object({\n method: z.literal('eth_newBlockFilter')\n});\nexport const RpcEthNewFilter = z.object({\n method: z.literal('eth_newFilter'),\n params: z.array(z.any())\n});\nexport const RpcEthNewPendingTransactionFilter = z.object({\n method: z.literal('eth_newPendingTransactionFilter')\n});\nexport const RpcEthSendRawTransaction = z.object({\n method: z.literal('eth_sendRawTransaction'),\n params: z.array(z.any())\n});\nexport const RpcEthSyncing = z.object({\n method: z.literal('eth_syncing'),\n params: z.array(z.any())\n});\nexport const RpcUnistallFilter = z.object({\n method: z.literal('eth_uninstallFilter'),\n params: z.array(z.any())\n});\nexport const RpcPersonalSignRequest = z.object({\n method: z.literal('personal_sign'),\n params: z.array(z.any())\n});\nexport const RpcEthSignTypedDataV4 = z.object({\n method: z.literal('eth_signTypedData_v4'),\n params: z.array(z.any())\n});\nexport const RpcEthSendTransactionRequest = z.object({\n method: z.literal('eth_sendTransaction'),\n params: z.array(z.any())\n});\nexport const FrameSession = z.object({\n token: z.string()\n});\nexport const W3mFrameSchema = {\n appEvent: z\n .object({ type: zType('APP_SWITCH_NETWORK'), payload: AppSwitchNetworkRequest })\n .or(z.object({ type: zType('APP_CONNECT_EMAIL'), payload: AppConnectEmailRequest }))\n .or(z.object({ type: zType('APP_CONNECT_DEVICE') }))\n .or(z.object({ type: zType('APP_CONNECT_OTP'), payload: AppConnectOtpRequest }))\n .or(z.object({ type: zType('APP_CONNECT_SOCIAL'), payload: AppConnectSocialRequest }))\n .or(z.object({ type: zType('APP_GET_USER'), payload: z.optional(AppGetUserRequest) }))\n .or(z.object({\n type: zType('APP_GET_SOCIAL_REDIRECT_URI'),\n payload: AppGetSocialRedirectUriRequest\n }))\n .or(z.object({ type: zType('APP_SIGN_OUT') }))\n .or(z.object({ type: zType('APP_IS_CONNECTED'), payload: z.optional(FrameSession) }))\n .or(z.object({ type: zType('APP_GET_CHAIN_ID') }))\n .or(z.object({ type: zType('APP_GET_SMART_ACCOUNT_ENABLED_NETWORKS') }))\n .or(z.object({ type: zType('APP_INIT_SMART_ACCOUNT') }))\n .or(z.object({ type: zType('APP_SET_PREFERRED_ACCOUNT'), payload: AppSetPreferredAccountRequest }))\n .or(z.object({\n type: zType('APP_RPC_REQUEST'),\n payload: RpcPersonalSignRequest.or(RpcEthSendTransactionRequest)\n .or(RpcEthAccountsRequest)\n .or(RpcEthBlockNumber)\n .or(RpcEthCall)\n .or(RpcEthChainId)\n .or(RpcEthEstimateGas)\n .or(RpcEthFeeHistory)\n .or(RpcEthGasPrice)\n .or(RpcEthGetAccount)\n .or(RpcEthGetBalance)\n .or(RpcEthGetBlockyByHash)\n .or(RpcEthGetBlockByNumber)\n .or(RpcEthGetBlockReceipts)\n .or(RcpEthGetBlockTransactionCountByHash)\n .or(RcpEthGetBlockTransactionCountByNumber)\n .or(RpcEthGetCode)\n .or(RpcEthGetFilter)\n .or(RpcEthGetFilterLogs)\n .or(RpcEthGetLogs)\n .or(RpcEthGetProof)\n .or(RpcEthGetStorageAt)\n .or(RpcEthGetTransactionByBlockHashAndIndex)\n .or(RpcEthGetTransactionByBlockNumberAndIndex)\n .or(RpcEthGetTransactionByHash)\n .or(RpcEthGetTransactionCount)\n .or(RpcEthGetTransactionReceipt)\n .or(RpcEthGetUncleCountByBlockHash)\n .or(RpcEthGetUncleCountByBlockNumber)\n .or(RpcEthMaxPriorityFeePerGas)\n .or(RpcEthNewBlockFilter)\n .or(RpcEthNewFilter)\n .or(RpcEthNewPendingTransactionFilter)\n .or(RpcEthSendRawTransaction)\n .or(RpcEthSyncing)\n .or(RpcUnistallFilter)\n .or(RpcPersonalSignRequest)\n .or(RpcEthSignTypedDataV4)\n .or(RpcEthSendTransactionRequest)\n }))\n .or(z.object({ type: zType('APP_UPDATE_EMAIL'), payload: AppUpdateEmailRequest }))\n .or(z.object({\n type: zType('APP_UPDATE_EMAIL_PRIMARY_OTP'),\n payload: AppUpdateEmailPrimaryOtpRequest\n }))\n .or(z.object({\n type: zType('APP_UPDATE_EMAIL_SECONDARY_OTP'),\n payload: AppUpdateEmailSecondaryOtpRequest\n }))\n .or(z.object({ type: zType('APP_SYNC_THEME'), payload: AppSyncThemeRequest }))\n .or(z.object({ type: zType('APP_SYNC_DAPP_DATA'), payload: AppSyncDappDataRequest })),\n frameEvent: z\n .object({ type: zType('FRAME_SWITCH_NETWORK_ERROR'), payload: zError })\n .or(z.object({ type: zType('FRAME_SWITCH_NETWORK_SUCCESS'), payload: FrameSwitchNetworkResponse }))\n .or(z.object({ type: zType('FRAME_CONNECT_EMAIL_ERROR'), payload: zError }))\n .or(z.object({ type: zType('FRAME_CONNECT_EMAIL_SUCCESS'), payload: FrameConnectEmailResponse }))\n .or(z.object({ type: zType('FRAME_CONNECT_OTP_ERROR'), payload: zError }))\n .or(z.object({ type: zType('FRAME_CONNECT_OTP_SUCCESS') }))\n .or(z.object({ type: zType('FRAME_CONNECT_DEVICE_ERROR'), payload: zError }))\n .or(z.object({ type: zType('FRAME_CONNECT_DEVICE_SUCCESS') }))\n .or(z.object({\n type: zType('FRAME_CONNECT_SOCIAL_SUCCESS'),\n payload: FrameConnectSocialResponse\n }))\n .or(z.object({\n type: zType('FRAME_CONNECT_SOCIAL_ERROR'),\n payload: zError\n }))\n .or(z.object({ type: zType('FRAME_GET_USER_ERROR'), payload: zError }))\n .or(z.object({ type: zType('FRAME_GET_USER_SUCCESS'), payload: FrameGetUserResponse }))\n .or(z.object({ type: zType('FRAME_GET_SOCIAL_REDIRECT_URI_ERROR'), payload: zError }))\n .or(z.object({\n type: zType('FRAME_GET_SOCIAL_REDIRECT_URI_SUCCESS'),\n payload: FrameGetSocialRedirectUriResponse\n }))\n .or(z.object({ type: zType('FRAME_SIGN_OUT_ERROR'), payload: zError }))\n .or(z.object({ type: zType('FRAME_SIGN_OUT_SUCCESS') }))\n .or(z.object({ type: zType('FRAME_IS_CONNECTED_ERROR'), payload: zError }))\n .or(z.object({ type: zType('FRAME_IS_CONNECTED_SUCCESS'), payload: FrameIsConnectedResponse }))\n .or(z.object({ type: zType('FRAME_GET_CHAIN_ID_ERROR'), payload: zError }))\n .or(z.object({ type: zType('FRAME_GET_CHAIN_ID_SUCCESS'), payload: FrameGetChainIdResponse }))\n .or(z.object({ type: zType('FRAME_RPC_REQUEST_ERROR'), payload: zError }))\n .or(z.object({ type: zType('FRAME_RPC_REQUEST_SUCCESS'), payload: RpcResponse }))\n .or(z.object({ type: zType('FRAME_SESSION_UPDATE'), payload: FrameSession }))\n .or(z.object({ type: zType('FRAME_UPDATE_EMAIL_ERROR'), payload: zError }))\n .or(z.object({ type: zType('FRAME_UPDATE_EMAIL_SUCCESS'), payload: FrameUpdateEmailResponse }))\n .or(z.object({ type: zType('FRAME_UPDATE_EMAIL_PRIMARY_OTP_ERROR'), payload: zError }))\n .or(z.object({ type: zType('FRAME_UPDATE_EMAIL_PRIMARY_OTP_SUCCESS') }))\n .or(z.object({ type: zType('FRAME_UPDATE_EMAIL_SECONDARY_OTP_ERROR'), payload: zError }))\n .or(z.object({\n type: zType('FRAME_UPDATE_EMAIL_SECONDARY_OTP_SUCCESS'),\n payload: FrameUpdateEmailSecondaryOtpResolver\n }))\n .or(z.object({ type: zType('FRAME_SYNC_THEME_ERROR'), payload: zError }))\n .or(z.object({ type: zType('FRAME_SYNC_THEME_SUCCESS') }))\n .or(z.object({ type: zType('FRAME_SYNC_DAPP_DATA_ERROR'), payload: zError }))\n .or(z.object({ type: zType('FRAME_SYNC_DAPP_DATA_SUCCESS') }))\n .or(z.object({\n type: zType('FRAME_GET_SMART_ACCOUNT_ENABLED_NETWORKS_SUCCESS'),\n payload: FrameGetSmartAccountEnabledNetworksResponse\n }))\n .or(z.object({\n type: zType('FRAME_GET_SMART_ACCOUNT_ENABLED_NETWORKS_ERROR'),\n payload: zError\n }))\n .or(z.object({ type: zType('FRAME_INIT_SMART_ACCOUNT_ERROR'), payload: zError }))\n .or(z.object({\n type: zType('FRAME_SET_PREFERRED_ACCOUNT_SUCCESS'),\n payload: FrameSetPreferredAccountResponse\n }))\n .or(z.object({ type: zType('FRAME_SET_PREFERRED_ACCOUNT_ERROR'), payload: zError }))\n};\n//# sourceMappingURL=W3mFrameSchema.js.map","import { W3mFrameConstants } from './W3mFrameConstants.js';\nimport { W3mFrameHelpers } from './W3mFrameHelpers.js';\nexport const W3mFrameStorage = {\n set(key, value) {\n if (W3mFrameHelpers.isClient) {\n localStorage.setItem(`${W3mFrameConstants.STORAGE_KEY}${key}`, value);\n }\n },\n get(key) {\n if (W3mFrameHelpers.isClient) {\n return localStorage.getItem(`${W3mFrameConstants.STORAGE_KEY}${key}`);\n }\n return null;\n },\n delete(key, social) {\n if (W3mFrameHelpers.isClient) {\n if (social) {\n localStorage.removeItem(key);\n }\n else {\n localStorage.removeItem(`${W3mFrameConstants.STORAGE_KEY}${key}`);\n }\n }\n }\n};\n//# sourceMappingURL=W3mFrameStorage.js.map","export const RegexUtil = {\n address: /^0x(?:[A-Fa-f0-9]{40})$/u,\n transactionHash: /^0x(?:[A-Fa-f0-9]{64})$/u,\n signedMessage: /^0x(?:[a-fA-F0-9]{62,})$/u\n};\n//# sourceMappingURL=RegexUtil.js.map","import { W3mFrameStorage } from './W3mFrameStorage.js';\nimport { W3mFrameConstants, W3mFrameRpcConstants } from './W3mFrameConstants.js';\nimport { RegexUtil } from './RegexUtil.js';\nconst RESTRICTED_TIMEZONES = [\n 'ASIA/SHANGHAI',\n 'ASIA/URUMQI',\n 'ASIA/CHONGQING',\n 'ASIA/HARBIN',\n 'ASIA/KASHGAR',\n 'ASIA/MACAU',\n 'ASIA/HONG_KONG',\n 'ASIA/MACAO',\n 'ASIA/BEIJING',\n 'ASIA/HARBIN'\n];\nconst EMAIL_MINIMUM_TIMEOUT = 30 * 1000;\nexport const W3mFrameHelpers = {\n getBlockchainApiUrl() {\n try {\n const { timeZone } = new Intl.DateTimeFormat().resolvedOptions();\n const capTimeZone = timeZone.toUpperCase();\n return RESTRICTED_TIMEZONES.includes(capTimeZone)\n ? 'https://rpc.walletconnect.org'\n : 'https://rpc.walletconnect.com';\n }\n catch {\n return false;\n }\n },\n checkIfAllowedToTriggerEmail() {\n const lastEmailLoginTime = W3mFrameStorage.get(W3mFrameConstants.LAST_EMAIL_LOGIN_TIME);\n if (lastEmailLoginTime) {\n const difference = Date.now() - Number(lastEmailLoginTime);\n if (difference < EMAIL_MINIMUM_TIMEOUT) {\n const cooldownSec = Math.ceil((EMAIL_MINIMUM_TIMEOUT - difference) / 1000);\n throw new Error(`Please try again after ${cooldownSec} seconds`);\n }\n }\n },\n getTimeToNextEmailLogin() {\n const lastEmailLoginTime = W3mFrameStorage.get(W3mFrameConstants.LAST_EMAIL_LOGIN_TIME);\n if (lastEmailLoginTime) {\n const difference = Date.now() - Number(lastEmailLoginTime);\n if (difference < EMAIL_MINIMUM_TIMEOUT) {\n return Math.ceil((EMAIL_MINIMUM_TIMEOUT - difference) / 1000);\n }\n }\n return 0;\n },\n checkIfRequestExists(request) {\n const method = this.getRequestMethod(request);\n return (W3mFrameRpcConstants.NOT_SAFE_RPC_METHODS.includes(method) ||\n W3mFrameRpcConstants.SAFE_RPC_METHODS.includes(method));\n },\n getRequestMethod(request) {\n return request?.payload?.method;\n },\n getResponseType(response) {\n const { type, payload } = response;\n const isError = type === W3mFrameConstants.FRAME_RPC_REQUEST_ERROR;\n if (isError) {\n return W3mFrameConstants.RPC_RESPONSE_TYPE_ERROR;\n }\n const isPayloadString = typeof payload === 'string';\n const isTransactionHash = isPayloadString &&\n (payload.match(RegexUtil.transactionHash) || payload.match(RegexUtil.signedMessage));\n if (isTransactionHash) {\n return W3mFrameConstants.RPC_RESPONSE_TYPE_TX;\n }\n return W3mFrameConstants.RPC_RESPONSE_TYPE_OBJECT;\n },\n checkIfRequestIsAllowed(request) {\n const method = this.getRequestMethod(request);\n return W3mFrameRpcConstants.SAFE_RPC_METHODS.includes(method);\n },\n isClient: typeof window !== 'undefined'\n};\n//# sourceMappingURL=W3mFrameHelpers.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { AccountController, ConnectionController, AssetController, CoreHelperUtil, EventsController, ModalController, NetworkController, RouterController, SnackController, StorageUtil, ConnectorController, SendController, EnsController } from '@web3modal/core';\nimport { UiHelperUtil, customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport styles from './styles.js';\nimport { W3mFrameRpcConstants } from '@web3modal/wallet';\nlet W3mAccountSettingsView = class W3mAccountSettingsView extends LitElement {\n constructor() {\n super();\n this.usubscribe = [];\n this.networkImages = AssetController.state.networkImages;\n this.address = AccountController.state.address;\n this.profileImage = AccountController.state.profileImage;\n this.profileName = AccountController.state.profileName;\n this.network = NetworkController.state.caipNetwork;\n this.preferredAccountType = AccountController.state.preferredAccountType;\n this.disconnecting = false;\n this.loading = false;\n this.switched = false;\n this.text = '';\n this.usubscribe.push(...[\n AccountController.subscribe(val => {\n if (val.address) {\n this.address = val.address;\n this.profileImage = val.profileImage;\n this.profileName = val.profileName;\n this.preferredAccountType = val.preferredAccountType;\n }\n else {\n ModalController.close();\n }\n }),\n NetworkController.subscribeKey('caipNetwork', val => {\n if (val?.id) {\n this.network = val;\n }\n })\n ]);\n }\n disconnectedCallback() {\n this.usubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n if (!this.address) {\n throw new Error('w3m-account-settings-view: No account provided');\n }\n const networkImage = this.networkImages[this.network?.imageId ?? ''];\n return html `\n \n \n \n \n \n ${UiHelperUtil.getTruncateString({\n string: this.address,\n charsStart: 4,\n charsEnd: 6,\n truncate: 'middle'\n })}\n \n \n \n \n \n\n \n \n \n \n \n ${this.network?.name ?? 'Unknown'}\n \n \n ${this.togglePreferredAccountBtnTemplate()} ${this.chooseNameButtonTemplate()}\n \n Disconnect\n \n \n \n `;\n }\n chooseNameButtonTemplate() {\n const type = StorageUtil.getConnectedConnector();\n const authConnector = ConnectorController.getAuthConnector();\n const isAllowed = EnsController.isAllowedToRegisterName();\n if (!authConnector || type !== 'AUTH' || this.profileName || !isAllowed) {\n return null;\n }\n return html `\n \n Choose account name \n \n `;\n }\n isAllowedNetworkSwitch() {\n const { requestedCaipNetworks } = NetworkController.state;\n const isMultiNetwork = requestedCaipNetworks ? requestedCaipNetworks.length > 1 : false;\n const isValidNetwork = requestedCaipNetworks?.find(({ id }) => id === this.network?.id);\n return isMultiNetwork || !isValidNetwork;\n }\n onCopyAddress() {\n try {\n if (this.address) {\n CoreHelperUtil.copyToClopboard(this.address);\n SnackController.showSuccess('Address copied');\n }\n }\n catch {\n SnackController.showError('Failed to copy');\n }\n }\n togglePreferredAccountBtnTemplate() {\n const networkEnabled = NetworkController.checkIfSmartAccountEnabled();\n const type = StorageUtil.getConnectedConnector();\n const authConnector = ConnectorController.getAuthConnector();\n if (!authConnector || type !== 'AUTH' || !networkEnabled) {\n return null;\n }\n if (!this.switched) {\n this.text =\n this.preferredAccountType === W3mFrameRpcConstants.ACCOUNT_TYPES.SMART_ACCOUNT\n ? 'Switch to your EOA'\n : 'Switch to your smart account';\n }\n return html `\n \n ${this.text}\n \n `;\n }\n onChooseName() {\n RouterController.push('ChooseAccountName');\n }\n async changePreferredAccountType() {\n const smartAccountEnabled = NetworkController.checkIfSmartAccountEnabled();\n const accountTypeTarget = this.preferredAccountType === W3mFrameRpcConstants.ACCOUNT_TYPES.SMART_ACCOUNT ||\n !smartAccountEnabled\n ? W3mFrameRpcConstants.ACCOUNT_TYPES.EOA\n : W3mFrameRpcConstants.ACCOUNT_TYPES.SMART_ACCOUNT;\n const authConnector = ConnectorController.getAuthConnector();\n if (!authConnector) {\n return;\n }\n this.loading = true;\n ModalController.setLoading(true);\n await authConnector?.provider.setPreferredAccount(accountTypeTarget);\n await ConnectionController.reconnectExternal(authConnector);\n ModalController.setLoading(false);\n this.text =\n accountTypeTarget === W3mFrameRpcConstants.ACCOUNT_TYPES.SMART_ACCOUNT\n ? 'Switch to your EOA'\n : 'Switch to your smart account';\n this.switched = true;\n SendController.resetSend();\n this.loading = false;\n this.requestUpdate();\n }\n onNetworks() {\n if (this.isAllowedNetworkSwitch()) {\n RouterController.push('Networks');\n }\n }\n async onDisconnect() {\n try {\n this.disconnecting = true;\n await ConnectionController.disconnect();\n EventsController.sendEvent({ type: 'track', event: 'DISCONNECT_SUCCESS' });\n ModalController.close();\n }\n catch {\n EventsController.sendEvent({ type: 'track', event: 'DISCONNECT_ERROR' });\n SnackController.showError('Failed to disconnect');\n }\n finally {\n this.disconnecting = false;\n }\n }\n};\nW3mAccountSettingsView.styles = styles;\n__decorate([\n state()\n], W3mAccountSettingsView.prototype, \"address\", void 0);\n__decorate([\n state()\n], W3mAccountSettingsView.prototype, \"profileImage\", void 0);\n__decorate([\n state()\n], W3mAccountSettingsView.prototype, \"profileName\", void 0);\n__decorate([\n state()\n], W3mAccountSettingsView.prototype, \"network\", void 0);\n__decorate([\n state()\n], W3mAccountSettingsView.prototype, \"preferredAccountType\", void 0);\n__decorate([\n state()\n], W3mAccountSettingsView.prototype, \"disconnecting\", void 0);\n__decorate([\n state()\n], W3mAccountSettingsView.prototype, \"loading\", void 0);\n__decorate([\n state()\n], W3mAccountSettingsView.prototype, \"switched\", void 0);\n__decorate([\n state()\n], W3mAccountSettingsView.prototype, \"text\", void 0);\nW3mAccountSettingsView = __decorate([\n customElement('w3m-account-settings-view')\n], W3mAccountSettingsView);\nexport { W3mAccountSettingsView };\n//# sourceMappingURL=index.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { OptionsController, StorageUtil } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nlet W3mAccountView = class W3mAccountView extends LitElement {\n render() {\n const type = StorageUtil.getConnectedConnector();\n return html `\n ${OptionsController.state.enableWalletFeatures && type === 'AUTH'\n ? this.walletFeaturesTemplate()\n : this.defaultTemplate()}\n `;\n }\n walletFeaturesTemplate() {\n return html ``;\n }\n defaultTemplate() {\n return html ``;\n }\n};\nW3mAccountView = __decorate([\n customElement('w3m-account-view')\n], W3mAccountView);\nexport { W3mAccountView };\n//# sourceMappingURL=index.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CoreHelperUtil, RouterController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nlet W3mAllWalletsView = class W3mAllWalletsView extends LitElement {\n constructor() {\n super(...arguments);\n this.search = '';\n this.onDebouncedSearch = CoreHelperUtil.debounce((value) => {\n this.search = value;\n });\n }\n render() {\n const isSearch = this.search.length >= 2;\n return html `\n \n \n ${this.qrButtonTemplate()}\n \n ${isSearch\n ? html ``\n : html ``}\n `;\n }\n onInputChange(event) {\n this.onDebouncedSearch(event.detail);\n }\n qrButtonTemplate() {\n if (CoreHelperUtil.isMobile()) {\n return html `\n \n `;\n }\n return null;\n }\n onWalletConnectQr() {\n RouterController.push('ConnectingWalletConnect');\n }\n};\n__decorate([\n state()\n], W3mAllWalletsView.prototype, \"search\", void 0);\nW3mAllWalletsView = __decorate([\n customElement('w3m-all-wallets-view')\n], W3mAllWalletsView);\nexport { W3mAllWalletsView };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n @keyframes shake {\n 0% {\n transform: translateX(0);\n }\n 25% {\n transform: translateX(3px);\n }\n 50% {\n transform: translateX(-3px);\n }\n 75% {\n transform: translateX(3px);\n }\n 100% {\n transform: translateX(0);\n }\n }\n\n wui-flex:first-child:not(:only-child) {\n position: relative;\n }\n\n wui-loading-thumbnail {\n position: absolute;\n }\n\n wui-visual {\n width: var(--wui-wallet-image-size-lg);\n height: var(--wui-wallet-image-size-lg);\n border-radius: calc(var(--wui-border-radius-5xs) * 9 - var(--wui-border-radius-xxs));\n position: relative;\n overflow: hidden;\n }\n\n wui-visual::after {\n content: '';\n display: block;\n width: 100%;\n height: 100%;\n position: absolute;\n inset: 0;\n border-radius: calc(var(--wui-border-radius-5xs) * 9 - var(--wui-border-radius-xxs));\n box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-005);\n }\n\n wui-icon-box {\n position: absolute;\n right: calc(var(--wui-spacing-3xs) * -1);\n bottom: calc(var(--wui-spacing-3xs) * -1);\n opacity: 0;\n transform: scale(0.5);\n transition:\n opacity var(--wui-ease-out-power-2) var(--wui-duration-lg),\n transform var(--wui-ease-out-power-2) var(--wui-duration-lg);\n will-change: opacity, transform;\n }\n\n wui-text[align='center'] {\n width: 100%;\n padding: 0px var(--wui-spacing-l);\n }\n\n [data-error='true'] wui-icon-box {\n opacity: 1;\n transform: scale(1);\n }\n\n [data-error='true'] > wui-flex:first-child {\n animation: shake 250ms cubic-bezier(0.36, 0.07, 0.19, 0.97) both;\n }\n\n [data-retry='false'] wui-link {\n display: none;\n }\n\n [data-retry='true'] wui-link {\n display: block;\n opacity: 1;\n }\n\n wui-link {\n padding: var(--wui-spacing-4xs) var(--wui-spacing-xxs);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { AccountController, ConnectionController, CoreHelperUtil, OnRampController, RouterController, SnackController, ThemeController, BlockchainApiController, OptionsController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport styles from './styles.js';\nlet W3mBuyInProgressView = class W3mBuyInProgressView extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.selectedOnRampProvider = OnRampController.state.selectedProvider;\n this.uri = ConnectionController.state.wcUri;\n this.ready = false;\n this.showRetry = false;\n this.buffering = false;\n this.error = false;\n this.startTime = null;\n this.isMobile = false;\n this.onRetry = undefined;\n this.unsubscribe.push(...[\n OnRampController.subscribeKey('selectedProvider', val => {\n this.selectedOnRampProvider = val;\n })\n ]);\n this.watchTransactions();\n }\n disconnectedCallback() {\n if (this.intervalId) {\n clearInterval(this.intervalId);\n }\n }\n render() {\n let label = 'Continue in external window';\n if (this.error) {\n label = 'Buy failed';\n }\n else if (this.selectedOnRampProvider) {\n label = `Buy in ${this.selectedOnRampProvider?.label}`;\n }\n const subLabel = this.error\n ? 'Buy can be declined from your side or due to and error on the provider app'\n : `We’ll notify you once your Buy is processed`;\n return html `\n \n \n \n \n\n ${this.error ? null : this.loaderTemplate()}\n\n \n \n\n \n \n ${label}\n \n ${subLabel}\n \n\n ${this.error ? this.tryAgainTemplate() : null}\n \n\n \n \n \n Copy link\n \n \n `;\n }\n watchTransactions() {\n if (!this.selectedOnRampProvider) {\n return;\n }\n switch (this.selectedOnRampProvider.name) {\n case 'coinbase':\n this.startTime = Date.now();\n this.initializeCoinbaseTransactions();\n break;\n default:\n break;\n }\n }\n async initializeCoinbaseTransactions() {\n await this.watchCoinbaseTransactions();\n this.intervalId = setInterval(() => this.watchCoinbaseTransactions(), 4000);\n }\n async watchCoinbaseTransactions() {\n try {\n const address = AccountController.state.address;\n const projectId = OptionsController.state.projectId;\n if (!address) {\n throw new Error('No address found');\n }\n const coinbaseResponse = await BlockchainApiController.fetchTransactions({\n account: address,\n onramp: 'coinbase',\n projectId\n });\n const newTransactions = coinbaseResponse.data.filter(tx => new Date(tx.metadata.minedAt) > new Date(this.startTime) ||\n tx.metadata.status === 'ONRAMP_TRANSACTION_STATUS_IN_PROGRESS');\n if (newTransactions.length) {\n clearInterval(this.intervalId);\n RouterController.replace('OnRampActivity');\n }\n else if (this.startTime && Date.now() - this.startTime >= 180000) {\n clearInterval(this.intervalId);\n this.error = true;\n }\n }\n catch (error) {\n SnackController.showError(error);\n }\n }\n onTryAgain() {\n if (!this.selectedOnRampProvider) {\n return;\n }\n this.error = false;\n CoreHelperUtil.openHref(this.selectedOnRampProvider.url, 'popupWindow', 'width=600,height=800,scrollbars=yes');\n }\n tryAgainTemplate() {\n if (!this.selectedOnRampProvider?.url) {\n return null;\n }\n return html `\n \n Try again\n `;\n }\n loaderTemplate() {\n const borderRadiusMaster = ThemeController.state.themeVariables['--w3m-border-radius-master'];\n const radius = borderRadiusMaster ? parseInt(borderRadiusMaster.replace('px', ''), 10) : 4;\n return html ``;\n }\n onCopyUri() {\n if (!this.selectedOnRampProvider?.url) {\n SnackController.showError('No link found');\n RouterController.goBack();\n return;\n }\n try {\n CoreHelperUtil.copyToClopboard(this.selectedOnRampProvider.url);\n SnackController.showSuccess('Link copied');\n }\n catch {\n SnackController.showError('Failed to copy');\n }\n }\n};\nW3mBuyInProgressView.styles = styles;\n__decorate([\n state()\n], W3mBuyInProgressView.prototype, \"intervalId\", void 0);\n__decorate([\n state()\n], W3mBuyInProgressView.prototype, \"selectedOnRampProvider\", void 0);\n__decorate([\n state()\n], W3mBuyInProgressView.prototype, \"uri\", void 0);\n__decorate([\n state()\n], W3mBuyInProgressView.prototype, \"ready\", void 0);\n__decorate([\n state()\n], W3mBuyInProgressView.prototype, \"showRetry\", void 0);\n__decorate([\n state()\n], W3mBuyInProgressView.prototype, \"buffering\", void 0);\n__decorate([\n state()\n], W3mBuyInProgressView.prototype, \"error\", void 0);\n__decorate([\n state()\n], W3mBuyInProgressView.prototype, \"startTime\", void 0);\n__decorate([\n property({ type: Boolean })\n], W3mBuyInProgressView.prototype, \"isMobile\", void 0);\n__decorate([\n property()\n], W3mBuyInProgressView.prototype, \"onRetry\", void 0);\nW3mBuyInProgressView = __decorate([\n customElement('w3m-buy-in-progress-view')\n], W3mBuyInProgressView);\nexport { W3mBuyInProgressView };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host > wui-flex {\n max-height: clamp(360px, 540px, 80vh);\n scrollbar-width: none;\n overflow-y: scroll;\n overflow-x: hidden;\n }\n\n :host > wui-flex::-webkit-scrollbar {\n display: none;\n }\n\n .all-wallets {\n flex-flow: column;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport styles from './styles.js';\nimport { ConnectorController, RouterController } from '@web3modal/core';\nimport { state } from 'lit/decorators/state.js';\nlet W3mConnectView = class W3mConnectView extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.connectors = ConnectorController.state.connectors;\n this.unsubscribe.push(ConnectorController.subscribeKey('connectors', val => (this.connectors = val)));\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n return html `\n \n \n \n ${this.walletListTemplate()}\n \n \n `;\n }\n walletListTemplate() {\n const authConnector = this.connectors.find(c => c.type === 'AUTH');\n if (authConnector?.socials) {\n if (authConnector?.showWallets) {\n return html `\n \n \n \n \n \n \n \n \n \n \n \n \n `;\n }\n return html ` `;\n }\n return html ``;\n }\n onContinueWalletClick() {\n RouterController.push('ConnectWallets');\n }\n};\nW3mConnectView.styles = styles;\n__decorate([\n state()\n], W3mConnectView.prototype, \"connectors\", void 0);\nW3mConnectView = __decorate([\n customElement('w3m-connect-view')\n], W3mConnectView);\nexport { W3mConnectView };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n @keyframes shake {\n 0% {\n transform: translateX(0);\n }\n 25% {\n transform: translateX(3px);\n }\n 50% {\n transform: translateX(-3px);\n }\n 75% {\n transform: translateX(3px);\n }\n 100% {\n transform: translateX(0);\n }\n }\n\n wui-flex:first-child:not(:only-child) {\n position: relative;\n }\n\n wui-loading-thumbnail {\n position: absolute;\n }\n\n wui-icon-box {\n position: absolute;\n right: calc(var(--wui-spacing-3xs) * -1);\n bottom: calc(var(--wui-spacing-3xs) * -1);\n opacity: 0;\n transform: scale(0.5);\n transition-property: opacity, transform;\n transition-duration: var(--wui-duration-lg);\n transition-timing-function: var(--wui-ease-out-power-2);\n will-change: opacity, transform;\n }\n\n wui-text[align='center'] {\n width: 100%;\n padding: 0px var(--wui-spacing-l);\n }\n\n [data-error='true'] wui-icon-box {\n opacity: 1;\n transform: scale(1);\n }\n\n [data-error='true'] > wui-flex:first-child {\n animation: shake 250ms cubic-bezier(0.36, 0.07, 0.19, 0.97) both;\n }\n\n [data-retry='false'] wui-link {\n display: none;\n }\n\n [data-retry='true'] wui-link {\n display: block;\n opacity: 1;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { AssetUtil, ConnectionController, CoreHelperUtil, RouterController, SnackController, ThemeController } from '@web3modal/core';\nimport { LitElement, html } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport styles from './styles.js';\nexport class W3mConnectingWidget extends LitElement {\n constructor() {\n super();\n this.wallet = RouterController.state.data?.wallet;\n this.connector = RouterController.state.data?.connector;\n this.timeout = undefined;\n this.secondaryBtnLabel = 'Try again';\n this.secondaryBtnIcon = 'refresh';\n this.secondaryLabel = 'Accept connection request in the wallet';\n this.onConnect = undefined;\n this.onRender = undefined;\n this.onAutoConnect = undefined;\n this.isWalletConnect = true;\n this.unsubscribe = [];\n this.imageSrc = AssetUtil.getWalletImage(this.wallet) ?? AssetUtil.getConnectorImage(this.connector);\n this.name = this.wallet?.name ?? this.connector?.name ?? 'Wallet';\n this.isRetrying = false;\n this.uri = ConnectionController.state.wcUri;\n this.error = ConnectionController.state.wcError;\n this.ready = false;\n this.showRetry = false;\n this.buffering = false;\n this.isMobile = false;\n this.onRetry = undefined;\n this.unsubscribe.push(...[\n ConnectionController.subscribeKey('wcUri', val => {\n this.uri = val;\n if (this.isRetrying && this.onRetry) {\n this.isRetrying = false;\n this.onConnect?.();\n }\n }),\n ConnectionController.subscribeKey('wcError', val => (this.error = val)),\n ConnectionController.subscribeKey('buffering', val => (this.buffering = val))\n ]);\n }\n firstUpdated() {\n this.onAutoConnect?.();\n this.showRetry = !this.onAutoConnect;\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n clearTimeout(this.timeout);\n }\n render() {\n this.onRender?.();\n this.onShowRetry();\n const subLabel = this.error\n ? 'Connection can be declined if a previous request is still active'\n : this.secondaryLabel;\n let label = `Continue in ${this.name}`;\n if (this.buffering) {\n label = 'Connecting...';\n }\n if (this.error) {\n label = 'Connection declined';\n }\n return html `\n \n \n \n\n ${this.error ? null : this.loaderTemplate()}\n\n \n \n\n \n \n ${label}\n \n ${subLabel}\n \n\n \n \n ${this.secondaryBtnLabel}\n \n \n\n ${this.isWalletConnect\n ? html `\n \n \n \n Copy link\n \n \n `\n : null}\n\n \n `;\n }\n onShowRetry() {\n if (this.error && !this.showRetry) {\n this.showRetry = true;\n const retryButton = this.shadowRoot?.querySelector('wui-button');\n retryButton?.animate([{ opacity: 0 }, { opacity: 1 }], {\n fill: 'forwards',\n easing: 'ease'\n });\n }\n }\n onTryAgain() {\n if (!this.buffering) {\n ConnectionController.setWcError(false);\n if (this.onRetry) {\n this.isRetrying = true;\n this.onRetry?.();\n }\n else {\n this.onConnect?.();\n }\n }\n }\n loaderTemplate() {\n const borderRadiusMaster = ThemeController.state.themeVariables['--w3m-border-radius-master'];\n const radius = borderRadiusMaster ? parseInt(borderRadiusMaster.replace('px', ''), 10) : 4;\n return html ``;\n }\n onCopyUri() {\n try {\n if (this.uri) {\n CoreHelperUtil.copyToClopboard(this.uri);\n SnackController.showSuccess('Link copied');\n }\n }\n catch {\n SnackController.showError('Failed to copy');\n }\n }\n}\nW3mConnectingWidget.styles = styles;\n__decorate([\n state()\n], W3mConnectingWidget.prototype, \"uri\", void 0);\n__decorate([\n state()\n], W3mConnectingWidget.prototype, \"error\", void 0);\n__decorate([\n state()\n], W3mConnectingWidget.prototype, \"ready\", void 0);\n__decorate([\n state()\n], W3mConnectingWidget.prototype, \"showRetry\", void 0);\n__decorate([\n state()\n], W3mConnectingWidget.prototype, \"buffering\", void 0);\n__decorate([\n property({ type: Boolean })\n], W3mConnectingWidget.prototype, \"isMobile\", void 0);\n__decorate([\n property()\n], W3mConnectingWidget.prototype, \"onRetry\", void 0);\n//# sourceMappingURL=index.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { ConnectionController, EventsController, ModalController, OptionsController, RouterController, StorageUtil } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { W3mConnectingWidget } from '../../utils/w3m-connecting-widget/index.js';\nlet W3mConnectingExternalView = class W3mConnectingExternalView extends W3mConnectingWidget {\n constructor() {\n super();\n if (!this.connector) {\n throw new Error('w3m-connecting-view: No connector provided');\n }\n EventsController.sendEvent({\n type: 'track',\n event: 'SELECT_WALLET',\n properties: {\n name: this.connector.name ?? 'Unknown',\n platform: 'browser'\n }\n });\n this.onConnect = this.onConnectProxy.bind(this);\n this.onAutoConnect = this.onConnectProxy.bind(this);\n this.isWalletConnect = false;\n }\n async onConnectProxy() {\n try {\n this.error = false;\n if (this.connector) {\n if (this.connector.imageUrl) {\n StorageUtil.setConnectedWalletImageUrl(this.connector.imageUrl);\n }\n await ConnectionController.connectExternal(this.connector);\n if (OptionsController.state.isSiweEnabled) {\n RouterController.push('ConnectingSiwe');\n }\n else {\n ModalController.close();\n }\n EventsController.sendEvent({\n type: 'track',\n event: 'CONNECT_SUCCESS',\n properties: { method: 'browser', name: this.connector.name || 'Unknown' }\n });\n }\n }\n catch (error) {\n EventsController.sendEvent({\n type: 'track',\n event: 'CONNECT_ERROR',\n properties: { message: error?.message ?? 'Unknown' }\n });\n this.error = true;\n }\n }\n};\nW3mConnectingExternalView = __decorate([\n customElement('w3m-connecting-external-view')\n], W3mConnectingExternalView);\nexport { W3mConnectingExternalView };\n//# sourceMappingURL=index.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { AssetUtil, ConnectionController, ConnectorController, ConstantsUtil, CoreHelperUtil, EventsController, ModalController, OptionsController, RouterController, SnackController, StorageUtil } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nlet W3mConnectingWcView = class W3mConnectingWcView extends LitElement {\n constructor() {\n super();\n this.interval = undefined;\n this.lastRetry = Date.now();\n this.wallet = RouterController.state.data?.wallet;\n this.platform = undefined;\n this.platforms = [];\n this.initializeConnection();\n this.interval = setInterval(this.initializeConnection.bind(this), ConstantsUtil.TEN_SEC_MS);\n }\n disconnectedCallback() {\n clearTimeout(this.interval);\n }\n render() {\n if (!this.wallet) {\n return html ``;\n }\n this.determinePlatforms();\n return html `\n ${this.headerTemplate()}\n
${this.platformTemplate()}
\n `;\n }\n async initializeConnection(retry = false) {\n try {\n const { wcPairingExpiry } = ConnectionController.state;\n if (retry || CoreHelperUtil.isPairingExpired(wcPairingExpiry)) {\n ConnectionController.connectWalletConnect();\n if (this.wallet) {\n const url = AssetUtil.getWalletImage(this.wallet);\n if (url) {\n StorageUtil.setConnectedWalletImageUrl(url);\n }\n }\n else {\n const connectors = ConnectorController.state.connectors;\n const connector = connectors.find(c => c.type === 'WALLET_CONNECT');\n const url = AssetUtil.getConnectorImage(connector);\n if (url) {\n StorageUtil.setConnectedWalletImageUrl(url);\n }\n }\n await ConnectionController.state.wcPromise;\n this.finalizeConnection();\n if (OptionsController.state.isSiweEnabled) {\n const { SIWEController } = await import('@web3modal/siwe');\n if (SIWEController.state.status === 'success') {\n ModalController.close();\n }\n else {\n RouterController.push('ConnectingSiwe');\n }\n }\n else {\n ModalController.close();\n }\n }\n }\n catch (error) {\n EventsController.sendEvent({\n type: 'track',\n event: 'CONNECT_ERROR',\n properties: { message: error?.message ?? 'Unknown' }\n });\n ConnectionController.setWcError(true);\n if (CoreHelperUtil.isAllowedRetry(this.lastRetry)) {\n SnackController.showError('Declined');\n this.lastRetry = Date.now();\n this.initializeConnection(true);\n }\n }\n }\n finalizeConnection() {\n const { wcLinking, recentWallet } = ConnectionController.state;\n if (wcLinking) {\n StorageUtil.setWalletConnectDeepLink(wcLinking);\n }\n if (recentWallet) {\n StorageUtil.setWeb3ModalRecent(recentWallet);\n }\n EventsController.sendEvent({\n type: 'track',\n event: 'CONNECT_SUCCESS',\n properties: {\n method: wcLinking ? 'mobile' : 'qrcode',\n name: this.wallet?.name || 'Unknown'\n }\n });\n }\n determinePlatforms() {\n if (!this.wallet) {\n throw new Error('w3m-connecting-wc-view:determinePlatforms No wallet');\n }\n if (this.platform) {\n return;\n }\n const { mobile_link, desktop_link, webapp_link, injected, rdns } = this.wallet;\n const injectedIds = injected?.map(({ injected_id }) => injected_id).filter(Boolean);\n const browserIds = rdns ? [rdns] : injectedIds ?? [];\n const isBrowser = browserIds.length;\n const isMobileWc = mobile_link;\n const isWebWc = webapp_link;\n const isBrowserInstalled = ConnectionController.checkInstalled(browserIds);\n const isBrowserWc = isBrowser && isBrowserInstalled;\n const isDesktopWc = desktop_link && !CoreHelperUtil.isMobile();\n if (isBrowserWc) {\n this.platforms.push('browser');\n }\n if (isMobileWc) {\n this.platforms.push(CoreHelperUtil.isMobile() ? 'mobile' : 'qrcode');\n }\n if (isWebWc) {\n this.platforms.push('web');\n }\n if (isDesktopWc) {\n this.platforms.push('desktop');\n }\n if (!isBrowserWc && isBrowser) {\n this.platforms.push('unsupported');\n }\n this.platform = this.platforms[0];\n }\n platformTemplate() {\n switch (this.platform) {\n case 'browser':\n return html ``;\n case 'desktop':\n return html `\n this.initializeConnection(true)}>\n \n `;\n case 'web':\n return html `\n this.initializeConnection(true)}>\n \n `;\n case 'mobile':\n return html `\n this.initializeConnection(true)}>\n \n `;\n case 'qrcode':\n return html ``;\n default:\n return html ``;\n }\n }\n headerTemplate() {\n const multiPlatform = this.platforms.length > 1;\n if (!multiPlatform) {\n return null;\n }\n return html `\n \n \n `;\n }\n async onSelectPlatform(platform) {\n const container = this.shadowRoot?.querySelector('div');\n if (container) {\n await container.animate([{ opacity: 1 }, { opacity: 0 }], {\n duration: 200,\n fill: 'forwards',\n easing: 'ease'\n }).finished;\n this.platform = platform;\n container.animate([{ opacity: 0 }, { opacity: 1 }], {\n duration: 200,\n fill: 'forwards',\n easing: 'ease'\n });\n }\n }\n};\n__decorate([\n state()\n], W3mConnectingWcView.prototype, \"platform\", void 0);\n__decorate([\n state()\n], W3mConnectingWcView.prototype, \"platforms\", void 0);\nW3mConnectingWcView = __decorate([\n customElement('w3m-connecting-wc-view')\n], W3mConnectingWcView);\nexport { W3mConnectingWcView };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n .continue-button-container {\n width: 100%;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { customElement } from '@web3modal/ui';\nimport { CoreHelperUtil, RouterController } from '@web3modal/core';\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport styles from './styles.js';\nimport { NavigationUtil } from '@web3modal/common';\nlet W3mChooseAccountNameView = class W3mChooseAccountNameView extends LitElement {\n constructor() {\n super(...arguments);\n this.loading = false;\n }\n render() {\n return html `\n \n ${this.onboardingTemplate()} ${this.buttonsTemplate()}\n {\n CoreHelperUtil.openHref(NavigationUtil.URLS.FAQ, '_blank');\n }}\n >\n Learn more about names\n \n \n \n `;\n }\n onboardingTemplate() {\n return html ` \n \n \n \n \n \n Choose your account name\n \n \n Finally say goodbye to 0x addresses, name your account to make it easier to exchange\n assets\n \n \n `;\n }\n buttonsTemplate() {\n return html `\n RouterController.push('RegisterAccountName')}\n >Choose name\n \n `;\n }\n};\nW3mChooseAccountNameView.styles = styles;\n__decorate([\n state()\n], W3mChooseAccountNameView.prototype, \"loading\", void 0);\nW3mChooseAccountNameView = __decorate([\n customElement('w3m-choose-account-name-view')\n], W3mChooseAccountNameView);\nexport { W3mChooseAccountNameView };\n//# sourceMappingURL=index.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CoreHelperUtil, RouterController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nlet W3mDownloadsView = class W3mDownloadsView extends LitElement {\n constructor() {\n super(...arguments);\n this.wallet = RouterController.state.data?.wallet;\n }\n render() {\n if (!this.wallet) {\n throw new Error('w3m-downloads-view');\n }\n return html `\n \n ${this.chromeTemplate()} ${this.iosTemplate()} ${this.androidTemplate()}\n ${this.homepageTemplate()}\n \n `;\n }\n chromeTemplate() {\n if (!this.wallet?.chrome_store) {\n return null;\n }\n return html `\n Chrome Extension\n `;\n }\n iosTemplate() {\n if (!this.wallet?.app_store) {\n return null;\n }\n return html `\n iOS App\n `;\n }\n androidTemplate() {\n if (!this.wallet?.play_store) {\n return null;\n }\n return html `\n Android App\n `;\n }\n homepageTemplate() {\n if (!this.wallet?.homepage) {\n return null;\n }\n return html `\n \n Website\n \n `;\n }\n onChromeStore() {\n if (this.wallet?.chrome_store) {\n CoreHelperUtil.openHref(this.wallet.chrome_store, '_blank');\n }\n }\n onAppStore() {\n if (this.wallet?.app_store) {\n CoreHelperUtil.openHref(this.wallet.app_store, '_blank');\n }\n }\n onPlayStore() {\n if (this.wallet?.play_store) {\n CoreHelperUtil.openHref(this.wallet.play_store, '_blank');\n }\n }\n onHomePage() {\n if (this.wallet?.homepage) {\n CoreHelperUtil.openHref(this.wallet.homepage, '_blank');\n }\n }\n};\nW3mDownloadsView = __decorate([\n customElement('w3m-downloads-view')\n], W3mDownloadsView);\nexport { W3mDownloadsView };\n//# sourceMappingURL=index.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { ApiController, AssetUtil, CoreHelperUtil, OptionsController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nconst EXPLORER = 'https://walletconnect.com/explorer';\nlet W3mGetWalletView = class W3mGetWalletView extends LitElement {\n render() {\n return html `\n \n ${this.recommendedWalletsTemplate()}\n {\n CoreHelperUtil.openHref('https://walletconnect.com/explorer?type=wallet', '_blank');\n }}\n >\n \n `;\n }\n recommendedWalletsTemplate() {\n const { recommended, featured } = ApiController.state;\n const { customWallets } = OptionsController.state;\n const wallets = [...featured, ...(customWallets ?? []), ...recommended].slice(0, 4);\n return wallets.map(wallet => html `\n {\n CoreHelperUtil.openHref(wallet.homepage ?? EXPLORER, '_blank');\n }}\n >\n `);\n }\n};\nW3mGetWalletView = __decorate([\n customElement('w3m-get-wallet-view')\n], W3mGetWalletView);\nexport { W3mGetWalletView };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n wui-flex {\n width: 100%;\n }\n\n .suggestion {\n background: var(--wui-gray-glass-002);\n border-radius: var(--wui-border-radius-xs);\n }\n\n .suggestion:hover {\n background-color: var(--wui-gray-glass-005);\n cursor: pointer;\n }\n\n .suggested-name {\n max-width: 75%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n form {\n width: 100%;\n }\n\n wui-icon-link {\n position: absolute;\n right: 20px;\n transform: translateY(11px);\n }\n`;\n//# sourceMappingURL=styles.js.map","import{_$LH as o}from\"./lit-html.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{I:t}=o,i=o=>null===o||\"object\"!=typeof o&&\"function\"!=typeof o,n={HTML:1,SVG:2,MATHML:3},e=(o,t)=>void 0===t?void 0!==o?._$litType$:o?._$litType$===t,l=o=>null!=o?._$litType$?.h,c=o=>void 0!==o?._$litDirective$,d=o=>o?._$litDirective$,f=o=>void 0===o.strings,s=()=>document.createComment(\"\"),r=(o,i,n)=>{const e=o._$AA.parentNode,l=void 0===i?o._$AB:i._$AA;if(void 0===n){const i=e.insertBefore(s(),l),c=e.insertBefore(s(),l);n=new t(i,c,o,o.options)}else{const t=n._$AB.nextSibling,i=n._$AM,c=i!==o;if(c){let t;n._$AQ?.(o),n._$AM=o,void 0!==n._$AP&&(t=o._$AU)!==i._$AU&&n._$AP(t)}if(t!==l||c){let o=n._$AA;for(;o!==t;){const t=o.nextSibling;e.insertBefore(o,l),o=t}}}return n},v=(o,t,i=o)=>(o._$AI(t,i),o),u={},m=(o,t=u)=>o._$AH=t,p=o=>o._$AH,M=o=>{o._$AP?.(!1,!0);let t=o._$AA;const i=o._$AB.nextSibling;for(;t!==i;){const o=t.nextSibling;t.remove(),t=o}},h=o=>{o._$AR()};export{n as TemplateResultType,h as clearPart,p as getCommittedValue,d as getDirectiveClass,r as insertPart,l as isCompiledTemplateResult,c as isDirectiveResult,i as isPrimitive,f as isSingleExpression,e as isTemplateResult,M as removePart,v as setChildPartValue,m as setCommittedValue};\n//# sourceMappingURL=directive-helpers.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n","import{isSingleExpression as i}from\"./directive-helpers.js\";import{Directive as t,PartType as e}from\"./directive.js\";export{directive}from\"./directive.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const s=(i,t)=>{const e=i._$AN;if(void 0===e)return!1;for(const i of e)i._$AO?.(t,!1),s(i,t);return!0},o=i=>{let t,e;do{if(void 0===(t=i._$AM))break;e=t._$AN,e.delete(i),i=t}while(0===e?.size)},r=i=>{for(let t;t=i._$AM;i=t){let e=t._$AN;if(void 0===e)t._$AN=e=new Set;else if(e.has(i))break;e.add(i),c(t)}};function h(i){void 0!==this._$AN?(o(this),this._$AM=i,r(this)):this._$AM=i}function n(i,t=!1,e=0){const r=this._$AH,h=this._$AN;if(void 0!==h&&0!==h.size)if(t)if(Array.isArray(r))for(let i=e;i{i.type==e.CHILD&&(i._$AP??=n,i._$AQ??=h)};class f extends t{constructor(){super(...arguments),this._$AN=void 0}_$AT(i,t,e){super._$AT(i,t,e),r(this),this.isConnected=i._$AU}_$AO(i,t=!0){i!==this.isConnected&&(this.isConnected=i,i?this.reconnected?.():this.disconnected?.()),t&&(s(this,i),o(this))}setValue(t){if(i(this._$Ct))this._$Ct._$AI(t,this);else{const i=[...this._$Ct._$AH];i[this._$Ci]=t,this._$Ct._$AI(i,this,0)}}disconnected(){}reconnected(){}}export{f as AsyncDirective,t as Directive,e as PartType};\n//# sourceMappingURL=async-directive.js.map\n","import{nothing as t}from\"../lit-html.js\";import{AsyncDirective as i}from\"../async-directive.js\";import{directive as s}from\"../directive.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const e=()=>new h;class h{}const o=new WeakMap,n=s(class extends i{render(i){return t}update(i,[s]){const e=s!==this.Y;return e&&void 0!==this.Y&&this.rt(void 0),(e||this.lt!==this.ct)&&(this.Y=s,this.ht=i.options?.host,this.rt(this.ct=i.element)),t}rt(t){if(this.isConnected||(t=void 0),\"function\"==typeof this.Y){const i=this.ht??globalThis;let s=o.get(i);void 0===s&&(s=new WeakMap,o.set(i,s)),void 0!==s.get(this.Y)&&this.Y.call(this.ht,void 0),s.set(this.Y,t),void 0!==t&&this.Y.call(this.ht,t)}else this.Y.value=t}get lt(){return\"function\"==typeof this.Y?o.get(this.ht??globalThis)?.get(this.Y):this.Y?.value}disconnected(){this.lt===this.ct&&this.rt(void 0)}reconnected(){this.rt(this.ct)}});export{e as createRef,n as ref};\n//# sourceMappingURL=ref.js.map\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport styles from './styles.js';\nimport { createRef, ref } from 'lit/directives/ref.js';\nimport { CoreHelperUtil, SnackController, EnsController } from '@web3modal/core';\nlet W3mRegisterAccountNameView = class W3mRegisterAccountNameView extends LitElement {\n constructor() {\n super();\n this.formRef = createRef();\n this.usubscribe = [];\n this.name = '';\n this.error = '';\n this.loading = EnsController.state.loading;\n this.suggestions = EnsController.state.suggestions;\n this.registered = false;\n this.onDebouncedNameInputChange = CoreHelperUtil.debounce((value) => {\n if (EnsController.validateName(value)) {\n this.error = '';\n this.name = value;\n EnsController.getSuggestions(value);\n EnsController.isNameRegistered(value).then(registered => {\n this.registered = registered;\n });\n }\n else if (value.length < 4) {\n this.error = 'Name must be at least 4 characters long';\n }\n else {\n this.error = 'Can only contain letters, numbers and - characters';\n }\n });\n this.usubscribe.push(...[\n EnsController.subscribe(val => {\n this.suggestions = val.suggestions;\n this.loading = val.loading;\n })\n ]);\n }\n firstUpdated() {\n this.formRef.value?.addEventListener('keydown', this.onEnterKey.bind(this));\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n this.usubscribe.forEach(unsub => unsub());\n this.formRef.value?.removeEventListener('keydown', this.onEnterKey.bind(this));\n }\n render() {\n return html `\n \n
\n \n \n ${this.submitButtonTemplate()}\n \n \n ${this.templateSuggestions()}\n \n `;\n }\n submitButtonTemplate() {\n const showSubmit = this.isAllowedToSubmit();\n return showSubmit\n ? html `\n \n \n `\n : null;\n }\n onSelectSuggestion(name) {\n return () => {\n this.name = name;\n this.registered = false;\n this.requestUpdate();\n };\n }\n onNameInputChange(event) {\n this.onDebouncedNameInputChange(event.detail);\n }\n nameSuggestionTagTemplate() {\n if (this.loading) {\n return html ``;\n }\n return this.registered\n ? html `Registered`\n : html `Available`;\n }\n templateSuggestions() {\n if (!this.name || this.name.length < 4 || this.error) {\n return null;\n }\n const suggestions = this.registered ? this.suggestions.filter(s => s.name !== this.name) : [];\n return html `\n \n \n ${this.name}${this.nameSuggestionTagTemplate()}\n \n ${suggestions.map(suggestion => this.availableNameTemplate(suggestion.name))}\n `;\n }\n availableNameTemplate(suggestion) {\n return html ` \n \n ${suggestion}\n \n Available\n `;\n }\n isAllowedToSubmit() {\n return !this.loading && !this.registered && !this.error && EnsController.validateName(this.name);\n }\n async onSubmitName() {\n try {\n if (!this.isAllowedToSubmit()) {\n return;\n }\n await EnsController.registerName(this.name);\n }\n catch (error) {\n SnackController.showError(error.message);\n }\n }\n onEnterKey(event) {\n if (event.key === 'Enter' && this.isAllowedToSubmit()) {\n this.onSubmitName();\n }\n }\n};\nW3mRegisterAccountNameView.styles = styles;\n__decorate([\n property()\n], W3mRegisterAccountNameView.prototype, \"errorMessage\", void 0);\n__decorate([\n state()\n], W3mRegisterAccountNameView.prototype, \"name\", void 0);\n__decorate([\n state()\n], W3mRegisterAccountNameView.prototype, \"error\", void 0);\n__decorate([\n state()\n], W3mRegisterAccountNameView.prototype, \"loading\", void 0);\n__decorate([\n state()\n], W3mRegisterAccountNameView.prototype, \"suggestions\", void 0);\n__decorate([\n state()\n], W3mRegisterAccountNameView.prototype, \"registered\", void 0);\nW3mRegisterAccountNameView = __decorate([\n customElement('w3m-register-account-name-view')\n], W3mRegisterAccountNameView);\nexport { W3mRegisterAccountNameView };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n .continue-button-container {\n width: 100%;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { customElement } from '@web3modal/ui';\nimport { CoreHelperUtil, RouterController } from '@web3modal/core';\nimport { LitElement, html } from 'lit';\nimport styles from './styles.js';\nimport { NavigationUtil } from '@web3modal/common';\nlet W3mRegisterAccountNameSuccess = class W3mRegisterAccountNameSuccess extends LitElement {\n render() {\n return html `\n \n ${this.onboardingTemplate()} ${this.buttonsTemplate()}\n {\n CoreHelperUtil.openHref(NavigationUtil.URLS.FAQ, '_blank');\n }}\n >\n Learn more\n \n \n \n `;\n }\n onboardingTemplate() {\n return html ` \n \n \n \n \n \n Account name chosen successfully\n \n \n You can now fund your account and trade crypto\n \n \n `;\n }\n buttonsTemplate() {\n return html `\n Let's Go!\n \n `;\n }\n redirectToAccount() {\n RouterController.replace('Account');\n }\n};\nW3mRegisterAccountNameSuccess.styles = styles;\nW3mRegisterAccountNameSuccess = __decorate([\n customElement('w3m-register-account-name-success-view')\n], W3mRegisterAccountNameSuccess);\nexport { W3mRegisterAccountNameSuccess };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n @keyframes shake {\n 0% {\n transform: translateX(0);\n }\n 25% {\n transform: translateX(3px);\n }\n 50% {\n transform: translateX(-3px);\n }\n 75% {\n transform: translateX(3px);\n }\n 100% {\n transform: translateX(0);\n }\n }\n\n wui-flex:first-child:not(:only-child) {\n position: relative;\n }\n\n wui-loading-hexagon {\n position: absolute;\n }\n\n wui-icon-box {\n position: absolute;\n right: 4px;\n bottom: 0;\n opacity: 0;\n transform: scale(0.5);\n z-index: 1;\n }\n\n wui-button {\n display: none;\n }\n\n [data-error='true'] wui-icon-box {\n opacity: 1;\n transform: scale(1);\n }\n\n [data-error='true'] > wui-flex:first-child {\n animation: shake 250ms cubic-bezier(0.36, 0.07, 0.19, 0.97) both;\n }\n\n wui-button[data-retry='true'] {\n display: block;\n opacity: 1;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { AssetUtil, ConnectorController, NetworkController, OptionsController, RouterController, RouterUtil, StorageUtil } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport styles from './styles.js';\nlet W3mNetworkSwitchView = class W3mNetworkSwitchView extends LitElement {\n constructor() {\n super();\n this.network = RouterController.state.data?.network;\n this.unsubscribe = [];\n this.showRetry = false;\n this.error = false;\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n firstUpdated() {\n this.onSwitchNetwork();\n }\n render() {\n if (!this.network) {\n throw new Error('w3m-network-switch-view: No network provided');\n }\n this.onShowRetry();\n const label = this.getLabel();\n const subLabel = this.getSubLabel();\n return html `\n \n \n \n\n ${this.error ? null : html ``}\n\n \n \n\n \n ${label}\n ${subLabel}\n \n\n \n \n Try again\n \n \n `;\n }\n getSubLabel() {\n const type = StorageUtil.getConnectedConnector();\n const authConnector = ConnectorController.getAuthConnector();\n if (authConnector && type === 'AUTH') {\n return '';\n }\n return this.error\n ? 'Switch can be declined if chain is not supported by a wallet or previous request is still active'\n : 'Accept connection request in your wallet';\n }\n getLabel() {\n const type = StorageUtil.getConnectedConnector();\n const authConnector = ConnectorController.getAuthConnector();\n if (authConnector && type === 'AUTH') {\n return `Switching to ${this.network?.name ?? 'Unknown'} network...`;\n }\n return this.error ? 'Switch declined' : 'Approve in wallet';\n }\n onShowRetry() {\n if (this.error && !this.showRetry) {\n this.showRetry = true;\n const retryButton = this.shadowRoot?.querySelector('wui-button');\n retryButton?.animate([{ opacity: 0 }, { opacity: 1 }], {\n fill: 'forwards',\n easing: 'ease'\n });\n }\n }\n async onSwitchNetwork() {\n try {\n this.error = false;\n if (this.network) {\n await NetworkController.switchActiveNetwork(this.network);\n if (!OptionsController.state.isSiweEnabled) {\n RouterUtil.navigateAfterNetworkSwitch();\n }\n }\n }\n catch {\n this.error = true;\n }\n }\n};\nW3mNetworkSwitchView.styles = styles;\n__decorate([\n state()\n], W3mNetworkSwitchView.prototype, \"showRetry\", void 0);\n__decorate([\n state()\n], W3mNetworkSwitchView.prototype, \"error\", void 0);\nW3mNetworkSwitchView = __decorate([\n customElement('w3m-network-switch-view')\n], W3mNetworkSwitchView);\nexport { W3mNetworkSwitchView };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host > wui-grid {\n max-height: 360px;\n overflow: auto;\n }\n\n wui-grid::-webkit-scrollbar {\n display: none;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { AccountController, AssetUtil, CoreHelperUtil, EventsController, NetworkController, RouterController, RouterUtil } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport styles from './styles.js';\nlet W3mNetworksView = class W3mNetworksView extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.caipNetwork = NetworkController.state.caipNetwork;\n this.unsubscribe.push(NetworkController.subscribeKey('caipNetwork', val => (this.caipNetwork = val)));\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n return html `\n \n ${this.networksTemplate()}\n \n\n \n\n \n \n Your connected wallet may not support some of the networks available for this dApp\n \n \n \n What is a network\n \n \n `;\n }\n onNetworkHelp() {\n EventsController.sendEvent({ type: 'track', event: 'CLICK_NETWORK_HELP' });\n RouterController.push('WhatIsANetwork');\n }\n networksTemplate() {\n const { approvedCaipNetworkIds, requestedCaipNetworks, supportsAllNetworks } = NetworkController.state;\n const sortedNetworks = CoreHelperUtil.sortRequestedNetworks(approvedCaipNetworkIds, requestedCaipNetworks);\n return sortedNetworks?.map(network => html `\n this.onSwitchNetwork(network)}\n .disabled=${!supportsAllNetworks && !approvedCaipNetworkIds?.includes(network.id)}\n data-testid=${`w3m-network-switch-${network.name ?? network.id}`}\n >\n `);\n }\n async onSwitchNetwork(network) {\n const { isConnected } = AccountController.state;\n const { approvedCaipNetworkIds, supportsAllNetworks, caipNetwork } = NetworkController.state;\n const { data } = RouterController.state;\n if (isConnected && caipNetwork?.id !== network.id) {\n if (approvedCaipNetworkIds?.includes(network.id)) {\n await NetworkController.switchActiveNetwork(network);\n RouterUtil.navigateAfterNetworkSwitch();\n }\n else if (supportsAllNetworks) {\n RouterController.push('SwitchNetwork', { ...data, network });\n }\n }\n else if (!isConnected) {\n NetworkController.setCaipNetwork(network);\n RouterController.push('Connect');\n }\n }\n};\nW3mNetworksView.styles = styles;\n__decorate([\n state()\n], W3mNetworksView.prototype, \"caipNetwork\", void 0);\nW3mNetworksView = __decorate([\n customElement('w3m-networks-view')\n], W3mNetworksView);\nexport { W3mNetworksView };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host > wui-flex {\n height: 500px;\n overflow-y: auto;\n overflow-x: hidden;\n scrollbar-width: none;\n padding: var(--wui-spacing-m);\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n }\n\n :host > wui-flex::-webkit-scrollbar {\n display: none;\n }\n\n :host > wui-flex > wui-flex {\n width: 100%;\n }\n\n wui-transaction-list-item-loader {\n width: 100%;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { DateUtil } from '@web3modal/common';\nimport { AccountController, AssetController, OnRampController, OptionsController, TransactionsController } from '@web3modal/core';\nimport { TransactionUtil, customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport styles from './styles.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nconst LOADING_ITEM_COUNT = 7;\nlet W3mOnRampActivityView = class W3mOnRampActivityView extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.selectedOnRampProvider = OnRampController.state.selectedProvider;\n this.loading = false;\n this.coinbaseTransactions = TransactionsController.state.coinbaseTransactions;\n this.tokenImages = AssetController.state.tokenImages;\n this.unsubscribe.push(...[\n OnRampController.subscribeKey('selectedProvider', val => {\n this.selectedOnRampProvider = val;\n }),\n AssetController.subscribeKey('tokenImages', val => (this.tokenImages = val)),\n () => {\n clearTimeout(this.refetchTimeout);\n },\n TransactionsController.subscribe(val => {\n this.coinbaseTransactions = { ...val.coinbaseTransactions };\n })\n ]);\n TransactionsController.clearCursor();\n this.fetchTransactions();\n }\n render() {\n return html `\n \n ${this.loading ? this.templateLoading() : this.templateTransactionsByYear()}\n \n `;\n }\n templateTransactions(transactions) {\n return transactions?.map(transaction => {\n const date = DateUtil.formatDate(transaction?.metadata?.minedAt);\n const transfer = transaction.transfers[0];\n const fungibleInfo = transfer?.fungible_info;\n if (!fungibleInfo) {\n return null;\n }\n const icon = fungibleInfo?.icon?.url || this.tokenImages?.[fungibleInfo.symbol || ''];\n return html `\n \n `;\n });\n }\n templateTransactionsByYear() {\n const sortedYearKeys = Object.keys(this.coinbaseTransactions).sort().reverse();\n return sortedYearKeys.map(year => {\n const yearInt = parseInt(year, 10);\n const sortedMonthIndexes = new Array(12)\n .fill(null)\n .map((_, idx) => idx)\n .reverse();\n return sortedMonthIndexes.map(month => {\n const groupTitle = TransactionUtil.getTransactionGroupTitle(yearInt, month);\n const transactions = this.coinbaseTransactions[yearInt]?.[month];\n if (!transactions) {\n return null;\n }\n return html `\n \n \n ${groupTitle}\n \n \n ${this.templateTransactions(transactions)}\n \n \n `;\n });\n });\n }\n async fetchTransactions() {\n const provider = 'coinbase';\n if (provider === 'coinbase') {\n await this.fetchCoinbaseTransactions();\n }\n }\n async fetchCoinbaseTransactions() {\n const address = AccountController.state.address;\n const projectId = OptionsController.state.projectId;\n if (!address) {\n throw new Error('No address found');\n }\n if (!projectId) {\n throw new Error('No projectId found');\n }\n this.loading = true;\n await TransactionsController.fetchTransactions(address, 'coinbase');\n this.loading = false;\n this.refetchLoadingTransactions();\n }\n refetchLoadingTransactions() {\n const today = new Date();\n const currentMonthTxs = this.coinbaseTransactions[today.getFullYear()]?.[today.getMonth()] || [];\n const loadingTransactions = currentMonthTxs.filter(transaction => transaction.metadata.status === 'ONRAMP_TRANSACTION_STATUS_IN_PROGRESS');\n if (loadingTransactions.length === 0) {\n clearTimeout(this.refetchTimeout);\n return;\n }\n this.refetchTimeout = setTimeout(async () => {\n const address = AccountController.state.address;\n await TransactionsController.fetchTransactions(address, 'coinbase');\n this.refetchLoadingTransactions();\n }, 3000);\n }\n templateLoading() {\n return Array(LOADING_ITEM_COUNT)\n .fill(html ` `)\n .map(item => item);\n }\n};\nW3mOnRampActivityView.styles = styles;\n__decorate([\n state()\n], W3mOnRampActivityView.prototype, \"selectedOnRampProvider\", void 0);\n__decorate([\n state()\n], W3mOnRampActivityView.prototype, \"loading\", void 0);\n__decorate([\n state()\n], W3mOnRampActivityView.prototype, \"coinbaseTransactions\", void 0);\n__decorate([\n state()\n], W3mOnRampActivityView.prototype, \"tokenImages\", void 0);\nW3mOnRampActivityView = __decorate([\n customElement('w3m-onramp-activity-view')\n], W3mOnRampActivityView);\nexport { W3mOnRampActivityView };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host > wui-grid {\n max-height: 360px;\n overflow: auto;\n }\n\n wui-grid::-webkit-scrollbar {\n display: none;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { OnRampController, ModalController, AssetController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport styles from './styles.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nlet W3mOnrampFiatSelectView = class W3mOnrampFiatSelectView extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.selectedCurrency = OnRampController.state.paymentCurrency;\n this.currencies = OnRampController.state.paymentCurrencies;\n this.currencyImages = AssetController.state.currencyImages;\n this.unsubscribe.push(...[\n OnRampController.subscribe(val => {\n this.selectedCurrency = val.paymentCurrency;\n this.currencies = val.paymentCurrencies;\n }),\n AssetController.subscribeKey('currencyImages', val => (this.currencyImages = val))\n ]);\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n return html `\n \n ${this.currenciesTemplate()}\n \n \n `;\n }\n currenciesTemplate() {\n return this.currencies.map(currency => html `\n this.selectCurrency(currency)}\n variant=\"image\"\n >\n ${currency.id}\n \n `);\n }\n selectCurrency(currency) {\n if (!currency) {\n return;\n }\n OnRampController.setPaymentCurrency(currency);\n ModalController.close();\n }\n};\nW3mOnrampFiatSelectView.styles = styles;\n__decorate([\n state()\n], W3mOnrampFiatSelectView.prototype, \"selectedCurrency\", void 0);\n__decorate([\n state()\n], W3mOnrampFiatSelectView.prototype, \"currencies\", void 0);\n__decorate([\n state()\n], W3mOnrampFiatSelectView.prototype, \"currencyImages\", void 0);\nW3mOnrampFiatSelectView = __decorate([\n customElement('w3m-onramp-fiat-select-view')\n], W3mOnrampFiatSelectView);\nexport { W3mOnrampFiatSelectView };\n//# sourceMappingURL=index.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CoreHelperUtil, AccountController, ConstantsUtil, OnRampController, RouterController, NetworkController, BlockchainApiController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nlet W3mOnRampProvidersView = class W3mOnRampProvidersView extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.providers = OnRampController.state.providers;\n this.unsubscribe.push(...[\n OnRampController.subscribeKey('providers', val => {\n this.providers = val;\n })\n ]);\n }\n firstUpdated() {\n const urlPromises = this.providers.map(async (provider) => {\n if (provider.name === 'coinbase') {\n return await this.getCoinbaseOnRampURL();\n }\n return Promise.resolve(provider?.url);\n });\n Promise.all(urlPromises).then(urls => {\n this.providers = this.providers.map((provider, index) => ({\n ...provider,\n url: urls[index] || ''\n }));\n });\n }\n render() {\n return html `\n \n ${this.onRampProvidersTemplate()}\n \n \n `;\n }\n onRampProvidersTemplate() {\n return this.providers.map(provider => html `\n {\n this.onClickProvider(provider);\n }}\n ?disabled=${!provider.url}\n >\n `);\n }\n onClickProvider(provider) {\n OnRampController.setSelectedProvider(provider);\n RouterController.push('BuyInProgress');\n CoreHelperUtil.openHref(provider.url, 'popupWindow', 'width=600,height=800,scrollbars=yes');\n }\n async getCoinbaseOnRampURL() {\n const address = AccountController.state.address;\n const network = NetworkController.state.caipNetwork;\n if (!address) {\n throw new Error('No address found');\n }\n if (!network?.name) {\n throw new Error('No network found');\n }\n const defaultNetwork = ConstantsUtil.WC_COINBASE_PAY_SDK_CHAIN_NAME_MAP[network.name] ?? ConstantsUtil.WC_COINBASE_PAY_SDK_FALLBACK_CHAIN;\n const purchaseCurrency = OnRampController.state.purchaseCurrency;\n const assets = purchaseCurrency\n ? [purchaseCurrency.symbol]\n : OnRampController.state.purchaseCurrencies.map(currency => currency.symbol);\n return await BlockchainApiController.generateOnRampURL({\n defaultNetwork,\n destinationWallets: [\n { address, blockchains: ConstantsUtil.WC_COINBASE_PAY_SDK_CHAINS, assets }\n ],\n partnerUserId: address,\n purchaseAmount: OnRampController.state.purchaseAmount\n });\n }\n};\n__decorate([\n state()\n], W3mOnRampProvidersView.prototype, \"providers\", void 0);\nW3mOnRampProvidersView = __decorate([\n customElement('w3m-onramp-providers-view')\n], W3mOnRampProvidersView);\nexport { W3mOnRampProvidersView };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host > wui-grid {\n max-height: 360px;\n overflow: auto;\n }\n\n wui-grid::-webkit-scrollbar {\n display: none;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { OnRampController, ModalController, AssetController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport styles from './styles.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nlet W3mOnrampTokensView = class W3mOnrampTokensView extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.selectedCurrency = OnRampController.state.purchaseCurrencies;\n this.tokens = OnRampController.state.purchaseCurrencies;\n this.tokenImages = AssetController.state.tokenImages;\n this.unsubscribe.push(...[\n OnRampController.subscribe(val => {\n this.selectedCurrency = val.purchaseCurrencies;\n this.tokens = val.purchaseCurrencies;\n }),\n AssetController.subscribeKey('tokenImages', val => (this.tokenImages = val))\n ]);\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n return html `\n \n ${this.currenciesTemplate()}\n \n \n `;\n }\n currenciesTemplate() {\n return this.tokens.map(token => html `\n this.selectToken(token)}\n variant=\"image\"\n >\n \n ${token.name}\n ${token.symbol}\n \n \n `);\n }\n selectToken(currency) {\n if (!currency) {\n return;\n }\n OnRampController.setPurchaseCurrency(currency);\n ModalController.close();\n }\n};\nW3mOnrampTokensView.styles = styles;\n__decorate([\n state()\n], W3mOnrampTokensView.prototype, \"selectedCurrency\", void 0);\n__decorate([\n state()\n], W3mOnrampTokensView.prototype, \"tokens\", void 0);\n__decorate([\n state()\n], W3mOnrampTokensView.prototype, \"tokenImages\", void 0);\nW3mOnrampTokensView = __decorate([\n customElement('w3m-onramp-token-select-view')\n], W3mOnrampTokensView);\nexport { W3mOnrampTokensView };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host > wui-flex:first-child {\n overflow-y: auto;\n overflow-x: hidden;\n scrollbar-width: none;\n }\n\n :host > wui-flex:first-child::-webkit-scrollbar {\n display: none;\n }\n\n wui-loading-hexagon {\n position: absolute;\n }\n\n .action-button {\n width: 100%;\n border-radius: var(--wui-border-radius-xs);\n }\n\n .action-button:disabled {\n border-color: 1px solid var(--wui-color-gray-glass-005);\n }\n\n .swap-inputs-container {\n position: relative;\n }\n\n .replace-tokens-button-container {\n display: flex;\n justify-content: center;\n align-items: center;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n gap: var(--wui-spacing-1xs);\n border-radius: var(--wui-border-radius-xs);\n background-color: var(--wui-color-modal-bg-base);\n padding: var(--wui-spacing-xxs);\n }\n\n .replace-tokens-button-container > button {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 40px;\n width: 40px;\n padding: var(--wui-spacing-xs);\n border: none;\n border-radius: var(--wui-border-radius-xxs);\n background: var(--wui-color-gray-glass-002);\n transition: background-color var(--wui-duration-md) var(--wui-ease-out-power-1);\n will-change: background-color;\n z-index: 20;\n }\n\n .replace-tokens-button-container > button:hover {\n background: var(--wui-color-gray-glass-005);\n }\n\n .details-container > wui-flex {\n background: var(--wui-color-gray-glass-002);\n border-radius: var(--wui-border-radius-xxs);\n width: 100%;\n }\n\n .details-container > wui-flex > button {\n border: none;\n background: none;\n padding: var(--wui-spacing-s);\n border-radius: var(--wui-border-radius-xxs);\n transition: background 0.2s linear;\n }\n\n .details-container > wui-flex > button:hover {\n background: var(--wui-color-gray-glass-002);\n }\n\n .details-content-container {\n padding: var(--wui-spacing-1xs);\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .details-content-container > wui-flex {\n width: 100%;\n }\n\n .details-row {\n width: 100%;\n padding: var(--wui-spacing-s) var(--wui-spacing-xl);\n border-radius: var(--wui-border-radius-xxs);\n background: var(--wui-color-gray-glass-002);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport styles from './styles.js';\nimport { SwapController, RouterController, CoreHelperUtil, NetworkController, ModalController, ConstantsUtil } from '@web3modal/core';\nimport { NumberUtil } from '@web3modal/common';\nlet W3mSwapView = class W3mSwapView extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.detailsOpen = false;\n this.caipNetworkId = NetworkController.state.caipNetwork?.id;\n this.initialized = SwapController.state.initialized;\n this.loading = SwapController.state.loading;\n this.loadingPrices = SwapController.state.loadingPrices;\n this.sourceToken = SwapController.state.sourceToken;\n this.sourceTokenAmount = SwapController.state.sourceTokenAmount;\n this.sourceTokenPriceInUSD = SwapController.state.sourceTokenPriceInUSD;\n this.toToken = SwapController.state.toToken;\n this.toTokenAmount = SwapController.state.toTokenAmount;\n this.toTokenPriceInUSD = SwapController.state.toTokenPriceInUSD;\n this.inputError = SwapController.state.inputError;\n this.gasPriceInUSD = SwapController.state.gasPriceInUSD;\n this.transactionLoading = SwapController.state.transactionLoading;\n this.fetchError = SwapController.state.fetchError;\n this.onDebouncedGetSwapCalldata = CoreHelperUtil.debounce(async () => {\n await SwapController.swapTokens();\n }, 200);\n NetworkController.subscribeKey('caipNetwork', newCaipNetwork => {\n if (this.caipNetworkId !== newCaipNetwork?.id) {\n this.caipNetworkId = newCaipNetwork?.id;\n SwapController.resetState();\n SwapController.initializeState();\n }\n });\n this.unsubscribe.push(...[\n ModalController.subscribeKey('open', isOpen => {\n if (!isOpen) {\n SwapController.resetState();\n }\n }),\n RouterController.subscribeKey('view', newRoute => {\n if (!newRoute.includes('Swap')) {\n SwapController.resetValues();\n }\n }),\n SwapController.subscribe(newState => {\n this.initialized = newState.initialized;\n this.loading = newState.loading;\n this.loadingPrices = newState.loadingPrices;\n this.transactionLoading = newState.transactionLoading;\n this.sourceToken = newState.sourceToken;\n this.sourceTokenAmount = newState.sourceTokenAmount;\n this.sourceTokenPriceInUSD = newState.sourceTokenPriceInUSD;\n this.toToken = newState.toToken;\n this.toTokenAmount = newState.toTokenAmount;\n this.toTokenPriceInUSD = newState.toTokenPriceInUSD;\n this.inputError = newState.inputError;\n this.gasPriceInUSD = newState.gasPriceInUSD;\n this.fetchError = newState.fetchError;\n })\n ]);\n }\n firstUpdated() {\n SwapController.initializeState();\n this.watchTokensAndValues();\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe?.());\n clearInterval(this.interval);\n }\n render() {\n return html `\n \n ${this.initialized ? this.templateSwap() : this.templateLoading()}\n \n `;\n }\n watchTokensAndValues() {\n this.interval = setInterval(() => {\n SwapController.getNetworkTokenPrice();\n SwapController.getMyTokensWithBalance();\n SwapController.swapTokens();\n }, 10000);\n }\n templateSwap() {\n return html `\n \n \n ${this.templateTokenInput('sourceToken', this.sourceToken)}\n ${this.templateTokenInput('toToken', this.toToken)} ${this.templateReplaceTokensButton()}\n \n ${this.templateDetails()} ${this.templateActionButton()}\n \n `;\n }\n actionButtonLabel() {\n if (this.fetchError) {\n return 'Swap';\n }\n if (!this.sourceToken || !this.toToken) {\n return 'Select token';\n }\n if (!this.sourceTokenAmount) {\n return 'Enter amount';\n }\n if (!this.initialized) {\n return 'Swap';\n }\n if (this.inputError) {\n return this.inputError;\n }\n return 'Review swap';\n }\n templateReplaceTokensButton() {\n return html `\n \n \n \n `;\n }\n templateLoading() {\n return html `\n \n \n \n \n ${this.templateReplaceTokensButton()}\n \n ${this.templateActionButton()}\n \n `;\n }\n templateTokenInput(target, token) {\n const myToken = SwapController.state.myTokensWithBalance?.find(ct => ct?.address === token?.address);\n const amount = target === 'toToken' ? this.toTokenAmount : this.sourceTokenAmount;\n const price = target === 'toToken' ? this.toTokenPriceInUSD : this.sourceTokenPriceInUSD;\n let value = parseFloat(amount) * price;\n if (target === 'toToken') {\n value -= this.gasPriceInUSD || 0;\n }\n return html ``;\n }\n onSetMaxValue(target, balance) {\n const token = target === 'sourceToken' ? this.sourceToken : this.toToken;\n const isNetworkToken = token?.address === ConstantsUtil.NATIVE_TOKEN_ADDRESS;\n let value = '0';\n if (!balance) {\n value = '0';\n this.handleChangeAmount(target, value);\n return;\n }\n if (!this.gasPriceInUSD) {\n value = balance;\n this.handleChangeAmount(target, value);\n return;\n }\n const amountOfTokenGasRequires = NumberUtil.bigNumber(this.gasPriceInUSD.toFixed(5)).dividedBy(this.sourceTokenPriceInUSD);\n const maxValue = isNetworkToken\n ? NumberUtil.bigNumber(balance).minus(amountOfTokenGasRequires)\n : NumberUtil.bigNumber(balance);\n this.handleChangeAmount(target, maxValue.isGreaterThan(0) ? maxValue.toFixed(20) : '0');\n }\n templateDetails() {\n if (!this.sourceToken || !this.toToken || this.inputError) {\n return null;\n }\n return html ``;\n }\n handleChangeAmount(target, value) {\n SwapController.clearError();\n if (target === 'sourceToken') {\n SwapController.setSourceTokenAmount(value);\n }\n else {\n SwapController.setToTokenAmount(value);\n }\n this.onDebouncedGetSwapCalldata();\n }\n templateActionButton() {\n const haveNoTokenSelected = !this.toToken || !this.sourceToken;\n const haveNoAmount = !this.sourceTokenAmount;\n const loading = this.loading || this.loadingPrices || this.transactionLoading;\n const disabled = loading || haveNoTokenSelected || haveNoAmount || this.inputError;\n return html ` \n \n ${this.actionButtonLabel()}\n \n `;\n }\n onSwitchTokens() {\n SwapController.switchTokens();\n }\n onSwapPreview() {\n if (this.fetchError) {\n SwapController.swapTokens();\n return;\n }\n RouterController.push('SwapPreview');\n }\n};\nW3mSwapView.styles = styles;\n__decorate([\n state()\n], W3mSwapView.prototype, \"interval\", void 0);\n__decorate([\n state()\n], W3mSwapView.prototype, \"detailsOpen\", void 0);\n__decorate([\n state()\n], W3mSwapView.prototype, \"caipNetworkId\", void 0);\n__decorate([\n state()\n], W3mSwapView.prototype, \"initialized\", void 0);\n__decorate([\n state()\n], W3mSwapView.prototype, \"loading\", void 0);\n__decorate([\n state()\n], W3mSwapView.prototype, \"loadingPrices\", void 0);\n__decorate([\n state()\n], W3mSwapView.prototype, \"sourceToken\", void 0);\n__decorate([\n state()\n], W3mSwapView.prototype, \"sourceTokenAmount\", void 0);\n__decorate([\n state()\n], W3mSwapView.prototype, \"sourceTokenPriceInUSD\", void 0);\n__decorate([\n state()\n], W3mSwapView.prototype, \"toToken\", void 0);\n__decorate([\n state()\n], W3mSwapView.prototype, \"toTokenAmount\", void 0);\n__decorate([\n state()\n], W3mSwapView.prototype, \"toTokenPriceInUSD\", void 0);\n__decorate([\n state()\n], W3mSwapView.prototype, \"inputError\", void 0);\n__decorate([\n state()\n], W3mSwapView.prototype, \"gasPriceInUSD\", void 0);\n__decorate([\n state()\n], W3mSwapView.prototype, \"transactionLoading\", void 0);\n__decorate([\n state()\n], W3mSwapView.prototype, \"fetchError\", void 0);\nW3mSwapView = __decorate([\n customElement('w3m-swap-view')\n], W3mSwapView);\nexport { W3mSwapView };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host > wui-flex:first-child {\n overflow-y: auto;\n overflow-x: hidden;\n scrollbar-width: none;\n }\n\n :host > wui-flex:first-child::-webkit-scrollbar {\n display: none;\n }\n\n .preview-container,\n .details-container {\n width: 100%;\n }\n\n .token-image {\n width: 24px;\n height: 24px;\n box-shadow: 0 0 0 2px var(--wui-color-gray-glass-005);\n border-radius: 12px;\n }\n\n wui-loading-hexagon {\n position: absolute;\n }\n\n .token-item {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--wui-spacing-xxs);\n padding: var(--wui-spacing-xs);\n height: 40px;\n border: none;\n border-radius: 80px;\n background: var(--wui-color-gray-glass-002);\n box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-002);\n cursor: pointer;\n transition: background 0.2s linear;\n }\n\n .token-item:hover {\n background: var(--wui-color-gray-glass-005);\n }\n\n .preview-token-details-container {\n width: 100%;\n }\n\n .details-row {\n width: 100%;\n padding: var(--wui-spacing-s) var(--wui-spacing-xl);\n border-radius: var(--wui-border-radius-xxs);\n background: var(--wui-color-gray-glass-002);\n }\n\n .action-buttons-container {\n width: 100%;\n gap: var(--wui-spacing-xs);\n }\n\n .action-buttons-container > button {\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n height: 48px;\n border-radius: var(--wui-border-radius-xs);\n border: none;\n box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-010);\n }\n\n .action-buttons-container > button:disabled {\n opacity: 0.8;\n cursor: not-allowed;\n }\n\n .cancel-button:hover,\n .action-button:hover {\n cursor: pointer;\n }\n\n .action-buttons-container > wui-button.cancel-button {\n flex: 2;\n }\n\n .action-buttons-container > wui-button.action-button {\n flex: 4;\n }\n\n .action-buttons-container > button.action-button > wui-text {\n color: white;\n }\n\n .details-container > wui-flex {\n background: var(--wui-color-gray-glass-002);\n border-radius: var(--wui-border-radius-xxs);\n width: 100%;\n }\n\n .details-container > wui-flex > button {\n border: none;\n background: none;\n padding: var(--wui-spacing-s);\n border-radius: var(--wui-border-radius-xxs);\n transition: background 0.2s linear;\n }\n\n .details-container > wui-flex > button:hover {\n background: var(--wui-color-gray-glass-002);\n }\n\n .details-content-container {\n padding: var(--wui-spacing-1xs);\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .details-content-container > wui-flex {\n width: 100%;\n }\n\n .details-row {\n width: 100%;\n padding: var(--wui-spacing-s) var(--wui-spacing-xl);\n border-radius: var(--wui-border-radius-xxs);\n background: var(--wui-color-gray-glass-002);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { UiHelperUtil, customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport styles from './styles.js';\nimport { AccountController, NetworkController, RouterController, SwapController } from '@web3modal/core';\nimport { state } from 'lit/decorators.js';\nlet W3mSwapPreviewView = class W3mSwapPreviewView extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.detailsOpen = true;\n this.approvalTransaction = SwapController.state.approvalTransaction;\n this.swapTransaction = SwapController.state.swapTransaction;\n this.sourceToken = SwapController.state.sourceToken;\n this.sourceTokenAmount = SwapController.state.sourceTokenAmount ?? '';\n this.sourceTokenPriceInUSD = SwapController.state.sourceTokenPriceInUSD;\n this.toToken = SwapController.state.toToken;\n this.toTokenAmount = SwapController.state.toTokenAmount ?? '';\n this.toTokenPriceInUSD = SwapController.state.toTokenPriceInUSD;\n this.caipNetwork = NetworkController.state.caipNetwork;\n this.transactionLoading = SwapController.state.transactionLoading;\n this.balanceSymbol = AccountController.state.balanceSymbol;\n this.gasPriceInUSD = SwapController.state.gasPriceInUSD;\n this.inputError = SwapController.state.inputError;\n this.loading = SwapController.state.loading;\n this.unsubscribe.push(...[\n AccountController.subscribeKey('balanceSymbol', newBalanceSymbol => {\n if (this.balanceSymbol !== newBalanceSymbol) {\n RouterController.goBack();\n }\n }),\n NetworkController.subscribeKey('caipNetwork', newCaipNetwork => {\n if (this.caipNetwork !== newCaipNetwork) {\n this.caipNetwork = newCaipNetwork;\n }\n }),\n SwapController.subscribe(newState => {\n this.approvalTransaction = newState.approvalTransaction;\n this.swapTransaction = newState.swapTransaction;\n this.sourceToken = newState.sourceToken;\n this.gasPriceInUSD = newState.gasPriceInUSD;\n this.toToken = newState.toToken;\n this.transactionLoading = newState.transactionLoading;\n this.gasPriceInUSD = newState.gasPriceInUSD;\n this.toTokenPriceInUSD = newState.toTokenPriceInUSD;\n this.sourceTokenAmount = newState.sourceTokenAmount ?? '';\n this.toTokenAmount = newState.toTokenAmount ?? '';\n this.inputError = newState.inputError;\n this.loading = newState.loading;\n })\n ]);\n }\n firstUpdated() {\n SwapController.getTransaction();\n this.refreshTransaction();\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe?.());\n clearInterval(this.interval);\n }\n render() {\n return html `\n \n ${this.templateSwap()}\n \n `;\n }\n refreshTransaction() {\n this.interval = setInterval(() => {\n SwapController.getTransaction();\n }, 10000);\n }\n templateSwap() {\n const sourceTokenText = `${UiHelperUtil.formatNumberToLocalString(parseFloat(this.sourceTokenAmount))} ${this.sourceToken?.symbol}`;\n const toTokenText = `${UiHelperUtil.formatNumberToLocalString(parseFloat(this.toTokenAmount))} ${this.toToken?.symbol}`;\n const sourceTokenValue = parseFloat(this.sourceTokenAmount) * this.sourceTokenPriceInUSD;\n const toTokenValue = parseFloat(this.toTokenAmount) * this.toTokenPriceInUSD - (this.gasPriceInUSD || 0);\n const sentPrice = UiHelperUtil.formatNumberToLocalString(sourceTokenValue);\n const receivePrice = UiHelperUtil.formatNumberToLocalString(toTokenValue);\n return html `\n \n \n \n \n Send\n $${sentPrice}\n \n \n \n \n \n \n \n Receive\n $${receivePrice}\n \n \n \n \n \n\n ${this.templateDetails()}\n\n \n \n Review transaction carefully\n \n\n \n \n Cancel\n \n \n ${this.transactionLoading\n ? html ``\n : html `\n ${this.actionButtonLabel()}\n `}\n \n \n \n `;\n }\n templateDetails() {\n if (!this.sourceToken || !this.toToken || this.inputError) {\n return null;\n }\n return html ``;\n }\n actionButtonLabel() {\n if (this.approvalTransaction) {\n return 'Approve';\n }\n return 'Swap';\n }\n onCancelTransaction() {\n RouterController.goBack();\n }\n onSendTransaction() {\n if (this.approvalTransaction) {\n SwapController.sendTransactionForApproval(this.approvalTransaction);\n }\n else {\n SwapController.sendTransactionForSwap(this.swapTransaction);\n }\n }\n};\nW3mSwapPreviewView.styles = styles;\n__decorate([\n state()\n], W3mSwapPreviewView.prototype, \"interval\", void 0);\n__decorate([\n state()\n], W3mSwapPreviewView.prototype, \"detailsOpen\", void 0);\n__decorate([\n state()\n], W3mSwapPreviewView.prototype, \"approvalTransaction\", void 0);\n__decorate([\n state()\n], W3mSwapPreviewView.prototype, \"swapTransaction\", void 0);\n__decorate([\n state()\n], W3mSwapPreviewView.prototype, \"sourceToken\", void 0);\n__decorate([\n state()\n], W3mSwapPreviewView.prototype, \"sourceTokenAmount\", void 0);\n__decorate([\n state()\n], W3mSwapPreviewView.prototype, \"sourceTokenPriceInUSD\", void 0);\n__decorate([\n state()\n], W3mSwapPreviewView.prototype, \"toToken\", void 0);\n__decorate([\n state()\n], W3mSwapPreviewView.prototype, \"toTokenAmount\", void 0);\n__decorate([\n state()\n], W3mSwapPreviewView.prototype, \"toTokenPriceInUSD\", void 0);\n__decorate([\n state()\n], W3mSwapPreviewView.prototype, \"caipNetwork\", void 0);\n__decorate([\n state()\n], W3mSwapPreviewView.prototype, \"transactionLoading\", void 0);\n__decorate([\n state()\n], W3mSwapPreviewView.prototype, \"balanceSymbol\", void 0);\n__decorate([\n state()\n], W3mSwapPreviewView.prototype, \"gasPriceInUSD\", void 0);\n__decorate([\n state()\n], W3mSwapPreviewView.prototype, \"inputError\", void 0);\n__decorate([\n state()\n], W3mSwapPreviewView.prototype, \"loading\", void 0);\nW3mSwapPreviewView = __decorate([\n customElement('w3m-swap-preview-view')\n], W3mSwapPreviewView);\nexport { W3mSwapPreviewView };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n --tokens-scroll--top-opacity: 0;\n --tokens-scroll--bottom-opacity: 1;\n --suggested-tokens-scroll--left-opacity: 0;\n --suggested-tokens-scroll--right-opacity: 1;\n }\n\n :host > wui-flex:first-child {\n overflow-y: hidden;\n overflow-x: hidden;\n scrollbar-width: none;\n scrollbar-height: none;\n }\n\n :host > wui-flex:first-child::-webkit-scrollbar {\n display: none;\n }\n\n wui-loading-hexagon {\n position: absolute;\n }\n\n .suggested-tokens-container {\n overflow-x: auto;\n mask-image: linear-gradient(\n to right,\n rgba(0, 0, 0, calc(1 - var(--suggested-tokens-scroll--left-opacity))) 0px,\n rgba(200, 200, 200, calc(1 - var(--suggested-tokens-scroll--left-opacity))) 1px,\n black 50px,\n black 90px,\n black calc(100% - 90px),\n black calc(100% - 50px),\n rgba(155, 155, 155, calc(1 - var(--suggested-tokens-scroll--right-opacity))) calc(100% - 1px),\n rgba(0, 0, 0, calc(1 - var(--suggested-tokens-scroll--right-opacity))) 100%\n );\n }\n\n .suggested-tokens-container::-webkit-scrollbar {\n display: none;\n }\n\n .tokens-container {\n border-top: 1px solid var(--wui-color-gray-glass-005);\n height: 100%;\n max-height: 390px;\n }\n\n .tokens {\n width: 100%;\n overflow-y: auto;\n mask-image: linear-gradient(\n to bottom,\n rgba(0, 0, 0, calc(1 - var(--tokens-scroll--top-opacity))) 0px,\n rgba(200, 200, 200, calc(1 - var(--tokens-scroll--top-opacity))) 1px,\n black 50px,\n black 90px,\n black calc(100% - 90px),\n black calc(100% - 50px),\n rgba(155, 155, 155, calc(1 - var(--tokens-scroll--bottom-opacity))) calc(100% - 1px),\n rgba(0, 0, 0, calc(1 - var(--tokens-scroll--bottom-opacity))) 100%\n );\n }\n\n .network-search-input,\n .select-network-button {\n height: 40px;\n }\n\n .select-network-button {\n border: none;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n gap: var(--wui-spacing-xs);\n box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-005);\n background-color: transparent;\n border-radius: var(--wui-border-radius-xxs);\n padding: var(--wui-spacing-xs);\n align-items: center;\n transition: background-color 0.2s linear;\n }\n\n .select-network-button:hover {\n background-color: var(--wui-color-gray-glass-002);\n }\n\n .select-network-button > wui-image {\n width: 26px;\n height: 26px;\n border-radius: var(--wui-border-radius-xs);\n box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-010);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { customElement, MathUtil } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport styles from './styles.js';\nimport { RouterController, SwapController } from '@web3modal/core';\nimport { state } from 'lit/decorators.js';\nlet W3mSwapSelectTokenView = class W3mSwapSelectTokenView extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.targetToken = RouterController.state.data?.target;\n this.sourceToken = SwapController.state.sourceToken;\n this.sourceTokenAmount = SwapController.state.sourceTokenAmount;\n this.toToken = SwapController.state.toToken;\n this.myTokensWithBalance = SwapController.state.myTokensWithBalance;\n this.popularTokens = SwapController.state.popularTokens;\n this.searchValue = '';\n this.unsubscribe.push(...[\n SwapController.subscribe(newState => {\n this.sourceToken = newState.sourceToken;\n this.toToken = newState.toToken;\n this.myTokensWithBalance = newState.myTokensWithBalance;\n })\n ]);\n }\n updated() {\n const suggestedTokensContainer = this.renderRoot?.querySelector('.suggested-tokens-container');\n suggestedTokensContainer?.addEventListener('scroll', this.handleSuggestedTokensScroll.bind(this));\n const tokensList = this.renderRoot?.querySelector('.tokens');\n tokensList?.addEventListener('scroll', this.handleTokenListScroll.bind(this));\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n const suggestedTokensContainer = this.renderRoot?.querySelector('.suggested-tokens-container');\n const tokensList = this.renderRoot?.querySelector('.tokens');\n suggestedTokensContainer?.removeEventListener('scroll', this.handleSuggestedTokensScroll.bind(this));\n tokensList?.removeEventListener('scroll', this.handleTokenListScroll.bind(this));\n clearInterval(this.interval);\n }\n render() {\n return html `\n \n ${this.templateSearchInput()} ${this.templateSuggestedTokens()} ${this.templateTokens()}\n \n `;\n }\n onSelectToken(token) {\n if (this.targetToken === 'sourceToken') {\n SwapController.setSourceToken(token);\n }\n else {\n SwapController.setToToken(token);\n if (this.sourceToken && this.sourceTokenAmount) {\n SwapController.swapTokens();\n }\n }\n RouterController.goBack();\n }\n templateSearchInput() {\n return html `\n \n \n \n `;\n }\n templateTokens() {\n const yourTokens = this.myTokensWithBalance ? Object.values(this.myTokensWithBalance) : [];\n const tokens = this.popularTokens ? this.popularTokens : [];\n const filteredYourTokens = this.filterTokensWithText(yourTokens, this.searchValue);\n const filteredTokens = this.filterTokensWithText(tokens, this.searchValue);\n return html `\n \n \n ${filteredYourTokens?.length > 0\n ? html `\n \n Your tokens\n \n ${filteredYourTokens.map(token => {\n const selected = token.symbol === this.sourceToken?.symbol ||\n token.symbol === this.toToken?.symbol;\n return html `\n {\n if (!selected) {\n this.onSelectToken(token);\n }\n }}\n >\n \n `;\n })}\n `\n : null}\n\n \n Popular tokens\n \n ${filteredTokens?.length > 0\n ? filteredTokens.map(token => html `\n this.onSelectToken(token)}\n >\n \n `)\n : null}\n \n \n `;\n }\n templateSuggestedTokens() {\n const tokens = SwapController.state.suggestedTokens\n ? SwapController.state.suggestedTokens.slice(0, 8)\n : null;\n if (!tokens) {\n return null;\n }\n return html `\n \n ${tokens.map(token => html `\n this.onSelectToken(token)}\n >\n \n `)}\n \n `;\n }\n onSearchInputChange(event) {\n this.searchValue = event.detail;\n }\n handleSuggestedTokensScroll() {\n const container = this.renderRoot?.querySelector('.suggested-tokens-container');\n if (!container) {\n return;\n }\n container.style.setProperty('--suggested-tokens-scroll--left-opacity', MathUtil.interpolate([0, 100], [0, 1], container.scrollLeft).toString());\n container.style.setProperty('--suggested-tokens-scroll--right-opacity', MathUtil.interpolate([0, 100], [0, 1], container.scrollWidth - container.scrollLeft - container.offsetWidth).toString());\n }\n handleTokenListScroll() {\n const container = this.renderRoot?.querySelector('.tokens');\n if (!container) {\n return;\n }\n container.style.setProperty('--tokens-scroll--top-opacity', MathUtil.interpolate([0, 100], [0, 1], container.scrollTop).toString());\n container.style.setProperty('--tokens-scroll--bottom-opacity', MathUtil.interpolate([0, 100], [0, 1], container.scrollHeight - container.scrollTop - container.offsetHeight).toString());\n }\n filterTokensWithText(tokens, text) {\n return tokens.filter(token => `${token.symbol} ${token.name} ${token.address}`.toLowerCase().includes(text.toLowerCase()));\n }\n};\nW3mSwapSelectTokenView.styles = styles;\n__decorate([\n state()\n], W3mSwapSelectTokenView.prototype, \"interval\", void 0);\n__decorate([\n state()\n], W3mSwapSelectTokenView.prototype, \"targetToken\", void 0);\n__decorate([\n state()\n], W3mSwapSelectTokenView.prototype, \"sourceToken\", void 0);\n__decorate([\n state()\n], W3mSwapSelectTokenView.prototype, \"sourceTokenAmount\", void 0);\n__decorate([\n state()\n], W3mSwapSelectTokenView.prototype, \"toToken\", void 0);\n__decorate([\n state()\n], W3mSwapSelectTokenView.prototype, \"myTokensWithBalance\", void 0);\n__decorate([\n state()\n], W3mSwapSelectTokenView.prototype, \"popularTokens\", void 0);\n__decorate([\n state()\n], W3mSwapSelectTokenView.prototype, \"searchValue\", void 0);\nW3mSwapSelectTokenView = __decorate([\n customElement('w3m-swap-select-token-view')\n], W3mSwapSelectTokenView);\nexport { W3mSwapSelectTokenView };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host > wui-flex:first-child {\n height: 500px;\n overflow-y: auto;\n overflow-x: hidden;\n scrollbar-width: none;\n }\n\n :host > wui-flex:first-child::-webkit-scrollbar {\n display: none;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport styles from './styles.js';\nlet W3mTransactionsView = class W3mTransactionsView extends LitElement {\n render() {\n return html `\n \n \n \n `;\n }\n};\nW3mTransactionsView.styles = styles;\nW3mTransactionsView = __decorate([\n customElement('w3m-transactions-view')\n], W3mTransactionsView);\nexport { W3mTransactionsView };\n//# sourceMappingURL=index.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CoreHelperUtil } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nconst data = [\n {\n images: ['network', 'layers', 'system'],\n title: 'The system’s nuts and bolts',\n text: 'A network is what brings the blockchain to life, as this technical infrastructure allows apps to access the ledger and smart contract services.'\n },\n {\n images: ['noun', 'defiAlt', 'dao'],\n title: 'Designed for different uses',\n text: 'Each network is designed differently, and may therefore suit certain apps and experiences.'\n }\n];\nlet W3mWhatIsANetworkView = class W3mWhatIsANetworkView extends LitElement {\n render() {\n return html `\n \n \n {\n CoreHelperUtil.openHref('https://ethereum.org/en/developers/docs/networks/', '_blank');\n }}\n >\n Learn more\n \n \n \n `;\n }\n};\nW3mWhatIsANetworkView = __decorate([\n customElement('w3m-what-is-a-network-view')\n], W3mWhatIsANetworkView);\nexport { W3mWhatIsANetworkView };\n//# sourceMappingURL=index.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { EventsController, RouterController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nconst data = [\n {\n images: ['login', 'profile', 'lock'],\n title: 'One login for all of web3',\n text: 'Log in to any app by connecting your wallet. Say goodbye to countless passwords!'\n },\n {\n images: ['defi', 'nft', 'eth'],\n title: 'A home for your digital assets',\n text: 'A wallet lets you store, send and receive digital assets like cryptocurrencies and NFTs.'\n },\n {\n images: ['browser', 'noun', 'dao'],\n title: 'Your gateway to a new web',\n text: 'With your wallet, you can explore and interact with DeFi, NFTs, DAOs, and much more.'\n }\n];\nlet W3mWhatIsAWalletView = class W3mWhatIsAWalletView extends LitElement {\n render() {\n return html `\n \n \n \n \n Get a wallet\n \n \n `;\n }\n onGetWallet() {\n EventsController.sendEvent({ type: 'track', event: 'CLICK_GET_WALLET' });\n RouterController.push('GetWallet');\n }\n};\nW3mWhatIsAWalletView = __decorate([\n customElement('w3m-what-is-a-wallet-view')\n], W3mWhatIsAWalletView);\nexport { W3mWhatIsAWalletView };\n//# sourceMappingURL=index.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { customElement } from '@web3modal/ui';\nimport { RouterController } from '@web3modal/core';\nimport { LitElement, html } from 'lit';\nlet W3mWhatIsABuyView = class W3mWhatIsABuyView extends LitElement {\n render() {\n return html `\n \n \n \n \n Quickly and easily buy digital assets!\n \n \n Simply select your preferred onramp provider and add digital assets to your account\n using your credit card or bank transfer\n \n \n \n \n Buy\n \n \n `;\n }\n};\nW3mWhatIsABuyView = __decorate([\n customElement('w3m-what-is-a-buy-view')\n], W3mWhatIsABuyView);\nexport { W3mWhatIsABuyView };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n wui-loading-spinner {\n margin: 9px auto;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { RouterController, SnackController, ConnectorController, CoreHelperUtil } from '@web3modal/core';\nimport { state } from 'lit/decorators.js';\nimport styles from './styles.js';\nimport { W3mFrameHelpers } from '@web3modal/wallet';\nconst OTP_LENGTH = 6;\nlet W3mEmailOtpWidget = class W3mEmailOtpWidget extends LitElement {\n firstUpdated() {\n this.startOTPTimeout();\n }\n disconnectedCallback() {\n clearTimeout(this.OTPTimeout);\n }\n constructor() {\n super();\n this.loading = false;\n this.timeoutTimeLeft = W3mFrameHelpers.getTimeToNextEmailLogin();\n this.error = '';\n this.otp = '';\n this.email = RouterController.state.data?.email;\n this.authConnector = ConnectorController.getAuthConnector();\n }\n render() {\n if (!this.email) {\n throw new Error('w3m-email-otp-widget: No email provided');\n }\n const isResendDisabled = Boolean(this.timeoutTimeLeft);\n const footerLabels = this.getFooterLabels(isResendDisabled);\n return html `\n \n \n Enter the code we sent to\n ${this.email}\n \n\n The code expires in 20 minutes\n\n ${this.loading\n ? html ``\n : html ` \n \n ${this.error\n ? html `\n \n ${this.error}. Try Again\n \n `\n : null}\n `}\n\n \n ${footerLabels.title}\n \n ${footerLabels.action}\n \n \n \n `;\n }\n startOTPTimeout() {\n this.timeoutTimeLeft = W3mFrameHelpers.getTimeToNextEmailLogin();\n this.OTPTimeout = setInterval(() => {\n if (this.timeoutTimeLeft > 0) {\n this.timeoutTimeLeft = W3mFrameHelpers.getTimeToNextEmailLogin();\n }\n else {\n clearInterval(this.OTPTimeout);\n }\n }, 1000);\n }\n async onOtpInputChange(event) {\n try {\n if (!this.loading) {\n this.otp = event.detail;\n if (this.authConnector && this.otp.length === OTP_LENGTH) {\n this.loading = true;\n await this.onOtpSubmit?.(this.otp);\n }\n }\n }\n catch (error) {\n this.error = CoreHelperUtil.parseError(error);\n this.loading = false;\n }\n }\n async onResendCode() {\n try {\n if (this.onOtpResend) {\n if (!this.loading && !this.timeoutTimeLeft) {\n this.error = '';\n this.otp = '';\n const authConnector = ConnectorController.getAuthConnector();\n if (!authConnector || !this.email) {\n throw new Error('w3m-email-otp-widget: Unable to resend email');\n }\n this.loading = true;\n await this.onOtpResend(this.email);\n this.startOTPTimeout();\n SnackController.showSuccess('Code email resent');\n }\n }\n else if (this.onStartOver) {\n this.onStartOver();\n }\n }\n catch (error) {\n SnackController.showError(error);\n }\n finally {\n this.loading = false;\n }\n }\n getFooterLabels(isResendDisabled) {\n if (this.onStartOver) {\n return {\n title: 'Something wrong?',\n action: `Try again ${isResendDisabled ? `in ${this.timeoutTimeLeft}s` : ''}`\n };\n }\n return {\n title: `Didn't receive it?`,\n action: `Resend ${isResendDisabled ? `in ${this.timeoutTimeLeft}s` : 'Code'}`\n };\n }\n};\nW3mEmailOtpWidget.styles = styles;\n__decorate([\n state()\n], W3mEmailOtpWidget.prototype, \"loading\", void 0);\n__decorate([\n state()\n], W3mEmailOtpWidget.prototype, \"timeoutTimeLeft\", void 0);\n__decorate([\n state()\n], W3mEmailOtpWidget.prototype, \"error\", void 0);\nW3mEmailOtpWidget = __decorate([\n customElement('w3m-email-otp-widget')\n], W3mEmailOtpWidget);\nexport { W3mEmailOtpWidget };\n//# sourceMappingURL=index.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { customElement } from '@web3modal/ui';\nimport { W3mEmailOtpWidget } from '../../utils/w3m-email-otp-widget/index.js';\nimport { EventsController, ConnectionController, ModalController, NetworkController, RouterController, AccountController } from '@web3modal/core';\nimport { state } from 'lit/decorators.js';\nlet W3mEmailVerifyOtpView = class W3mEmailVerifyOtpView extends W3mEmailOtpWidget {\n constructor() {\n super();\n this.unsubscribe = [];\n this.smartAccountDeployed = AccountController.state.smartAccountDeployed;\n this.onOtpSubmit = async (otp) => {\n try {\n if (this.authConnector) {\n const smartAccountEnabled = NetworkController.checkIfSmartAccountEnabled();\n await this.authConnector.provider.connectOtp({ otp });\n EventsController.sendEvent({ type: 'track', event: 'EMAIL_VERIFICATION_CODE_PASS' });\n await ConnectionController.connectExternal(this.authConnector);\n EventsController.sendEvent({\n type: 'track',\n event: 'CONNECT_SUCCESS',\n properties: { method: 'email', name: this.authConnector.name || 'Unknown' }\n });\n if (smartAccountEnabled && !this.smartAccountDeployed) {\n RouterController.push('UpgradeToSmartAccount');\n }\n else {\n ModalController.close();\n }\n }\n }\n catch (error) {\n EventsController.sendEvent({ type: 'track', event: 'EMAIL_VERIFICATION_CODE_FAIL' });\n throw error;\n }\n };\n this.onOtpResend = async (email) => {\n if (this.authConnector) {\n await this.authConnector.provider.connectEmail({ email });\n EventsController.sendEvent({ type: 'track', event: 'EMAIL_VERIFICATION_CODE_SENT' });\n }\n };\n this.unsubscribe.push(AccountController.subscribeKey('smartAccountDeployed', val => {\n this.smartAccountDeployed = val;\n }));\n }\n};\n__decorate([\n state()\n], W3mEmailVerifyOtpView.prototype, \"smartAccountDeployed\", void 0);\nW3mEmailVerifyOtpView = __decorate([\n customElement('w3m-email-verify-otp-view')\n], W3mEmailVerifyOtpView);\nexport { W3mEmailVerifyOtpView };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n wui-icon-box {\n height: var(--wui-icon-box-size-xl);\n width: var(--wui-icon-box-size-xl);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport styles from './styles.js';\nimport { RouterController, ConnectorController, SnackController, EventsController } from '@web3modal/core';\nimport { state } from 'lit/decorators.js';\nlet W3mEmailVerifyDeviceView = class W3mEmailVerifyDeviceView extends LitElement {\n constructor() {\n super();\n this.email = RouterController.state.data?.email;\n this.authConnector = ConnectorController.getAuthConnector();\n this.loading = false;\n this.listenForDeviceApproval();\n }\n render() {\n if (!this.email) {\n throw new Error('w3m-email-verify-device-view: No email provided');\n }\n if (!this.authConnector) {\n throw new Error('w3m-email-verify-device-view: No auth connector provided');\n }\n return html `\n \n \n\n \n \n \n Approve the login link we sent to\n \n ${this.email}\n \n\n \n The code expires in 20 minutes\n \n\n \n \n Didn't receive it?\n \n \n Resend email\n \n \n \n \n `;\n }\n async listenForDeviceApproval() {\n if (this.authConnector) {\n try {\n await this.authConnector.provider.connectDevice();\n EventsController.sendEvent({ type: 'track', event: 'DEVICE_REGISTERED_FOR_EMAIL' });\n EventsController.sendEvent({ type: 'track', event: 'EMAIL_VERIFICATION_CODE_SENT' });\n RouterController.replace('EmailVerifyOtp', { email: this.email });\n }\n catch (error) {\n RouterController.goBack();\n }\n }\n }\n async onResendCode() {\n try {\n if (!this.loading) {\n if (!this.authConnector || !this.email) {\n throw new Error('w3m-email-login-widget: Unable to resend email');\n }\n this.loading = true;\n await this.authConnector.provider.connectEmail({ email: this.email });\n this.listenForDeviceApproval();\n SnackController.showSuccess('Code email resent');\n }\n }\n catch (error) {\n SnackController.showError(error);\n }\n finally {\n this.loading = false;\n }\n }\n};\nW3mEmailVerifyDeviceView.styles = styles;\n__decorate([\n state()\n], W3mEmailVerifyDeviceView.prototype, \"loading\", void 0);\nW3mEmailVerifyDeviceView = __decorate([\n customElement('w3m-email-verify-device-view')\n], W3mEmailVerifyDeviceView);\nexport { W3mEmailVerifyDeviceView };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n div {\n width: 100%;\n height: 400px;\n }\n\n [data-ready='false'] {\n transform: scale(1.05);\n }\n\n @media (max-width: 430px) {\n [data-ready='false'] {\n transform: translateY(-50px);\n }\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport styles from './styles.js';\nimport { ModalController, ConnectorController, ThemeController, RouterController } from '@web3modal/core';\nimport { getW3mThemeVariables } from '@web3modal/common';\nconst PAGE_HEIGHT = 400;\nconst PAGE_WIDTH = 360;\nconst HEADER_HEIGHT = 64;\nlet W3mApproveTransactionView = class W3mApproveTransactionView extends LitElement {\n constructor() {\n super();\n this.bodyObserver = undefined;\n this.unsubscribe = [];\n this.iframe = document.getElementById('w3m-iframe');\n this.ready = false;\n this.unsubscribe.push(...[\n ModalController.subscribeKey('open', isOpen => {\n if (!isOpen) {\n this.onHideIframe();\n RouterController.popTransactionStack();\n }\n })\n ]);\n }\n disconnectedCallback() {\n this.onHideIframe();\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n this.bodyObserver?.unobserve(window.document.body);\n }\n async firstUpdated() {\n await this.syncTheme();\n this.iframe.style.display = 'block';\n this.bodyObserver = new ResizeObserver(entries => {\n const contentBoxSize = entries?.[0]?.contentBoxSize;\n const width = contentBoxSize?.[0]?.inlineSize;\n this.iframe.style.height = `${PAGE_HEIGHT}px`;\n if (width && width <= 430) {\n this.iframe.style.width = '100%';\n this.iframe.style.left = '0px';\n this.iframe.style.bottom = '0px';\n this.iframe.style.top = 'unset';\n }\n else {\n this.iframe.style.width = `${PAGE_WIDTH}px`;\n this.iframe.style.left = `calc(50% - ${PAGE_WIDTH / 2}px)`;\n this.iframe.style.top = `calc(50% - ${PAGE_HEIGHT / 2}px + ${HEADER_HEIGHT / 2}px)`;\n this.iframe.style.bottom = 'unset';\n }\n this.ready = true;\n });\n this.bodyObserver.observe(window.document.body);\n }\n render() {\n if (this.ready) {\n this.onShowIframe();\n }\n return html `
`;\n }\n onShowIframe() {\n const isMobile = window.innerWidth <= 430;\n this.iframe.animate([\n { opacity: 0, transform: isMobile ? 'translateY(50px)' : 'scale(.95)' },\n { opacity: 1, transform: isMobile ? 'translateY(0)' : 'scale(1)' }\n ], { duration: 200, easing: 'ease', fill: 'forwards' });\n }\n async onHideIframe() {\n this.iframe.style.display = 'none';\n await this.iframe.animate([{ opacity: 1 }, { opacity: 0 }], {\n duration: 200,\n easing: 'ease',\n fill: 'forwards'\n }).finished;\n }\n async syncTheme() {\n const authConnector = ConnectorController.getAuthConnector();\n if (authConnector) {\n const themeMode = ThemeController.getSnapshot().themeMode;\n const themeVariables = ThemeController.getSnapshot().themeVariables;\n await authConnector.provider.syncTheme({\n themeVariables,\n w3mThemeVariables: getW3mThemeVariables(themeVariables, themeMode)\n });\n }\n }\n};\nW3mApproveTransactionView.styles = styles;\n__decorate([\n state()\n], W3mApproveTransactionView.prototype, \"ready\", void 0);\nW3mApproveTransactionView = __decorate([\n customElement('w3m-approve-transaction-view')\n], W3mApproveTransactionView);\nexport { W3mApproveTransactionView };\n//# sourceMappingURL=index.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { customElement } from '@web3modal/ui';\nimport { ConstantsUtil } from '@web3modal/core';\nimport { LitElement, html } from 'lit';\nlet W3mUpgradeWalletView = class W3mUpgradeWalletView extends LitElement {\n render() {\n return html `\n \n Follow the instructions on\n \n \n \n You will have to reconnect for security reasons\n \n \n `;\n }\n};\nW3mUpgradeWalletView = __decorate([\n customElement('w3m-upgrade-wallet-view')\n], W3mUpgradeWalletView);\nexport { W3mUpgradeWalletView };\n//# sourceMappingURL=index.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { customElement } from '@web3modal/ui';\nimport { ConnectionController, ConnectorController, ModalController, RouterController, CoreHelperUtil, RouterUtil, SnackController } from '@web3modal/core';\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport { W3mFrameRpcConstants } from '@web3modal/wallet';\nimport { NavigationUtil } from '@web3modal/common';\nlet W3mUpgradeToSmartAccountView = class W3mUpgradeToSmartAccountView extends LitElement {\n constructor() {\n super(...arguments);\n this.authConnector = ConnectorController.getAuthConnector();\n this.loading = false;\n this.setPreferSmartAccount = async () => {\n if (this.authConnector) {\n try {\n this.loading = true;\n ModalController.setLoading(true);\n await this.authConnector.provider.setPreferredAccount(W3mFrameRpcConstants.ACCOUNT_TYPES.SMART_ACCOUNT);\n await ConnectionController.reconnectExternal(this.authConnector);\n ModalController.setLoading(false);\n this.loading = false;\n RouterUtil.navigateAfterPreferredAccountTypeSelect();\n }\n catch (e) {\n SnackController.showError('Error upgrading to smart account');\n }\n }\n };\n }\n render() {\n return html `\n \n ${this.onboardingTemplate()} ${this.buttonsTemplate()}\n {\n CoreHelperUtil.openHref(NavigationUtil.URLS.FAQ, '_blank');\n }}\n >\n Learn more\n \n \n \n `;\n }\n onboardingTemplate() {\n return html ` \n \n \n \n \n \n \n \n Discover Smart Accounts\n \n \n Access advanced features such as username, social login, improved security and a smoother\n user experience!\n \n \n `;\n }\n buttonsTemplate() {\n return html `\n \n Do it later\n \n Continue\n \n `;\n }\n redirectToAccount() {\n RouterController.push('Account');\n }\n};\n__decorate([\n state()\n], W3mUpgradeToSmartAccountView.prototype, \"authConnector\", void 0);\n__decorate([\n state()\n], W3mUpgradeToSmartAccountView.prototype, \"loading\", void 0);\nW3mUpgradeToSmartAccountView = __decorate([\n customElement('w3m-upgrade-to-smart-account-view')\n], W3mUpgradeToSmartAccountView);\nexport { W3mUpgradeToSmartAccountView };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n wui-email-input {\n width: 100%;\n }\n\n form {\n width: 100%;\n display: block;\n position: relative;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { ConnectorController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport { ref, createRef } from 'lit/directives/ref.js';\nimport styles from './styles.js';\nimport { SnackController, RouterController, EventsController } from '@web3modal/core';\nlet W3mUpdateEmailWalletView = class W3mUpdateEmailWalletView extends LitElement {\n constructor() {\n super(...arguments);\n this.formRef = createRef();\n this.initialEmail = RouterController.state.data?.email ?? '';\n this.email = '';\n this.loading = false;\n }\n firstUpdated() {\n this.formRef.value?.addEventListener('keydown', event => {\n if (event.key === 'Enter') {\n this.onSubmitEmail(event);\n }\n });\n }\n render() {\n const showSubmit = !this.loading && this.email.length > 3 && this.email !== this.initialEmail;\n return html `\n \n
\n \n \n \n \n\n \n \n Cancel\n \n\n \n Save\n \n \n
\n `;\n }\n onEmailInputChange(event) {\n this.email = event.detail;\n }\n async onSubmitEmail(event) {\n try {\n if (this.loading) {\n return;\n }\n this.loading = true;\n event.preventDefault();\n const authConnector = ConnectorController.getAuthConnector();\n if (!authConnector) {\n throw new Error('w3m-update-email-wallet: Auth connector not found');\n }\n const response = await authConnector.provider.updateEmail({ email: this.email });\n EventsController.sendEvent({ type: 'track', event: 'EMAIL_EDIT' });\n if (response.action === 'VERIFY_SECONDARY_OTP') {\n RouterController.push('UpdateEmailSecondaryOtp', {\n email: this.initialEmail,\n newEmail: this.email\n });\n }\n else {\n RouterController.push('UpdateEmailPrimaryOtp', {\n email: this.initialEmail,\n newEmail: this.email\n });\n }\n }\n catch (error) {\n SnackController.showError(error);\n this.loading = false;\n }\n }\n};\nW3mUpdateEmailWalletView.styles = styles;\n__decorate([\n state()\n], W3mUpdateEmailWalletView.prototype, \"email\", void 0);\n__decorate([\n state()\n], W3mUpdateEmailWalletView.prototype, \"loading\", void 0);\nW3mUpdateEmailWalletView = __decorate([\n customElement('w3m-update-email-wallet-view')\n], W3mUpdateEmailWalletView);\nexport { W3mUpdateEmailWalletView };\n//# sourceMappingURL=index.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { customElement } from '@web3modal/ui';\nimport { W3mEmailOtpWidget } from '../../utils/w3m-email-otp-widget/index.js';\nimport { EventsController, RouterController } from '@web3modal/core';\nlet W3mUpdateEmailPrimaryOtpView = class W3mUpdateEmailPrimaryOtpView extends W3mEmailOtpWidget {\n constructor() {\n super();\n this.email = RouterController.state.data?.email;\n this.onOtpSubmit = async (otp) => {\n try {\n if (this.authConnector) {\n await this.authConnector.provider.updateEmailPrimaryOtp({ otp });\n EventsController.sendEvent({ type: 'track', event: 'EMAIL_VERIFICATION_CODE_PASS' });\n RouterController.replace('UpdateEmailSecondaryOtp', RouterController.state.data);\n }\n }\n catch (error) {\n EventsController.sendEvent({ type: 'track', event: 'EMAIL_VERIFICATION_CODE_FAIL' });\n throw error;\n }\n };\n this.onStartOver = () => {\n RouterController.replace('UpdateEmailWallet', RouterController.state.data);\n };\n }\n};\nW3mUpdateEmailPrimaryOtpView = __decorate([\n customElement('w3m-update-email-primary-otp-view')\n], W3mUpdateEmailPrimaryOtpView);\nexport { W3mUpdateEmailPrimaryOtpView };\n//# sourceMappingURL=index.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { customElement } from '@web3modal/ui';\nimport { W3mEmailOtpWidget } from '../../utils/w3m-email-otp-widget/index.js';\nimport { EventsController, RouterController } from '@web3modal/core';\nlet W3mUpdateEmailSecondaryOtpView = class W3mUpdateEmailSecondaryOtpView extends W3mEmailOtpWidget {\n constructor() {\n super();\n this.email = RouterController.state.data?.newEmail;\n this.onOtpSubmit = async (otp) => {\n try {\n if (this.authConnector) {\n await this.authConnector.provider.updateEmailSecondaryOtp({ otp });\n EventsController.sendEvent({ type: 'track', event: 'EMAIL_VERIFICATION_CODE_PASS' });\n RouterController.reset('Account');\n }\n }\n catch (error) {\n EventsController.sendEvent({ type: 'track', event: 'EMAIL_VERIFICATION_CODE_FAIL' });\n throw error;\n }\n };\n this.onStartOver = () => {\n RouterController.replace('UpdateEmailWallet', RouterController.state.data);\n };\n }\n};\nW3mUpdateEmailSecondaryOtpView = __decorate([\n customElement('w3m-update-email-secondary-otp-view')\n], W3mUpdateEmailSecondaryOtpView);\nexport { W3mUpdateEmailSecondaryOtpView };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host > wui-flex {\n max-height: clamp(360px, 540px, 80vh);\n overflow: scroll;\n scrollbar-width: none;\n }\n\n :host > wui-flex::-webkit-scrollbar {\n display: none;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { AccountController, AssetUtil, ConnectionController, ConstantsUtil, CoreHelperUtil, EventsController, ModalController, NetworkController, RouterController, RouterUtil, SnackController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport styles from './styles.js';\nlet W3mUnsupportedChainView = class W3mUnsupportedChainView extends LitElement {\n constructor() {\n super(...arguments);\n this.swapUnsupportedChain = RouterController.state.data?.swapUnsupportedChain;\n this.disconecting = false;\n }\n render() {\n return html `\n \n \n ${this.descriptionTemplate()}\n \n\n \n ${this.networksTemplate()}\n \n\n \n \n \n Disconnect\n \n \n \n `;\n }\n descriptionTemplate() {\n if (this.swapUnsupportedChain) {\n return html `\n \n The swap feature doesn’t support your current network. Switch to an available option to\n continue.\n \n `;\n }\n return html `\n \n This app doesn’t support your current network. Switch to an available option to continue.\n \n `;\n }\n networksTemplate() {\n const { approvedCaipNetworkIds, requestedCaipNetworks } = NetworkController.state;\n const sortedNetworks = CoreHelperUtil.sortRequestedNetworks(approvedCaipNetworkIds, requestedCaipNetworks);\n const filteredNetworks = this.swapUnsupportedChain\n ? sortedNetworks.filter(network => ConstantsUtil.SWAP_SUPPORTED_NETWORKS.includes(network.id))\n : sortedNetworks;\n return filteredNetworks.map(network => html `\n this.onSwitchNetwork(network)}\n >\n \n `);\n }\n async onDisconnect() {\n try {\n this.disconecting = true;\n await ConnectionController.disconnect();\n EventsController.sendEvent({\n type: 'track',\n event: 'DISCONNECT_SUCCESS'\n });\n ModalController.close();\n }\n catch {\n EventsController.sendEvent({ type: 'track', event: 'DISCONNECT_ERROR' });\n SnackController.showError('Failed to disconnect');\n }\n finally {\n this.disconecting = false;\n }\n }\n async onSwitchNetwork(network) {\n const { isConnected } = AccountController.state;\n const { approvedCaipNetworkIds, supportsAllNetworks, caipNetwork } = NetworkController.state;\n const { data } = RouterController.state;\n if (isConnected && caipNetwork?.id !== network.id) {\n if (approvedCaipNetworkIds?.includes(network.id)) {\n await NetworkController.switchActiveNetwork(network);\n RouterUtil.navigateAfterNetworkSwitch();\n }\n else if (supportsAllNetworks) {\n RouterController.push('SwitchNetwork', { ...data, network });\n }\n }\n else if (!isConnected) {\n NetworkController.setCaipNetwork(network);\n RouterController.push('Connect');\n }\n }\n};\nW3mUnsupportedChainView.styles = styles;\n__decorate([\n state()\n], W3mUnsupportedChainView.prototype, \"disconecting\", void 0);\nW3mUnsupportedChainView = __decorate([\n customElement('w3m-unsupported-chain-view')\n], W3mUnsupportedChainView);\nexport { W3mUnsupportedChainView };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n wui-compatible-network {\n margin-top: var(--wui-spacing-l);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { AccountController, AssetUtil, CoreHelperUtil, NetworkController, RouterController, SnackController, ThemeController } from '@web3modal/core';\nimport { UiHelperUtil, customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport styles from './styles.js';\nimport { state } from 'lit/decorators.js';\nimport { W3mFrameRpcConstants } from '@web3modal/wallet';\nlet W3mWalletReceiveView = class W3mWalletReceiveView extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.address = AccountController.state.address;\n this.profileName = AccountController.state.profileName;\n this.network = NetworkController.state.caipNetwork;\n this.preferredAccountType = AccountController.state.preferredAccountType;\n this.unsubscribe.push(...[\n AccountController.subscribe(val => {\n if (val.address) {\n this.address = val.address;\n this.profileName = val.profileName;\n this.preferredAccountType = val.preferredAccountType;\n }\n else {\n SnackController.showError('Account not found');\n }\n })\n ], NetworkController.subscribeKey('caipNetwork', val => {\n if (val?.id) {\n this.network = val;\n }\n }));\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n if (!this.address) {\n throw new Error('w3m-wallet-receive-view: No account provided');\n }\n const networkImage = AssetUtil.getNetworkImage(this.network);\n return html ` \n \n \n \n \n Copy your address or scan this QR code\n \n \n ${this.networkTemplate()}\n `;\n }\n networkTemplate() {\n const networks = NetworkController.getRequestedCaipNetworks();\n const isNetworkEnabledForSmartAccounts = NetworkController.checkIfSmartAccountEnabled();\n const caipNetwork = NetworkController.state.caipNetwork;\n if (this.preferredAccountType === W3mFrameRpcConstants.ACCOUNT_TYPES.SMART_ACCOUNT &&\n isNetworkEnabledForSmartAccounts) {\n if (!caipNetwork) {\n return null;\n }\n return html ``;\n }\n const slicedNetworks = networks?.filter(network => network?.imageId)?.slice(0, 5);\n const imagesArray = slicedNetworks.map(AssetUtil.getNetworkImage).filter(Boolean);\n return html ``;\n }\n onReceiveClick() {\n RouterController.push('WalletCompatibleNetworks');\n }\n onCopyClick() {\n try {\n if (this.address) {\n CoreHelperUtil.copyToClopboard(this.address);\n SnackController.showSuccess('Address copied');\n }\n }\n catch {\n SnackController.showError('Failed to copy');\n }\n }\n};\nW3mWalletReceiveView.styles = styles;\n__decorate([\n state()\n], W3mWalletReceiveView.prototype, \"address\", void 0);\n__decorate([\n state()\n], W3mWalletReceiveView.prototype, \"profileName\", void 0);\n__decorate([\n state()\n], W3mWalletReceiveView.prototype, \"network\", void 0);\n__decorate([\n state()\n], W3mWalletReceiveView.prototype, \"preferredAccountType\", void 0);\nW3mWalletReceiveView = __decorate([\n customElement('w3m-wallet-receive-view')\n], W3mWalletReceiveView);\nexport { W3mWalletReceiveView };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host > wui-flex {\n max-height: clamp(360px, 540px, 80vh);\n overflow: scroll;\n scrollbar-width: none;\n }\n\n :host > wui-flex::-webkit-scrollbar {\n display: none;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { AccountController, AssetUtil, CoreHelperUtil, NetworkController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport styles from './styles.js';\nimport { W3mFrameRpcConstants } from '@web3modal/wallet';\nimport { state } from 'lit/decorators.js';\nlet W3mWalletCompatibleNetworksView = class W3mWalletCompatibleNetworksView extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.preferredAccountType = AccountController.state.preferredAccountType;\n this.unsubscribe.push(AccountController.subscribeKey('preferredAccountType', val => {\n this.preferredAccountType = val;\n }));\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n return html ` \n \n ${this.networkTemplate()}\n `;\n }\n networkTemplate() {\n const { approvedCaipNetworkIds, requestedCaipNetworks, caipNetwork } = NetworkController.state;\n const isNetworkEnabledForSmartAccounts = NetworkController.checkIfSmartAccountEnabled();\n let sortedNetworks = CoreHelperUtil.sortRequestedNetworks(approvedCaipNetworkIds, requestedCaipNetworks);\n if (isNetworkEnabledForSmartAccounts &&\n this.preferredAccountType === W3mFrameRpcConstants.ACCOUNT_TYPES.SMART_ACCOUNT) {\n if (!caipNetwork) {\n return null;\n }\n sortedNetworks = [caipNetwork];\n }\n return sortedNetworks.map(network => html `\n \n \n `);\n }\n};\nW3mWalletCompatibleNetworksView.styles = styles;\n__decorate([\n state()\n], W3mWalletCompatibleNetworksView.prototype, \"preferredAccountType\", void 0);\nW3mWalletCompatibleNetworksView = __decorate([\n customElement('w3m-wallet-compatible-networks-view')\n], W3mWalletCompatibleNetworksView);\nexport { W3mWalletCompatibleNetworksView };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n display: block;\n }\n\n wui-flex {\n position: relative;\n }\n\n wui-icon-box {\n width: 40px;\n height: 40px;\n border-radius: var(--wui-border-radius-xs) !important;\n border: 5px solid var(--wui-color-bg-125);\n background: var(--wui-color-bg-175);\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n z-index: 1;\n }\n\n wui-button {\n --local-border-radius: var(--wui-border-radius-xs) !important;\n }\n\n .inputContainer {\n height: fit-content;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport styles from './styles.js';\nimport { SwapController, CoreHelperUtil, RouterController, SendController } from '@web3modal/core';\nimport { state } from 'lit/decorators.js';\nlet W3mWalletSendView = class W3mWalletSendView extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.token = SendController.state.token;\n this.sendTokenAmount = SendController.state.sendTokenAmount;\n this.receiverAddress = SendController.state.receiverAddress;\n this.receiverProfileName = SendController.state.receiverProfileName;\n this.loading = SendController.state.loading;\n this.gasPriceInUSD = SendController.state.gasPriceInUSD;\n this.message = 'Preview Send';\n this.fetchNetworkPrice();\n this.unsubscribe.push(...[\n SendController.subscribe(val => {\n this.token = val.token;\n this.sendTokenAmount = val.sendTokenAmount;\n this.receiverAddress = val.receiverAddress;\n this.gasPriceInUSD = val.gasPriceInUSD;\n this.receiverProfileName = val.receiverProfileName;\n this.loading = val.loading;\n })\n ]);\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n this.getMessage();\n return html ` \n \n \n \n \n \n \n \n ${this.message}\n \n \n `;\n }\n async fetchNetworkPrice() {\n await SwapController.getNetworkTokenPrice();\n const gas = await SwapController.getInitialGasPrice();\n if (gas?.gasPrice && gas?.gasPriceInUSD) {\n SendController.setGasPrice(gas.gasPrice);\n SendController.setGasPriceInUsd(gas.gasPriceInUSD);\n }\n }\n onButtonClick() {\n RouterController.push('WalletSendPreview');\n }\n getMessage() {\n this.message = 'Preview Send';\n if (this.receiverAddress && !CoreHelperUtil.isAddress(this.receiverAddress)) {\n this.message = 'Invalid Address';\n }\n if (!this.receiverAddress) {\n this.message = 'Add Address';\n }\n if (this.sendTokenAmount &&\n this.token &&\n this.sendTokenAmount > Number(this.token.quantity.numeric)) {\n this.message = 'Insufficient Funds';\n }\n if (!this.sendTokenAmount) {\n this.message = 'Add Amount';\n }\n if (this.sendTokenAmount && this.token?.price) {\n const value = this.sendTokenAmount * this.token.price;\n if (!value) {\n this.message = 'Incorrect Value';\n }\n }\n if (!this.token) {\n this.message = 'Select Token';\n }\n }\n};\nW3mWalletSendView.styles = styles;\n__decorate([\n state()\n], W3mWalletSendView.prototype, \"token\", void 0);\n__decorate([\n state()\n], W3mWalletSendView.prototype, \"sendTokenAmount\", void 0);\n__decorate([\n state()\n], W3mWalletSendView.prototype, \"receiverAddress\", void 0);\n__decorate([\n state()\n], W3mWalletSendView.prototype, \"receiverProfileName\", void 0);\n__decorate([\n state()\n], W3mWalletSendView.prototype, \"loading\", void 0);\n__decorate([\n state()\n], W3mWalletSendView.prototype, \"gasPriceInUSD\", void 0);\n__decorate([\n state()\n], W3mWalletSendView.prototype, \"message\", void 0);\nW3mWalletSendView = __decorate([\n customElement('w3m-wallet-send-view')\n], W3mWalletSendView);\nexport { W3mWalletSendView };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n .contentContainer {\n height: 440px;\n overflow: scroll;\n scrollbar-width: none;\n }\n\n .contentContainer::-webkit-scrollbar {\n display: none;\n }\n\n wui-icon-box {\n width: 40px;\n height: 40px;\n border-radius: var(--wui-border-radius-xxs);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport styles from './styles.js';\nimport { AccountController, CoreHelperUtil, NetworkController, RouterController, SendController } from '@web3modal/core';\nimport { state } from 'lit/decorators.js';\nlet W3mSendSelectTokenView = class W3mSendSelectTokenView extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.tokenBalance = AccountController.state.tokenBalance;\n this.search = '';\n this.onDebouncedSearch = CoreHelperUtil.debounce((value) => {\n this.search = value;\n });\n this.unsubscribe.push(...[\n AccountController.subscribe(val => {\n this.tokenBalance = val.tokenBalance;\n })\n ]);\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n return html `\n \n ${this.templateSearchInput()} ${this.templateTokens()}\n \n `;\n }\n templateSearchInput() {\n return html `\n \n \n \n `;\n }\n templateTokens() {\n this.tokens = this.tokenBalance?.filter(token => token.chainId === NetworkController.state.caipNetwork?.id);\n if (this.search) {\n this.filteredTokens = this.tokenBalance?.filter(token => token.name.toLowerCase().includes(this.search.toLowerCase()));\n }\n else {\n this.filteredTokens = this.tokens;\n }\n return html `\n \n \n Your tokens\n \n \n ${this.filteredTokens && this.filteredTokens.length > 0\n ? this.filteredTokens.map(token => html ``)\n : html `\n \n \n No tokens found\n Your tokens will appear here\n \n Buy\n `}\n \n \n `;\n }\n onBuyClick() {\n RouterController.push('OnRampProviders');\n }\n onInputChange(event) {\n this.onDebouncedSearch(event.detail);\n }\n handleTokenClick(token) {\n SendController.setToken(token);\n SendController.setTokenAmount(undefined);\n RouterController.goBack();\n }\n};\nW3mSendSelectTokenView.styles = styles;\n__decorate([\n state()\n], W3mSendSelectTokenView.prototype, \"tokenBalance\", void 0);\n__decorate([\n state()\n], W3mSendSelectTokenView.prototype, \"tokens\", void 0);\n__decorate([\n state()\n], W3mSendSelectTokenView.prototype, \"filteredTokens\", void 0);\n__decorate([\n state()\n], W3mSendSelectTokenView.prototype, \"search\", void 0);\nW3mSendSelectTokenView = __decorate([\n customElement('w3m-wallet-send-select-token-view')\n], W3mSendSelectTokenView);\nexport { W3mSendSelectTokenView };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n wui-avatar,\n wui-image {\n display: ruby;\n width: 32px;\n height: 32px;\n border-radius: var(--wui-border-radius-3xl);\n }\n\n .sendButton {\n width: 70%;\n --local-width: 100% !important;\n --local-border-radius: var(--wui-border-radius-xs) !important;\n }\n\n .cancelButton {\n width: 30%;\n --local-width: 100% !important;\n --local-border-radius: var(--wui-border-radius-xs) !important;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { UiHelperUtil, customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport styles from './styles.js';\nimport { state } from 'lit/decorators.js';\nimport { NetworkController, RouterController, SendController } from '@web3modal/core';\nlet W3mWalletSendPreviewView = class W3mWalletSendPreviewView extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.token = SendController.state.token;\n this.sendTokenAmount = SendController.state.sendTokenAmount;\n this.receiverAddress = SendController.state.receiverAddress;\n this.receiverProfileName = SendController.state.receiverProfileName;\n this.receiverProfileImageUrl = SendController.state.receiverProfileImageUrl;\n this.gasPriceInUSD = SendController.state.gasPriceInUSD;\n this.caipNetwork = NetworkController.state.caipNetwork;\n this.unsubscribe.push(...[\n SendController.subscribe(val => {\n this.token = val.token;\n this.sendTokenAmount = val.sendTokenAmount;\n this.receiverAddress = val.receiverAddress;\n this.gasPriceInUSD = val.gasPriceInUSD;\n this.receiverProfileName = val.receiverProfileName;\n this.receiverProfileImageUrl = val.receiverProfileImageUrl;\n }),\n NetworkController.subscribeKey('caipNetwork', val => (this.caipNetwork = val))\n ]);\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n return html ` \n \n \n \n Send\n ${this.sendValueTemplate()}\n \n \n \n \n \n \n \n To\n \n \n \n \n \n \n \n Review transaction carefully\n \n \n \n Cancel\n \n \n Send\n \n \n `;\n }\n sendValueTemplate() {\n if (this.token && this.sendTokenAmount) {\n const price = this.token.price;\n const totalValue = price * this.sendTokenAmount;\n return html `$${totalValue.toFixed(2)}`;\n }\n return null;\n }\n onSendClick() {\n SendController.sendToken();\n }\n onCancelClick() {\n RouterController.goBack();\n }\n};\nW3mWalletSendPreviewView.styles = styles;\n__decorate([\n state()\n], W3mWalletSendPreviewView.prototype, \"token\", void 0);\n__decorate([\n state()\n], W3mWalletSendPreviewView.prototype, \"sendTokenAmount\", void 0);\n__decorate([\n state()\n], W3mWalletSendPreviewView.prototype, \"receiverAddress\", void 0);\n__decorate([\n state()\n], W3mWalletSendPreviewView.prototype, \"receiverProfileName\", void 0);\n__decorate([\n state()\n], W3mWalletSendPreviewView.prototype, \"receiverProfileImageUrl\", void 0);\n__decorate([\n state()\n], W3mWalletSendPreviewView.prototype, \"gasPriceInUSD\", void 0);\n__decorate([\n state()\n], W3mWalletSendPreviewView.prototype, \"caipNetwork\", void 0);\nW3mWalletSendPreviewView = __decorate([\n customElement('w3m-wallet-send-preview-view')\n], W3mWalletSendPreviewView);\nexport { W3mWalletSendPreviewView };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n wui-flex {\n max-height: clamp(360px, 540px, 80vh);\n overflow: scroll;\n scrollbar-width: none;\n }\n wui-flex::-webkit-scrollbar {\n display: none;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport styles from './styles.js';\nlet W3mConnectWalletsView = class W3mConnectWalletsView extends LitElement {\n render() {\n return html `\n \n \n \n \n `;\n }\n};\nW3mConnectWalletsView.styles = styles;\nW3mConnectWalletsView = __decorate([\n customElement('w3m-connect-wallets-view')\n], W3mConnectWalletsView);\nexport { W3mConnectWalletsView };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n wui-flex {\n max-height: clamp(360px, 540px, 80vh);\n overflow: scroll;\n scrollbar-width: none;\n }\n wui-flex::-webkit-scrollbar {\n display: none;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport styles from './styles.js';\nlet W3mConnectSocialsView = class W3mConnectSocialsView extends LitElement {\n render() {\n return html `\n \n \n \n \n `;\n }\n};\nW3mConnectSocialsView.styles = styles;\nW3mConnectSocialsView = __decorate([\n customElement('w3m-connect-socials-view')\n], W3mConnectSocialsView);\nexport { W3mConnectSocialsView };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n wui-logo {\n width: 80px;\n height: 80px;\n border-radius: var(--wui-border-radius-m);\n }\n @keyframes shake {\n 0% {\n transform: translateX(0);\n }\n 25% {\n transform: translateX(3px);\n }\n 50% {\n transform: translateX(-3px);\n }\n 75% {\n transform: translateX(3px);\n }\n 100% {\n transform: translateX(0);\n }\n }\n wui-flex:first-child:not(:only-child) {\n position: relative;\n }\n wui-loading-thumbnail {\n position: absolute;\n }\n wui-icon-box {\n position: absolute;\n right: calc(var(--wui-spacing-3xs) * -1);\n bottom: calc(var(--wui-spacing-3xs) * -1);\n opacity: 0;\n transform: scale(0.5);\n transition: all var(--wui-ease-out-power-2) var(--wui-duration-lg);\n }\n wui-text[align='center'] {\n width: 100%;\n padding: 0px var(--wui-spacing-l);\n }\n [data-error='true'] wui-icon-box {\n opacity: 1;\n transform: scale(1);\n }\n [data-error='true'] > wui-flex:first-child {\n animation: shake 250ms cubic-bezier(0.36, 0.07, 0.19, 0.97) both;\n }\n .capitalize {\n text-transform: capitalize;\n }\n`;\n//# sourceMappingURL=styles.js.map","export const ConstantsUtil = {\n ACCOUNT_TABS: [{ label: 'Tokens' }, { label: 'NFTs' }, { label: 'Activity' }],\n SECURE_SITE_ORIGIN: process.env['NEXT_PUBLIC_SECURE_SITE_ORIGIN'] || 'https://secure.walletconnect.com'\n};\n//# sourceMappingURL=ConstantsUtil.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { AccountController, ConnectionController, ConnectorController, ModalController, RouterController, SnackController, StorageUtil, ThemeController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport styles from './styles.js';\nimport { ConstantsUtil } from '../../utils/ConstantsUtil.js';\nlet W3mConnectingSocialView = class W3mConnectingSocialView extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.socialProvider = AccountController.state.socialProvider;\n this.socialWindow = AccountController.state.socialWindow;\n this.error = false;\n this.connecting = false;\n this.message = 'Connect in the provider window';\n this.authConnector = ConnectorController.getAuthConnector();\n this.handleSocialConnection = async (event) => {\n if (event.data?.resultUri) {\n if (event.origin === ConstantsUtil.SECURE_SITE_ORIGIN) {\n window.removeEventListener('message', this.handleSocialConnection, false);\n try {\n if (this.authConnector && !this.connecting) {\n if (this.socialWindow) {\n this.socialWindow.close();\n AccountController.setSocialWindow(undefined);\n }\n this.connecting = true;\n this.updateMessage();\n const uri = event.data.resultUri;\n await this.authConnector.provider.connectSocial(uri);\n if (this.socialProvider) {\n StorageUtil.setConnectedSocialProvider(this.socialProvider);\n }\n await ConnectionController.connectExternal(this.authConnector);\n }\n }\n catch (error) {\n this.error = true;\n this.updateMessage();\n }\n }\n else {\n RouterController.goBack();\n SnackController.showError('Untrusted Origin');\n }\n }\n };\n this.unsubscribe.push(...[\n AccountController.subscribe(val => {\n if (val.socialProvider) {\n this.socialProvider = val.socialProvider;\n }\n if (val.socialWindow) {\n this.socialWindow = val.socialWindow;\n }\n if (val.address) {\n if (ModalController.state.open) {\n ModalController.close();\n }\n }\n })\n ]);\n if (this.authConnector) {\n this.connectSocial();\n }\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n window.removeEventListener('message', this.handleSocialConnection, false);\n }\n render() {\n return html `\n \n \n \n ${this.error ? null : this.loaderTemplate()}\n \n \n \n Log in with\n ${this.socialProvider ?? 'Social'}\n ${this.message}\n \n `;\n }\n loaderTemplate() {\n const borderRadiusMaster = ThemeController.state.themeVariables['--w3m-border-radius-master'];\n const radius = borderRadiusMaster ? parseInt(borderRadiusMaster.replace('px', ''), 10) : 4;\n return html ``;\n }\n connectSocial() {\n window.addEventListener('message', this.handleSocialConnection, false);\n }\n updateMessage() {\n if (this.error) {\n this.message = 'Something went wrong';\n }\n else if (this.connecting) {\n this.message = 'Retrieving user data';\n }\n else {\n this.message = 'Connect in the provider window';\n }\n }\n};\nW3mConnectingSocialView.styles = styles;\n__decorate([\n state()\n], W3mConnectingSocialView.prototype, \"socialProvider\", void 0);\n__decorate([\n state()\n], W3mConnectingSocialView.prototype, \"socialWindow\", void 0);\n__decorate([\n state()\n], W3mConnectingSocialView.prototype, \"error\", void 0);\n__decorate([\n state()\n], W3mConnectingSocialView.prototype, \"connecting\", void 0);\n__decorate([\n state()\n], W3mConnectingSocialView.prototype, \"message\", void 0);\nW3mConnectingSocialView = __decorate([\n customElement('w3m-connecting-social-view')\n], W3mConnectingSocialView);\nexport { W3mConnectingSocialView };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n wui-grid {\n max-height: clamp(360px, 400px, 80vh);\n overflow: scroll;\n scrollbar-width: none;\n grid-auto-rows: min-content;\n grid-template-columns: repeat(auto-fill, 76px);\n }\n\n @media (max-width: 435px) {\n wui-grid {\n grid-template-columns: repeat(auto-fill, 77px);\n }\n }\n\n wui-grid[data-scroll='false'] {\n overflow: hidden;\n }\n\n wui-grid::-webkit-scrollbar {\n display: none;\n }\n\n wui-loading-spinner {\n padding-top: var(--wui-spacing-l);\n padding-bottom: var(--wui-spacing-l);\n justify-content: center;\n grid-column: 1 / span 4;\n }\n`;\n//# sourceMappingURL=styles.js.map","import { ConnectorController } from '@web3modal/core';\nexport function markWalletsAsInstalled(wallets) {\n const { connectors } = ConnectorController.state;\n const installedConnectors = connectors\n .filter(c => c.type === 'ANNOUNCED')\n .reduce((acum, val) => {\n if (!val.info?.rdns) {\n return acum;\n }\n acum[val.info.rdns] = true;\n return acum;\n }, {});\n const walletsWithInstalled = wallets.map(wallet => ({\n ...wallet,\n installed: Boolean(wallet.rdns) && Boolean(installedConnectors[wallet.rdns ?? ''])\n }));\n const sortedWallets = walletsWithInstalled.sort((a, b) => Number(b.installed) - Number(a.installed));\n return sortedWallets;\n}\n//# sourceMappingURL=markWalletsAsInstalled.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { ApiController, AssetUtil, ConnectorController, RouterController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport styles from './styles.js';\nimport { markWalletsAsInstalled } from '../../utils/markWalletsAsInstalled.js';\nconst PAGINATOR_ID = 'local-paginator';\nlet W3mAllWalletsList = class W3mAllWalletsList extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.paginationObserver = undefined;\n this.initial = !ApiController.state.wallets.length;\n this.wallets = ApiController.state.wallets;\n this.recommended = ApiController.state.recommended;\n this.featured = ApiController.state.featured;\n this.unsubscribe.push(...[\n ApiController.subscribeKey('wallets', val => (this.wallets = val)),\n ApiController.subscribeKey('recommended', val => (this.recommended = val)),\n ApiController.subscribeKey('featured', val => (this.featured = val))\n ]);\n }\n firstUpdated() {\n this.initialFetch();\n this.createPaginationObserver();\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n this.paginationObserver?.disconnect();\n }\n render() {\n return html `\n \n ${this.initial ? this.shimmerTemplate(16) : this.walletsTemplate()}\n ${this.paginationLoaderTemplate()}\n \n `;\n }\n async initialFetch() {\n const gridEl = this.shadowRoot?.querySelector('wui-grid');\n if (this.initial && gridEl) {\n await ApiController.fetchWallets({ page: 1 });\n await gridEl.animate([{ opacity: 1 }, { opacity: 0 }], {\n duration: 200,\n fill: 'forwards',\n easing: 'ease'\n }).finished;\n this.initial = false;\n gridEl.animate([{ opacity: 0 }, { opacity: 1 }], {\n duration: 200,\n fill: 'forwards',\n easing: 'ease'\n });\n }\n }\n shimmerTemplate(items, id) {\n return [...Array(items)].map(() => html `\n \n `);\n }\n walletsTemplate() {\n const wallets = [...this.featured, ...this.recommended, ...this.wallets];\n const walletsWithInstalled = markWalletsAsInstalled(wallets);\n return walletsWithInstalled.map(wallet => html `\n this.onConnectWallet(wallet)}\n .installed=${wallet.installed}\n >\n `);\n }\n paginationLoaderTemplate() {\n const { wallets, recommended, featured, count } = ApiController.state;\n const columns = window.innerWidth < 352 ? 3 : 4;\n const currentWallets = wallets.length + recommended.length;\n const minimumRows = Math.ceil(currentWallets / columns);\n let shimmerCount = minimumRows * columns - currentWallets + columns;\n shimmerCount -= wallets.length ? featured.length % columns : 0;\n if (count === 0 && featured.length > 0) {\n return null;\n }\n if (count === 0 || [...featured, ...wallets, ...recommended].length < count) {\n return this.shimmerTemplate(shimmerCount, PAGINATOR_ID);\n }\n return null;\n }\n createPaginationObserver() {\n const loaderEl = this.shadowRoot?.querySelector(`#${PAGINATOR_ID}`);\n if (loaderEl) {\n this.paginationObserver = new IntersectionObserver(([element]) => {\n if (element?.isIntersecting && !this.initial) {\n const { page, count, wallets } = ApiController.state;\n if (wallets.length < count) {\n ApiController.fetchWallets({ page: page + 1 });\n }\n }\n });\n this.paginationObserver.observe(loaderEl);\n }\n }\n onConnectWallet(wallet) {\n const connector = ConnectorController.getConnector(wallet.id, wallet.rdns);\n if (connector) {\n RouterController.push('ConnectingExternal', { connector });\n }\n else {\n RouterController.push('ConnectingWalletConnect', { wallet });\n }\n }\n};\nW3mAllWalletsList.styles = styles;\n__decorate([\n state()\n], W3mAllWalletsList.prototype, \"initial\", void 0);\n__decorate([\n state()\n], W3mAllWalletsList.prototype, \"wallets\", void 0);\n__decorate([\n state()\n], W3mAllWalletsList.prototype, \"recommended\", void 0);\n__decorate([\n state()\n], W3mAllWalletsList.prototype, \"featured\", void 0);\nW3mAllWalletsList = __decorate([\n customElement('w3m-all-wallets-list')\n], W3mAllWalletsList);\nexport { W3mAllWalletsList };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n wui-grid,\n wui-loading-spinner,\n wui-flex {\n height: 360px;\n }\n\n wui-grid {\n overflow: scroll;\n scrollbar-width: none;\n grid-auto-rows: min-content;\n }\n\n wui-grid[data-scroll='false'] {\n overflow: hidden;\n }\n\n wui-grid::-webkit-scrollbar {\n display: none;\n }\n\n wui-loading-spinner {\n justify-content: center;\n align-items: center;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { ApiController, AssetUtil, ConnectorController, RouterController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport styles from './styles.js';\nimport { markWalletsAsInstalled } from '../../utils/markWalletsAsInstalled.js';\nlet W3mAllWalletsSearch = class W3mAllWalletsSearch extends LitElement {\n constructor() {\n super(...arguments);\n this.prevQuery = '';\n this.loading = true;\n this.query = '';\n }\n render() {\n this.onSearch();\n return this.loading\n ? html ``\n : this.walletsTemplate();\n }\n async onSearch() {\n if (this.query.trim() !== this.prevQuery.trim()) {\n this.prevQuery = this.query;\n this.loading = true;\n await ApiController.searchWallet({ search: this.query });\n this.loading = false;\n }\n }\n walletsTemplate() {\n const { search } = ApiController.state;\n const wallets = markWalletsAsInstalled(search);\n if (!search.length) {\n return html `\n \n \n No Wallet found\n \n `;\n }\n return html `\n \n ${wallets.map(wallet => html `\n this.onConnectWallet(wallet)}\n .installed=${wallet.installed}\n >\n `)}\n \n `;\n }\n onConnectWallet(wallet) {\n const connector = ConnectorController.getConnector(wallet.id, wallet.rdns);\n if (connector) {\n RouterController.push('ConnectingExternal', { connector });\n }\n else {\n RouterController.push('ConnectingWalletConnect', { wallet });\n }\n }\n};\nW3mAllWalletsSearch.styles = styles;\n__decorate([\n state()\n], W3mAllWalletsSearch.prototype, \"loading\", void 0);\n__decorate([\n property()\n], W3mAllWalletsSearch.prototype, \"query\", void 0);\nW3mAllWalletsSearch = __decorate([\n customElement('w3m-all-wallets-search')\n], W3mAllWalletsSearch);\nexport { W3mAllWalletsSearch };\n//# sourceMappingURL=index.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { ConnectionController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nlet W3mConnectingHeader = class W3mConnectingHeader extends LitElement {\n constructor() {\n super();\n this.platformTabs = [];\n this.unsubscribe = [];\n this.platforms = [];\n this.onSelectPlatfrom = undefined;\n this.buffering = false;\n this.unsubscribe.push(ConnectionController.subscribeKey('buffering', val => (this.buffering = val)));\n }\n disconnectCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n const tabs = this.generateTabs();\n return html `\n \n \n \n `;\n }\n generateTabs() {\n const tabs = this.platforms.map(platform => {\n if (platform === 'browser') {\n return { label: 'Browser', icon: 'extension', platform: 'browser' };\n }\n else if (platform === 'mobile') {\n return { label: 'Mobile', icon: 'mobile', platform: 'mobile' };\n }\n else if (platform === 'qrcode') {\n return { label: 'Mobile', icon: 'mobile', platform: 'qrcode' };\n }\n else if (platform === 'web') {\n return { label: 'Webapp', icon: 'browser', platform: 'web' };\n }\n else if (platform === 'desktop') {\n return { label: 'Desktop', icon: 'desktop', platform: 'desktop' };\n }\n return { label: 'Browser', icon: 'extension', platform: 'unsupported' };\n });\n this.platformTabs = tabs.map(({ platform }) => platform);\n return tabs;\n }\n onTabChange(index) {\n const tab = this.platformTabs[index];\n if (tab) {\n this.onSelectPlatfrom?.(tab);\n }\n }\n};\n__decorate([\n property({ type: Array })\n], W3mConnectingHeader.prototype, \"platforms\", void 0);\n__decorate([\n property()\n], W3mConnectingHeader.prototype, \"onSelectPlatfrom\", void 0);\n__decorate([\n state()\n], W3mConnectingHeader.prototype, \"buffering\", void 0);\nW3mConnectingHeader = __decorate([\n customElement('w3m-connecting-header')\n], W3mConnectingHeader);\nexport { W3mConnectingHeader };\n//# sourceMappingURL=index.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { ConnectionController, ConnectorController, EventsController, ModalController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { W3mConnectingWidget } from '../../utils/w3m-connecting-widget/index.js';\nlet W3mConnectingWcBrowser = class W3mConnectingWcBrowser extends W3mConnectingWidget {\n constructor() {\n super();\n if (!this.wallet) {\n throw new Error('w3m-connecting-wc-browser: No wallet provided');\n }\n this.onConnect = this.onConnectProxy.bind(this);\n this.onAutoConnect = this.onConnectProxy.bind(this);\n EventsController.sendEvent({\n type: 'track',\n event: 'SELECT_WALLET',\n properties: { name: this.wallet.name, platform: 'browser' }\n });\n }\n async onConnectProxy() {\n try {\n this.error = false;\n const { connectors } = ConnectorController.state;\n const announcedConnector = connectors.find(c => c.type === 'ANNOUNCED' && c.info?.rdns === this.wallet?.rdns);\n const injectedConnector = connectors.find(c => c.type === 'INJECTED');\n if (announcedConnector) {\n await ConnectionController.connectExternal(announcedConnector);\n }\n else if (injectedConnector) {\n await ConnectionController.connectExternal(injectedConnector);\n }\n ModalController.close();\n EventsController.sendEvent({\n type: 'track',\n event: 'CONNECT_SUCCESS',\n properties: { method: 'browser', name: this.wallet?.name || 'Unknown' }\n });\n }\n catch (error) {\n EventsController.sendEvent({\n type: 'track',\n event: 'CONNECT_ERROR',\n properties: { message: error?.message ?? 'Unknown' }\n });\n this.error = true;\n }\n }\n};\nW3mConnectingWcBrowser = __decorate([\n customElement('w3m-connecting-wc-browser')\n], W3mConnectingWcBrowser);\nexport { W3mConnectingWcBrowser };\n//# sourceMappingURL=index.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { ConnectionController, CoreHelperUtil, EventsController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { W3mConnectingWidget } from '../../utils/w3m-connecting-widget/index.js';\nlet W3mConnectingWcDesktop = class W3mConnectingWcDesktop extends W3mConnectingWidget {\n constructor() {\n super();\n if (!this.wallet) {\n throw new Error('w3m-connecting-wc-desktop: No wallet provided');\n }\n this.onConnect = this.onConnectProxy.bind(this);\n this.onRender = this.onRenderProxy.bind(this);\n EventsController.sendEvent({\n type: 'track',\n event: 'SELECT_WALLET',\n properties: { name: this.wallet.name, platform: 'desktop' }\n });\n }\n onRenderProxy() {\n if (!this.ready && this.uri) {\n this.ready = true;\n this.timeout = setTimeout(() => {\n this.onConnect?.();\n }, 200);\n }\n }\n onConnectProxy() {\n if (this.wallet?.desktop_link && this.uri) {\n try {\n this.error = false;\n const { desktop_link, name } = this.wallet;\n const { redirect, href } = CoreHelperUtil.formatNativeUrl(desktop_link, this.uri);\n ConnectionController.setWcLinking({ name, href });\n ConnectionController.setRecentWallet(this.wallet);\n CoreHelperUtil.openHref(redirect, '_blank');\n }\n catch {\n this.error = true;\n }\n }\n }\n};\nW3mConnectingWcDesktop = __decorate([\n customElement('w3m-connecting-wc-desktop')\n], W3mConnectingWcDesktop);\nexport { W3mConnectingWcDesktop };\n//# sourceMappingURL=index.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { ConnectionController, CoreHelperUtil, EventsController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { W3mConnectingWidget } from '../../utils/w3m-connecting-widget/index.js';\nlet W3mConnectingWcMobile = class W3mConnectingWcMobile extends W3mConnectingWidget {\n constructor() {\n super();\n if (!this.wallet) {\n throw new Error('w3m-connecting-wc-mobile: No wallet provided');\n }\n this.onConnect = this.onConnectProxy.bind(this);\n this.onRender = this.onRenderProxy.bind(this);\n document.addEventListener('visibilitychange', this.onBuffering.bind(this));\n EventsController.sendEvent({\n type: 'track',\n event: 'SELECT_WALLET',\n properties: { name: this.wallet.name, platform: 'mobile' }\n });\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n document.removeEventListener('visibilitychange', this.onBuffering.bind(this));\n }\n onRenderProxy() {\n if (!this.ready && this.uri) {\n this.ready = true;\n this.onConnect?.();\n }\n }\n onConnectProxy() {\n if (this.wallet?.mobile_link && this.uri) {\n try {\n this.error = false;\n const { mobile_link, name } = this.wallet;\n const { redirect, href } = CoreHelperUtil.formatNativeUrl(mobile_link, this.uri);\n ConnectionController.setWcLinking({ name, href });\n ConnectionController.setRecentWallet(this.wallet);\n CoreHelperUtil.openHref(redirect, '_self');\n }\n catch {\n this.error = true;\n }\n }\n }\n onBuffering() {\n const isIos = CoreHelperUtil.isIos();\n if (document?.visibilityState === 'visible' && !this.error && isIos) {\n ConnectionController.setBuffering(true);\n setTimeout(() => {\n ConnectionController.setBuffering(false);\n }, 5000);\n }\n }\n};\nW3mConnectingWcMobile = __decorate([\n customElement('w3m-connecting-wc-mobile')\n], W3mConnectingWcMobile);\nexport { W3mConnectingWcMobile };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n @keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n wui-shimmer {\n width: 100%;\n aspect-ratio: 1 / 1;\n border-radius: clamp(0px, var(--wui-border-radius-l), 40px) !important;\n }\n\n wui-qr-code {\n opacity: 0;\n animation-duration: 200ms;\n animation-timing-function: ease;\n animation-name: fadein;\n animation-fill-mode: forwards;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { AssetUtil, ConnectionController, EventsController, ThemeController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { html } from 'lit';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { W3mConnectingWidget } from '../../utils/w3m-connecting-widget/index.js';\nimport styles from './styles.js';\nlet W3mConnectingWcQrcode = class W3mConnectingWcQrcode extends W3mConnectingWidget {\n constructor() {\n super();\n this.forceUpdate = () => {\n this.requestUpdate();\n };\n window.addEventListener('resize', this.forceUpdate);\n EventsController.sendEvent({\n type: 'track',\n event: 'SELECT_WALLET',\n properties: { name: this.wallet?.name ?? 'WalletConnect', platform: 'qrcode' }\n });\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n window.removeEventListener('resize', this.forceUpdate);\n }\n render() {\n this.onRenderProxy();\n return html `\n \n ${this.qrCodeTemplate()} \n\n \n Scan this QR Code with your phone\n \n ${this.copyTemplate()}\n \n\n \n `;\n }\n onRenderProxy() {\n if (!this.ready && this.uri) {\n this.timeout = setTimeout(() => {\n this.ready = true;\n }, 200);\n }\n }\n qrCodeTemplate() {\n if (!this.uri || !this.ready) {\n return null;\n }\n const size = this.getBoundingClientRect().width - 40;\n const alt = this.wallet ? this.wallet.name : undefined;\n ConnectionController.setWcLinking(undefined);\n ConnectionController.setRecentWallet(this.wallet);\n return html ` `;\n }\n copyTemplate() {\n const inactive = !this.uri || !this.ready;\n return html `\n \n Copy link\n `;\n }\n};\nW3mConnectingWcQrcode.styles = styles;\nW3mConnectingWcQrcode = __decorate([\n customElement('w3m-connecting-wc-qrcode')\n], W3mConnectingWcQrcode);\nexport { W3mConnectingWcQrcode };\n//# sourceMappingURL=index.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { AssetUtil, EventsController, RouterController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nlet W3mConnectingWcUnsupported = class W3mConnectingWcUnsupported extends LitElement {\n constructor() {\n super();\n this.wallet = RouterController.state.data?.wallet;\n if (!this.wallet) {\n throw new Error('w3m-connecting-wc-unsupported: No wallet provided');\n }\n EventsController.sendEvent({\n type: 'track',\n event: 'SELECT_WALLET',\n properties: { name: this.wallet.name, platform: 'browser' }\n });\n }\n render() {\n return html `\n \n \n\n Not Detected\n \n\n \n `;\n }\n};\nW3mConnectingWcUnsupported = __decorate([\n customElement('w3m-connecting-wc-unsupported')\n], W3mConnectingWcUnsupported);\nexport { W3mConnectingWcUnsupported };\n//# sourceMappingURL=index.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { ConnectionController, CoreHelperUtil, EventsController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { W3mConnectingWidget } from '../../utils/w3m-connecting-widget/index.js';\nlet W3mConnectingWcWeb = class W3mConnectingWcWeb extends W3mConnectingWidget {\n constructor() {\n super();\n if (!this.wallet) {\n throw new Error('w3m-connecting-wc-web: No wallet provided');\n }\n this.onConnect = this.onConnectProxy.bind(this);\n this.secondaryBtnLabel = 'Open';\n this.secondaryLabel = 'Open and continue in a new browser tab';\n this.secondaryBtnIcon = 'externalLink';\n EventsController.sendEvent({\n type: 'track',\n event: 'SELECT_WALLET',\n properties: { name: this.wallet.name, platform: 'web' }\n });\n }\n onConnectProxy() {\n if (this.wallet?.webapp_link && this.uri) {\n try {\n this.error = false;\n const { webapp_link, name } = this.wallet;\n const { redirect, href } = CoreHelperUtil.formatUniversalUrl(webapp_link, this.uri);\n ConnectionController.setWcLinking({ name, href });\n ConnectionController.setRecentWallet(this.wallet);\n CoreHelperUtil.openHref(redirect, '_blank');\n }\n catch {\n this.error = true;\n }\n }\n }\n};\nW3mConnectingWcWeb = __decorate([\n customElement('w3m-connecting-wc-web')\n], W3mConnectingWcWeb);\nexport { W3mConnectingWcWeb };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n width: 100%;\n }\n\n .details-container > wui-flex {\n background: var(--wui-color-gray-glass-002);\n border-radius: var(--wui-border-radius-xxs);\n width: 100%;\n }\n\n .details-container > wui-flex > button {\n border: none;\n background: none;\n padding: var(--wui-spacing-s);\n border-radius: var(--wui-border-radius-xxs);\n cursor: pointer;\n }\n\n .details-content-container {\n padding: var(--wui-spacing-1xs);\n padding-top: 0px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .details-content-container > wui-flex {\n width: 100%;\n }\n\n .details-row {\n width: 100%;\n padding: var(--wui-spacing-s);\n padding-left: var(--wui-spacing-s);\n padding-right: var(--wui-spacing-1xs);\n border-radius: calc(var(--wui-border-radius-5xs) + var(--wui-border-radius-4xs));\n background: var(--wui-color-gray-glass-002);\n }\n\n .details-row-title {\n white-space: nowrap;\n }\n\n .details-row.provider-free-row {\n padding-right: var(--wui-spacing-xs);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport styles from './styles.js';\nimport { UiHelperUtil, customElement } from '@web3modal/ui';\nimport { NumberUtil } from '@web3modal/common';\nimport { ConstantsUtil, NetworkController, SwapController } from '@web3modal/core';\nconst slippageRate = ConstantsUtil.CONVERT_SLIPPAGE_TOLERANCE;\nlet WuiSwapDetails = class WuiSwapDetails extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.networkName = NetworkController.state.caipNetwork?.name;\n this.detailsOpen = false;\n this.sourceToken = SwapController.state.sourceToken;\n this.toToken = SwapController.state.toToken;\n this.toTokenAmount = SwapController.state.toTokenAmount;\n this.sourceTokenPriceInUSD = SwapController.state.sourceTokenPriceInUSD;\n this.toTokenPriceInUSD = SwapController.state.toTokenPriceInUSD;\n this.gasPriceInUSD = SwapController.state.gasPriceInUSD;\n this.priceImpact = SwapController.state.priceImpact;\n this.maxSlippage = SwapController.state.maxSlippage;\n this.networkTokenSymbol = SwapController.state.networkTokenSymbol;\n this.inputError = SwapController.state.inputError;\n this.unsubscribe.push(...[\n SwapController.subscribe(newState => {\n this.sourceToken = newState.sourceToken;\n this.toToken = newState.toToken;\n this.toTokenAmount = newState.toTokenAmount;\n this.gasPriceInUSD = newState.gasPriceInUSD;\n this.priceImpact = newState.priceImpact;\n this.maxSlippage = newState.maxSlippage;\n this.sourceTokenPriceInUSD = newState.sourceTokenPriceInUSD;\n this.toTokenPriceInUSD = newState.toTokenPriceInUSD;\n this.inputError = newState.inputError;\n })\n ]);\n }\n render() {\n const minReceivedAmount = this.toTokenAmount && this.maxSlippage\n ? NumberUtil.bigNumber(this.toTokenAmount).minus(this.maxSlippage).toString()\n : null;\n if (!this.sourceToken || !this.toToken || this.inputError) {\n return null;\n }\n const toTokenSwappedAmount = this.sourceTokenPriceInUSD && this.toTokenPriceInUSD\n ? (1 / this.toTokenPriceInUSD) * this.sourceTokenPriceInUSD\n : 0;\n return html `\n \n \n \n ${this.detailsOpen\n ? html `\n \n \n \n \n \n Network cost\n \n \n \n \n \n \n $${UiHelperUtil.formatNumberToLocalString(this.gasPriceInUSD, 3)}\n \n \n \n ${this.priceImpact\n ? html ` \n \n \n \n Price impact\n \n \n \n \n \n \n \n ${UiHelperUtil.formatNumberToLocalString(this.priceImpact, 3)}%\n \n \n \n `\n : null}\n ${this.maxSlippage && this.sourceToken.symbol\n ? html `\n \n \n \n Max. slippage\n \n \n \n \n \n \n \n ${UiHelperUtil.formatNumberToLocalString(this.maxSlippage, 6)}\n ${this.toToken.symbol} ${slippageRate}%\n \n \n \n `\n : null}\n \n \n \n \n Provider fee\n \n \n \n 0.85%\n \n \n \n \n `\n : null}\n \n \n `;\n }\n toggleDetails() {\n this.detailsOpen = !this.detailsOpen;\n }\n};\nWuiSwapDetails.styles = [styles];\n__decorate([\n state()\n], WuiSwapDetails.prototype, \"networkName\", void 0);\n__decorate([\n property()\n], WuiSwapDetails.prototype, \"detailsOpen\", void 0);\n__decorate([\n state()\n], WuiSwapDetails.prototype, \"sourceToken\", void 0);\n__decorate([\n state()\n], WuiSwapDetails.prototype, \"toToken\", void 0);\n__decorate([\n state()\n], WuiSwapDetails.prototype, \"toTokenAmount\", void 0);\n__decorate([\n state()\n], WuiSwapDetails.prototype, \"sourceTokenPriceInUSD\", void 0);\n__decorate([\n state()\n], WuiSwapDetails.prototype, \"toTokenPriceInUSD\", void 0);\n__decorate([\n state()\n], WuiSwapDetails.prototype, \"gasPriceInUSD\", void 0);\n__decorate([\n state()\n], WuiSwapDetails.prototype, \"priceImpact\", void 0);\n__decorate([\n state()\n], WuiSwapDetails.prototype, \"maxSlippage\", void 0);\n__decorate([\n state()\n], WuiSwapDetails.prototype, \"networkTokenSymbol\", void 0);\n__decorate([\n state()\n], WuiSwapDetails.prototype, \"inputError\", void 0);\nWuiSwapDetails = __decorate([\n customElement('w3m-swap-details')\n], WuiSwapDetails);\nexport { WuiSwapDetails };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host > wui-flex {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n border-radius: var(--wui-border-radius-s);\n background-color: var(--wui-color-gray-glass-002);\n padding: var(--wui-spacing-xl);\n padding-right: var(--wui-spacing-s);\n width: 100%;\n height: 100px;\n box-sizing: border-box;\n box-shadow: inset 0px 0px 0px 1px var(--wui-color-gray-glass-002);\n position: relative;\n transition: box-shadow var(--wui-ease-out-power-1) var(--wui-duration-lg);\n will-change: background-color;\n }\n\n :host wui-flex.focus {\n box-shadow: inset 0px 0px 0px 1px var(--wui-color-gray-glass-005);\n }\n\n :host > wui-flex .swap-input,\n :host > wui-flex .swap-token-button {\n z-index: 10;\n }\n\n :host > wui-flex .swap-input {\n -webkit-mask-image: linear-gradient(\n 270deg,\n transparent 0px,\n transparent 8px,\n black 24px,\n black 25px,\n black 32px,\n black 100%\n );\n mask-image: linear-gradient(\n 270deg,\n transparent 0px,\n transparent 8px,\n black 24px,\n black 25px,\n black 32px,\n black 100%\n );\n }\n\n :host > wui-flex .swap-input input {\n background: none;\n border: none;\n height: 42px;\n width: 100%;\n font-size: 32px;\n font-style: normal;\n font-weight: 400;\n line-height: 130%;\n letter-spacing: -1.28px;\n outline: none;\n caret-color: var(--wui-color-accent-100);\n color: var(--wui-color-fg-100);\n padding: 0px;\n }\n\n :host > wui-flex .swap-input input:focus-visible {\n outline: none;\n }\n\n :host > wui-flex .swap-input input::-webkit-outer-spin-button,\n :host > wui-flex .swap-input input::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n\n .max-value-button {\n background-color: transparent;\n border: none;\n cursor: pointer;\n color: var(--wui-color-gray-glass-020);\n padding-left: 0px;\n }\n\n .market-value {\n min-height: 18px;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { EventsController, RouterController } from '@web3modal/core';\nimport { InputUtil, NumberUtil } from '@web3modal/common';\nimport { UiHelperUtil, customElement } from '@web3modal/ui';\nimport styles from './styles.js';\nconst MINIMUM_USD_VALUE_TO_CONVERT = 0.00005;\nlet W3mSwapInput = class W3mSwapInput extends LitElement {\n constructor() {\n super(...arguments);\n this.focused = false;\n this.price = 0;\n this.target = 'sourceToken';\n this.onSetAmount = null;\n this.onSetMaxValue = null;\n }\n render() {\n const marketValue = this.marketValue || '0';\n const isMarketValueGreaterThanZero = NumberUtil.bigNumber(marketValue).isGreaterThan('0');\n return html `\n \n \n this.onFocusChange(true)}\n @focusout=${() => this.onFocusChange(false)}\n ?disabled=${this.disabled}\n .value=${this.value}\n @input=${this.dispatchInputChangeEvent}\n @keydown=${this.handleKeydown}\n placeholder=\"0\"\n type=\"text\"\n inputmode=\"decimal\"\n />\n \n ${isMarketValueGreaterThanZero\n ? `$${UiHelperUtil.formatNumberToLocalString(this.marketValue, 3)}`\n : null}\n \n \n ${this.templateTokenSelectButton()}\n \n `;\n }\n handleKeydown(event) {\n return InputUtil.numericInputKeyDown(event, this.value, (value) => this.onSetAmount?.(this.target, value));\n }\n dispatchInputChangeEvent(event) {\n if (!this.onSetAmount) {\n return;\n }\n const value = event.target.value.replace(/[^0-9.]/gu, '');\n if (value === ',' || value === '.') {\n this.onSetAmount(this.target, '0.');\n }\n else if (value.endsWith(',')) {\n this.onSetAmount(this.target, value.replace(',', '.'));\n }\n else {\n this.onSetAmount(this.target, value);\n }\n }\n setMaxValueToInput() {\n this.onSetMaxValue?.(this.target, this.balance);\n }\n templateTokenSelectButton() {\n if (!this.token) {\n return html ` \n Select token\n `;\n }\n return html `\n \n \n \n ${this.tokenBalanceTemplate()} \n \n `;\n }\n tokenBalanceTemplate() {\n const balanceValueInUSD = NumberUtil.multiply(this.balance, this.price);\n const haveBalance = balanceValueInUSD\n ? balanceValueInUSD?.isGreaterThan(MINIMUM_USD_VALUE_TO_CONVERT)\n : false;\n return html `\n ${haveBalance\n ? html `\n ${UiHelperUtil.formatNumberToLocalString(this.balance, 3)}\n `\n : null}\n ${this.target === 'sourceToken' ? this.tokenActionButtonTemplate(haveBalance) : null}\n `;\n }\n tokenActionButtonTemplate(haveBalance) {\n if (haveBalance) {\n return html ` `;\n }\n return html ` `;\n }\n onFocusChange(state) {\n this.focused = state;\n }\n onSelectToken() {\n EventsController.sendEvent({ type: 'track', event: 'CLICK_SELECT_TOKEN_TO_SWAP' });\n RouterController.push('SwapSelectToken', {\n target: this.target\n });\n }\n onBuyToken() {\n RouterController.push('OnRampProviders');\n }\n};\nW3mSwapInput.styles = [styles];\n__decorate([\n property()\n], W3mSwapInput.prototype, \"focused\", void 0);\n__decorate([\n property()\n], W3mSwapInput.prototype, \"balance\", void 0);\n__decorate([\n property()\n], W3mSwapInput.prototype, \"value\", void 0);\n__decorate([\n property()\n], W3mSwapInput.prototype, \"price\", void 0);\n__decorate([\n property()\n], W3mSwapInput.prototype, \"marketValue\", void 0);\n__decorate([\n property()\n], W3mSwapInput.prototype, \"disabled\", void 0);\n__decorate([\n property()\n], W3mSwapInput.prototype, \"target\", void 0);\n__decorate([\n property()\n], W3mSwapInput.prototype, \"token\", void 0);\n__decorate([\n property()\n], W3mSwapInput.prototype, \"onSetAmount\", void 0);\n__decorate([\n property()\n], W3mSwapInput.prototype, \"onSetMaxValue\", void 0);\nW3mSwapInput = __decorate([\n customElement('w3m-swap-input')\n], W3mSwapInput);\nexport { W3mSwapInput };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n width: 100%;\n }\n\n :host > wui-flex {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n border-radius: var(--wui-border-radius-s);\n padding: var(--wui-spacing-xl);\n padding-right: var(--wui-spacing-s);\n background-color: var(--wui-color-gray-glass-002);\n box-shadow: inset 0px 0px 0px 1px var(--wui-color-gray-glass-002);\n width: 100%;\n height: 100px;\n box-sizing: border-box;\n position: relative;\n }\n\n wui-shimmer.market-value {\n opacity: 0;\n }\n\n :host > wui-flex > svg.input_mask {\n position: absolute;\n inset: 0;\n z-index: 5;\n }\n\n :host wui-flex .input_mask__border,\n :host wui-flex .input_mask__background {\n transition: fill var(--wui-duration-md) var(--wui-ease-out-power-1);\n will-change: fill;\n }\n\n :host wui-flex .input_mask__border {\n fill: var(--wui-color-gray-glass-020);\n }\n\n :host wui-flex .input_mask__background {\n fill: var(--wui-color-gray-glass-002);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport {} from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport styles from './styles.js';\nlet W3mSwapInputSkeleton = class W3mSwapInputSkeleton extends LitElement {\n constructor() {\n super(...arguments);\n this.target = 'sourceToken';\n }\n render() {\n return html `\n \n \n \n \n ${this.templateTokenSelectButton()}\n \n `;\n }\n templateTokenSelectButton() {\n return html `\n \n \n \n `;\n }\n};\nW3mSwapInputSkeleton.styles = [styles];\n__decorate([\n property()\n], W3mSwapInputSkeleton.prototype, \"target\", void 0);\nW3mSwapInputSkeleton = __decorate([\n customElement('w3m-swap-input-skeleton')\n], W3mSwapInputSkeleton);\nexport { W3mSwapInputSkeleton };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n height: 64px;\n }\n\n wui-text {\n text-transform: capitalize;\n }\n\n wui-icon-link[data-hidden='true'] {\n opacity: 0 !important;\n pointer-events: none;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { AccountController, ConnectionController, ConnectorController, EventsController, ModalController, OptionsController, RouterController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport styles from './styles.js';\nconst BETA_SCREENS = ['Swap', 'SwapSelectToken', 'SwapPreview'];\nfunction headings() {\n const connectorName = RouterController.state.data?.connector?.name;\n const walletName = RouterController.state.data?.wallet?.name;\n const networkName = RouterController.state.data?.network?.name;\n const name = walletName ?? connectorName;\n const connectors = ConnectorController.getConnectors();\n const isEmail = connectors.length === 1 && connectors[0]?.id === 'w3m-email';\n return {\n Connect: `Connect ${isEmail ? 'Email' : ''} Wallet`,\n ChooseAccountName: undefined,\n Account: undefined,\n AccountSettings: undefined,\n ConnectingExternal: name ?? 'Connect Wallet',\n ConnectingWalletConnect: name ?? 'WalletConnect',\n ConnectingSiwe: 'Sign In',\n Networks: 'Choose Network',\n SwitchNetwork: networkName ?? 'Switch Network',\n AllWallets: 'All Wallets',\n WhatIsANetwork: 'What is a network?',\n WhatIsAWallet: 'What is a wallet?',\n GetWallet: 'Get a wallet',\n Downloads: name ? `Get ${name}` : 'Downloads',\n EmailVerifyOtp: 'Confirm Email',\n EmailVerifyDevice: 'Register Device',\n ApproveTransaction: 'Approve Transaction',\n Transactions: 'Activity',\n UpgradeEmailWallet: 'Upgrade your Wallet',\n UpgradeToSmartAccount: undefined,\n UpdateEmailWallet: 'Edit Email',\n UpdateEmailPrimaryOtp: 'Confirm Current Email',\n UpdateEmailSecondaryOtp: 'Confirm New Email',\n UnsupportedChain: 'Switch Network',\n OnRampProviders: 'Choose Provider',\n OnRampActivity: 'Activity',\n WhatIsABuy: 'What is Buy?',\n BuyInProgress: 'Buy',\n OnRampTokenSelect: 'Select Token',\n OnRampFiatSelect: 'Select Currency',\n RegisterAccountName: 'Choose name',\n RegisterAccountNameSuccess: '',\n WalletReceive: 'Receive',\n WalletCompatibleNetworks: 'Compatible Networks',\n Swap: 'Swap',\n SwapSelectToken: 'Select token',\n SwapPreview: 'Preview swap',\n WalletSend: 'Send',\n WalletSendPreview: 'Review send',\n WalletSendSelectToken: 'Select Token',\n ConnectWallets: 'Connect wallet',\n ConnectSocials: 'All socials',\n ConnectingSocial: AccountController.state.socialProvider\n ? AccountController.state.socialProvider\n : 'Connect Social'\n };\n}\nlet W3mHeader = class W3mHeader extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.heading = headings()[RouterController.state.view];\n this.buffering = false;\n this.showBack = false;\n this.unsubscribe.push(RouterController.subscribeKey('view', val => {\n this.onViewChange(val);\n this.onHistoryChange();\n }), ConnectionController.subscribeKey('buffering', val => (this.buffering = val)));\n }\n disconnectCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n return html `\n \n ${this.dynamicButtonTemplate()} ${this.titleTemplate()}\n \n \n `;\n }\n onWalletHelp() {\n EventsController.sendEvent({ type: 'track', event: 'CLICK_WALLET_HELP' });\n RouterController.push('WhatIsAWallet');\n }\n async onClose() {\n if (OptionsController.state.isSiweEnabled) {\n const { SIWEController } = await import('@web3modal/siwe');\n if (SIWEController.state.status !== 'success') {\n await ConnectionController.disconnect();\n }\n }\n ModalController.close();\n }\n titleTemplate() {\n const isBeta = BETA_SCREENS.includes(RouterController.state.view);\n return html `\n \n ${this.heading}\n ${isBeta ? html `Beta` : null}\n \n `;\n }\n dynamicButtonTemplate() {\n const { view } = RouterController.state;\n const isConnectHelp = view === 'Connect';\n const isApproveTransaction = view === 'ApproveTransaction';\n const isUpgradeToSmartAccounts = view === 'UpgradeToSmartAccount';\n const isConnectingSIWEView = view === 'ConnectingSiwe';\n const shouldHideBack = isApproveTransaction || isUpgradeToSmartAccounts || isConnectingSIWEView;\n if (this.showBack && !shouldHideBack) {\n return html ``;\n }\n return html ``;\n }\n getPadding() {\n if (this.heading) {\n return ['l', '2l', 'l', '2l'];\n }\n return ['l', '2l', '0', '2l'];\n }\n async onViewChange(view) {\n const headingEl = this.shadowRoot?.querySelector('wui-flex.w3m-header-title');\n if (headingEl) {\n const preset = headings()[view];\n await headingEl.animate([{ opacity: 1 }, { opacity: 0 }], {\n duration: 200,\n fill: 'forwards',\n easing: 'ease'\n }).finished;\n this.heading = preset;\n headingEl.animate([{ opacity: 0 }, { opacity: 1 }], {\n duration: 200,\n fill: 'forwards',\n easing: 'ease'\n });\n }\n }\n async onHistoryChange() {\n const { history } = RouterController.state;\n const buttonEl = this.shadowRoot?.querySelector('#dynamic');\n if (history.length > 1 && !this.showBack && buttonEl) {\n await buttonEl.animate([{ opacity: 1 }, { opacity: 0 }], {\n duration: 200,\n fill: 'forwards',\n easing: 'ease'\n }).finished;\n this.showBack = true;\n buttonEl.animate([{ opacity: 0 }, { opacity: 1 }], {\n duration: 200,\n fill: 'forwards',\n easing: 'ease'\n });\n }\n else if (history.length <= 1 && this.showBack && buttonEl) {\n await buttonEl.animate([{ opacity: 1 }, { opacity: 0 }], {\n duration: 200,\n fill: 'forwards',\n easing: 'ease'\n }).finished;\n this.showBack = false;\n buttonEl.animate([{ opacity: 0 }, { opacity: 1 }], {\n duration: 200,\n fill: 'forwards',\n easing: 'ease'\n });\n }\n }\n onGoBack() {\n RouterController.goBack();\n }\n};\nW3mHeader.styles = [styles];\n__decorate([\n state()\n], W3mHeader.prototype, \"heading\", void 0);\n__decorate([\n state()\n], W3mHeader.prototype, \"buffering\", void 0);\n__decorate([\n state()\n], W3mHeader.prototype, \"showBack\", void 0);\nW3mHeader = __decorate([\n customElement('w3m-header')\n], W3mHeader);\nexport { W3mHeader };\n//# sourceMappingURL=index.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nlet W3mHelpWidget = class W3mHelpWidget extends LitElement {\n constructor() {\n super(...arguments);\n this.data = [];\n }\n render() {\n return html `\n \n ${this.data.map(item => html `\n \n \n ${item.images.map(image => html ``)}\n \n \n \n \n ${item.title}\n \n ${item.text}\n \n `)}\n \n `;\n }\n};\n__decorate([\n property({ type: Array })\n], W3mHelpWidget.prototype, \"data\", void 0);\nW3mHelpWidget = __decorate([\n customElement('w3m-help-widget')\n], W3mHelpWidget);\nexport { W3mHelpWidget };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n width: 100%;\n }\n\n wui-loading-spinner {\n position: absolute;\n top: 50%;\n right: 20px;\n transform: translateY(-50%);\n }\n\n .currency-container {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n right: var(--wui-spacing-1xs);\n height: 40px;\n padding: var(--wui-spacing-xs) var(--wui-spacing-1xs) var(--wui-spacing-xs)\n var(--wui-spacing-xs);\n min-width: 95px;\n border-radius: var(--FULL, 1000px);\n border: 1px solid var(--wui-color-gray-glass-002);\n background: var(--wui-color-gray-glass-002);\n cursor: pointer;\n }\n\n .currency-container > wui-image {\n height: 24px;\n width: 24px;\n border-radius: 50%;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { customElement } from '@web3modal/ui';\nimport styles from './styles.js';\nimport { AssetController, ModalController, OnRampController } from '@web3modal/core';\nlet W3mInputCurrency = class W3mInputCurrency extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.type = 'Token';\n this.value = 0;\n this.currencies = [];\n this.selectedCurrency = this.currencies?.[0];\n this.currencyImages = AssetController.state.currencyImages;\n this.tokenImages = AssetController.state.tokenImages;\n this.unsubscribe.push(OnRampController.subscribeKey('purchaseCurrency', val => {\n if (!val || this.type === 'Fiat') {\n return;\n }\n this.selectedCurrency = this.formatPurchaseCurrency(val);\n }), OnRampController.subscribeKey('paymentCurrency', val => {\n if (!val || this.type === 'Token') {\n return;\n }\n this.selectedCurrency = this.formatPaymentCurrency(val);\n }), OnRampController.subscribe(val => {\n if (this.type === 'Fiat') {\n this.currencies = val.purchaseCurrencies.map(this.formatPurchaseCurrency);\n }\n else {\n this.currencies = val.paymentCurrencies.map(this.formatPaymentCurrency);\n }\n }), AssetController.subscribe(val => {\n this.currencyImages = { ...val.currencyImages };\n this.tokenImages = { ...val.tokenImages };\n }));\n }\n firstUpdated() {\n OnRampController.getAvailableCurrencies();\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n const symbol = this.selectedCurrency?.symbol || '';\n const image = this.currencyImages[symbol] || this.tokenImages[symbol];\n return html `\n ${this.selectedCurrency\n ? html ` ModalController.open({ view: `OnRamp${this.type}Select` })}\n >\n \n ${this.selectedCurrency.symbol}\n `\n : html ``}\n `;\n }\n formatPaymentCurrency(currency) {\n return {\n name: currency.id,\n symbol: currency.id\n };\n }\n formatPurchaseCurrency(currency) {\n return {\n name: currency.name,\n symbol: currency.symbol\n };\n }\n};\nW3mInputCurrency.styles = styles;\n__decorate([\n property({ type: String })\n], W3mInputCurrency.prototype, \"type\", void 0);\n__decorate([\n property({ type: Number })\n], W3mInputCurrency.prototype, \"value\", void 0);\n__decorate([\n state()\n], W3mInputCurrency.prototype, \"currencies\", void 0);\n__decorate([\n state()\n], W3mInputCurrency.prototype, \"selectedCurrency\", void 0);\n__decorate([\n state()\n], W3mInputCurrency.prototype, \"currencyImages\", void 0);\n__decorate([\n state()\n], W3mInputCurrency.prototype, \"tokenImages\", void 0);\nW3mInputCurrency = __decorate([\n customElement('w3m-onramp-input')\n], W3mInputCurrency);\nexport { W3mInputCurrency };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n wui-flex {\n background-color: var(--wui-color-gray-glass-005);\n }\n\n a {\n text-decoration: none;\n color: var(--wui-color-fg-175);\n font-weight: 500;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { OptionsController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport styles from './styles.js';\nlet W3mLegalFooter = class W3mLegalFooter extends LitElement {\n render() {\n const { termsConditionsUrl, privacyPolicyUrl } = OptionsController.state;\n if (!termsConditionsUrl && !privacyPolicyUrl) {\n return null;\n }\n return html `\n \n \n By connecting your wallet, you agree to our
\n ${this.termsTemplate()} ${this.andTemplate()} ${this.privacyTemplate()}\n
\n
\n `;\n }\n andTemplate() {\n const { termsConditionsUrl, privacyPolicyUrl } = OptionsController.state;\n return termsConditionsUrl && privacyPolicyUrl ? 'and' : '';\n }\n termsTemplate() {\n const { termsConditionsUrl } = OptionsController.state;\n if (!termsConditionsUrl) {\n return null;\n }\n return html `Terms of Service`;\n }\n privacyTemplate() {\n const { privacyPolicyUrl } = OptionsController.state;\n if (!privacyPolicyUrl) {\n return null;\n }\n return html `Privacy Policy`;\n }\n};\nW3mLegalFooter.styles = [styles];\nW3mLegalFooter = __decorate([\n customElement('w3m-legal-footer')\n], W3mLegalFooter);\nexport { W3mLegalFooter };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n display: block;\n padding: 0 var(--wui-spacing-xl) var(--wui-spacing-xl);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CoreHelperUtil, RouterController } from '@web3modal/core';\nimport { UiHelperUtil, customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport styles from './styles.js';\nlet W3mMobileDownloadLinks = class W3mMobileDownloadLinks extends LitElement {\n constructor() {\n super(...arguments);\n this.wallet = undefined;\n }\n render() {\n if (!this.wallet) {\n this.style.display = 'none';\n return null;\n }\n const { name, app_store, play_store, chrome_store, homepage } = this.wallet;\n const isMobile = CoreHelperUtil.isMobile();\n const isIos = CoreHelperUtil.isIos();\n const isAndroid = CoreHelperUtil.isAndroid();\n const isMultiple = [app_store, play_store, homepage, chrome_store].filter(Boolean).length > 1;\n const shortName = UiHelperUtil.getTruncateString({\n string: name,\n charsStart: 12,\n charsEnd: 0,\n truncate: 'end'\n });\n if (isMultiple && !isMobile) {\n return html `\n RouterController.push('Downloads', { wallet: this.wallet })}\n >\n `;\n }\n if (!isMultiple && homepage) {\n return html `\n \n `;\n }\n if (app_store && isIos) {\n return html `\n \n `;\n }\n if (play_store && isAndroid) {\n return html `\n \n `;\n }\n this.style.display = 'none';\n return null;\n }\n onAppStore() {\n if (this.wallet?.app_store) {\n CoreHelperUtil.openHref(this.wallet.app_store, '_blank');\n }\n }\n onPlayStore() {\n if (this.wallet?.play_store) {\n CoreHelperUtil.openHref(this.wallet.play_store, '_blank');\n }\n }\n onHomePage() {\n if (this.wallet?.homepage) {\n CoreHelperUtil.openHref(this.wallet.homepage, '_blank');\n }\n }\n};\nW3mMobileDownloadLinks.styles = [styles];\n__decorate([\n property({ type: Object })\n], W3mMobileDownloadLinks.prototype, \"wallet\", void 0);\nW3mMobileDownloadLinks = __decorate([\n customElement('w3m-mobile-download-links')\n], W3mMobileDownloadLinks);\nexport { W3mMobileDownloadLinks };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n wui-flex {\n border-top: 1px solid var(--wui-color-gray-glass-005);\n }\n\n a {\n text-decoration: none;\n color: var(--wui-color-fg-175);\n font-weight: 500;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--wui-spacing-3xs);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { OptionsController, RouterController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport styles from './styles.js';\nlet W3mOnRampProvidersFooter = class W3mOnRampProvidersFooter extends LitElement {\n render() {\n const { termsConditionsUrl, privacyPolicyUrl } = OptionsController.state;\n if (!termsConditionsUrl && !privacyPolicyUrl) {\n return null;\n }\n return html `\n \n \n We work with the best providers to give you the lowest fees and best support. More options\n coming soon!\n \n\n ${this.howDoesItWorkTemplate()}\n \n `;\n }\n howDoesItWorkTemplate() {\n return html ` \n \n How does it work?\n `;\n }\n onWhatIsBuy() {\n RouterController.push('WhatIsABuy');\n }\n};\nW3mOnRampProvidersFooter.styles = [styles];\nW3mOnRampProvidersFooter = __decorate([\n customElement('w3m-onramp-providers-footer')\n], W3mOnRampProvidersFooter);\nexport { W3mOnRampProvidersFooter };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n display: block;\n position: absolute;\n opacity: 0;\n pointer-events: none;\n top: 11px;\n left: 50%;\n width: max-content;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { SnackController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport styles from './styles.js';\nconst presets = {\n success: {\n backgroundColor: 'success-100',\n iconColor: 'success-100',\n icon: 'checkmark'\n },\n error: {\n backgroundColor: 'error-100',\n iconColor: 'error-100',\n icon: 'close'\n }\n};\nlet W3mSnackBar = class W3mSnackBar extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.timeout = undefined;\n this.open = SnackController.state.open;\n this.unsubscribe.push(SnackController.subscribeKey('open', val => {\n this.open = val;\n this.onOpen();\n }));\n }\n disconnectedCallback() {\n clearTimeout(this.timeout);\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n const { message, variant } = SnackController.state;\n const preset = presets[variant];\n return html `\n \n `;\n }\n onOpen() {\n clearTimeout(this.timeout);\n if (this.open) {\n this.animate([\n { opacity: 0, transform: 'translateX(-50%) scale(0.85)' },\n { opacity: 1, transform: 'translateX(-50%) scale(1)' }\n ], {\n duration: 150,\n fill: 'forwards',\n easing: 'ease'\n });\n this.timeout = setTimeout(() => SnackController.hide(), 2500);\n }\n else {\n this.animate([\n { opacity: 1, transform: 'translateX(-50%) scale(1)' },\n { opacity: 0, transform: 'translateX(-50%) scale(0.85)' }\n ], {\n duration: 150,\n fill: 'forwards',\n easing: 'ease'\n });\n }\n }\n};\nW3mSnackBar.styles = styles;\n__decorate([\n state()\n], W3mSnackBar.prototype, \"open\", void 0);\nW3mSnackBar = __decorate([\n customElement('w3m-snackbar')\n], W3mSnackBar);\nexport { W3mSnackBar };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n wui-separator {\n margin: var(--wui-spacing-s) calc(var(--wui-spacing-s) * -1);\n width: calc(100% + var(--wui-spacing-s) * 2);\n }\n\n wui-email-input {\n width: 100%;\n }\n\n form {\n width: 100%;\n display: block;\n position: relative;\n }\n\n wui-icon-link,\n wui-loading-spinner {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n }\n\n wui-icon-link {\n right: var(--wui-spacing-xs);\n }\n\n wui-loading-spinner {\n right: var(--wui-spacing-m);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { ConnectorController, CoreHelperUtil } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport { ref, createRef } from 'lit/directives/ref.js';\nimport styles from './styles.js';\nimport { SnackController, RouterController, EventsController } from '@web3modal/core';\nlet W3mEmailLoginWidget = class W3mEmailLoginWidget extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.formRef = createRef();\n this.connectors = ConnectorController.state.connectors;\n this.email = '';\n this.loading = false;\n this.error = '';\n this.unsubscribe.push(ConnectorController.subscribeKey('connectors', val => (this.connectors = val)));\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n firstUpdated() {\n this.formRef.value?.addEventListener('keydown', event => {\n if (event.key === 'Enter') {\n this.onSubmitEmail(event);\n }\n });\n }\n render() {\n const connector = this.connectors.find(c => c.type === 'AUTH');\n const multipleConnectors = this.connectors.length > 1;\n if (!connector?.email) {\n return null;\n }\n return html `\n
\n \n \n\n ${this.submitButtonTemplate()}${this.loadingTemplate()}\n \n \n\n ${connector.socials || !multipleConnectors\n ? null\n : html `\n \n `}\n `;\n }\n submitButtonTemplate() {\n const showSubmit = !this.loading && this.email.length > 3;\n return showSubmit\n ? html `\n \n \n `\n : null;\n }\n loadingTemplate() {\n return this.loading\n ? html ``\n : null;\n }\n onEmailInputChange(event) {\n this.email = event.detail.trim();\n this.error = '';\n }\n async onSubmitEmail(event) {\n try {\n if (this.loading) {\n return;\n }\n this.loading = true;\n event.preventDefault();\n const authConnector = ConnectorController.getAuthConnector();\n if (!authConnector) {\n throw new Error('w3m-email-login-widget: Auth connector not found');\n }\n const { action } = await authConnector.provider.connectEmail({ email: this.email });\n EventsController.sendEvent({ type: 'track', event: 'EMAIL_SUBMITTED' });\n if (action === 'VERIFY_OTP') {\n EventsController.sendEvent({ type: 'track', event: 'EMAIL_VERIFICATION_CODE_SENT' });\n RouterController.push('EmailVerifyOtp', { email: this.email });\n }\n else if (action === 'VERIFY_DEVICE') {\n RouterController.push('EmailVerifyDevice', { email: this.email });\n }\n }\n catch (error) {\n const parsedError = CoreHelperUtil.parseError(error);\n if (parsedError?.includes('Invalid email')) {\n this.error = 'Invalid email. Try again.';\n }\n else {\n SnackController.showError(error);\n }\n }\n finally {\n this.loading = false;\n }\n }\n onFocusEvent() {\n EventsController.sendEvent({ type: 'track', event: 'EMAIL_LOGIN_SELECTED' });\n }\n};\nW3mEmailLoginWidget.styles = styles;\n__decorate([\n state()\n], W3mEmailLoginWidget.prototype, \"connectors\", void 0);\n__decorate([\n state()\n], W3mEmailLoginWidget.prototype, \"email\", void 0);\n__decorate([\n state()\n], W3mEmailLoginWidget.prototype, \"loading\", void 0);\n__decorate([\n state()\n], W3mEmailLoginWidget.prototype, \"error\", void 0);\nW3mEmailLoginWidget = __decorate([\n customElement('w3m-email-login-widget')\n], W3mEmailLoginWidget);\nexport { W3mEmailLoginWidget };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n wui-flex {\n width: 100%;\n }\n\n :host > wui-flex:first-child {\n transform: translateY(calc(var(--wui-spacing-xxs) * -1));\n }\n\n wui-icon-link {\n margin-right: calc(var(--wui-icon-box-size-md) * -1);\n }\n\n wui-notice-card {\n margin-bottom: var(--wui-spacing-3xs);\n }\n\n w3m-transactions-view {\n max-height: 200px;\n }\n\n .tab-content-container {\n height: 300px;\n overflow-y: auto;\n overflow-x: hidden;\n scrollbar-width: none;\n }\n\n .tab-content-container::-webkit-scrollbar {\n display: none;\n }\n\n .account-button {\n width: auto;\n border: none;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--wui-spacing-s);\n height: 48px;\n padding: var(--wui-spacing-xs);\n padding-right: var(--wui-spacing-s);\n box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-002);\n background-color: var(--wui-color-gray-glass-002);\n border-radius: 24px;\n transaction: background-color 0.2s linear;\n }\n\n .account-button:hover {\n background-color: var(--wui-color-gray-glass-005);\n }\n\n .avatar-container {\n position: relative;\n }\n\n wui-avatar.avatar {\n width: 32px;\n height: 32px;\n box-shadow: 0 0 0 2px var(--wui-color-gray-glass-005);\n }\n\n wui-avatar.network-avatar {\n width: 16px;\n height: 16px;\n position: absolute;\n left: 100%;\n top: 100%;\n transform: translate(-75%, -75%);\n box-shadow: 0 0 0 2px var(--wui-color-gray-glass-005);\n }\n\n .account-links {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n .account-links wui-flex {\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n flex: 1;\n background: red;\n align-items: center;\n justify-content: center;\n height: 48px;\n padding: 10px;\n flex: 1 0 0;\n border-radius: var(--XS, 16px);\n border: 1px solid var(--dark-accent-glass-010, rgba(71, 161, 255, 0.1));\n background: var(--dark-accent-glass-010, rgba(71, 161, 255, 0.1));\n transition: background-color var(--wui-ease-out-power-1) var(--wui-duration-md);\n will-change: background-color;\n }\n\n .account-links wui-flex:hover {\n background: var(--dark-accent-glass-015, rgba(71, 161, 255, 0.15));\n }\n\n .account-links wui-flex wui-icon {\n width: var(--S, 20px);\n height: var(--S, 20px);\n }\n\n .account-links wui-flex wui-icon svg path {\n stroke: #667dff;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { AccountController, CoreHelperUtil, ModalController, NetworkController, RouterController, AssetUtil, StorageUtil, ConnectorController, EventsController, ConnectionController, SnackController, ConstantsUtil, OptionsController } from '@web3modal/core';\nimport { UiHelperUtil, customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport styles from './styles.js';\nlet W3mAccountDefaultWidget = class W3mAccountDefaultWidget extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.address = AccountController.state.address;\n this.profileImage = AccountController.state.profileImage;\n this.profileName = AccountController.state.profileName;\n this.network = NetworkController.state.caipNetwork;\n this.disconnecting = false;\n this.balance = AccountController.state.balance;\n this.balanceSymbol = AccountController.state.balanceSymbol;\n this.unsubscribe.push(...[\n AccountController.subscribe(val => {\n if (val.address) {\n this.address = val.address;\n this.profileImage = val.profileImage;\n this.profileName = val.profileName;\n this.balance = val.balance;\n this.balanceSymbol = val.balanceSymbol;\n }\n else if (!this.disconnecting) {\n SnackController.showError('Account not found');\n }\n })\n ], NetworkController.subscribeKey('caipNetwork', val => {\n if (val?.id) {\n this.network = val;\n }\n }));\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n if (!this.address) {\n throw new Error('w3m-account-view: No account provided');\n }\n const networkImage = AssetUtil.getNetworkImage(this.network);\n return html `\n \n \n \n \n ${this.profileName\n ? UiHelperUtil.getTruncateString({\n string: this.profileName,\n charsStart: 20,\n charsEnd: 0,\n truncate: 'end'\n })\n : UiHelperUtil.getTruncateString({\n string: this.address ? this.address : '',\n charsStart: 4,\n charsEnd: 4,\n truncate: 'middle'\n })}\n \n \n \n ${CoreHelperUtil.formatBalance(this.balance, this.balanceSymbol)}\n \n ${this.explorerBtnTemplate()}\n \n\n \n ${this.emailCardTemplate()} \n\n \n \n ${this.network?.name ?? 'Unknown'}\n \n \n ${this.onrampTemplate()}\n \n Activity\n \n \n Disconnect\n \n `;\n }\n onrampTemplate() {\n const { enableOnramp } = OptionsController.state;\n if (!enableOnramp) {\n return null;\n }\n return html `\n \n Buy crypto\n \n `;\n }\n emailCardTemplate() {\n const type = StorageUtil.getConnectedConnector();\n const authConnector = ConnectorController.getAuthConnector();\n const { origin } = location;\n if (!authConnector || type !== 'AUTH' || origin.includes(ConstantsUtil.SECURE_SITE)) {\n return null;\n }\n return html `\n \n `;\n }\n handleClickPay() {\n RouterController.push('OnRampProviders');\n }\n explorerBtnTemplate() {\n const { addressExplorerUrl } = AccountController.state;\n if (!addressExplorerUrl) {\n return null;\n }\n return html `\n \n \n Block Explorer\n \n \n `;\n }\n isAllowedNetworkSwitch() {\n const { requestedCaipNetworks } = NetworkController.state;\n const isMultiNetwork = requestedCaipNetworks ? requestedCaipNetworks.length > 1 : false;\n const isValidNetwork = requestedCaipNetworks?.find(({ id }) => id === this.network?.id);\n return isMultiNetwork || !isValidNetwork;\n }\n onCopyAddress() {\n try {\n if (this.address) {\n CoreHelperUtil.copyToClopboard(this.address);\n SnackController.showSuccess('Address copied');\n }\n }\n catch {\n SnackController.showError('Failed to copy');\n }\n }\n onNetworks() {\n if (this.isAllowedNetworkSwitch()) {\n EventsController.sendEvent({ type: 'track', event: 'CLICK_NETWORKS' });\n RouterController.push('Networks');\n }\n }\n onTransactions() {\n EventsController.sendEvent({ type: 'track', event: 'CLICK_TRANSACTIONS' });\n RouterController.push('Transactions');\n }\n async onDisconnect() {\n try {\n this.disconnecting = true;\n await ConnectionController.disconnect();\n EventsController.sendEvent({ type: 'track', event: 'DISCONNECT_SUCCESS' });\n ModalController.close();\n }\n catch {\n EventsController.sendEvent({ type: 'track', event: 'DISCONNECT_ERROR' });\n SnackController.showError('Failed to disconnect');\n }\n finally {\n this.disconnecting = false;\n }\n }\n onExplorer() {\n const { addressExplorerUrl } = AccountController.state;\n if (addressExplorerUrl) {\n CoreHelperUtil.openHref(addressExplorerUrl, '_blank');\n }\n }\n onGoToUpgradeView() {\n EventsController.sendEvent({ type: 'track', event: 'EMAIL_UPGRADE_FROM_MODAL' });\n RouterController.push('UpgradeEmailWallet');\n }\n};\nW3mAccountDefaultWidget.styles = styles;\n__decorate([\n state()\n], W3mAccountDefaultWidget.prototype, \"address\", void 0);\n__decorate([\n state()\n], W3mAccountDefaultWidget.prototype, \"profileImage\", void 0);\n__decorate([\n state()\n], W3mAccountDefaultWidget.prototype, \"profileName\", void 0);\n__decorate([\n state()\n], W3mAccountDefaultWidget.prototype, \"network\", void 0);\n__decorate([\n state()\n], W3mAccountDefaultWidget.prototype, \"disconnecting\", void 0);\n__decorate([\n state()\n], W3mAccountDefaultWidget.prototype, \"balance\", void 0);\n__decorate([\n state()\n], W3mAccountDefaultWidget.prototype, \"balanceSymbol\", void 0);\nW3mAccountDefaultWidget = __decorate([\n customElement('w3m-account-default-widget')\n], W3mAccountDefaultWidget);\nexport { W3mAccountDefaultWidget };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n wui-flex {\n width: 100%;\n }\n\n wui-promo {\n position: absolute;\n top: -32px;\n }\n\n wui-profile-button {\n margin-top: calc(-1 * var(--wui-spacing-2l));\n }\n\n wui-promo + wui-profile-button {\n margin-top: var(--wui-spacing-2l);\n }\n\n wui-tabs {\n width: 100%;\n }\n\n .contentContainer {\n height: 280px;\n }\n\n .contentContainer > wui-icon-box {\n width: 40px;\n height: 40px;\n border-radius: var(--wui-border-radius-xxs);\n }\n\n .contentContainer > .textContent {\n width: 65%;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { AccountController, ModalController, NetworkController, AssetUtil, RouterController, CoreHelperUtil, ConstantsUtil as CoreConstantsUtil } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport styles from './styles.js';\nimport { ConstantsUtil } from '../../utils/ConstantsUtil.js';\nimport { W3mFrameRpcConstants } from '@web3modal/wallet';\nconst TABS = 3;\nconst TABS_PADDING = 48;\nconst MODAL_MOBILE_VIEW_PX = 430;\nlet W3mAccountWalletFeaturesWidget = class W3mAccountWalletFeaturesWidget extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.address = AccountController.state.address;\n this.profileImage = AccountController.state.profileImage;\n this.profileName = AccountController.state.profileName;\n this.smartAccountDeployed = AccountController.state.smartAccountDeployed;\n this.network = NetworkController.state.caipNetwork;\n this.currentTab = AccountController.state.currentTab;\n this.tokenBalance = AccountController.state.tokenBalance;\n this.preferredAccountType = AccountController.state.preferredAccountType;\n this.unsubscribe.push(...[\n AccountController.subscribe(val => {\n if (val.address) {\n this.address = val.address;\n this.profileImage = val.profileImage;\n this.profileName = val.profileName;\n this.currentTab = val.currentTab;\n this.tokenBalance = val.tokenBalance;\n this.smartAccountDeployed = val.smartAccountDeployed;\n this.preferredAccountType = val.preferredAccountType;\n }\n else {\n ModalController.close();\n }\n })\n ], NetworkController.subscribe(val => {\n this.network = val.caipNetwork;\n }));\n this.watchSwapValues();\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n clearInterval(this.watchTokenBalance);\n }\n firstUpdated() {\n AccountController.fetchTokenBalance();\n }\n render() {\n if (!this.address) {\n throw new Error('w3m-account-view: No account provided');\n }\n const networkImage = AssetUtil.getNetworkImage(this.network);\n return html `\n ${this.activateAccountTemplate()}\n \n ${this.tokenBalanceTemplate()}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n ${this.listContentTemplate()}\n `;\n }\n watchSwapValues() {\n this.watchTokenBalance = setInterval(() => AccountController.fetchTokenBalance(), 10000);\n }\n listContentTemplate() {\n if (this.currentTab === 0) {\n return html ``;\n }\n if (this.currentTab === 1) {\n return html ``;\n }\n if (this.currentTab === 2) {\n return html ``;\n }\n return html ``;\n }\n tokenBalanceTemplate() {\n if (this.tokenBalance && this.tokenBalance?.length >= 0) {\n const value = CoreHelperUtil.calculateBalance(this.tokenBalance);\n const { dollars = '0', pennies = '00' } = CoreHelperUtil.formatTokenBalance(value);\n return html ``;\n }\n return html ``;\n }\n activateAccountTemplate() {\n const smartAccountEnabled = NetworkController.checkIfSmartAccountEnabled();\n if (!smartAccountEnabled ||\n this.preferredAccountType !== W3mFrameRpcConstants.ACCOUNT_TYPES.EOA ||\n this.smartAccountDeployed) {\n return null;\n }\n return html ` `;\n }\n onTabChange(index) {\n AccountController.setCurrentTab(index);\n }\n onProfileButtonClick() {\n RouterController.push('AccountSettings');\n }\n onBuyClick() {\n RouterController.push('OnRampProviders');\n }\n onSwapClick() {\n if (this.network?.id && !CoreConstantsUtil.SWAP_SUPPORTED_NETWORKS.includes(this.network?.id)) {\n RouterController.push('UnsupportedChain', {\n swapUnsupportedChain: true\n });\n }\n else {\n RouterController.push('Swap');\n }\n }\n onReceiveClick() {\n RouterController.push('WalletReceive');\n }\n onSendClick() {\n RouterController.push('WalletSend');\n }\n onUpdateToSmartAccount() {\n RouterController.push('UpgradeToSmartAccount');\n }\n};\nW3mAccountWalletFeaturesWidget.styles = styles;\n__decorate([\n state()\n], W3mAccountWalletFeaturesWidget.prototype, \"watchTokenBalance\", void 0);\n__decorate([\n state()\n], W3mAccountWalletFeaturesWidget.prototype, \"address\", void 0);\n__decorate([\n state()\n], W3mAccountWalletFeaturesWidget.prototype, \"profileImage\", void 0);\n__decorate([\n state()\n], W3mAccountWalletFeaturesWidget.prototype, \"profileName\", void 0);\n__decorate([\n state()\n], W3mAccountWalletFeaturesWidget.prototype, \"smartAccountDeployed\", void 0);\n__decorate([\n state()\n], W3mAccountWalletFeaturesWidget.prototype, \"network\", void 0);\n__decorate([\n state()\n], W3mAccountWalletFeaturesWidget.prototype, \"currentTab\", void 0);\n__decorate([\n state()\n], W3mAccountWalletFeaturesWidget.prototype, \"tokenBalance\", void 0);\n__decorate([\n state()\n], W3mAccountWalletFeaturesWidget.prototype, \"preferredAccountType\", void 0);\nW3mAccountWalletFeaturesWidget = __decorate([\n customElement('w3m-account-wallet-features-widget')\n], W3mAccountWalletFeaturesWidget);\nexport { W3mAccountWalletFeaturesWidget };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n width: 100%;\n max-height: 280px;\n overflow: scroll;\n scrollbar-width: none;\n }\n\n :host::-webkit-scrollbar {\n display: none;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport styles from './styles.js';\nlet W3mAccountActivityWidget = class W3mAccountActivityWidget extends LitElement {\n render() {\n return html ``;\n }\n};\nW3mAccountActivityWidget.styles = styles;\nW3mAccountActivityWidget = __decorate([\n customElement('w3m-account-activity-widget')\n], W3mAccountActivityWidget);\nexport { W3mAccountActivityWidget };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n .contentContainer {\n height: 280px;\n }\n\n .contentContainer > wui-icon-box {\n width: 40px;\n height: 40px;\n border-radius: var(--wui-border-radius-xxs);\n }\n\n .contentContainer > .textContent {\n width: 65%;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { RouterController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport styles from './styles.js';\nlet W3mAccountNftsWidget = class W3mAccountNftsWidget extends LitElement {\n render() {\n return html `${this.nftTemplate()}`;\n }\n nftTemplate() {\n return html ` \n \n \n No NFTs yet\n Transfer from another wallets to get started\n \n Receive NFTs\n `;\n }\n onReceiveClick() {\n RouterController.push('WalletReceive');\n }\n};\nW3mAccountNftsWidget.styles = styles;\nW3mAccountNftsWidget = __decorate([\n customElement('w3m-account-nfts-widget')\n], W3mAccountNftsWidget);\nexport { W3mAccountNftsWidget };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n width: 100%;\n }\n\n wui-flex {\n width: 100%;\n }\n\n .contentContainer {\n max-height: 280px;\n overflow: scroll;\n scrollbar-width: none;\n }\n\n .contentContainer::-webkit-scrollbar {\n display: none;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { AccountController, RouterController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport styles from './styles.js';\nimport { state } from 'lit/decorators.js';\nlet W3mAccountTokensWidget = class W3mAccountTokensWidget extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.tokenBalance = AccountController.state.tokenBalance;\n this.unsubscribe.push(...[\n AccountController.subscribe(val => {\n this.tokenBalance = val.tokenBalance;\n })\n ]);\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n return html `${this.tokenTemplate()}`;\n }\n tokenTemplate() {\n if (this.tokenBalance && this.tokenBalance?.length > 0) {\n return html `\n ${this.tokenItemTemplate()}\n `;\n }\n return html ` `;\n }\n tokenItemTemplate() {\n return this.tokenBalance?.map(token => html ``);\n }\n onReceiveClick() {\n RouterController.push('WalletReceive');\n }\n onBuyClick() {\n RouterController.push('OnRampProviders');\n }\n};\nW3mAccountTokensWidget.styles = styles;\n__decorate([\n state()\n], W3mAccountTokensWidget.prototype, \"tokenBalance\", void 0);\nW3mAccountTokensWidget = __decorate([\n customElement('w3m-account-tokens-widget')\n], W3mAccountTokensWidget);\nexport { W3mAccountTokensWidget };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n min-height: 100%;\n }\n\n .contentContainer {\n height: 280px;\n }\n\n .contentContainer > wui-icon-box {\n width: 40px;\n height: 40px;\n border-radius: var(--wui-border-radius-xxs);\n }\n\n .contentContainer > .textContent {\n width: 65%;\n }\n\n .emptyContainer {\n height: 100%;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { DateUtil } from '@web3modal/common';\nimport { AccountController, EventsController, OptionsController, RouterController, TransactionsController } from '@web3modal/core';\nimport { TransactionUtil, customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport styles from './styles.js';\nconst PAGINATOR_ID = 'last-transaction';\nconst LOADING_ITEM_COUNT = 7;\nlet W3mActivityList = class W3mActivityList extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.paginationObserver = undefined;\n this.page = 'activity';\n this.address = AccountController.state.address;\n this.transactionsByYear = TransactionsController.state.transactionsByYear;\n this.loading = TransactionsController.state.loading;\n this.empty = TransactionsController.state.empty;\n this.next = TransactionsController.state.next;\n TransactionsController.clearCursor();\n this.unsubscribe.push(...[\n AccountController.subscribe(val => {\n if (val.isConnected) {\n if (this.address !== val.address) {\n this.address = val.address;\n TransactionsController.resetTransactions();\n TransactionsController.fetchTransactions(val.address);\n }\n }\n }),\n TransactionsController.subscribe(val => {\n this.transactionsByYear = val.transactionsByYear;\n this.loading = val.loading;\n this.empty = val.empty;\n this.next = val.next;\n })\n ]);\n }\n firstUpdated() {\n TransactionsController.fetchTransactions(this.address);\n this.createPaginationObserver();\n }\n updated() {\n this.setPaginationObserver();\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n return html ` ${this.empty ? null : this.templateTransactionsByYear()}\n ${this.loading ? this.templateLoading() : null}\n ${!this.loading && this.empty ? this.templateEmpty() : null}`;\n }\n templateTransactionsByYear() {\n const sortedYearKeys = Object.keys(this.transactionsByYear).sort().reverse();\n return sortedYearKeys.map((year, index) => {\n const isLastGroup = index === sortedYearKeys.length - 1;\n const yearInt = parseInt(year, 10);\n const sortedMonthIndexes = new Array(12)\n .fill(null)\n .map((_, idx) => idx)\n .reverse();\n return sortedMonthIndexes.map(month => {\n const groupTitle = TransactionUtil.getTransactionGroupTitle(yearInt, month);\n const transactions = this.transactionsByYear[yearInt]?.[month];\n if (!transactions) {\n return null;\n }\n return html `\n \n \n ${groupTitle}\n \n \n ${this.templateTransactions(transactions, isLastGroup)}\n \n \n `;\n });\n });\n }\n templateRenderTransaction(transaction, isLastTransaction) {\n const { date, descriptions, direction, isAllNFT, images, status, transfers, type } = this.getTransactionListItemProps(transaction);\n const haveMultipleTransfers = transfers?.length > 1;\n const haveTwoTransfers = transfers?.length === 2;\n if (haveTwoTransfers && !isAllNFT) {\n return html `\n \n `;\n }\n if (haveMultipleTransfers) {\n return transfers.map((transfer, index) => {\n const description = TransactionUtil.getTransferDescription(transfer);\n const isLastTransfer = isLastTransaction && index === transfers.length - 1;\n return html ` `;\n });\n }\n return html `\n \n `;\n }\n templateTransactions(transactions, isLastGroup) {\n return transactions.map((transaction, index) => {\n const isLastTransaction = isLastGroup && index === transactions.length - 1;\n return html `${this.templateRenderTransaction(transaction, isLastTransaction)}`;\n });\n }\n emptyStateActivity() {\n return html `\n \n \n No Transactions yet\n Start trading on dApps
\n to grow your wallet!\n
\n `;\n }\n emptyStateAccount() {\n return html `\n \n \n No activity yet\n Your next transactions will appear here\n \n Trade\n `;\n }\n templateEmpty() {\n if (this.page === 'account') {\n return html `${this.emptyStateAccount()}`;\n }\n return html `${this.emptyStateActivity()}`;\n }\n templateLoading() {\n if (this.page === 'activity') {\n return Array(LOADING_ITEM_COUNT)\n .fill(html ` `)\n .map(item => item);\n }\n return null;\n }\n onReceiveClick() {\n RouterController.push('WalletReceive');\n }\n createPaginationObserver() {\n const { projectId } = OptionsController.state;\n this.paginationObserver = new IntersectionObserver(([element]) => {\n if (element?.isIntersecting && !this.loading) {\n TransactionsController.fetchTransactions(this.address);\n EventsController.sendEvent({\n type: 'track',\n event: 'LOAD_MORE_TRANSACTIONS',\n properties: {\n address: this.address,\n projectId,\n cursor: this.next\n }\n });\n }\n }, {});\n this.setPaginationObserver();\n }\n setPaginationObserver() {\n this.paginationObserver?.disconnect();\n const lastItem = this.shadowRoot?.querySelector(`#${PAGINATOR_ID}`);\n if (lastItem) {\n this.paginationObserver?.observe(lastItem);\n }\n }\n getTransactionListItemProps(transaction) {\n const date = DateUtil.formatDate(transaction?.metadata?.minedAt);\n const descriptions = TransactionUtil.getTransactionDescriptions(transaction);\n const transfers = transaction?.transfers;\n const transfer = transaction?.transfers?.[0];\n const isAllNFT = Boolean(transfer) && transaction?.transfers?.every(item => Boolean(item.nft_info));\n const images = TransactionUtil.getTransactionImages(transfers);\n return {\n date,\n direction: transfer?.direction,\n descriptions,\n isAllNFT,\n images,\n status: transaction.metadata?.status,\n transfers,\n type: transaction.metadata?.operationType\n };\n }\n};\nW3mActivityList.styles = styles;\n__decorate([\n property()\n], W3mActivityList.prototype, \"page\", void 0);\n__decorate([\n state()\n], W3mActivityList.prototype, \"address\", void 0);\n__decorate([\n state()\n], W3mActivityList.prototype, \"transactionsByYear\", void 0);\n__decorate([\n state()\n], W3mActivityList.prototype, \"loading\", void 0);\n__decorate([\n state()\n], W3mActivityList.prototype, \"empty\", void 0);\n__decorate([\n state()\n], W3mActivityList.prototype, \"next\", void 0);\nW3mActivityList = __decorate([\n customElement('w3m-activity-list')\n], W3mActivityList);\nexport { W3mActivityList };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n width: 100%;\n height: 100px;\n border-radius: var(--wui-border-radius-s);\n border: 1px solid var(--wui-color-gray-glass-002);\n background-color: var(--wui-color-gray-glass-002);\n transition: background-color var(--wui-ease-out-power-1) var(--wui-duration-lg);\n will-change: background-color;\n }\n\n :host(:hover) {\n background-color: var(--wui-color-gray-glass-005);\n }\n\n wui-flex {\n width: 100%;\n height: fit-content;\n }\n\n wui-button {\n width: 100%;\n display: flex;\n justify-content: flex-end;\n }\n\n wui-input-amount {\n mask-image: linear-gradient(\n 270deg,\n transparent 0px,\n transparent 8px,\n black 24px,\n black 25px,\n black 32px,\n black 100%\n );\n }\n\n .totalValue {\n width: 100%;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { UiHelperUtil, customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport styles from './styles.js';\nimport { property } from 'lit/decorators.js';\nimport { RouterController, SendController } from '@web3modal/core';\nimport { NumberUtil } from '@web3modal/common';\nlet W3mInputToken = class W3mInputToken extends LitElement {\n render() {\n return html ` \n \n \n ${this.buttonTemplate()}\n \n \n ${this.sendValueTemplate()}\n \n ${this.maxAmountTemplate()} ${this.actionTemplate()}\n \n \n `;\n }\n buttonTemplate() {\n if (this.token) {\n return html `\n `;\n }\n return html `Select token`;\n }\n handleSelectButtonClick() {\n RouterController.push('WalletSendSelectToken');\n }\n sendValueTemplate() {\n if (this.token && this.sendTokenAmount) {\n const price = this.token.price;\n const totalValue = price * this.sendTokenAmount;\n return html `${totalValue\n ? `$${UiHelperUtil.formatNumberToLocalString(totalValue, 2)}`\n : 'Incorrect value'}`;\n }\n return null;\n }\n maxAmountTemplate() {\n if (this.token) {\n if (this.sendTokenAmount && this.sendTokenAmount > Number(this.token.quantity.numeric)) {\n return html ` \n ${UiHelperUtil.roundNumber(Number(this.token.quantity.numeric), 6, 5)}\n `;\n }\n return html ` \n ${UiHelperUtil.roundNumber(Number(this.token.quantity.numeric), 6, 5)}\n `;\n }\n return null;\n }\n actionTemplate() {\n if (this.token) {\n if (this.sendTokenAmount && this.sendTokenAmount > Number(this.token.quantity.numeric)) {\n return html `Buy`;\n }\n return html `Max`;\n }\n return null;\n }\n onInputChange(event) {\n SendController.setTokenAmount(event.detail);\n }\n onMaxClick() {\n if (this.token && this.gasPriceInUSD) {\n const amountOfTokenGasRequires = NumberUtil.bigNumber(this.gasPriceInUSD.toFixed(5)).dividedBy(this.token.price);\n const isNetworkToken = this.token.address === undefined;\n const maxValue = isNetworkToken\n ? NumberUtil.bigNumber(this.token.quantity.numeric).minus(amountOfTokenGasRequires)\n : NumberUtil.bigNumber(this.token.quantity.numeric);\n SendController.setTokenAmount(Number(maxValue.toFixed(20)));\n }\n }\n onBuyClick() {\n RouterController.push('OnRampProviders');\n }\n};\nW3mInputToken.styles = styles;\n__decorate([\n property({ type: Object })\n], W3mInputToken.prototype, \"token\", void 0);\n__decorate([\n property({ type: Number })\n], W3mInputToken.prototype, \"sendTokenAmount\", void 0);\n__decorate([\n property({ type: Number })\n], W3mInputToken.prototype, \"gasPriceInUSD\", void 0);\nW3mInputToken = __decorate([\n customElement('w3m-input-token')\n], W3mInputToken);\nexport { W3mInputToken };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n width: 100%;\n height: 100px;\n border-radius: var(--wui-border-radius-s);\n border: 1px solid var(--wui-color-gray-glass-002);\n background-color: var(--wui-color-gray-glass-002);\n transition: background-color var(--wui-ease-out-power-1) var(--wui-duration-lg);\n will-change: background-color;\n position: relative;\n }\n\n :host(:hover) {\n background-color: var(--wui-color-gray-glass-005);\n }\n\n wui-flex {\n width: 100%;\n height: fit-content;\n }\n\n wui-button {\n display: ruby;\n color: var(--wui-color-fg-100);\n margin: 0 var(--wui-spacing-xs);\n }\n\n .instruction {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n }\n\n .paste {\n display: inline-flex;\n }\n\n textarea {\n background: transparent;\n width: 100%;\n font-family: var(--w3m-font-family);\n font-size: var(--wui-font-size-medium);\n font-style: normal;\n font-weight: var(--wui-font-weight-light);\n line-height: 130%;\n letter-spacing: var(--wui-letter-spacing-medium);\n color: var(--wui-color-fg-100);\n caret-color: var(--wui-color-accent-100);\n box-sizing: border-box;\n -webkit-appearance: none;\n -moz-appearance: textfield;\n padding: 0px;\n border: none;\n outline: none;\n appearance: none;\n resize: none;\n overflow: hidden;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport styles from './styles.js';\nimport { property, state } from 'lit/decorators.js';\nimport { ConnectionController, CoreHelperUtil, SendController } from '@web3modal/core';\nimport { createRef, ref } from 'lit/directives/ref.js';\nlet W3mInputAddress = class W3mInputAddress extends LitElement {\n constructor() {\n super(...arguments);\n this.inputElementRef = createRef();\n this.instructionElementRef = createRef();\n this.instructionHidden = Boolean(this.value);\n this.pasting = false;\n this.onDebouncedSearch = CoreHelperUtil.debounce(async (value) => {\n const address = await ConnectionController.getEnsAddress(value);\n SendController.setLoading(false);\n if (address) {\n SendController.setReceiverProfileName(value);\n SendController.setReceiverAddress(address);\n const avatar = await ConnectionController.getEnsAvatar(value);\n if (avatar) {\n SendController.setReceiverProfileImageUrl(avatar);\n }\n }\n else {\n SendController.setReceiverAddress(value);\n SendController.setReceiverProfileName(undefined);\n SendController.setReceiverProfileImageUrl(undefined);\n }\n });\n }\n firstUpdated() {\n if (this.value) {\n this.instructionHidden = true;\n }\n this.checkHidden();\n }\n render() {\n return html ` \n \n Type or\n \n \n Paste\n \n address\n \n \n${this.value ?? ''}\n `;\n }\n async focusInput() {\n if (this.instructionElementRef.value) {\n this.instructionHidden = true;\n await this.toggleInstructionFocus(false);\n this.instructionElementRef.value.style.pointerEvents = 'none';\n this.inputElementRef.value?.focus();\n if (this.inputElementRef.value) {\n this.inputElementRef.value.selectionStart = this.inputElementRef.value.selectionEnd =\n this.inputElementRef.value.value.length;\n }\n }\n }\n async focusInstruction() {\n if (this.instructionElementRef.value) {\n this.instructionHidden = false;\n await this.toggleInstructionFocus(true);\n this.instructionElementRef.value.style.pointerEvents = 'auto';\n this.inputElementRef.value?.blur();\n }\n }\n async toggleInstructionFocus(focus) {\n if (this.instructionElementRef.value) {\n await this.instructionElementRef.value.animate([{ opacity: focus ? 0 : 1 }, { opacity: focus ? 1 : 0 }], {\n duration: 100,\n easing: 'ease',\n fill: 'forwards'\n }).finished;\n }\n }\n onBoxClick() {\n if (!this.value && !this.instructionHidden) {\n this.focusInput();\n }\n }\n onBlur() {\n if (!this.value && this.instructionHidden && !this.pasting) {\n this.focusInstruction();\n }\n }\n checkHidden() {\n if (this.instructionHidden) {\n this.focusInput();\n }\n }\n async onPasteClick() {\n this.pasting = true;\n const text = await navigator.clipboard.readText();\n SendController.setReceiverAddress(text);\n this.focusInput();\n }\n onInputChange(e) {\n this.pasting = false;\n const element = e.target;\n if (element.value && !this.instructionHidden) {\n this.focusInput();\n }\n SendController.setLoading(true);\n this.onDebouncedSearch(element.value);\n }\n};\nW3mInputAddress.styles = styles;\n__decorate([\n property()\n], W3mInputAddress.prototype, \"value\", void 0);\n__decorate([\n state()\n], W3mInputAddress.prototype, \"instructionHidden\", void 0);\n__decorate([\n state()\n], W3mInputAddress.prototype, \"pasting\", void 0);\nW3mInputAddress = __decorate([\n customElement('w3m-input-address')\n], W3mInputAddress);\nexport { W3mInputAddress };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n display: flex;\n width: auto;\n flex-direction: column;\n gap: var(--wui-border-radius-1xs);\n border-radius: var(--wui-border-radius-s);\n background: var(--wui-color-gray-glass-002);\n padding: var(--wui-spacing-s) var(--wui-spacing-1xs) var(--wui-spacing-1xs)\n var(--wui-spacing-1xs);\n }\n\n wui-text {\n padding: 0 var(--wui-spacing-1xs);\n }\n\n wui-flex {\n margin-top: var(--wui-spacing-1xs);\n }\n\n .network {\n cursor: pointer;\n transition: background-color var(--wui-ease-out-power-1) var(--wui-duration-lg);\n will-change: background-color;\n }\n\n .network:focus-visible {\n border: 1px solid var(--wui-color-accent-100);\n background-color: var(--wui-color-gray-glass-005);\n -webkit-box-shadow: 0px 0px 0px 4px var(--wui-box-shadow-blue);\n -moz-box-shadow: 0px 0px 0px 4px var(--wui-box-shadow-blue);\n box-shadow: 0px 0px 0px 4px var(--wui-box-shadow-blue);\n }\n\n .network:hover {\n background-color: var(--wui-color-gray-glass-005);\n }\n\n .network:active {\n background-color: var(--wui-color-gray-glass-010);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { UiHelperUtil, customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport styles from './styles.js';\nimport { property } from 'lit/decorators.js';\nimport { AssetUtil, RouterController } from '@web3modal/core';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nlet W3mWalletSendDetails = class W3mWalletSendDetails extends LitElement {\n render() {\n return html ` Details\n \n \n \n \n ${this.networkTemplate()}\n `;\n }\n networkTemplate() {\n if (this.caipNetwork?.name) {\n return html ` this.onNetworkClick(this.caipNetwork)}\n class=\"network\"\n textTitle=\"Network\"\n imageSrc=${ifDefined(AssetUtil.getNetworkImage(this.caipNetwork))}\n >`;\n }\n return null;\n }\n onNetworkClick(network) {\n if (network) {\n RouterController.push('Networks', { network });\n }\n }\n};\nW3mWalletSendDetails.styles = styles;\n__decorate([\n property()\n], W3mWalletSendDetails.prototype, \"receiverAddress\", void 0);\n__decorate([\n property({ type: Object })\n], W3mWalletSendDetails.prototype, \"caipNetwork\", void 0);\n__decorate([\n property({ type: Number })\n], W3mWalletSendDetails.prototype, \"networkFee\", void 0);\nW3mWalletSendDetails = __decorate([\n customElement('w3m-wallet-send-details')\n], W3mWalletSendDetails);\nexport { W3mWalletSendDetails };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n pointer-events: none;\n }\n\n :host > wui-flex {\n display: var(--w3m-tooltip-display);\n opacity: var(--w3m-tooltip-opacity);\n padding: 9px var(--wui-spacing-s) 10px var(--wui-spacing-s);\n border-radius: var(--wui-border-radius-xxs);\n color: var(--wui-color-bg-100);\n position: fixed;\n top: var(--w3m-tooltip-top);\n left: var(--w3m-tooltip-left);\n transform: translate(calc(-50% + var(--w3m-tooltip-parent-width)), calc(-100% - 8px));\n max-width: calc(var(--w3m-modal-width) - var(--wui-spacing-xl));\n transition: opacity 0.2s var(--wui-ease-out-power-2);\n will-change: opacity;\n }\n\n :host([data-variant='shade']) > wui-flex {\n background-color: var(--wui-color-bg-150);\n border: 1px solid var(--wui-color-gray-glass-005);\n }\n\n :host([data-variant='shade']) > wui-flex > wui-text {\n color: var(--wui-color-fg-150);\n }\n\n :host([data-variant='fill']) > wui-flex {\n background-color: var(--wui-color-fg-100);\n border: none;\n }\n\n wui-icon {\n position: absolute;\n width: 12px !important;\n height: 4px !important;\n color: var(--wui-color-bg-150);\n }\n\n wui-icon[data-placement='top'] {\n bottom: 0px;\n left: 50%;\n transform: translate(-50%, 95%);\n }\n\n wui-icon[data-placement='bottom'] {\n top: 0;\n left: 50%;\n transform: translate(-50%, -95%) rotate(180deg);\n }\n\n wui-icon[data-placement='right'] {\n top: 50%;\n left: 0;\n transform: translate(-65%, -50%) rotate(90deg);\n }\n\n wui-icon[data-placement='left'] {\n top: 50%;\n right: 0%;\n transform: translate(65%, -50%) rotate(270deg);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { TooltipController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { state } from 'lit/decorators.js';\nimport styles from './styles.js';\nlet W3mTooltip = class W3mTooltip extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.open = TooltipController.state.open;\n this.message = TooltipController.state.message;\n this.triggerRect = TooltipController.state.triggerRect;\n this.variant = TooltipController.state.variant;\n this.unsubscribe.push(...[\n TooltipController.subscribe(newState => {\n this.open = newState.open;\n this.message = newState.message;\n this.triggerRect = newState.triggerRect;\n this.variant = newState.variant;\n })\n ]);\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n this.dataset['variant'] = this.variant;\n const topValue = this.triggerRect.top;\n const leftValue = this.triggerRect.left;\n this.style.cssText = `\n --w3m-tooltip-top: ${topValue}px;\n --w3m-tooltip-left: ${leftValue}px;\n --w3m-tooltip-parent-width: ${this.triggerRect.width / 2}px;\n --w3m-tooltip-display: ${this.open ? 'flex' : 'none'};\n --w3m-tooltip-opacity: ${this.open ? 1 : 0};\n `;\n return html `\n \n ${this.message}\n `;\n }\n};\nW3mTooltip.styles = [styles];\n__decorate([\n state()\n], W3mTooltip.prototype, \"open\", void 0);\n__decorate([\n state()\n], W3mTooltip.prototype, \"message\", void 0);\n__decorate([\n state()\n], W3mTooltip.prototype, \"triggerRect\", void 0);\n__decorate([\n state()\n], W3mTooltip.prototype, \"variant\", void 0);\nW3mTooltip = __decorate([\n customElement('w3m-tooltip')\n], W3mTooltip);\nexport { W3mTooltip };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n width: 100%;\n display: block;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { html, LitElement } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { customElement } from '@web3modal/ui';\nimport styles from './styles.js';\nimport { ModalController, RouterController, TooltipController } from '@web3modal/core';\nlet WuiTooltipTrigger = class WuiTooltipTrigger extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.text = '';\n this.open = TooltipController.state.open;\n this.unsubscribe.push(RouterController.subscribeKey('view', () => {\n TooltipController.hide();\n }), ModalController.subscribeKey('open', modalOpen => {\n if (!modalOpen) {\n TooltipController.hide();\n }\n }), TooltipController.subscribeKey('open', tooltipOpen => {\n this.open = tooltipOpen;\n }));\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n TooltipController.hide();\n }\n render() {\n return html `\n \n ${this.renderChildren()}\n \n `;\n }\n renderChildren() {\n return html ` `;\n }\n onMouseEnter() {\n const rect = this.getBoundingClientRect();\n if (!this.open) {\n TooltipController.showTooltip({\n message: this.text,\n triggerRect: {\n width: rect.width,\n height: rect.height,\n left: rect.left,\n top: rect.top\n },\n variant: 'shade'\n });\n }\n }\n onMouseLeave(event) {\n if (!this.contains(event.relatedTarget)) {\n TooltipController.hide();\n }\n }\n};\nWuiTooltipTrigger.styles = [styles];\n__decorate([\n property()\n], WuiTooltipTrigger.prototype, \"text\", void 0);\n__decorate([\n state()\n], WuiTooltipTrigger.prototype, \"open\", void 0);\nWuiTooltipTrigger = __decorate([\n customElement('w3m-tooltip-trigger')\n], WuiTooltipTrigger);\nexport { WuiTooltipTrigger };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n wui-flex:first-child {\n margin-top: var(--wui-spacing-s);\n }\n wui-separator {\n margin: var(--wui-spacing-m) calc(var(--wui-spacing-m) * -1) var(--wui-spacing-m)\n calc(var(--wui-spacing-m) * -1);\n width: calc(100% + var(--wui-spacing-s) * 2);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { AccountController, ConnectorController, CoreHelperUtil, RouterController, SnackController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport styles from './styles.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nconst MAX_TOP_VIEW = 2;\nconst MAXIMUM_LENGTH = 6;\nlet W3mSocialLoginWidget = class W3mSocialLoginWidget extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.connectors = ConnectorController.state.connectors;\n this.connector = this.connectors.find(c => c.type === 'AUTH');\n this.unsubscribe.push(ConnectorController.subscribeKey('connectors', val => {\n this.connectors = val;\n this.connector = this.connectors.find(c => c.type === 'AUTH');\n }));\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n if (!this.connector?.socials) {\n return null;\n }\n return html `\n \n ${this.topViewTemplate()}${this.bottomViewTemplate()}\n \n ${this.separatorTemplate()}\n `;\n }\n topViewTemplate() {\n if (!this.connector?.socials) {\n return null;\n }\n if (this.connector.socials.length === 2) {\n return html ` \n ${this.connector.socials.slice(0, MAX_TOP_VIEW).map(social => html ` {\n this.onSocialClick(social);\n }}\n logo=${social}\n >`)}\n `;\n }\n return html ` {\n this.onSocialClick(this.connector?.socials?.[0]);\n }}\n logo=${ifDefined(this.connector.socials[0])}\n align=\"center\"\n name=${`Continue with ${this.connector.socials[0]}`}\n >`;\n }\n bottomViewTemplate() {\n if (!this.connector?.socials) {\n return null;\n }\n if (this.connector?.socials.length <= MAX_TOP_VIEW) {\n return null;\n }\n if (this.connector?.socials.length > MAXIMUM_LENGTH) {\n return html `\n ${this.connector.socials.slice(1, MAXIMUM_LENGTH - 1).map(social => html ` {\n this.onSocialClick(social);\n }}\n logo=${social}\n >`)}\n \n `;\n }\n return html `\n ${this.connector.socials.slice(1, this.connector.socials.length).map(social => html ` {\n this.onSocialClick(social);\n }}\n logo=${social}\n >`)}\n `;\n }\n separatorTemplate() {\n const walletConnectConnector = this.connectors.find(c => c.type === 'WALLET_CONNECT');\n if (walletConnectConnector) {\n return html ``;\n }\n return null;\n }\n onMoreSocialsClick() {\n RouterController.push('ConnectSocials');\n }\n async onSocialClick(socialProvider) {\n const authConnector = ConnectorController.getAuthConnector();\n try {\n if (authConnector && socialProvider) {\n const { uri } = await authConnector.provider.getSocialRedirectUri({\n provider: socialProvider\n });\n AccountController.setSocialProvider(socialProvider);\n setTimeout(() => {\n const newWindow = CoreHelperUtil.returnOpenHref(uri, 'popupWindow', 'width=600,height=800,scrollbars=yes');\n if (newWindow) {\n AccountController.setSocialWindow(newWindow);\n }\n });\n RouterController.push('ConnectingSocial');\n }\n }\n catch (error) {\n SnackController.showError('Something went wrong');\n }\n }\n};\nW3mSocialLoginWidget.styles = styles;\n__decorate([\n state()\n], W3mSocialLoginWidget.prototype, \"connectors\", void 0);\nW3mSocialLoginWidget = __decorate([\n customElement('w3m-social-login-widget')\n], W3mSocialLoginWidget);\nexport { W3mSocialLoginWidget };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n margin-top: var(--wui-spacing-3xs);\n }\n wui-separator {\n margin: var(--wui-spacing-m) calc(var(--wui-spacing-m) * -1) var(--wui-spacing-xs)\n calc(var(--wui-spacing-m) * -1);\n width: calc(100% + var(--wui-spacing-s) * 2);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport styles from './styles.js';\nlet W3mWalletLoginList = class W3mWalletLoginList extends LitElement {\n render() {\n return html `\n \n \n \n \n \n \n \n \n \n \n `;\n }\n};\nW3mWalletLoginList.styles = styles;\nW3mWalletLoginList = __decorate([\n customElement('w3m-wallet-login-list')\n], W3mWalletLoginList);\nexport { W3mWalletLoginList };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n margin-top: var(--wui-spacing-3xs);\n }\n wui-separator {\n margin: var(--wui-spacing-m) calc(var(--wui-spacing-m) * -1) var(--wui-spacing-xs)\n calc(var(--wui-spacing-m) * -1);\n width: calc(100% + var(--wui-spacing-s) * 2);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { ConnectorController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport styles from './styles.js';\nlet W3mSocialLoginList = class W3mSocialLoginList extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.connectors = ConnectorController.state.connectors;\n this.connector = this.connectors.find(c => c.type === 'AUTH');\n this.unsubscribe.push(ConnectorController.subscribeKey('connectors', val => {\n this.connectors = val;\n this.connector = this.connectors.find(c => c.type === 'AUTH');\n }));\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n if (!this.connector?.socials) {\n return null;\n }\n return html ` \n ${this.connector.socials.map(social => html ``)}\n `;\n }\n};\nW3mSocialLoginList.styles = styles;\n__decorate([\n state()\n], W3mSocialLoginList.prototype, \"connectors\", void 0);\nW3mSocialLoginList = __decorate([\n customElement('w3m-social-login-list')\n], W3mSocialLoginList);\nexport { W3mSocialLoginList };\n//# sourceMappingURL=index.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { AssetUtil, ConnectorController, CoreHelperUtil, RouterController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nlet W3mConnectAnnouncedWidget = class W3mConnectAnnouncedWidget extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.connectors = ConnectorController.state.connectors;\n this.unsubscribe.push(ConnectorController.subscribeKey('connectors', val => (this.connectors = val)));\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n const announcedConnectors = this.connectors.filter(connector => connector.type === 'ANNOUNCED');\n if (!announcedConnectors?.length) {\n this.style.cssText = `display: none`;\n return null;\n }\n return html `\n \n ${announcedConnectors.map(connector => {\n return html `\n this.onConnector(connector)}\n tagVariant=\"success\"\n tagLabel=\"installed\"\n data-testid=${`wallet-selector-${connector.id}`}\n .installed=${true}\n >\n \n `;\n })}\n \n `;\n }\n onConnector(connector) {\n if (connector.type === 'WALLET_CONNECT') {\n if (CoreHelperUtil.isMobile()) {\n RouterController.push('AllWallets');\n }\n else {\n RouterController.push('ConnectingWalletConnect');\n }\n }\n else {\n RouterController.push('ConnectingExternal', { connector });\n }\n }\n};\n__decorate([\n state()\n], W3mConnectAnnouncedWidget.prototype, \"connectors\", void 0);\nW3mConnectAnnouncedWidget = __decorate([\n customElement('w3m-connect-announced-widget')\n], W3mConnectAnnouncedWidget);\nexport { W3mConnectAnnouncedWidget };\n//# sourceMappingURL=index.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { AssetUtil, ConnectorController, CoreHelperUtil, OptionsController, RouterController, StorageUtil } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nlet W3mConnectCustomWidget = class W3mConnectCustomWidget extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.connectors = ConnectorController.state.connectors;\n this.unsubscribe.push(ConnectorController.subscribeKey('connectors', val => (this.connectors = val)));\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n const { customWallets } = OptionsController.state;\n if (!customWallets?.length) {\n this.style.cssText = `display: none`;\n return null;\n }\n const wallets = this.filterOutDuplicateWallets(customWallets);\n return html `\n ${wallets.map(wallet => {\n return html `\n this.onConnectWallet(wallet)}\n data-testid=${`wallet-selector-${wallet.id}`}\n >\n \n `;\n })}\n `;\n }\n filterOutDuplicateWallets(wallets) {\n const recent = StorageUtil.getRecentWallets();\n const connectorRDNSs = this.connectors\n .map(connector => connector.info?.rdns)\n .filter(Boolean);\n const recentRDNSs = recent.map(wallet => wallet.rdns).filter(Boolean);\n const allRDNSs = connectorRDNSs.concat(recentRDNSs);\n if (allRDNSs.includes('io.metamask.mobile') && CoreHelperUtil.isMobile()) {\n const index = allRDNSs.indexOf('io.metamask.mobile');\n allRDNSs[index] = 'io.metamask';\n }\n const filtered = wallets.filter(wallet => !allRDNSs.includes(String(wallet?.rdns)));\n return filtered;\n }\n onConnectWallet(wallet) {\n RouterController.push('ConnectingWalletConnect', { wallet });\n }\n};\n__decorate([\n state()\n], W3mConnectCustomWidget.prototype, \"connectors\", void 0);\nW3mConnectCustomWidget = __decorate([\n customElement('w3m-connect-custom-widget')\n], W3mConnectCustomWidget);\nexport { W3mConnectCustomWidget };\n//# sourceMappingURL=index.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { AssetUtil, ConnectorController, RouterController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nlet W3mConnectExternalWidget = class W3mConnectExternalWidget extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.connectors = ConnectorController.state.connectors;\n this.unsubscribe.push(ConnectorController.subscribeKey('connectors', val => (this.connectors = val)));\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n const externalConnectors = this.connectors.filter(connector => !['WALLET_CONNECT', 'INJECTED', 'ANNOUNCED', 'AUTH'].includes(connector.type));\n if (!externalConnectors?.length) {\n this.style.cssText = `display: none`;\n return null;\n }\n return html `\n \n ${externalConnectors.map(connector => html `\n this.onConnector(connector)}\n >\n \n `)}\n \n `;\n }\n onConnector(connector) {\n RouterController.push('ConnectingExternal', { connector });\n }\n};\n__decorate([\n state()\n], W3mConnectExternalWidget.prototype, \"connectors\", void 0);\nW3mConnectExternalWidget = __decorate([\n customElement('w3m-connect-external-widget')\n], W3mConnectExternalWidget);\nexport { W3mConnectExternalWidget };\n//# sourceMappingURL=index.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { ApiController, AssetUtil, ConnectorController, CoreHelperUtil, RouterController, StorageUtil } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nlet W3mConnectFeaturedWidget = class W3mConnectFeaturedWidget extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.connectors = ConnectorController.state.connectors;\n this.unsubscribe.push(ConnectorController.subscribeKey('connectors', val => (this.connectors = val)));\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n const { featured } = ApiController.state;\n if (!featured.length) {\n this.style.cssText = `display: none`;\n return null;\n }\n const wallets = this.filterOutDuplicateWallets(featured);\n return html `\n \n ${wallets.map(wallet => html `\n this.onConnectWallet(wallet)}\n >\n \n `)}\n \n `;\n }\n filterOutDuplicateWallets(wallets) {\n const recent = StorageUtil.getRecentWallets();\n const connectorRDNSs = this.connectors\n .map(connector => connector.info?.rdns)\n .filter(Boolean);\n const recentRDNSs = recent.map(wallet => wallet.rdns).filter(Boolean);\n const allRDNSs = connectorRDNSs.concat(recentRDNSs);\n if (allRDNSs.includes('io.metamask.mobile') && CoreHelperUtil.isMobile()) {\n const index = allRDNSs.indexOf('io.metamask.mobile');\n allRDNSs[index] = 'io.metamask';\n }\n const filtered = wallets.filter(wallet => !allRDNSs.includes(String(wallet?.rdns)));\n return filtered;\n }\n onConnectWallet(wallet) {\n RouterController.push('ConnectingWalletConnect', { wallet });\n }\n};\n__decorate([\n state()\n], W3mConnectFeaturedWidget.prototype, \"connectors\", void 0);\nW3mConnectFeaturedWidget = __decorate([\n customElement('w3m-connect-featured-widget')\n], W3mConnectFeaturedWidget);\nexport { W3mConnectFeaturedWidget };\n//# sourceMappingURL=index.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { AssetUtil, ConnectionController, ConnectorController, CoreHelperUtil, RouterController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nlet W3mConnectInjectedWidget = class W3mConnectInjectedWidget extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.connectors = ConnectorController.state.connectors;\n this.unsubscribe.push(ConnectorController.subscribeKey('connectors', val => (this.connectors = val)));\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n const injectedConnectors = this.connectors.filter(connector => connector.type === 'INJECTED');\n if (!injectedConnectors?.length ||\n (injectedConnectors.length === 1 &&\n injectedConnectors[0]?.name === 'Browser Wallet' &&\n !CoreHelperUtil.isMobile())) {\n this.style.cssText = `display: none`;\n return null;\n }\n return html `\n \n ${injectedConnectors.map(connector => {\n if (!CoreHelperUtil.isMobile() && connector.name === 'Browser Wallet') {\n return null;\n }\n if (!ConnectionController.checkInstalled()) {\n return null;\n }\n return html `\n this.onConnector(connector)}\n >\n \n `;\n })}\n \n `;\n }\n onConnector(connector) {\n RouterController.push('ConnectingExternal', { connector });\n }\n};\n__decorate([\n state()\n], W3mConnectInjectedWidget.prototype, \"connectors\", void 0);\nW3mConnectInjectedWidget = __decorate([\n customElement('w3m-connect-injected-widget')\n], W3mConnectInjectedWidget);\nexport { W3mConnectInjectedWidget };\n//# sourceMappingURL=index.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { AssetUtil, ConnectorController, RouterController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nlet W3mConnectCoinbaseWidget = class W3mConnectCoinbaseWidget extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.connectors = ConnectorController.state.connectors;\n this.unsubscribe.push(ConnectorController.subscribeKey('connectors', val => (this.connectors = val)));\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n const coinbaseConnector = this.connectors.find(connector => connector.id === 'coinbaseWalletSDK');\n if (!coinbaseConnector) {\n this.style.cssText = `display: none`;\n return null;\n }\n return html `\n \n this.onConnector(coinbaseConnector)}\n >\n \n \n `;\n }\n onConnector(connector) {\n RouterController.push('ConnectingExternal', { connector });\n }\n};\n__decorate([\n state()\n], W3mConnectCoinbaseWidget.prototype, \"connectors\", void 0);\nW3mConnectCoinbaseWidget = __decorate([\n customElement('w3m-connect-coinbase-widget')\n], W3mConnectCoinbaseWidget);\nexport { W3mConnectCoinbaseWidget };\n//# sourceMappingURL=index.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { AssetUtil, RouterController, StorageUtil } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nlet W3mConnectRecentWidget = class W3mConnectRecentWidget extends LitElement {\n render() {\n const recent = StorageUtil.getRecentWallets();\n if (!recent?.length) {\n this.style.cssText = `display: none`;\n return null;\n }\n return html `\n \n ${recent.map(wallet => {\n return html `\n this.onConnectWallet(wallet)}\n tagLabel=\"recent\"\n tagVariant=\"shade\"\n >\n \n `;\n })}\n \n `;\n }\n onConnectWallet(wallet) {\n RouterController.push('ConnectingWalletConnect', { wallet });\n }\n};\nW3mConnectRecentWidget = __decorate([\n customElement('w3m-connect-recent-widget')\n], W3mConnectRecentWidget);\nexport { W3mConnectRecentWidget };\n//# sourceMappingURL=index.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { ApiController, AssetUtil, ConnectorController, CoreHelperUtil, OptionsController, RouterController, StorageUtil } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nlet W3mConnectRecommendedWidget = class W3mConnectRecommendedWidget extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.connectors = ConnectorController.state.connectors;\n this.unsubscribe.push(ConnectorController.subscribeKey('connectors', val => (this.connectors = val)));\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n const connector = this.connectors.find(c => c.type === 'WALLET_CONNECT');\n if (!connector) {\n return null;\n }\n const { recommended } = ApiController.state;\n const { customWallets, featuredWalletIds } = OptionsController.state;\n const { connectors } = ConnectorController.state;\n const recent = StorageUtil.getRecentWallets();\n const injected = connectors.filter(c => c.type === 'INJECTED' || c.type === 'ANNOUNCED');\n const injectedWallets = injected.filter(i => i.name !== 'Browser Wallet');\n if (featuredWalletIds || customWallets || !recommended.length) {\n this.style.cssText = `display: none`;\n return null;\n }\n const overrideLength = injectedWallets.length + recent.length;\n const maxRecommended = Math.max(0, 2 - overrideLength);\n const wallets = this.filterOutDuplicateWallets(recommended).slice(0, maxRecommended);\n if (!wallets.length) {\n this.style.cssText = `display: none`;\n return null;\n }\n return html `\n \n ${wallets.map(wallet => html `\n this.onConnectWallet(wallet)}\n >\n \n `)}\n \n `;\n }\n filterOutDuplicateWallets(wallets) {\n const recent = StorageUtil.getRecentWallets();\n const connectorRDNSs = this.connectors\n .map(connector => connector.info?.rdns)\n .filter(Boolean);\n const recentRDNSs = recent.map(wallet => wallet.rdns).filter(Boolean);\n const allRDNSs = connectorRDNSs.concat(recentRDNSs);\n if (allRDNSs.includes('io.metamask.mobile') && CoreHelperUtil.isMobile()) {\n const index = allRDNSs.indexOf('io.metamask.mobile');\n allRDNSs[index] = 'io.metamask';\n }\n const filtered = wallets.filter(wallet => !allRDNSs.includes(String(wallet?.rdns)));\n return filtered;\n }\n onConnectWallet(wallet) {\n RouterController.push('ConnectingWalletConnect', { wallet });\n }\n};\n__decorate([\n state()\n], W3mConnectRecommendedWidget.prototype, \"connectors\", void 0);\nW3mConnectRecommendedWidget = __decorate([\n customElement('w3m-connect-recommended-widget')\n], W3mConnectRecommendedWidget);\nexport { W3mConnectRecommendedWidget };\n//# sourceMappingURL=index.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { AssetUtil, ConnectorController, CoreHelperUtil, RouterController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nlet W3mConnectWalletConnectWidget = class W3mConnectWalletConnectWidget extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.connectors = ConnectorController.state.connectors;\n this.unsubscribe.push(ConnectorController.subscribeKey('connectors', val => (this.connectors = val)));\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n if (CoreHelperUtil.isMobile()) {\n this.style.cssText = `display: none`;\n return null;\n }\n const connector = this.connectors.find(c => c.type === 'WALLET_CONNECT');\n if (!connector) {\n this.style.cssText = `display: none`;\n return null;\n }\n return html `\n this.onConnector(connector)}\n tagLabel=\"qr code\"\n tagVariant=\"main\"\n data-testid=\"wallet-selector-walletconnect\"\n >\n \n `;\n }\n onConnector(connector) {\n if (connector.type === 'WALLET_CONNECT') {\n if (CoreHelperUtil.isMobile()) {\n RouterController.push('AllWallets');\n }\n else {\n RouterController.push('ConnectingWalletConnect');\n }\n }\n else {\n RouterController.push('ConnectingExternal', { connector });\n }\n }\n};\n__decorate([\n state()\n], W3mConnectWalletConnectWidget.prototype, \"connectors\", void 0);\nW3mConnectWalletConnectWidget = __decorate([\n customElement('w3m-connect-walletconnect-widget')\n], W3mConnectWalletConnectWidget);\nexport { W3mConnectWalletConnectWidget };\n//# sourceMappingURL=index.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { ApiController, ConnectorController, CoreHelperUtil, EventsController, OptionsController, RouterController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nlet W3mAllWalletsWidget = class W3mAllWalletsWidget extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.connectors = ConnectorController.state.connectors;\n this.count = ApiController.state.count;\n this.unsubscribe.push(ConnectorController.subscribeKey('connectors', val => (this.connectors = val)), ApiController.subscribeKey('count', val => (this.count = val)));\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n const connector = this.connectors.find(c => c.type === 'WALLET_CONNECT');\n const { allWallets } = OptionsController.state;\n if (!connector || allWallets === 'HIDE') {\n return null;\n }\n if (allWallets === 'ONLY_MOBILE' && !CoreHelperUtil.isMobile()) {\n return null;\n }\n const featuredCount = ApiController.state.featured.length;\n const rawCount = this.count + featuredCount;\n const roundedCount = rawCount < 10 ? rawCount : Math.floor(rawCount / 10) * 10;\n const tagLabel = roundedCount < rawCount ? `${roundedCount}+` : `${roundedCount}`;\n return html `\n \n `;\n }\n onAllWallets() {\n EventsController.sendEvent({ type: 'track', event: 'CLICK_ALL_WALLETS' });\n RouterController.push('AllWallets');\n }\n};\n__decorate([\n state()\n], W3mAllWalletsWidget.prototype, \"connectors\", void 0);\n__decorate([\n state()\n], W3mAllWalletsWidget.prototype, \"count\", void 0);\nW3mAllWalletsWidget = __decorate([\n customElement('w3m-all-wallets-widget')\n], W3mAllWalletsWidget);\nexport { W3mAllWalletsWidget };\n//# sourceMappingURL=index.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { ConnectorController, RouterController, StorageUtil } from '@web3modal/core';\nlet W3mAccountAuthButton = class W3mAccountAuthButton extends LitElement {\n render() {\n const type = StorageUtil.getConnectedConnector();\n const authConnector = ConnectorController.getAuthConnector();\n if (!authConnector || type !== 'AUTH') {\n this.style.cssText = `display: none`;\n return null;\n }\n const email = authConnector.provider.getEmail() ?? '';\n const socialProvider = StorageUtil.getConnectedSocialProvider();\n const socialUsername = StorageUtil.getConnectedSocialUsername();\n return html `\n {\n this.onGoToUpdateEmail(email, socialProvider);\n }}\n >\n ${socialUsername ?? email}\n \n `;\n }\n onGoToUpdateEmail(email, socialProvider) {\n if (!socialProvider) {\n RouterController.push('UpdateEmailWallet', { email });\n }\n }\n};\nW3mAccountAuthButton = __decorate([\n customElement('w3m-account-auth-button')\n], W3mAccountAuthButton);\nexport { W3mAccountAuthButton };\n//# sourceMappingURL=index.js.map","import { AccountController, BlockchainApiController, ConnectionController, ConnectorController, CoreHelperUtil, EventsController, ModalController, NetworkController, OptionsController, PublicStateController, ThemeController, SnackController, RouterController, EnsController } from '@web3modal/core';\nimport { setColorTheme, setThemeVariables } from '@web3modal/ui';\nimport { ConstantsUtil } from '@web3modal/common';\nlet isInitialized = false;\nexport class Web3ModalScaffold {\n constructor(options) {\n this.initPromise = undefined;\n this.setIsConnected = isConnected => {\n AccountController.setIsConnected(isConnected);\n };\n this.getIsConnectedState = () => AccountController.state.isConnected;\n this.setCaipAddress = caipAddress => {\n AccountController.setCaipAddress(caipAddress);\n };\n this.setBalance = (balance, balanceSymbol) => {\n AccountController.setBalance(balance, balanceSymbol);\n };\n this.setProfileName = profileName => {\n AccountController.setProfileName(profileName);\n };\n this.setProfileImage = profileImage => {\n AccountController.setProfileImage(profileImage);\n };\n this.resetAccount = () => {\n AccountController.resetAccount();\n };\n this.setCaipNetwork = caipNetwork => {\n NetworkController.setCaipNetwork(caipNetwork);\n };\n this.getCaipNetwork = () => NetworkController.state.caipNetwork;\n this.setRequestedCaipNetworks = requestedCaipNetworks => {\n NetworkController.setRequestedCaipNetworks(requestedCaipNetworks);\n };\n this.getApprovedCaipNetworksData = () => NetworkController.getApprovedCaipNetworksData();\n this.resetNetwork = () => {\n NetworkController.resetNetwork();\n };\n this.setConnectors = connectors => {\n ConnectorController.setConnectors(connectors);\n };\n this.addConnector = connector => {\n ConnectorController.addConnector(connector);\n };\n this.getConnectors = () => ConnectorController.getConnectors();\n this.resetWcConnection = () => {\n ConnectionController.resetWcConnection();\n };\n this.fetchIdentity = request => BlockchainApiController.fetchIdentity(request);\n this.setAddressExplorerUrl = addressExplorerUrl => {\n AccountController.setAddressExplorerUrl(addressExplorerUrl);\n };\n this.setSmartAccountDeployed = isDeployed => {\n AccountController.setSmartAccountDeployed(isDeployed);\n };\n this.setConnectedWalletInfo = connectedWalletInfo => {\n AccountController.setConnectedWalletInfo(connectedWalletInfo);\n };\n this.setSmartAccountEnabledNetworks = smartAccountEnabledNetworks => {\n NetworkController.setSmartAccountEnabledNetworks(smartAccountEnabledNetworks);\n };\n this.setPreferredAccountType = preferredAccountType => {\n AccountController.setPreferredAccountType(preferredAccountType);\n };\n this.getWalletConnectName = address => {\n return EnsController.getNamesForAddress(address);\n };\n this.resolveWalletConnectName = async (name) => {\n const trimmedName = name.replace(ConstantsUtil.WC_NAME_SUFFIX, '');\n const wcNameAddress = await EnsController.resolveName(trimmedName);\n const networkNameAddresses = Object.values(wcNameAddress?.addresses) || [];\n return networkNameAddresses[0]?.address || false;\n };\n this.initControllers(options);\n this.initOrContinue();\n }\n async open(options) {\n await this.initOrContinue();\n ModalController.open(options);\n }\n async close() {\n await this.initOrContinue();\n ModalController.close();\n }\n setLoading(loading) {\n ModalController.setLoading(loading);\n }\n getThemeMode() {\n return ThemeController.state.themeMode;\n }\n getThemeVariables() {\n return ThemeController.state.themeVariables;\n }\n setThemeMode(themeMode) {\n ThemeController.setThemeMode(themeMode);\n setColorTheme(ThemeController.state.themeMode);\n }\n setThemeVariables(themeVariables) {\n ThemeController.setThemeVariables(themeVariables);\n setThemeVariables(ThemeController.state.themeVariables);\n }\n subscribeTheme(callback) {\n return ThemeController.subscribe(callback);\n }\n getWalletInfo() {\n return AccountController.state.connectedWalletInfo;\n }\n subscribeWalletInfo(callback) {\n return AccountController.subscribeKey('connectedWalletInfo', callback);\n }\n getState() {\n return PublicStateController.state;\n }\n subscribeState(callback) {\n return PublicStateController.subscribe(callback);\n }\n showErrorMessage(message) {\n SnackController.showError(message);\n }\n showSuccessMessage(message) {\n SnackController.showSuccess(message);\n }\n getEvent() {\n return { ...EventsController.state };\n }\n subscribeEvents(callback) {\n return EventsController.subscribe(callback);\n }\n replace(route) {\n RouterController.replace(route);\n }\n redirect(route) {\n RouterController.push(route);\n }\n popTransactionStack(cancel) {\n RouterController.popTransactionStack(cancel);\n }\n isOpen() {\n return ModalController.state.open;\n }\n isTransactionStackEmpty() {\n return RouterController.state.transactionStack.length === 0;\n }\n isTransactionShouldReplaceView() {\n return RouterController.state.transactionStack[RouterController.state.transactionStack.length - 1]?.replace;\n }\n async initControllers(options) {\n NetworkController.setClient(options.networkControllerClient);\n NetworkController.setDefaultCaipNetwork(options.defaultChain);\n OptionsController.setProjectId(options.projectId);\n OptionsController.setAllWallets(options.allWallets);\n OptionsController.setIncludeWalletIds(options.includeWalletIds);\n OptionsController.setExcludeWalletIds(options.excludeWalletIds);\n OptionsController.setFeaturedWalletIds(options.featuredWalletIds);\n OptionsController.setTokens(options.tokens);\n OptionsController.setTermsConditionsUrl(options.termsConditionsUrl);\n OptionsController.setPrivacyPolicyUrl(options.privacyPolicyUrl);\n OptionsController.setCustomWallets(options.customWallets);\n OptionsController.setEnableAnalytics(options.enableAnalytics);\n OptionsController.setSdkVersion(options._sdkVersion);\n if (options.metadata) {\n OptionsController.setMetadata(options.metadata);\n }\n if (options.themeMode) {\n ThemeController.setThemeMode(options.themeMode);\n }\n if (options.themeVariables) {\n ThemeController.setThemeVariables(options.themeVariables);\n }\n if (options.enableOnramp) {\n OptionsController.setOnrampEnabled(Boolean(options.enableOnramp));\n }\n if (options.enableWalletFeatures) {\n OptionsController.setWalletFeaturesEnabled(Boolean(options.enableWalletFeatures));\n }\n if (options.allowUnsupportedChain) {\n NetworkController.setAllowUnsupportedChain(options.allowUnsupportedChain);\n }\n if (options.siweControllerClient) {\n const { SIWEController } = await import('@web3modal/siwe');\n SIWEController.setSIWEClient(options.siweControllerClient);\n }\n ConnectionController.setClient(options.connectionControllerClient);\n }\n async initOrContinue() {\n if (!this.initPromise && !isInitialized && CoreHelperUtil.isClient()) {\n isInitialized = true;\n this.initPromise = new Promise(async (resolve) => {\n await Promise.all([import('@web3modal/ui'), import('./modal/w3m-modal/index.js')]);\n const modal = document.createElement('w3m-modal');\n document.body.insertAdjacentElement('beforeend', modal);\n resolve();\n });\n }\n return this.initPromise;\n }\n}\n//# sourceMappingURL=client.js.map","export const ConstantsUtil = {\n WALLET_CONNECT_CONNECTOR_ID: 'walletConnect',\n INJECTED_CONNECTOR_ID: 'injected',\n COINBASE_CONNECTOR_ID: 'coinbaseWallet',\n COINBASE_SDK_CONNECTOR_ID: 'coinbaseWalletSDK',\n SAFE_CONNECTOR_ID: 'safe',\n LEDGER_CONNECTOR_ID: 'ledger',\n EIP6963_CONNECTOR_ID: 'eip6963',\n AUTH_CONNECTOR_ID: 'w3mAuth',\n EIP155: 'eip155',\n ADD_CHAIN_METHOD: 'wallet_addEthereumChain',\n EIP6963_ANNOUNCE_EVENT: 'eip6963:announceProvider',\n EIP6963_REQUEST_EVENT: 'eip6963:requestProvider',\n CONNECTOR_RDNS_MAP: {\n coinbaseWallet: 'com.coinbase.wallet'\n },\n VERSION: '4.2.3'\n};\n//# sourceMappingURL=ConstantsUtil.js.map","import { ConstantsUtil } from './ConstantsUtil.js';\nexport const PresetsUtil = {\n ConnectorExplorerIds: {\n [ConstantsUtil.COINBASE_CONNECTOR_ID]: 'fd20dc426fb37566d803205b19bbc1d4096b248ac04548e3cfb6b3a38bd033aa',\n [ConstantsUtil.SAFE_CONNECTOR_ID]: '225affb176778569276e484e1b92637ad061b01e13a048b35a9d280c3b58970f',\n [ConstantsUtil.LEDGER_CONNECTOR_ID]: '19177a98252e07ddfc9af2083ba8e07ef627cb6103467ffebb3f8f4205fd7927'\n },\n EIP155NetworkImageIds: {\n 1: '692ed6ba-e569-459a-556a-776476829e00',\n 42161: '3bff954d-5cb0-47a0-9a23-d20192e74600',\n 43114: '30c46e53-e989-45fb-4549-be3bd4eb3b00',\n 56: '93564157-2e8e-4ce7-81df-b264dbee9b00',\n 250: '06b26297-fe0c-4733-5d6b-ffa5498aac00',\n 10: 'ab9c186a-c52f-464b-2906-ca59d760a400',\n 137: '41d04d42-da3b-4453-8506-668cc0727900',\n 100: '02b53f6a-e3d4-479e-1cb4-21178987d100',\n 9001: 'f926ff41-260d-4028-635e-91913fc28e00',\n 324: 'b310f07f-4ef7-49f3-7073-2a0a39685800',\n 314: '5a73b3dd-af74-424e-cae0-0de859ee9400',\n 4689: '34e68754-e536-40da-c153-6ef2e7188a00',\n 1088: '3897a66d-40b9-4833-162f-a2c90531c900',\n 1284: '161038da-44ae-4ec7-1208-0ea569454b00',\n 1285: 'f1d73bb6-5450-4e18-38f7-fb6484264a00',\n 7777777: '845c60df-d429-4991-e687-91ae45791600',\n 42220: 'ab781bbc-ccc6-418d-d32d-789b15da1f00',\n 8453: '7289c336-3981-4081-c5f4-efc26ac64a00',\n 1313161554: '3ff73439-a619-4894-9262-4470c773a100',\n 2020: 'b8101fc0-9c19-4b6f-ec65-f6dfff106e00',\n 2021: 'b8101fc0-9c19-4b6f-ec65-f6dfff106e00',\n '5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp': 'a1b58899-f671-4276-6a5e-56ca5bd59700',\n '4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z': 'a1b58899-f671-4276-6a5e-56ca5bd59700',\n EtWTRABZaYq6iMfeYKouRu166VU2xqa1: 'a1b58899-f671-4276-6a5e-56ca5bd59700'\n },\n ConnectorImageIds: {\n [ConstantsUtil.COINBASE_CONNECTOR_ID]: '0c2840c3-5b04-4c44-9661-fbd4b49e1800',\n [ConstantsUtil.COINBASE_SDK_CONNECTOR_ID]: '0c2840c3-5b04-4c44-9661-fbd4b49e1800',\n [ConstantsUtil.SAFE_CONNECTOR_ID]: '461db637-8616-43ce-035a-d89b8a1d5800',\n [ConstantsUtil.LEDGER_CONNECTOR_ID]: '54a1aa77-d202-4f8d-0fb2-5d2bb6db0300',\n [ConstantsUtil.WALLET_CONNECT_CONNECTOR_ID]: 'ef1a1fcf-7fe8-4d69-bd6d-fda1345b4400',\n [ConstantsUtil.INJECTED_CONNECTOR_ID]: '07ba87ed-43aa-4adf-4540-9e6a2b9cae00'\n },\n ConnectorNamesMap: {\n [ConstantsUtil.INJECTED_CONNECTOR_ID]: 'Browser Wallet',\n [ConstantsUtil.WALLET_CONNECT_CONNECTOR_ID]: 'WalletConnect',\n [ConstantsUtil.COINBASE_CONNECTOR_ID]: 'Coinbase',\n [ConstantsUtil.COINBASE_SDK_CONNECTOR_ID]: 'Coinbase',\n [ConstantsUtil.LEDGER_CONNECTOR_ID]: 'Ledger',\n [ConstantsUtil.SAFE_CONNECTOR_ID]: 'Safe'\n },\n ConnectorTypesMap: {\n [ConstantsUtil.INJECTED_CONNECTOR_ID]: 'INJECTED',\n [ConstantsUtil.WALLET_CONNECT_CONNECTOR_ID]: 'WALLET_CONNECT',\n [ConstantsUtil.EIP6963_CONNECTOR_ID]: 'ANNOUNCED',\n [ConstantsUtil.AUTH_CONNECTOR_ID]: 'AUTH'\n },\n WalletConnectRpcChainIds: [\n 1,\n 5,\n 11155111,\n 10,\n 420,\n 42161,\n 421613,\n 137,\n 80001,\n 42220,\n 1313161554,\n 1313161555,\n 56,\n 97,\n 43114,\n 43113,\n 100,\n 8453,\n 84531,\n 7777777,\n 999,\n 324,\n 280\n ]\n};\n//# sourceMappingURL=PresetsUtil.js.map","import { ConstantsUtil } from './ConstantsUtil.js';\nexport const HelpersUtil = {\n getCaipTokens(tokens) {\n if (!tokens) {\n return undefined;\n }\n const caipTokens = {};\n Object.entries(tokens).forEach(([id, token]) => {\n caipTokens[`${ConstantsUtil.EIP155}:${id}`] = token;\n });\n return caipTokens;\n }\n};\n//# sourceMappingURL=HelpersUtil.js.map","import { CoreHelperUtil } from '@web3modal/scaffold';\nimport { ConstantsUtil, PresetsUtil } from '@web3modal/scaffold-utils';\nimport { EthereumProvider } from '@walletconnect/ethereum-provider';\nimport { http } from 'viem';\nexport function getCaipDefaultChain(chain) {\n if (!chain) {\n return undefined;\n }\n return {\n id: `${ConstantsUtil.EIP155}:${chain.id}`,\n name: chain.name,\n imageId: PresetsUtil.EIP155NetworkImageIds[chain.id]\n };\n}\nexport async function getWalletConnectCaipNetworks(connector) {\n if (!connector) {\n throw new Error('networkControllerClient:getApprovedCaipNetworks - connector is undefined');\n }\n const provider = (await connector?.getProvider());\n const ns = provider?.signer?.session?.namespaces;\n const nsMethods = ns?.[ConstantsUtil.EIP155]?.methods;\n const nsChains = ns?.[ConstantsUtil.EIP155]?.chains;\n return {\n supportsAllNetworks: Boolean(nsMethods?.includes(ConstantsUtil.ADD_CHAIN_METHOD)),\n approvedCaipNetworkIds: nsChains\n };\n}\nexport function getEmailCaipNetworks() {\n return {\n supportsAllNetworks: false,\n approvedCaipNetworkIds: PresetsUtil.WalletConnectRpcChainIds.map(id => `${ConstantsUtil.EIP155}:${id}`)\n };\n}\nexport function getTransport({ chainId, projectId }) {\n const RPC_URL = CoreHelperUtil.getBlockchainApiUrl();\n if (!PresetsUtil.WalletConnectRpcChainIds.includes(chainId)) {\n return http();\n }\n return http(`${RPC_URL}/v1/?chainId=${ConstantsUtil.EIP155}:${chainId}&projectId=${projectId}`);\n}\n//# sourceMappingURL=helpers.js.map","// created 2024-09-13T06:42:45.675Z\n// compressed base64-encoded blob for include-ens data\n// source: https://github.com/adraffy/ens-normalize.js/blob/main/src/make.js\n// see: https://github.com/adraffy/ens-normalize.js#security\n// SHA-256: 0ca3917bee1eee342d64c631cb1dbaac37b167d848887d59f6d68328dc99ac09\nvar COMPRESSED$1 = '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';\nconst FENCED = new Map([[8217,\"apostrophe\"],[8260,\"fraction slash\"],[12539,\"middle dot\"]]);\nconst NSM_MAX = 4;\n\nfunction decode_arithmetic(bytes) {\r\n\tlet pos = 0;\r\n\tfunction u16() { return (bytes[pos++] << 8) | bytes[pos++]; }\r\n\t\r\n\t// decode the frequency table\r\n\tlet symbol_count = u16();\r\n\tlet total = 1;\r\n\tlet acc = [0, 1]; // first symbol has frequency 1\r\n\tfor (let i = 1; i < symbol_count; i++) {\r\n\t\tacc.push(total += u16());\r\n\t}\r\n\r\n\t// skip the sized-payload that the last 3 symbols index into\r\n\tlet skip = u16();\r\n\tlet pos_payload = pos;\r\n\tpos += skip;\r\n\r\n\tlet read_width = 0;\r\n\tlet read_buffer = 0; \r\n\tfunction read_bit() {\r\n\t\tif (read_width == 0) {\r\n\t\t\t// this will read beyond end of buffer\r\n\t\t\t// but (undefined|0) => zero pad\r\n\t\t\tread_buffer = (read_buffer << 8) | bytes[pos++];\r\n\t\t\tread_width = 8;\r\n\t\t}\r\n\t\treturn (read_buffer >> --read_width) & 1;\r\n\t}\r\n\r\n\tconst N = 31;\r\n\tconst FULL = 2**N;\r\n\tconst HALF = FULL >>> 1;\r\n\tconst QRTR = HALF >> 1;\r\n\tconst MASK = FULL - 1;\r\n\r\n\t// fill register\r\n\tlet register = 0;\r\n\tfor (let i = 0; i < N; i++) register = (register << 1) | read_bit();\r\n\r\n\tlet symbols = [];\r\n\tlet low = 0;\r\n\tlet range = FULL; // treat like a float\r\n\twhile (true) {\r\n\t\tlet value = Math.floor((((register - low + 1) * total) - 1) / range);\r\n\t\tlet start = 0;\r\n\t\tlet end = symbol_count;\r\n\t\twhile (end - start > 1) { // binary search\r\n\t\t\tlet mid = (start + end) >>> 1;\r\n\t\t\tif (value < acc[mid]) {\r\n\t\t\t\tend = mid;\r\n\t\t\t} else {\r\n\t\t\t\tstart = mid;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (start == 0) break; // first symbol is end mark\r\n\t\tsymbols.push(start);\r\n\t\tlet a = low + Math.floor(range * acc[start] / total);\r\n\t\tlet b = low + Math.floor(range * acc[start+1] / total) - 1;\r\n\t\twhile (((a ^ b) & HALF) == 0) {\r\n\t\t\tregister = (register << 1) & MASK | read_bit();\r\n\t\t\ta = (a << 1) & MASK;\r\n\t\t\tb = (b << 1) & MASK | 1;\r\n\t\t}\r\n\t\twhile (a & ~b & QRTR) {\r\n\t\t\tregister = (register & HALF) | ((register << 1) & (MASK >>> 1)) | read_bit();\r\n\t\t\ta = (a << 1) ^ HALF;\r\n\t\t\tb = ((b ^ HALF) << 1) | HALF | 1;\r\n\t\t}\r\n\t\tlow = a;\r\n\t\trange = 1 + b - a;\r\n\t}\r\n\tlet offset = symbol_count - 4;\r\n\treturn symbols.map(x => { // index into payload\r\n\t\tswitch (x - offset) {\r\n\t\t\tcase 3: return offset + 0x10100 + ((bytes[pos_payload++] << 16) | (bytes[pos_payload++] << 8) | bytes[pos_payload++]);\r\n\t\t\tcase 2: return offset + 0x100 + ((bytes[pos_payload++] << 8) | bytes[pos_payload++]);\r\n\t\t\tcase 1: return offset + bytes[pos_payload++];\r\n\t\t\tdefault: return x - 1;\r\n\t\t}\r\n\t});\r\n}\t\r\n\r\n// returns an iterator which returns the next symbol\r\nfunction read_payload(v) {\r\n\tlet pos = 0;\r\n\treturn () => v[pos++];\r\n}\r\nfunction read_compressed_payload(s) {\r\n\treturn read_payload(decode_arithmetic(unsafe_atob(s)));\r\n}\r\n\r\n// unsafe in the sense:\r\n// expected well-formed Base64 w/o padding \r\n// 20220922: added for https://github.com/adraffy/ens-normalize.js/issues/4\r\nfunction unsafe_atob(s) {\r\n\tlet lookup = [];\r\n\t[...'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'].forEach((c, i) => lookup[c.charCodeAt(0)] = i);\r\n\tlet n = s.length;\r\n\tlet ret = new Uint8Array((6 * n) >> 3);\r\n\tfor (let i = 0, pos = 0, width = 0, carry = 0; i < n; i++) {\r\n\t\tcarry = (carry << 6) | lookup[s.charCodeAt(i)];\r\n\t\twidth += 6;\r\n\t\tif (width >= 8) {\r\n\t\t\tret[pos++] = (carry >> (width -= 8));\r\n\t\t}\r\n\t}\r\n\treturn ret;\r\n}\r\n\r\n// eg. [0,1,2,3...] => [0,-1,1,-2,...]\r\nfunction signed(i) { \r\n\treturn (i & 1) ? (~i >> 1) : (i >> 1);\r\n}\r\n\r\nfunction read_deltas(n, next) {\r\n\tlet v = Array(n);\r\n\tfor (let i = 0, x = 0; i < n; i++) v[i] = x += signed(next());\r\n\treturn v;\r\n}\r\n\r\n// [123][5] => [0 3] [1 1] [0 0]\r\nfunction read_sorted(next, prev = 0) {\r\n\tlet ret = [];\r\n\twhile (true) {\r\n\t\tlet x = next();\r\n\t\tlet n = next();\r\n\t\tif (!n) break;\r\n\t\tprev += x;\r\n\t\tfor (let i = 0; i < n; i++) {\r\n\t\t\tret.push(prev + i);\r\n\t\t}\r\n\t\tprev += n + 1;\r\n\t}\r\n\treturn ret;\r\n}\r\n\r\nfunction read_sorted_arrays(next) {\r\n\treturn read_array_while(() => { \r\n\t\tlet v = read_sorted(next);\r\n\t\tif (v.length) return v;\r\n\t});\r\n}\r\n\r\n// returns map of x => ys\r\nfunction read_mapped(next) {\r\n\tlet ret = [];\r\n\twhile (true) {\r\n\t\tlet w = next();\r\n\t\tif (w == 0) break;\r\n\t\tret.push(read_linear_table(w, next));\r\n\t}\r\n\twhile (true) {\r\n\t\tlet w = next() - 1;\r\n\t\tif (w < 0) break;\r\n\t\tret.push(read_replacement_table(w, next));\r\n\t}\r\n\treturn ret.flat();\r\n}\r\n\r\n// read until next is falsy\r\n// return array of read values\r\nfunction read_array_while(next) {\r\n\tlet v = [];\r\n\twhile (true) {\r\n\t\tlet x = next(v.length);\r\n\t\tif (!x) break;\r\n\t\tv.push(x);\r\n\t}\r\n\treturn v;\r\n}\r\n\r\n// read w columns of length n\r\n// return as n rows of length w\r\nfunction read_transposed(n, w, next) {\r\n\tlet m = Array(n).fill().map(() => []);\r\n\tfor (let i = 0; i < w; i++) {\r\n\t\tread_deltas(n, next).forEach((x, j) => m[j].push(x));\r\n\t}\r\n\treturn m;\r\n}\r\n \r\n// returns [[x, ys], [x+dx, ys+dy], [x+2*dx, ys+2*dy], ...]\r\n// where dx/dy = steps, n = run size, w = length of y\r\nfunction read_linear_table(w, next) {\r\n\tlet dx = 1 + next();\r\n\tlet dy = next();\r\n\tlet vN = read_array_while(next);\r\n\tlet m = read_transposed(vN.length, 1+w, next);\r\n\treturn m.flatMap((v, i) => {\r\n\t\tlet [x, ...ys] = v;\r\n\t\treturn Array(vN[i]).fill().map((_, j) => {\r\n\t\t\tlet j_dy = j * dy;\r\n\t\t\treturn [x + j * dx, ys.map(y => y + j_dy)];\r\n\t\t});\r\n\t});\r\n}\r\n\r\n// return [[x, ys...], ...]\r\n// where w = length of y\r\nfunction read_replacement_table(w, next) { \r\n\tlet n = 1 + next();\r\n\tlet m = read_transposed(n, 1+w, next);\r\n\treturn m.map(v => [v[0], v.slice(1)]);\r\n}\r\n\r\n\r\nfunction read_trie(next) {\r\n\tlet ret = [];\r\n\tlet sorted = read_sorted(next); \r\n\texpand(decode([]), []);\r\n\treturn ret; // not sorted\r\n\tfunction decode(Q) { // characters that lead into this node\r\n\t\tlet S = next(); // state: valid, save, check\r\n\t\tlet B = read_array_while(() => { // buckets leading to new nodes\r\n\t\t\tlet cps = read_sorted(next).map(i => sorted[i]);\r\n\t\t\tif (cps.length) return decode(cps);\r\n\t\t});\r\n\t\treturn {S, B, Q};\r\n\t}\r\n\tfunction expand({S, B}, cps, saved) {\r\n\t\tif (S & 4 && saved === cps[cps.length-1]) return;\r\n\t\tif (S & 2) saved = cps[cps.length-1];\r\n\t\tif (S & 1) ret.push(cps); \r\n\t\tfor (let br of B) {\r\n\t\t\tfor (let cp of br.Q) {\r\n\t\t\t\texpand(br, [...cps, cp], saved);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\n\nfunction hex_cp(cp) {\r\n\treturn cp.toString(16).toUpperCase().padStart(2, '0');\r\n}\r\n\r\nfunction quote_cp(cp) {\r\n\treturn `{${hex_cp(cp)}}`; // raffy convention: like \"\\u{X}\" w/o the \"\\u\"\r\n}\r\n\r\n/*\r\nexport function explode_cp(s) {\r\n\treturn [...s].map(c => c.codePointAt(0));\r\n}\r\n*/\r\nfunction explode_cp(s) { // this is about 2x faster\r\n\tlet cps = [];\r\n\tfor (let pos = 0, len = s.length; pos < len; ) {\r\n\t\tlet cp = s.codePointAt(pos);\r\n\t\tpos += cp < 0x10000 ? 1 : 2;\r\n\t\tcps.push(cp);\r\n\t}\r\n\treturn cps;\r\n}\r\n\r\nfunction str_from_cps(cps) {\r\n\tconst chunk = 4096;\r\n\tlet len = cps.length;\r\n\tif (len < chunk) return String.fromCodePoint(...cps);\r\n\tlet buf = [];\r\n\tfor (let i = 0; i < len; ) {\r\n\t\tbuf.push(String.fromCodePoint(...cps.slice(i, i += chunk)));\r\n\t}\r\n\treturn buf.join('');\r\n}\r\n\r\nfunction compare_arrays(a, b) {\r\n\tlet n = a.length;\r\n\tlet c = n - b.length;\r\n\tfor (let i = 0; c == 0 && i < n; i++) c = a[i] - b[i];\r\n\treturn c;\r\n}\r\n\r\nfunction array_replace(v, a, b) {\r\n\tlet prev = 0;\r\n\twhile (true) {\r\n\t\tlet next = v.indexOf(a, prev);\r\n\t\tif (next < 0) break;\r\n\t\tv[next] = b; \r\n\t\tprev = next + 1;\r\n\t}\r\n}\n\n// created 2024-09-13T06:42:45.675Z\n// compressed base64-encoded blob for include-nf data\n// source: https://github.com/adraffy/ens-normalize.js/blob/main/src/make.js\n// see: https://github.com/adraffy/ens-normalize.js#security\n// SHA-256: a79d5f9b1879a7b416aa659f4a3d788f80a8cf5f0ab955a456592c02f556a28c\nvar COMPRESSED = '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';\n\n// https://unicode.org/reports/tr15/\r\n// for reference implementation\r\n// see: /derive/nf.js\r\n\r\n\r\n// algorithmic hangul\r\n// https://www.unicode.org/versions/Unicode15.0.0/ch03.pdf (page 144)\r\nconst S0 = 0xAC00;\r\nconst L0 = 0x1100;\r\nconst V0 = 0x1161;\r\nconst T0 = 0x11A7;\r\nconst L_COUNT = 19;\r\nconst V_COUNT = 21;\r\nconst T_COUNT = 28;\r\nconst N_COUNT = V_COUNT * T_COUNT;\r\nconst S_COUNT = L_COUNT * N_COUNT;\r\nconst S1 = S0 + S_COUNT;\r\nconst L1 = L0 + L_COUNT;\r\nconst V1 = V0 + V_COUNT;\r\nconst T1 = T0 + T_COUNT;\r\n\r\nfunction unpack_cc(packed) {\r\n\treturn (packed >> 24) & 0xFF;\r\n}\r\nfunction unpack_cp(packed) {\r\n\treturn packed & 0xFFFFFF;\r\n}\r\n\r\nlet SHIFTED_RANK, EXCLUSIONS, DECOMP, RECOMP;\r\n\r\n// export function nf_deinit() {\r\n// \tif (!SHIFTED_RANK) return;\r\n// \tSHIFTED_RANK = EXCLUSIONS = DECOMP = RECOMP = undefined;\r\n// }\r\n\r\nfunction init$1() {\r\n\t//console.time('nf');\r\n\tlet r = read_compressed_payload(COMPRESSED);\r\n\tSHIFTED_RANK = new Map(read_sorted_arrays(r).flatMap((v, i) => v.map(x => [x, (i+1) << 24]))); // pre-shifted\r\n\tEXCLUSIONS = new Set(read_sorted(r));\r\n\tDECOMP = new Map();\r\n\tRECOMP = new Map();\r\n\tfor (let [cp, cps] of read_mapped(r)) {\r\n\t\tif (!EXCLUSIONS.has(cp) && cps.length == 2) {\r\n\t\t\tlet [a, b] = cps;\r\n\t\t\tlet bucket = RECOMP.get(a);\r\n\t\t\tif (!bucket) {\r\n\t\t\t\tbucket = new Map();\r\n\t\t\t\tRECOMP.set(a, bucket);\r\n\t\t\t}\r\n\t\t\tbucket.set(b, cp);\r\n\t\t}\r\n\t\tDECOMP.set(cp, cps.reverse()); // stored reversed\r\n\t}\r\n\t//console.timeEnd('nf');\r\n\t// 20230905: 11ms\r\n}\r\n\r\nfunction is_hangul(cp) {\r\n\treturn cp >= S0 && cp < S1;\r\n}\r\n\r\nfunction compose_pair(a, b) {\r\n\tif (a >= L0 && a < L1 && b >= V0 && b < V1) {\r\n\t\treturn S0 + (a - L0) * N_COUNT + (b - V0) * T_COUNT;\r\n\t} else if (is_hangul(a) && b > T0 && b < T1 && (a - S0) % T_COUNT == 0) {\r\n\t\treturn a + (b - T0);\r\n\t} else {\r\n\t\tlet recomp = RECOMP.get(a);\r\n\t\tif (recomp) {\r\n\t\t\trecomp = recomp.get(b);\r\n\t\t\tif (recomp) {\r\n\t\t\t\treturn recomp;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn -1;\r\n\t}\r\n}\r\n\r\nfunction decomposed(cps) {\r\n\tif (!SHIFTED_RANK) init$1();\r\n\tlet ret = [];\r\n\tlet buf = [];\r\n\tlet check_order = false;\r\n\tfunction add(cp) {\r\n\t\tlet cc = SHIFTED_RANK.get(cp);\r\n\t\tif (cc) {\r\n\t\t\tcheck_order = true;\r\n\t\t\tcp |= cc;\r\n\t\t}\r\n\t\tret.push(cp);\r\n\t}\r\n\tfor (let cp of cps) {\r\n\t\twhile (true) {\r\n\t\t\tif (cp < 0x80) {\r\n\t\t\t\tret.push(cp);\r\n\t\t\t} else if (is_hangul(cp)) {\r\n\t\t\t\tlet s_index = cp - S0;\r\n\t\t\t\tlet l_index = s_index / N_COUNT | 0;\r\n\t\t\t\tlet v_index = (s_index % N_COUNT) / T_COUNT | 0;\r\n\t\t\t\tlet t_index = s_index % T_COUNT;\r\n\t\t\t\tadd(L0 + l_index);\r\n\t\t\t\tadd(V0 + v_index);\r\n\t\t\t\tif (t_index > 0) add(T0 + t_index);\r\n\t\t\t} else {\r\n\t\t\t\tlet mapped = DECOMP.get(cp);\r\n\t\t\t\tif (mapped) {\r\n\t\t\t\t\tbuf.push(...mapped);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tadd(cp);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (!buf.length) break;\r\n\t\t\tcp = buf.pop();\r\n\t\t}\r\n\t}\r\n\tif (check_order && ret.length > 1) {\r\n\t\tlet prev_cc = unpack_cc(ret[0]);\r\n\t\tfor (let i = 1; i < ret.length; i++) {\r\n\t\t\tlet cc = unpack_cc(ret[i]);\r\n\t\t\tif (cc == 0 || prev_cc <= cc) {\r\n\t\t\t\tprev_cc = cc;\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\tlet j = i-1;\r\n\t\t\twhile (true) {\r\n\t\t\t\tlet tmp = ret[j+1];\r\n\t\t\t\tret[j+1] = ret[j];\r\n\t\t\t\tret[j] = tmp;\r\n\t\t\t\tif (!j) break;\r\n\t\t\t\tprev_cc = unpack_cc(ret[--j]);\r\n\t\t\t\tif (prev_cc <= cc) break;\r\n\t\t\t}\r\n\t\t\tprev_cc = unpack_cc(ret[i]);\r\n\t\t}\r\n\t}\r\n\treturn ret;\r\n}\r\n\r\nfunction composed_from_decomposed(v) {\r\n\tlet ret = [];\r\n\tlet stack = [];\r\n\tlet prev_cp = -1;\r\n\tlet prev_cc = 0;\r\n\tfor (let packed of v) {\r\n\t\tlet cc = unpack_cc(packed);\r\n\t\tlet cp = unpack_cp(packed);\r\n\t\tif (prev_cp == -1) {\r\n\t\t\tif (cc == 0) {\r\n\t\t\t\tprev_cp = cp;\r\n\t\t\t} else {\r\n\t\t\t\tret.push(cp);\r\n\t\t\t}\r\n\t\t} else if (prev_cc > 0 && prev_cc >= cc) {\r\n\t\t\tif (cc == 0) {\r\n\t\t\t\tret.push(prev_cp, ...stack);\r\n\t\t\t\tstack.length = 0;\r\n\t\t\t\tprev_cp = cp;\r\n\t\t\t} else {\r\n\t\t\t\tstack.push(cp);\r\n\t\t\t}\r\n\t\t\tprev_cc = cc;\r\n\t\t} else {\r\n\t\t\tlet composed = compose_pair(prev_cp, cp);\r\n\t\t\tif (composed >= 0) {\r\n\t\t\t\tprev_cp = composed;\r\n\t\t\t} else if (prev_cc == 0 && cc == 0) {\r\n\t\t\t\tret.push(prev_cp);\r\n\t\t\t\tprev_cp = cp;\r\n\t\t\t} else {\r\n\t\t\t\tstack.push(cp);\r\n\t\t\t\tprev_cc = cc;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tif (prev_cp >= 0) {\r\n\t\tret.push(prev_cp, ...stack);\t\r\n\t}\r\n\treturn ret;\r\n}\r\n\r\n// note: cps can be iterable\r\nfunction nfd(cps) {\r\n\treturn decomposed(cps).map(unpack_cp);\r\n}\r\nfunction nfc(cps) {\r\n\treturn composed_from_decomposed(decomposed(cps));\r\n}\n\nconst HYPHEN = 0x2D;\r\nconst STOP = 0x2E;\r\nconst STOP_CH = '.';\r\nconst FE0F = 0xFE0F;\r\nconst UNIQUE_PH = 1;\r\n\r\n// 20230913: replace [...v] with Array_from(v) to avoid large spreads\r\nconst Array_from = x => Array.from(x); // Array.from.bind(Array);\r\n\r\nfunction group_has_cp(g, cp) {\r\n\t// 20230913: keep primary and secondary distinct instead of creating valid union\r\n\treturn g.P.has(cp) || g.Q.has(cp);\r\n}\r\n\r\nclass Emoji extends Array {\r\n\tget is_emoji() { return true; } // free tagging system\r\n}\r\n\r\nlet MAPPED, IGNORED, CM, NSM, ESCAPE, NFC_CHECK, GROUPS, WHOLE_VALID, WHOLE_MAP, VALID, EMOJI_LIST, EMOJI_ROOT;\r\n\r\n// export function ens_deinit() {\r\n// \tnf_deinit();\r\n// \tif (!MAPPED) return;\r\n// \tMAPPED = IGNORED = CM = NSM = ESCAPE = NFC_CHECK = GROUPS = WHOLE_VALID = WHOLE_MAP = VALID = EMOJI_LIST = EMOJI_ROOT = undefined;\r\n// }\r\n\r\nfunction init() {\r\n\tif (MAPPED) return;\r\n\t\r\n\tlet r = read_compressed_payload(COMPRESSED$1);\r\n\tconst read_sorted_array = () => read_sorted(r);\r\n\tconst read_sorted_set = () => new Set(read_sorted_array());\r\n\tconst set_add_many = (set, v) => v.forEach(x => set.add(x));\r\n\r\n\tMAPPED = new Map(read_mapped(r)); \r\n\tIGNORED = read_sorted_set(); // ignored characters are not valid, so just read raw codepoints\r\n\r\n\t/*\r\n\t// direct include from payload is smaller than the decompression code\r\n\tconst FENCED = new Map(read_array_while(() => {\r\n\t\tlet cp = r();\r\n\t\tif (cp) return [cp, read_str(r())];\r\n\t}));\r\n\t*/\r\n\t// 20230217: we still need all CM for proper error formatting\r\n\t// but norm only needs NSM subset that are potentially-valid\r\n\tCM = read_sorted_array();\r\n\tNSM = new Set(read_sorted_array().map(i => CM[i]));\r\n\tCM = new Set(CM);\r\n\t\r\n\tESCAPE = read_sorted_set(); // characters that should not be printed\r\n\tNFC_CHECK = read_sorted_set(); // only needed to illustrate ens_tokenize() transformations\r\n\r\n\tlet chunks = read_sorted_arrays(r);\r\n\tlet unrestricted = r();\r\n\t//const read_chunked = () => new Set(read_sorted_array().flatMap(i => chunks[i]).concat(read_sorted_array()));\r\n\tconst read_chunked = () => {\r\n\t\t// 20230921: build set in parts, 2x faster\r\n\t\tlet set = new Set();\r\n\t\tread_sorted_array().forEach(i => set_add_many(set, chunks[i]));\r\n\t\tset_add_many(set, read_sorted_array());\r\n\t\treturn set; \r\n\t};\r\n\tGROUPS = read_array_while(i => {\r\n\t\t// minifier property mangling seems unsafe\r\n\t\t// so these are manually renamed to single chars\r\n\t\tlet N = read_array_while(r).map(x => x+0x60);\r\n\t\tif (N.length) {\r\n\t\t\tlet R = i >= unrestricted; // unrestricted then restricted\r\n\t\t\tN[0] -= 32; // capitalize\r\n\t\t\tN = str_from_cps(N);\r\n\t\t\tif (R) N=`Restricted[${N}]`;\r\n\t\t\tlet P = read_chunked(); // primary\r\n\t\t\tlet Q = read_chunked(); // secondary\r\n\t\t\tlet M = !r(); // not-whitelisted, check for NSM\r\n\t\t\t// *** this code currently isn't needed ***\r\n\t\t\t/*\r\n\t\t\tlet V = [...P, ...Q].sort((a, b) => a-b); // derive: sorted valid\r\n\t\t\tlet M = r()-1; // number of combining mark\r\n\t\t\tif (M < 0) { // whitelisted\r\n\t\t\t\tM = new Map(read_array_while(() => {\r\n\t\t\t\t\tlet i = r();\r\n\t\t\t\t\tif (i) return [V[i-1], read_array_while(() => {\r\n\t\t\t\t\t\tlet v = read_array_while(r);\r\n\t\t\t\t\t\tif (v.length) return v.map(x => x-1);\r\n\t\t\t\t\t})];\r\n\t\t\t\t}));\r\n\t\t\t}*/\r\n\t\t\treturn {N, P, Q, M, R};\r\n\t\t}\r\n\t});\r\n\r\n\t// decode compressed wholes\r\n\tWHOLE_VALID = read_sorted_set();\r\n\tWHOLE_MAP = new Map();\r\n\tlet wholes = read_sorted_array().concat(Array_from(WHOLE_VALID)).sort((a, b) => a-b); // must be sorted\r\n\twholes.forEach((cp, i) => {\r\n\t\tlet d = r(); \r\n\t\tlet w = wholes[i] = d ? wholes[i-d] : {V: [], M: new Map()};\r\n\t\tw.V.push(cp); // add to member set\r\n\t\tif (!WHOLE_VALID.has(cp)) {\r\n\t\t\tWHOLE_MAP.set(cp, w); // register with whole map\r\n\t\t}\r\n\t});\r\n\r\n\t// compute confusable-extent complements\r\n\t// usage: WHOLE_MAP.get(cp).M.get(cp) = complement set\r\n\tfor (let {V, M} of new Set(WHOLE_MAP.values())) {\r\n\t\t// connect all groups that have each whole character\r\n\t\tlet recs = [];\r\n\t\tfor (let cp of V) {\r\n\t\t\tlet gs = GROUPS.filter(g => group_has_cp(g, cp));\r\n\t\t\tlet rec = recs.find(({G}) => gs.some(g => G.has(g)));\r\n\t\t\tif (!rec) {\r\n\t\t\t\trec = {G: new Set(), V: []};\r\n\t\t\t\trecs.push(rec);\r\n\t\t\t}\r\n\t\t\trec.V.push(cp);\r\n\t\t\tset_add_many(rec.G, gs);\r\n\t\t}\r\n\t\t// per character cache groups which are not a member of the extent\r\n\t\tlet union = recs.flatMap(x => Array_from(x.G)); // all of the groups used by this whole\r\n\t\tfor (let {G, V} of recs) {\r\n\t\t\tlet complement = new Set(union.filter(g => !G.has(g))); // groups not covered by the extent\r\n\t\t\tfor (let cp of V) {\r\n\t\t\t\tM.set(cp, complement); // this is the same reference\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// compute valid set\r\n\t// 20230924: VALID was union but can be re-used\r\n\tVALID = new Set(); // exists in 1+ groups\r\n\tlet multi = new Set(); // exists in 2+ groups\r\n\tconst add_to_union = cp => VALID.has(cp) ? multi.add(cp) : VALID.add(cp);\r\n\tfor (let g of GROUPS) {\r\n\t\tfor (let cp of g.P) add_to_union(cp);\r\n\t\tfor (let cp of g.Q) add_to_union(cp);\r\n\t}\r\n\t// dual purpose WHOLE_MAP: return placeholder if unique non-confusable\r\n\tfor (let cp of VALID) {\r\n\t\tif (!WHOLE_MAP.has(cp) && !multi.has(cp)) {\r\n\t\t\tWHOLE_MAP.set(cp, UNIQUE_PH);\r\n\t\t}\r\n\t}\r\n\t// add all decomposed parts\r\n\t// see derive: \"Valid is Closed (via Brute-force)\"\r\n\tset_add_many(VALID, nfd(VALID));\r\n\t\r\n\t// decode emoji\r\n\t// 20230719: emoji are now fully-expanded to avoid quirk logic \r\n\tEMOJI_LIST = read_trie(r).map(v => Emoji.from(v)).sort(compare_arrays);\r\n\tEMOJI_ROOT = new Map(); // this has approx 7K nodes (2+ per emoji)\r\n\tfor (let cps of EMOJI_LIST) {\r\n\t\t// 20230719: change to *slightly* stricter algorithm which disallows \r\n\t\t// insertion of misplaced FE0F in emoji sequences (matching ENSIP-15)\r\n\t\t// example: beautified [A B] (eg. flag emoji) \r\n\t\t// before: allow: [A FE0F B], error: [A FE0F FE0F B] \r\n\t\t// after: error: both\r\n\t\t// note: this code now matches ENSNormalize.{cs,java} logic\r\n\t\tlet prev = [EMOJI_ROOT];\r\n\t\tfor (let cp of cps) {\r\n\t\t\tlet next = prev.map(node => {\r\n\t\t\t\tlet child = node.get(cp);\r\n\t\t\t\tif (!child) {\r\n\t\t\t\t\t// should this be object? \r\n\t\t\t\t\t// (most have 1-2 items, few have many)\r\n\t\t\t\t\t// 20230719: no, v8 default map is 4?\r\n\t\t\t\t\tchild = new Map();\r\n\t\t\t\t\tnode.set(cp, child);\r\n\t\t\t\t}\r\n\t\t\t\treturn child;\r\n\t\t\t});\r\n\t\t\tif (cp === FE0F) {\r\n\t\t\t\tprev.push(...next); // less than 20 elements\r\n\t\t\t} else {\r\n\t\t\t\tprev = next;\r\n\t\t\t}\r\n\t\t}\r\n\t\tfor (let x of prev) {\r\n\t\t\tx.V = cps;\r\n\t\t}\r\n\t}\r\n}\r\n\r\n// if escaped: {HEX}\r\n// else: \"x\" {HEX}\r\nfunction quoted_cp(cp) {\r\n\treturn (should_escape(cp) ? '' : `${bidi_qq(safe_str_from_cps([cp]))} `) + quote_cp(cp);\r\n}\r\n\r\n// 20230211: some messages can be mixed-directional and result in spillover\r\n// use 200E after a quoted string to force the remainder of a string from \r\n// acquring the direction of the quote\r\n// https://www.w3.org/International/questions/qa-bidi-unicode-controls#exceptions\r\nfunction bidi_qq(s) {\r\n\treturn `\"${s}\"\\u200E`; // strong LTR\r\n}\r\n\r\nfunction check_label_extension(cps) {\r\n\tif (cps.length >= 4 && cps[2] == HYPHEN && cps[3] == HYPHEN) {\r\n\t\tthrow new Error(`invalid label extension: \"${str_from_cps(cps.slice(0, 4))}\"`); // this can only be ascii so cant be bidi\r\n\t}\r\n}\r\nfunction check_leading_underscore(cps) {\r\n\tconst UNDERSCORE = 0x5F;\r\n\tfor (let i = cps.lastIndexOf(UNDERSCORE); i > 0; ) {\r\n\t\tif (cps[--i] !== UNDERSCORE) {\r\n\t\t\tthrow new Error('underscore allowed only at start');\r\n\t\t}\r\n\t}\r\n}\r\n// check that a fenced cp is not leading, trailing, or touching another fenced cp\r\nfunction check_fenced(cps) {\r\n\tlet cp = cps[0];\r\n\tlet prev = FENCED.get(cp);\r\n\tif (prev) throw error_placement(`leading ${prev}`);\r\n\tlet n = cps.length;\r\n\tlet last = -1; // prevents trailing from throwing\r\n\tfor (let i = 1; i < n; i++) {\r\n\t\tcp = cps[i];\r\n\t\tlet match = FENCED.get(cp);\r\n\t\tif (match) {\r\n\t\t\t// since cps[0] isn't fenced, cps[1] cannot throw\r\n\t\t\tif (last == i) throw error_placement(`${prev} + ${match}`);\r\n\t\t\tlast = i + 1;\r\n\t\t\tprev = match;\r\n\t\t}\r\n\t}\r\n\tif (last == n) throw error_placement(`trailing ${prev}`);\r\n}\r\n\r\n// create a safe to print string \r\n// invisibles are escaped\r\n// leading cm uses placeholder\r\n// if cps exceed max, middle truncate with ellipsis\r\n// quoter(cp) => string, eg. 3000 => \"{3000}\"\r\n// note: in html, you'd call this function then replace [<>&] with entities\r\nfunction safe_str_from_cps(cps, max = Infinity, quoter = quote_cp) {\r\n\t//if (Number.isInteger(cps)) cps = [cps];\r\n\t//if (!Array.isArray(cps)) throw new TypeError(`expected codepoints`);\r\n\tlet buf = [];\r\n\tif (is_combining_mark(cps[0])) buf.push('◌');\r\n\tif (cps.length > max) {\r\n\t\tmax >>= 1;\r\n\t\tcps = [...cps.slice(0, max), 0x2026, ...cps.slice(-max)];\r\n\t}\r\n\tlet prev = 0;\r\n\tlet n = cps.length;\r\n\tfor (let i = 0; i < n; i++) {\r\n\t\tlet cp = cps[i];\r\n\t\tif (should_escape(cp)) {\r\n\t\t\tbuf.push(str_from_cps(cps.slice(prev, i)));\r\n\t\t\tbuf.push(quoter(cp));\r\n\t\t\tprev = i + 1;\r\n\t\t}\r\n\t}\r\n\tbuf.push(str_from_cps(cps.slice(prev, n)));\r\n\treturn buf.join('');\r\n}\r\n\r\n// note: set(s) cannot be exposed because they can be modified\r\n// note: Object.freeze() doesn't work\r\nfunction is_combining_mark(cp, only_nsm) { // 20240127: add extra argument\r\n\tinit();\r\n\treturn only_nsm ? NSM.has(cp) : CM.has(cp);\r\n}\r\nfunction should_escape(cp) {\r\n\tinit();\r\n\treturn ESCAPE.has(cp);\r\n}\r\n\r\n// return all supported emoji as fully-qualified emoji \r\n// ordered by length then lexicographic \r\nfunction ens_emoji() {\r\n\tinit();\r\n\treturn EMOJI_LIST.map(x => x.slice()); // emoji are exposed so copy\r\n}\r\n\r\nfunction ens_normalize_fragment(frag, decompose) {\r\n\tinit();\r\n\tlet nf = decompose ? nfd : nfc;\r\n\treturn frag.split(STOP_CH).map(label => str_from_cps(tokens_from_str(explode_cp(label), nf, filter_fe0f).flat())).join(STOP_CH);\r\n}\r\n\r\nfunction ens_normalize(name) {\r\n\treturn flatten(split(name, nfc, filter_fe0f));\r\n}\r\n\r\nfunction ens_beautify(name) {\r\n\tlet labels = split(name, nfc, x => x); // emoji not exposed\r\n\tfor (let {type, output, error} of labels) {\r\n\t\tif (error) break; // flatten will throw\r\n\r\n\t\t// replace leading/trailing hyphen\r\n\t\t// 20230121: consider beautifing all or leading/trailing hyphen to unicode variant\r\n\t\t// not exactly the same in every font, but very similar: \"-\" vs \"‐\"\r\n\t\t/*\r\n\t\tconst UNICODE_HYPHEN = 0x2010;\r\n\t\t// maybe this should replace all for visual consistancy?\r\n\t\t// `node tools/reg-count.js regex ^-\\{2,\\}` => 592\r\n\t\t//for (let i = 0; i < output.length; i++) if (output[i] == 0x2D) output[i] = 0x2010;\r\n\t\tif (output[0] == HYPHEN) output[0] = UNICODE_HYPHEN;\r\n\t\tlet end = output.length-1;\r\n\t\tif (output[end] == HYPHEN) output[end] = UNICODE_HYPHEN;\r\n\t\t*/\r\n\t\t// 20230123: WHATWG URL uses \"CheckHyphens\" false\r\n\t\t// https://url.spec.whatwg.org/#idna\r\n\r\n\t\t// update ethereum symbol\r\n\t\t// ξ => Ξ if not greek\r\n\t\tif (type !== 'Greek') array_replace(output, 0x3BE, 0x39E);\r\n\r\n\t\t// 20221213: fixes bidi subdomain issue, but breaks invariant (200E is disallowed)\r\n\t\t// could be fixed with special case for: 2D (.) + 200E (LTR)\r\n\t\t// https://discuss.ens.domains/t/bidi-label-ordering-spoof/15824\r\n\t\t//output.splice(0, 0, 0x200E);\r\n\t}\r\n\treturn flatten(labels);\r\n}\r\n\r\nfunction ens_split(name, preserve_emoji) {\r\n\treturn split(name, nfc, preserve_emoji ? x => x.slice() : filter_fe0f); // emoji are exposed so copy\r\n}\r\n\r\nfunction split(name, nf, ef) {\r\n\tif (!name) return []; // 20230719: empty name allowance\r\n\tinit();\r\n\tlet offset = 0;\r\n\t// https://unicode.org/reports/tr46/#Validity_Criteria\r\n\t// 4.) \"The label must not contain a U+002E ( . ) FULL STOP.\"\r\n\treturn name.split(STOP_CH).map(label => {\r\n\t\tlet input = explode_cp(label);\r\n\t\tlet info = {\r\n\t\t\tinput,\r\n\t\t\toffset, // codepoint, not substring!\r\n\t\t};\r\n\t\toffset += input.length + 1; // + stop\r\n\t\ttry {\r\n\t\t\t// 1.) \"The label must be in Unicode Normalization Form NFC\"\r\n\t\t\tlet tokens = info.tokens = tokens_from_str(input, nf, ef);\r\n\t\t\tlet token_count = tokens.length;\r\n\t\t\tlet type;\r\n\t\t\tif (!token_count) { // the label was effectively empty (could of had ignored characters)\r\n\t\t\t\t//norm = [];\r\n\t\t\t\t//type = 'None'; // use this instead of next match, \"ASCII\"\r\n\t\t\t\t// 20230120: change to strict\r\n\t\t\t\t// https://discuss.ens.domains/t/ens-name-normalization-2nd/14564/59\r\n\t\t\t\tthrow new Error(`empty label`);\r\n\t\t\t} \r\n\t\t\tlet norm = info.output = tokens.flat();\r\n\t\t\tcheck_leading_underscore(norm);\r\n\t\t\tlet emoji = info.emoji = token_count > 1 || tokens[0].is_emoji; // same as: tokens.some(x => x.is_emoji);\r\n\t\t\tif (!emoji && norm.every(cp => cp < 0x80)) { // special case for ascii\r\n\t\t\t\t// 20230123: matches matches WHATWG, see note 3.3\r\n\t\t\t\tcheck_label_extension(norm); // only needed for ascii\r\n\t\t\t\t// cant have fenced\r\n\t\t\t\t// cant have cm\r\n\t\t\t\t// cant have wholes\r\n\t\t\t\t// see derive: \"Fastpath ASCII\"\r\n\t\t\t\ttype = 'ASCII';\r\n\t\t\t} else {\r\n\t\t\t\tlet chars = tokens.flatMap(x => x.is_emoji ? [] : x); // all of the nfc tokens concat together\r\n\t\t\t\tif (!chars.length) { // theres no text, just emoji\r\n\t\t\t\t\ttype = 'Emoji';\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// 5.) \"The label must not begin with a combining mark, that is: General_Category=Mark.\"\r\n\t\t\t\t\tif (CM.has(norm[0])) throw error_placement('leading combining mark');\r\n\t\t\t\t\tfor (let i = 1; i < token_count; i++) { // we've already checked the first token\r\n\t\t\t\t\t\tlet cps = tokens[i];\r\n\t\t\t\t\t\tif (!cps.is_emoji && CM.has(cps[0])) { // every text token has emoji neighbors, eg. EtEEEtEt...\r\n\t\t\t\t\t\t\t// bidi_qq() not needed since emoji is LTR and cps is a CM\r\n\t\t\t\t\t\t\tthrow error_placement(`emoji + combining mark: \"${str_from_cps(tokens[i-1])} + ${safe_str_from_cps([cps[0]])}\"`); \r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcheck_fenced(norm);\r\n\t\t\t\t\tlet unique = Array_from(new Set(chars));\r\n\t\t\t\t\tlet [g] = determine_group(unique); // take the first match\r\n\t\t\t\t\t// see derive: \"Matching Groups have Same CM Style\"\r\n\t\t\t\t\t// alternative: could form a hybrid type: Latin/Japanese/...\t\r\n\t\t\t\t\tcheck_group(g, chars); // need text in order\r\n\t\t\t\t\tcheck_whole(g, unique); // only need unique text (order would be required for multiple-char confusables)\r\n\t\t\t\t\ttype = g.N;\r\n\t\t\t\t\t// 20230121: consider exposing restricted flag\r\n\t\t\t\t\t// it's simpler to just check for 'Restricted'\r\n\t\t\t\t\t// or even better: type.endsWith(']')\r\n\t\t\t\t\t//if (g.R) info.restricted = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tinfo.type = type;\r\n\t\t} catch (err) {\r\n\t\t\tinfo.error = err; // use full error object\r\n\t\t}\r\n\t\treturn info;\r\n\t});\r\n}\r\n\r\nfunction check_whole(group, unique) {\r\n\tlet maker;\r\n\tlet shared = [];\r\n\tfor (let cp of unique) {\r\n\t\tlet whole = WHOLE_MAP.get(cp);\r\n\t\tif (whole === UNIQUE_PH) return; // unique, non-confusable\r\n\t\tif (whole) {\r\n\t\t\tlet set = whole.M.get(cp); // groups which have a character that look-like this character\r\n\t\t\tmaker = maker ? maker.filter(g => set.has(g)) : Array_from(set);\r\n\t\t\tif (!maker.length) return; // confusable intersection is empty\r\n\t\t} else {\r\n\t\t\tshared.push(cp); \r\n\t\t}\r\n\t}\r\n\tif (maker) {\r\n\t\t// we have 1+ confusable\r\n\t\t// check if any of the remaining groups\r\n\t\t// contain the shared characters too\r\n\t\tfor (let g of maker) {\r\n\t\t\tif (shared.every(cp => group_has_cp(g, cp))) {\r\n\t\t\t\tthrow new Error(`whole-script confusable: ${group.N}/${g.N}`);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n// assumption: unique.size > 0\r\n// returns list of matching groups\r\nfunction determine_group(unique) {\r\n\tlet groups = GROUPS;\r\n\tfor (let cp of unique) {\r\n\t\t// note: we need to dodge CM that are whitelisted\r\n\t\t// but that code isn't currently necessary\r\n\t\tlet gs = groups.filter(g => group_has_cp(g, cp));\r\n\t\tif (!gs.length) {\r\n\t\t\tif (!GROUPS.some(g => group_has_cp(g, cp))) { \r\n\t\t\t\t// the character was composed of valid parts\r\n\t\t\t\t// but it's NFC form is invalid\r\n\t\t\t\t// 20230716: change to more exact statement, see: ENSNormalize.{cs,java}\r\n\t\t\t\t// note: this doesn't have to be a composition\r\n\t\t\t\t// 20230720: change to full check\r\n\t\t\t\tthrow error_disallowed(cp); // this should be rare\r\n\t\t\t} else {\r\n\t\t\t\t// there is no group that contains all these characters\r\n\t\t\t\t// throw using the highest priority group that matched\r\n\t\t\t\t// https://www.unicode.org/reports/tr39/#mixed_script_confusables\r\n\t\t\t\tthrow error_group_member(groups[0], cp);\r\n\t\t\t}\r\n\t\t}\r\n\t\tgroups = gs;\r\n\t\tif (gs.length == 1) break; // there is only one group left\r\n\t}\r\n\t// there are at least 1 group(s) with all of these characters\r\n\treturn groups;\r\n}\r\n\r\n// throw on first error\r\nfunction flatten(split) {\r\n\treturn split.map(({input, error, output}) => {\r\n\t\tif (error) {\r\n\t\t\t// don't print label again if just a single label\r\n\t\t\tlet msg = error.message;\r\n\t\t\t// bidi_qq() only necessary if msg is digits\r\n\t\t\tthrow new Error(split.length == 1 ? msg : `Invalid label ${bidi_qq(safe_str_from_cps(input, 63))}: ${msg}`); \r\n\t\t}\r\n\t\treturn str_from_cps(output);\r\n\t}).join(STOP_CH);\r\n}\r\n\r\nfunction error_disallowed(cp) {\r\n\t// TODO: add cp to error?\r\n\treturn new Error(`disallowed character: ${quoted_cp(cp)}`); \r\n}\r\nfunction error_group_member(g, cp) {\r\n\tlet quoted = quoted_cp(cp);\r\n\tlet gg = GROUPS.find(g => g.P.has(cp)); // only check primary\r\n\tif (gg) {\r\n\t\tquoted = `${gg.N} ${quoted}`;\r\n\t}\r\n\treturn new Error(`illegal mixture: ${g.N} + ${quoted}`);\r\n}\r\nfunction error_placement(where) {\r\n\treturn new Error(`illegal placement: ${where}`);\r\n}\r\n\r\n// assumption: cps.length > 0\r\n// assumption: cps[0] isn't a CM\r\n// assumption: the previous character isn't an emoji\r\nfunction check_group(g, cps) {\r\n\tfor (let cp of cps) {\r\n\t\tif (!group_has_cp(g, cp)) {\r\n\t\t\t// for whitelisted scripts, this will throw illegal mixture on invalid cm, eg. \"e{300}{300}\"\r\n\t\t\t// at the moment, it's unnecessary to introduce an extra error type\r\n\t\t\t// until there exists a whitelisted multi-character\r\n\t\t\t// eg. if (M < 0 && is_combining_mark(cp)) { ... }\r\n\t\t\t// there are 3 cases:\r\n\t\t\t// 1. illegal cm for wrong group => mixture error\r\n\t\t\t// 2. illegal cm for same group => cm error\r\n\t\t\t// requires set of whitelist cm per group: \r\n\t\t\t// eg. new Set([...g.P, ...g.Q].flatMap(nfc).filter(cp => CM.has(cp)))\r\n\t\t\t// 3. wrong group => mixture error\r\n\t\t\tthrow error_group_member(g, cp);\r\n\t\t}\r\n\t}\r\n\t//if (M >= 0) { // we have a known fixed cm count\r\n\tif (g.M) { // we need to check for NSM\r\n\t\tlet decomposed = nfd(cps);\r\n\t\tfor (let i = 1, e = decomposed.length; i < e; i++) { // see: assumption\r\n\t\t\t// 20230210: bugfix: using cps instead of decomposed h/t Carbon225\r\n\t\t\t/*\r\n\t\t\tif (CM.has(decomposed[i])) {\r\n\t\t\t\tlet j = i + 1;\r\n\t\t\t\twhile (j < e && CM.has(decomposed[j])) j++;\r\n\t\t\t\tif (j - i > M) {\r\n\t\t\t\t\tthrow new Error(`too many combining marks: ${g.N} ${bidi_qq(str_from_cps(decomposed.slice(i-1, j)))} (${j-i}/${M})`);\r\n\t\t\t\t}\r\n\t\t\t\ti = j;\r\n\t\t\t}\r\n\t\t\t*/\r\n\t\t\t// 20230217: switch to NSM counting\r\n\t\t\t// https://www.unicode.org/reports/tr39/#Optional_Detection\r\n\t\t\tif (NSM.has(decomposed[i])) {\r\n\t\t\t\tlet j = i + 1;\r\n\t\t\t\tfor (let cp; j < e && NSM.has(cp = decomposed[j]); j++) {\r\n\t\t\t\t\t// a. Forbid sequences of the same nonspacing mark.\r\n\t\t\t\t\tfor (let k = i; k < j; k++) { // O(n^2) but n < 100\r\n\t\t\t\t\t\tif (decomposed[k] == cp) {\r\n\t\t\t\t\t\t\tthrow new Error(`duplicate non-spacing marks: ${quoted_cp(cp)}`);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t// parse to end so we have full nsm count\r\n\t\t\t\t// b. Forbid sequences of more than 4 nonspacing marks (gc=Mn or gc=Me).\r\n\t\t\t\tif (j - i > NSM_MAX) {\r\n\t\t\t\t\t// note: this slice starts with a base char or spacing-mark cm\r\n\t\t\t\t\tthrow new Error(`excessive non-spacing marks: ${bidi_qq(safe_str_from_cps(decomposed.slice(i-1, j)))} (${j-i}/${NSM_MAX})`);\r\n\t\t\t\t}\r\n\t\t\t\ti = j;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t// *** this code currently isn't needed ***\r\n\t/*\r\n\tlet cm_whitelist = M instanceof Map;\r\n\tfor (let i = 0, e = cps.length; i < e; ) {\r\n\t\tlet cp = cps[i++];\r\n\t\tlet seqs = cm_whitelist && M.get(cp);\r\n\t\tif (seqs) { \r\n\t\t\t// list of codepoints that can follow\r\n\t\t\t// if this exists, this will always be 1+\r\n\t\t\tlet j = i;\r\n\t\t\twhile (j < e && CM.has(cps[j])) j++;\r\n\t\t\tlet cms = cps.slice(i, j);\r\n\t\t\tlet match = seqs.find(seq => !compare_arrays(seq, cms));\r\n\t\t\tif (!match) throw new Error(`disallowed combining mark sequence: \"${safe_str_from_cps([cp, ...cms])}\"`);\r\n\t\t\ti = j;\r\n\t\t} else if (!V.has(cp)) {\r\n\t\t\t// https://www.unicode.org/reports/tr39/#mixed_script_confusables\r\n\t\t\tlet quoted = quoted_cp(cp);\r\n\t\t\tfor (let cp of cps) {\r\n\t\t\t\tlet u = UNIQUE.get(cp);\r\n\t\t\t\tif (u && u !== g) {\r\n\t\t\t\t\t// if both scripts are restricted this error is confusing\r\n\t\t\t\t\t// because we don't differentiate RestrictedA from RestrictedB \r\n\t\t\t\t\tif (!u.R) quoted = `${quoted} is ${u.N}`;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthrow new Error(`disallowed ${g.N} character: ${quoted}`);\r\n\t\t\t//throw new Error(`disallowed character: ${quoted} (expected ${g.N})`);\r\n\t\t\t//throw new Error(`${g.N} does not allow: ${quoted}`);\r\n\t\t}\r\n\t}\r\n\tif (!cm_whitelist) {\r\n\t\tlet decomposed = nfd(cps);\r\n\t\tfor (let i = 1, e = decomposed.length; i < e; i++) { // we know it can't be cm leading\r\n\t\t\tif (CM.has(decomposed[i])) {\r\n\t\t\t\tlet j = i + 1;\r\n\t\t\t\twhile (j < e && CM.has(decomposed[j])) j++;\r\n\t\t\t\tif (j - i > M) {\r\n\t\t\t\t\tthrow new Error(`too many combining marks: \"${str_from_cps(decomposed.slice(i-1, j))}\" (${j-i}/${M})`);\r\n\t\t\t\t}\r\n\t\t\t\ti = j;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t*/\r\n}\r\n\r\n// given a list of codepoints\r\n// returns a list of lists, where emoji are a fully-qualified (as Array subclass)\r\n// eg. explode_cp(\"abc💩d\") => [[61, 62, 63], Emoji[1F4A9, FE0F], [64]]\r\n// 20230818: rename for 'process' name collision h/t Javarome\r\n// https://github.com/adraffy/ens-normalize.js/issues/23\r\nfunction tokens_from_str(input, nf, ef) {\r\n\tlet ret = [];\r\n\tlet chars = [];\r\n\tinput = input.slice().reverse(); // flip so we can pop\r\n\twhile (input.length) {\r\n\t\tlet emoji = consume_emoji_reversed(input);\r\n\t\tif (emoji) {\r\n\t\t\tif (chars.length) {\r\n\t\t\t\tret.push(nf(chars));\r\n\t\t\t\tchars = [];\r\n\t\t\t}\r\n\t\t\tret.push(ef(emoji));\r\n\t\t} else {\r\n\t\t\tlet cp = input.pop();\r\n\t\t\tif (VALID.has(cp)) {\r\n\t\t\t\tchars.push(cp);\r\n\t\t\t} else {\r\n\t\t\t\tlet cps = MAPPED.get(cp);\r\n\t\t\t\tif (cps) {\r\n\t\t\t\t\tchars.push(...cps); // less than 10 elements\r\n\t\t\t\t} else if (!IGNORED.has(cp)) {\r\n\t\t\t\t\t// 20230912: unicode 15.1 changed the order of processing such that\r\n\t\t\t\t\t// disallowed parts are only rejected after NFC\r\n\t\t\t\t\t// https://unicode.org/reports/tr46/#Validity_Criteria\r\n\t\t\t\t\t// this doesn't impact normalization as of today\r\n\t\t\t\t\t// technically, this error can be removed as the group logic will apply similar logic\r\n\t\t\t\t\t// however the error type might be less clear\r\n\t\t\t\t\tthrow error_disallowed(cp);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tif (chars.length) {\r\n\t\tret.push(nf(chars));\r\n\t}\r\n\treturn ret;\r\n}\r\n\r\nfunction filter_fe0f(cps) {\r\n\treturn cps.filter(cp => cp != FE0F);\r\n}\r\n\r\n// given array of codepoints\r\n// returns the longest valid emoji sequence (or undefined if no match)\r\n// *MUTATES* the supplied array\r\n// disallows interleaved ignored characters\r\n// fills (optional) eaten array with matched codepoints\r\nfunction consume_emoji_reversed(cps, eaten) {\r\n\tlet node = EMOJI_ROOT;\r\n\tlet emoji;\r\n\tlet pos = cps.length;\r\n\twhile (pos) {\r\n\t\tnode = node.get(cps[--pos]);\r\n\t\tif (!node) break;\r\n\t\tlet {V} = node;\r\n\t\tif (V) { // this is a valid emoji (so far)\r\n\t\t\temoji = V;\r\n\t\t\tif (eaten) eaten.push(...cps.slice(pos).reverse()); // (optional) copy input, used for ens_tokenize()\r\n\t\t\tcps.length = pos; // truncate\r\n\t\t}\r\n\t}\r\n\treturn emoji;\r\n}\r\n\r\n// ************************************************************\r\n// tokenizer \r\n\r\nconst TY_VALID = 'valid';\r\nconst TY_MAPPED = 'mapped';\r\nconst TY_IGNORED = 'ignored';\r\nconst TY_DISALLOWED = 'disallowed';\r\nconst TY_EMOJI = 'emoji';\r\nconst TY_NFC = 'nfc';\r\nconst TY_STOP = 'stop';\r\n\r\nfunction ens_tokenize(name, {\r\n\tnf = true, // collapse unnormalized runs into a single token\r\n} = {}) {\r\n\tinit();\r\n\tlet input = explode_cp(name).reverse();\r\n\tlet eaten = [];\r\n\tlet tokens = [];\r\n\twhile (input.length) {\r\n\t\tlet emoji = consume_emoji_reversed(input, eaten);\r\n\t\tif (emoji) {\r\n\t\t\ttokens.push({\r\n\t\t\t\ttype: TY_EMOJI,\r\n\t\t\t\temoji: emoji.slice(), // copy emoji\r\n\t\t\t\tinput: eaten,\r\n\t\t\t\tcps: filter_fe0f(emoji)\r\n\t\t\t});\r\n\t\t\teaten = []; // reset buffer\r\n\t\t} else {\r\n\t\t\tlet cp = input.pop();\r\n\t\t\tif (cp == STOP) {\r\n\t\t\t\ttokens.push({type: TY_STOP, cp});\r\n\t\t\t} else if (VALID.has(cp)) {\r\n\t\t\t\ttokens.push({type: TY_VALID, cps: [cp]});\r\n\t\t\t} else if (IGNORED.has(cp)) {\r\n\t\t\t\ttokens.push({type: TY_IGNORED, cp});\r\n\t\t\t} else {\r\n\t\t\t\tlet cps = MAPPED.get(cp);\r\n\t\t\t\tif (cps) {\r\n\t\t\t\t\ttokens.push({type: TY_MAPPED, cp, cps: cps.slice()});\r\n\t\t\t\t} else {\r\n\t\t\t\t\ttokens.push({type: TY_DISALLOWED, cp});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tif (nf) {\r\n\t\tfor (let i = 0, start = -1; i < tokens.length; i++) {\r\n\t\t\tlet token = tokens[i];\r\n\t\t\tif (is_valid_or_mapped(token.type)) {\r\n\t\t\t\tif (requires_check(token.cps)) { // normalization might be needed\r\n\t\t\t\t\tlet end = i + 1;\r\n\t\t\t\t\tfor (let pos = end; pos < tokens.length; pos++) { // find adjacent text\r\n\t\t\t\t\t\tlet {type, cps} = tokens[pos];\r\n\t\t\t\t\t\tif (is_valid_or_mapped(type)) {\r\n\t\t\t\t\t\t\tif (!requires_check(cps)) break;\r\n\t\t\t\t\t\t\tend = pos + 1;\r\n\t\t\t\t\t\t} else if (type !== TY_IGNORED) { // || type !== TY_DISALLOWED) { \r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (start < 0) start = i;\r\n\t\t\t\t\tlet slice = tokens.slice(start, end);\r\n\t\t\t\t\tlet cps0 = slice.flatMap(x => is_valid_or_mapped(x.type) ? x.cps : []); // strip junk tokens\r\n\t\t\t\t\tlet cps = nfc(cps0);\r\n\t\t\t\t\tif (compare_arrays(cps, cps0)) { // bundle into an nfc token\r\n\t\t\t\t\t\ttokens.splice(start, end - start, {\r\n\t\t\t\t\t\t\ttype: TY_NFC, \r\n\t\t\t\t\t\t\tinput: cps0, // there are 3 states: tokens0 ==(process)=> input ==(nfc)=> tokens/cps\r\n\t\t\t\t\t\t\tcps, \r\n\t\t\t\t\t\t\ttokens0: collapse_valid_tokens(slice),\r\n\t\t\t\t\t\t\ttokens: ens_tokenize(str_from_cps(cps), {nf: false})\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\ti = start;\r\n\t\t\t\t\t} else { \r\n\t\t\t\t\t\ti = end - 1; // skip to end of slice\r\n\t\t\t\t\t}\r\n\t\t\t\t\tstart = -1; // reset\r\n\t\t\t\t} else {\r\n\t\t\t\t\tstart = i; // remember last\r\n\t\t\t\t}\r\n\t\t\t} else if (token.type !== TY_IGNORED) { // 20221024: is this correct?\r\n\t\t\t\tstart = -1; // reset\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\treturn collapse_valid_tokens(tokens);\r\n}\r\n\r\nfunction is_valid_or_mapped(type) {\r\n\treturn type == TY_VALID || type == TY_MAPPED;\r\n}\r\n\r\nfunction requires_check(cps) {\r\n\treturn cps.some(cp => NFC_CHECK.has(cp));\r\n}\r\n\r\nfunction collapse_valid_tokens(tokens) {\r\n\tfor (let i = 0; i < tokens.length; i++) {\r\n\t\tif (tokens[i].type == TY_VALID) {\r\n\t\t\tlet j = i + 1;\r\n\t\t\twhile (j < tokens.length && tokens[j].type == TY_VALID) j++;\r\n\t\t\ttokens.splice(i, j - i, {type: TY_VALID, cps: tokens.slice(i, j).flatMap(x => x.cps)});\r\n\t\t}\r\n\t}\r\n\treturn tokens;\r\n}\n\nexport { ens_beautify, ens_emoji, ens_normalize, ens_normalize_fragment, ens_split, ens_tokenize, is_combining_mark, nfc, nfd, safe_str_from_cps, should_escape };\n","import { ens_normalize } from '@adraffy/ens-normalize';\nimport * as Bytes from './Bytes.js';\nimport * as Hash from './Hash.js';\nimport * as Hex from './Hex.js';\nimport * as internal from './internal/ens.js';\n/**\n * 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 {@link ox#Ens.(normalize:function)} function for this.\n *\n * @example\n * ```ts twoslash\n * import { Ens } from 'ox'\n * Ens.labelhash('eth')\n * '0x4f5b812789fc606be1b3b16908db13fc7a9adf7ca72641f84d75b47069d3d7f0'\n * ```\n *\n * @param label - ENS label.\n * @returns ENS labelhash.\n */\nexport function labelhash(label) {\n const result = new Uint8Array(32).fill(0);\n if (!label)\n return Hex.fromBytes(result);\n return (internal.unwrapLabelhash(label) || Hash.keccak256(Hex.fromString(label)));\n}\n/**\n * 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 {@link ox#Ens.(normalize:function)} function for this.\n *\n * @example\n * ```ts twoslash\n * import { Ens } from 'ox'\n * Ens.namehash('wevm.eth')\n * // @log: '0xf246651c1b9a6b141d19c2604e9a58f567973833990f830d882534a747801359'\n * ```\n *\n * @param name - ENS name.\n * @returns ENS namehash.\n */\nexport function namehash(name) {\n let result = new Uint8Array(32).fill(0);\n if (!name)\n return Hex.fromBytes(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 = internal.unwrapLabelhash(labels[i]);\n const hashed = hashFromEncodedLabel\n ? Bytes.fromHex(hashFromEncodedLabel)\n : Hash.keccak256(Bytes.fromString(labels[i]), { as: 'Bytes' });\n result = Hash.keccak256(Bytes.concat(result, hashed), { as: 'Bytes' });\n }\n return Hex.fromBytes(result);\n}\n/**\n * Normalizes ENS name according to [ENSIP-15](https://github.com/ensdomains/docs/blob/9edf9443de4333a0ea7ec658a870672d5d180d53/ens-improvement-proposals/ensip-15-normalization-standard.md).\n *\n * For more info see [ENS documentation](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) on name processing.\n *\n * @example\n * ```ts twoslash\n * import { Ens } from 'ox'\n * Ens.normalize('wevm.eth')\n * // @log: 'wevm.eth'\n * ```\n *\n * @param name - ENS name.\n * @returns Normalized ENS name.\n */\nexport function normalize(name) {\n return ens_normalize(name);\n}\n//# sourceMappingURL=Ens.js.map","import * as Ens from 'ox/Ens';\n/**\n * @description Normalizes ENS name according to ENSIP-15.\n *\n * @example\n * normalize('wevm.eth')\n * 'wevm.eth'\n *\n * @see https://docs.ens.domains/contract-api-reference/name-processing#normalising-names\n * @see https://github.com/ensdomains/docs/blob/9edf9443de4333a0ea7ec658a870672d5d180d53/ens-improvement-proposals/ensip-15-normalization-standard.md\n */\nexport function normalize(name) {\n return Ens.normalize(name);\n}\n//# sourceMappingURL=normalize.js.map","import { EthereumProvider, OPTIONAL_METHODS } from '@walletconnect/ethereum-provider';\nimport { connect, disconnect, signMessage, getBalance, getEnsAvatar as wagmiGetEnsAvatar, getEnsName, switchChain, watchAccount, watchConnectors, waitForTransactionReceipt, estimateGas as wagmiEstimateGas, writeContract as wagmiWriteContract, getAccount, getEnsAddress as wagmiGetEnsAddress, reconnect } from '@wagmi/core';\nimport { mainnet } from 'viem/chains';\nimport { prepareTransactionRequest, sendTransaction as wagmiSendTransaction } from '@wagmi/core';\nimport { formatUnits, parseUnits } from 'viem';\nimport { Web3ModalScaffold } from '@web3modal/scaffold';\nimport { ConstantsUtil, PresetsUtil, HelpersUtil } from '@web3modal/scaffold-utils';\nimport { ConstantsUtil as CommonConstants } from '@web3modal/common';\nimport { getCaipDefaultChain, getEmailCaipNetworks, getWalletConnectCaipNetworks } from './utils/helpers.js';\nimport { W3mFrameConstants, W3mFrameHelpers, W3mFrameRpcConstants } from '@web3modal/wallet';\nimport { NetworkUtil } from '@web3modal/common';\nimport { normalize } from 'viem/ens';\nexport class Web3Modal extends Web3ModalScaffold {\n constructor(options) {\n const { wagmiConfig, siweConfig, defaultChain, tokens, _sdkVersion, ...w3mOptions } = options;\n if (!wagmiConfig) {\n throw new Error('web3modal:constructor - wagmiConfig is undefined');\n }\n if (!w3mOptions.projectId) {\n throw new Error('web3modal:constructor - projectId is undefined');\n }\n const networkControllerClient = {\n switchCaipNetwork: async (caipNetwork) => {\n const chainId = NetworkUtil.caipNetworkIdToNumber(caipNetwork?.id);\n if (chainId) {\n await switchChain(this.wagmiConfig, { chainId });\n }\n },\n getApprovedCaipNetworksData: async () => new Promise(resolve => {\n const connections = new Map(wagmiConfig.state.connections);\n const connection = connections.get(wagmiConfig.state.current || '');\n if (connection?.connector?.id === ConstantsUtil.AUTH_CONNECTOR_ID) {\n resolve(getEmailCaipNetworks());\n }\n else if (connection?.connector?.id === ConstantsUtil.WALLET_CONNECT_CONNECTOR_ID) {\n const connector = wagmiConfig.connectors.find(c => c.id === ConstantsUtil.WALLET_CONNECT_CONNECTOR_ID);\n resolve(getWalletConnectCaipNetworks(connector));\n }\n resolve({ approvedCaipNetworkIds: undefined, supportsAllNetworks: true });\n })\n };\n const connectionControllerClient = {\n connectWalletConnect: async (onUri) => {\n const connector = wagmiConfig.connectors.find(c => c.id === ConstantsUtil.WALLET_CONNECT_CONNECTOR_ID);\n if (!connector) {\n throw new Error('connectionControllerClient:getWalletConnectUri - connector is undefined');\n }\n const provider = (await connector.getProvider());\n provider.on('display_uri', data => {\n onUri(data);\n });\n const chainId = NetworkUtil.caipNetworkIdToNumber(this.getCaipNetwork()?.id);\n if (siweConfig?.options?.enabled && typeof provider?.authenticate === 'function') {\n const { SIWEController, getDidChainId, getDidAddress } = await import('@web3modal/siwe');\n const siweParams = await siweConfig.getMessageParams();\n await connector.setRequestedChainsIds(siweParams.chains);\n const result = await provider.authenticate({\n nonce: await siweConfig.getNonce(),\n methods: [...OPTIONAL_METHODS],\n ...siweParams\n });\n const signedCacao = result?.auths?.[0];\n if (signedCacao) {\n const { p, s } = signedCacao;\n const cacaoChainId = getDidChainId(p.iss) || '';\n const address = getDidAddress(p.iss);\n if (address && cacaoChainId) {\n SIWEController.setSession({\n address,\n chainId: parseInt(cacaoChainId, 10)\n });\n }\n try {\n const message = provider.signer.client.formatAuthMessage({\n request: p,\n iss: p.iss\n });\n await SIWEController.verifyMessage({\n message,\n signature: s.s,\n cacao: signedCacao\n });\n }\n catch (error) {\n console.error('Error verifying message', error);\n await provider.disconnect().catch(console.error);\n await SIWEController.signOut().catch(console.error);\n throw error;\n }\n this.wagmiConfig.state.current = '';\n }\n }\n await connect(this.wagmiConfig, { connector, chainId });\n },\n connectExternal: async ({ id, provider, info }) => {\n const connector = wagmiConfig.connectors.find(c => c.id === id);\n if (!connector) {\n throw new Error('connectionControllerClient:connectExternal - connector is undefined');\n }\n if (provider && info && connector.id === ConstantsUtil.EIP6963_CONNECTOR_ID) {\n connector.setEip6963Wallet?.({ provider, info });\n }\n const chainId = NetworkUtil.caipNetworkIdToNumber(this.getCaipNetwork()?.id);\n await connect(this.wagmiConfig, { connector, chainId });\n },\n reconnectExternal: async ({ id }) => {\n const connector = wagmiConfig.connectors.find(c => c.id === id);\n if (!connector) {\n throw new Error('connectionControllerClient:connectExternal - connector is undefined');\n }\n await reconnect(this.wagmiConfig, { connectors: [connector] });\n },\n checkInstalled: ids => {\n const injectedConnector = this.getConnectors().find(c => c.type === 'INJECTED');\n if (!ids) {\n return Boolean(window.ethereum);\n }\n if (injectedConnector) {\n if (!window?.ethereum) {\n return false;\n }\n return ids.some(id => Boolean(window.ethereum?.[String(id)]));\n }\n return false;\n },\n disconnect: async () => {\n await disconnect(this.wagmiConfig);\n if (siweConfig?.options?.signOutOnDisconnect) {\n const { SIWEController } = await import('@web3modal/siwe');\n await SIWEController.signOut();\n }\n },\n signMessage: async (message) => signMessage(this.wagmiConfig, { message }),\n estimateGas: async (args) => {\n try {\n return await wagmiEstimateGas(this.wagmiConfig, {\n account: args.address,\n to: args.to,\n data: args.data,\n type: 'legacy'\n });\n }\n catch (error) {\n return 0n;\n }\n },\n sendTransaction: async (data) => {\n const { chainId } = getAccount(this.wagmiConfig);\n const txParams = {\n account: data.address,\n to: data.to,\n value: data.value,\n gas: data.gas,\n gasPrice: data.gasPrice,\n data: data.data,\n chainId,\n type: 'legacy'\n };\n await prepareTransactionRequest(this.wagmiConfig, txParams);\n const tx = await wagmiSendTransaction(this.wagmiConfig, txParams);\n await waitForTransactionReceipt(this.wagmiConfig, { hash: tx, timeout: 25000 });\n return tx;\n },\n writeContract: async (data) => {\n const chainId = NetworkUtil.caipNetworkIdToNumber(this.getCaipNetwork()?.id);\n const tx = await wagmiWriteContract(wagmiConfig, {\n chainId,\n address: data.tokenAddress,\n abi: data.abi,\n functionName: data.method,\n args: [data.receiverAddress, data.tokenAmount]\n });\n return tx;\n },\n getEnsAddress: async (value) => {\n try {\n const chainId = NetworkUtil.caipNetworkIdToNumber(this.getCaipNetwork()?.id);\n let ensName = false;\n let wcName = false;\n if (value?.endsWith(CommonConstants.WC_NAME_SUFFIX)) {\n wcName = await this.resolveWalletConnectName(value);\n }\n if (chainId === mainnet.id) {\n ensName = await wagmiGetEnsAddress(this.wagmiConfig, {\n name: normalize(value),\n chainId\n });\n }\n return ensName || wcName || false;\n }\n catch {\n return false;\n }\n },\n getEnsAvatar: async (value) => {\n const chainId = NetworkUtil.caipNetworkIdToNumber(this.getCaipNetwork()?.id);\n if (chainId !== mainnet.id) {\n return false;\n }\n const avatar = await wagmiGetEnsAvatar(this.wagmiConfig, {\n name: normalize(value),\n chainId\n });\n return avatar || false;\n },\n parseUnits,\n formatUnits\n };\n super({\n networkControllerClient,\n connectionControllerClient,\n siweControllerClient: siweConfig,\n defaultChain: getCaipDefaultChain(defaultChain),\n tokens: HelpersUtil.getCaipTokens(tokens),\n _sdkVersion: _sdkVersion ?? `html-wagmi-${ConstantsUtil.VERSION}`,\n ...w3mOptions\n });\n this.hasSyncedConnectedAccount = false;\n this.options = undefined;\n this.options = options;\n this.wagmiConfig = wagmiConfig;\n this.syncRequestedNetworks([...wagmiConfig.chains]);\n this.syncConnectors([...wagmiConfig.connectors]);\n this.initAuthConnectorListeners([...wagmiConfig.connectors]);\n watchConnectors(this.wagmiConfig, {\n onChange: connectors => this.syncConnectors(connectors)\n });\n watchAccount(this.wagmiConfig, {\n onChange: accountData => this.syncAccount({ ...accountData })\n });\n }\n getState() {\n const state = super.getState();\n return {\n ...state,\n selectedNetworkId: NetworkUtil.caipNetworkIdToNumber(state.selectedNetworkId)\n };\n }\n subscribeState(callback) {\n return super.subscribeState(state => callback({\n ...state,\n selectedNetworkId: NetworkUtil.caipNetworkIdToNumber(state.selectedNetworkId)\n }));\n }\n syncRequestedNetworks(chains) {\n const requestedCaipNetworks = chains?.map(chain => ({\n id: `${ConstantsUtil.EIP155}:${chain.id}`,\n name: chain.name,\n imageId: PresetsUtil.EIP155NetworkImageIds[chain.id],\n imageUrl: this.options?.chainImages?.[chain.id]\n }));\n this.setRequestedCaipNetworks(requestedCaipNetworks ?? []);\n }\n async syncAccount({ address, isConnected, chainId, connector }) {\n this.resetAccount();\n this.syncNetwork(address, chainId, isConnected);\n if (isConnected && address && chainId) {\n const caipAddress = `${ConstantsUtil.EIP155}:${chainId}:${address}`;\n this.setIsConnected(isConnected);\n this.setCaipAddress(caipAddress);\n await Promise.all([\n this.syncProfile(address, chainId),\n this.syncBalance(address, chainId),\n this.syncConnectedWalletInfo(connector),\n this.getApprovedCaipNetworksData()\n ]);\n this.hasSyncedConnectedAccount = true;\n }\n else if (!isConnected && this.hasSyncedConnectedAccount) {\n this.resetWcConnection();\n this.resetNetwork();\n }\n }\n async syncNetwork(address, chainId, isConnected) {\n const chain = this.wagmiConfig.chains.find((c) => c.id === chainId);\n if (chain || chainId) {\n const name = chain?.name ?? chainId?.toString();\n const id = Number(chain?.id ?? chainId);\n const caipChainId = `${ConstantsUtil.EIP155}:${id}`;\n this.setCaipNetwork({\n id: caipChainId,\n name,\n imageId: PresetsUtil.EIP155NetworkImageIds[id],\n imageUrl: this.options?.chainImages?.[id]\n });\n if (isConnected && address && chainId) {\n const caipAddress = `${ConstantsUtil.EIP155}:${id}:${address}`;\n this.setCaipAddress(caipAddress);\n if (chain?.blockExplorers?.default?.url) {\n const url = `${chain.blockExplorers.default.url}/address/${address}`;\n this.setAddressExplorerUrl(url);\n }\n else {\n this.setAddressExplorerUrl(undefined);\n }\n if (this.hasSyncedConnectedAccount) {\n await this.syncProfile(address, chainId);\n await this.syncBalance(address, chainId);\n }\n }\n }\n }\n async syncWalletConnectName(address) {\n try {\n const registeredWcNames = await this.getWalletConnectName(address);\n if (registeredWcNames[0]) {\n const wcName = registeredWcNames[0];\n this.setProfileName(wcName.name);\n }\n else {\n this.setProfileName(null);\n }\n }\n catch {\n this.setProfileName(null);\n }\n }\n async syncProfile(address, chainId) {\n try {\n const { name, avatar } = await this.fetchIdentity({\n address\n });\n this.setProfileName(name);\n this.setProfileImage(avatar);\n if (!name) {\n await this.syncWalletConnectName(address);\n }\n }\n catch {\n if (chainId === mainnet.id) {\n const profileName = await getEnsName(this.wagmiConfig, { address, chainId });\n if (profileName) {\n this.setProfileName(profileName);\n const profileImage = await wagmiGetEnsAvatar(this.wagmiConfig, {\n name: profileName,\n chainId\n });\n if (profileImage) {\n this.setProfileImage(profileImage);\n }\n }\n else {\n await this.syncWalletConnectName(address);\n this.setProfileImage(null);\n }\n }\n else {\n await this.syncWalletConnectName(address);\n this.setProfileImage(null);\n }\n }\n }\n async syncBalance(address, chainId) {\n const chain = this.wagmiConfig.chains.find((c) => c.id === chainId);\n if (chain) {\n const balance = await getBalance(this.wagmiConfig, {\n address,\n chainId: chain.id,\n token: this.options?.tokens?.[chain.id]?.address\n });\n this.setBalance(balance.formatted, balance.symbol);\n return;\n }\n this.setBalance(undefined, undefined);\n }\n async syncConnectedWalletInfo(connector) {\n if (!connector) {\n throw Error('syncConnectedWalletInfo - connector is undefined');\n }\n if (connector.id === ConstantsUtil.WALLET_CONNECT_CONNECTOR_ID && connector.getProvider) {\n const walletConnectProvider = (await connector.getProvider());\n if (walletConnectProvider.session) {\n this.setConnectedWalletInfo({\n ...walletConnectProvider.session.peer.metadata,\n name: walletConnectProvider.session.peer.metadata.name,\n icon: walletConnectProvider.session.peer.metadata.icons?.[0]\n });\n }\n }\n else {\n this.setConnectedWalletInfo({ name: connector.name, icon: connector.icon });\n }\n }\n syncConnectors(connectors) {\n const uniqueIds = new Set();\n const filteredConnectors = connectors.filter(item => !uniqueIds.has(item.id) && uniqueIds.add(item.id));\n const w3mConnectors = [];\n const coinbaseSDKId = ConstantsUtil.COINBASE_SDK_CONNECTOR_ID;\n const coinbaseConnector = filteredConnectors.find(c => c.id === coinbaseSDKId);\n filteredConnectors.forEach(({ id, name, type, icon }) => {\n const isCoinbaseRepeated = coinbaseConnector &&\n id === ConstantsUtil.CONNECTOR_RDNS_MAP[ConstantsUtil.COINBASE_CONNECTOR_ID];\n const shouldSkip = isCoinbaseRepeated || ConstantsUtil.AUTH_CONNECTOR_ID === id;\n if (!shouldSkip) {\n w3mConnectors.push({\n id,\n explorerId: PresetsUtil.ConnectorExplorerIds[id],\n imageUrl: this.options?.connectorImages?.[id] ?? icon,\n name: PresetsUtil.ConnectorNamesMap[id] ?? name,\n imageId: PresetsUtil.ConnectorImageIds[id],\n type: PresetsUtil.ConnectorTypesMap[type] ?? 'EXTERNAL',\n info: {\n rdns: id\n }\n });\n }\n });\n this.setConnectors(w3mConnectors);\n this.syncAuthConnector(filteredConnectors);\n }\n async syncAuthConnector(connectors) {\n const authConnector = connectors.find(({ id }) => id === ConstantsUtil.AUTH_CONNECTOR_ID);\n if (authConnector) {\n const provider = await authConnector.getProvider();\n this.addConnector({\n id: ConstantsUtil.AUTH_CONNECTOR_ID,\n type: 'AUTH',\n name: 'Auth',\n provider,\n email: authConnector.email,\n socials: authConnector.socials,\n showWallets: authConnector?.showWallets === undefined ? true : authConnector.showWallets\n });\n }\n }\n async initAuthConnectorListeners(connectors) {\n const authConnector = connectors.find(({ id }) => id === ConstantsUtil.AUTH_CONNECTOR_ID);\n if (authConnector) {\n await this.listenAuthConnector(authConnector);\n await this.listenModal(authConnector);\n }\n }\n async listenAuthConnector(connector) {\n if (typeof window !== 'undefined' && connector) {\n super.setLoading(true);\n const provider = (await connector.getProvider());\n const isLoginEmailUsed = provider.getLoginEmailUsed();\n super.setLoading(isLoginEmailUsed);\n if (isLoginEmailUsed) {\n this.setIsConnected(false);\n }\n provider.onRpcRequest(request => {\n if (W3mFrameHelpers.checkIfRequestExists(request)) {\n if (!W3mFrameHelpers.checkIfRequestIsAllowed(request)) {\n if (super.isOpen()) {\n if (super.isTransactionStackEmpty()) {\n return;\n }\n if (super.isTransactionShouldReplaceView()) {\n super.replace('ApproveTransaction');\n }\n else {\n super.redirect('ApproveTransaction');\n }\n }\n else {\n super.open({ view: 'ApproveTransaction' });\n }\n }\n }\n else {\n super.open();\n const method = W3mFrameHelpers.getRequestMethod(request);\n console.error(W3mFrameRpcConstants.RPC_METHOD_NOT_ALLOWED_MESSAGE, { method });\n setTimeout(() => {\n this.showErrorMessage(W3mFrameRpcConstants.RPC_METHOD_NOT_ALLOWED_UI_MESSAGE);\n }, 300);\n provider.rejectRpcRequest();\n }\n });\n provider.onRpcResponse(response => {\n const responseType = W3mFrameHelpers.getResponseType(response);\n switch (responseType) {\n case W3mFrameConstants.RPC_RESPONSE_TYPE_ERROR: {\n const isModalOpen = super.isOpen();\n if (isModalOpen) {\n if (super.isTransactionStackEmpty()) {\n super.close();\n }\n else {\n super.popTransactionStack(true);\n }\n }\n break;\n }\n case W3mFrameConstants.RPC_RESPONSE_TYPE_TX: {\n if (super.isTransactionStackEmpty()) {\n super.close();\n }\n else {\n super.popTransactionStack();\n }\n break;\n }\n default:\n break;\n }\n });\n provider.onNotConnected(() => {\n const isConnected = this.getIsConnectedState();\n if (!isConnected) {\n this.setIsConnected(false);\n super.setLoading(false);\n }\n });\n provider.onIsConnected(req => {\n this.setIsConnected(true);\n this.setSmartAccountDeployed(Boolean(req.smartAccountDeployed));\n this.setPreferredAccountType(req.preferredAccountType);\n super.setLoading(false);\n });\n provider.onGetSmartAccountEnabledNetworks(networks => {\n this.setSmartAccountEnabledNetworks(networks);\n });\n provider.onSetPreferredAccount(({ address, type }) => {\n if (!address) {\n return;\n }\n const chainId = NetworkUtil.caipNetworkIdToNumber(this.getCaipNetwork()?.id);\n this.syncAccount({\n address: address,\n chainId,\n isConnected: true,\n connector\n }).then(() => this.setPreferredAccountType(type));\n });\n }\n }\n async listenModal(connector) {\n const provider = (await connector.getProvider());\n this.subscribeState(val => {\n if (!val.open) {\n provider.rejectRpcRequest();\n }\n });\n }\n}\n//# sourceMappingURL=client.js.map","import { Web3Modal } from '../src/client.js';\nimport { ConstantsUtil } from '@web3modal/scaffold-utils';\nexport { defaultWagmiConfig } from '../src/utils/defaultWagmiCoreConfig.js';\nexport { authConnector } from '../src/connectors/AuthConnector.js';\nexport { emailConnector } from '../src/connectors/EmailConnector.js';\nexport function createWeb3Modal(options) {\n return new Web3Modal({ ...options, _sdkVersion: `html-wagmi-${ConstantsUtil.VERSION}` });\n}\n//# sourceMappingURL=index.js.map"],"file":"assets/web3modal-CFDFJNfI.js"}